發表文章

OpenRowSet和OpenQuery的問題

這次遇上的問題是,每當執行EXE [某個SP] 時, 程式會告訴你說沒有資料行或是沒有權限。 可是到了目標的SQL Server查了一下,對方的確有開OpenRowSet的權限, 換句話說問題不是出在權限開關那邊。 於是上網查了一下,發現只要在原本的連線字串裡面, 多加兩個指令就能搞定,分別是… SET NOCOUNT OFF SET FMTONLY ON 設定之後就能如預期那樣用SP查出東西了。 但值得注意的是,SET FMTONLY被列入不使用名單, 換句話說,往後新版本的MSSQL可能就會沒有這個指令, 可能的話還是用新指令去替換吧。

夢境#23

一個男人拿走了我僅有的一張鈔票。 我無法抗拒他,因為這是必然的。 錢包內只剩下零錢,這時候我只能忍耐,別無他法。 過了一段時間, 皮包內的紙鈔又充盈了起來, 但我並沒有大意,小心翼翼的保存手中的紙鈔。 果然那男人又出現了, 他二話不說就從我皮包內拿走了數張鈔票,隨後離開。 與第一次不同,這次我的皮包內還有幾張鈔票, 看著剩下來的鈔票,心裡也踏實許多。 我知道男人還會出現,至於他何時出現,我不知道。 因此,我必須準備好足夠鈔票,免得當男人從我這邊離去後, 我會因為少了幾張鈔票而心裡不安。 一旦令人感到不安,許多事情也會跟著模糊不清起來,無法思考。 當所有物質、非物質的東西混雜在一起的時候。 無論是誰,也只能投降了。 但是男人仍然會出現。 他會想辦法從人身上的任何位置找出紙鈔來,這行為直到身上完全沒有紙鈔為止。 一旦沒有紙鈔,男人會消失一陣子。 但他不是真的消失,而是在準備最後一次出現。 當他最後一次出現時,他會帶著一把鋒利的小刀, 這把小刀將會從某個沒鈔票的人身上將靜脈切開,那個人會因此失血致死。 我知道男人的恐怖,因此我必須準備更多的紙鈔。 幸好幸好,男人每次出現時,無法取走的鈔票越來越多, 看著這些有如自己性命的鈔票,心中感到踏實。 不過鈔票的數量已經超出我皮包的保存範圍, 因此我只好將這些鈔票寄放在女人那邊。 又過了好久一陣子, 在男人出現不久後,女人出現了。 她一手空空,另一手握著權杖,徐步走到我面前。 我知道該怎辦,於是伸出雙手。 女人搖晃了一下權杖,幾張小面額的鈔票出現在我手裡, 女人說這是我應得的,說完她就轉身離去。 我看著走遠的男人和女人, 手上則是將額外得來的鈔票收進皮包。

欄位資料切分與資料列增生

圖片
如果遇上一張表內的某個欄位儲存了多種狀態,而好死不死的這張表偏偏又是主要資料, 許多欄位不能隨意捨棄時,可以試試看這種做法。 起初的想法就是將欄位內的多筆狀態紀錄切開。 但是切開是切開了,那只是主要Table的其中一個Row啊! 天殺的還有千千萬萬個Row等著處理, 更麻煩的是,就算全切開了,其他欄位也跟人間蒸發, 想要Join找不到欄位Join,就像想吃火鍋端上來的偏偏都是刨冰。 於是就有了「既然要切開,那乾脆把切出來的這個數值掛上名牌」的想法, 如此一來就能知道這個被硬生生拆散的狀態數值的爸媽是誰。 上圖就是切分增生完的狀態。 主要資料表雖然資料量變多了,但資料欄位完整。 這種作法不知道有沒有正統的名稱,抑或根本沒人會這麼作, 但是客官就是要統計資料「鉅細靡遺」,大項也要細目也要, 在當下這顆菜比巴的腦袋裡只想得出這種方法,時間有限,就先這樣幹囉。 要做到這種效果,這裡使用的方法是找一段可以作出Split效果的Function。 這個Function在切分完欄位內的後,回傳的是Table型態,欄位為一個流水號和被切分出的值。 之後在預存程序裏面開始處理主要的Table。 只要利用迴圈和簡單的判斷式子就能作出這種效果, 之後要再Join其他Table也會比較順利,不怕沒欄位可以Join回去。

夢境#22

我正在處理一組難解的統計題目。 依照我的個性,這組統計題目不剋服的話, 接下來也就啥都不必說了。 並不是我愛鑽牛角尖,而是對自己的一種要求, 當然不會埋頭苦幹,溝通和理解和請人指點教導也是必須的。 縱使如此,所需要的時間也大大超出我的預算。 我開始感到恐慌。 某次在與他人學習時, 有人指著一段邏輯並說:「就是這麼簡單。」 而原本看似複雜的邏輯計算還真的變得簡單易懂了。

夢境#21

抓了床頭的鬧鐘一看,還好,還早。 倒頭下去,意識半夢半醒。 我知道自己正在想整某件起床後得做的事, 或者是一連串的事情。 也不是很確定。 反正都還沒開始,也無所謂吧。 一旦開始了,就得斤斤計較那前因後果輕重緩急, 光想就覺得無力,也讓人更想賴在床上。 又抓了床頭的鬧鐘, 總覺得時間已經到了。 可是分針卻只走不到兩格,距離上次看時間過去不到十分鐘。 想必是閉上眼睛時,時間過得比較快。 肯定是這神奇的身體機制讓人們免於被睡眠中的時光無聊到絕種。 睡眠是必要的,而賴床就是為了稱頌這種看似無聊卻必要的行為, 睡眠可以被稱為行為,但沒什麼人這麼認定它, 畢竟行和為都是用來稱指動作,偏偏睡覺…除了呼吸翻身和夢遊之外, 沒有可以稱作動作的地方。 從胡思亂想之際跳開, 再抓起床頭的鬧鐘。 如果說時間擁有不確定性,或者是時間無法被掌握,肯定指的是這回事。 明明都靠著感覺去確定時間,但每次最後確認時, 那分針彷彿在最後一次將移動的任務都交給了時針。 當這時候,我很希望還是在夢中, 但可悲的是,我總是能很清楚的分辨現實和夢境, 畢竟在我的夢中鮮少有太陽出場的機會, 就算有,也只會出現在夢的最後, 而這通常都是現實帶來的影響。 遮光效果不佳的窗簾和朝陽就是元凶。 總之如果沒有時間上的限制,半夢半醒的過程其實還挺美好的。

夢境#20

場地中有三個人,其中一個是我。 我們在討論一些事情,我也參與其中。 我們討論了很久很久, 但一直都沒有結果。 這場討論已經花去太多時間了, 就是因為如此,在得出結論之前我們約好不能半途而廢, 不然先前所花費的時間都白費了。 我們繼續討論, 經過了好幾個黎明和黃昏,仍然沒有出現共識。 大家都疲憊不已,就連當初讓所有人聚集起來討論的目的都忘了, 所有人都想得出結論,卻因為如此每個人早在心中就有結論, 導致每個人的觀點都越來越偏頗。 我也是如此,沒有例外。 就在所有人都快支撐不住, 討論時說出口的話語都像是在夢囈時,  一道陽光刺穿了會場。 我被壟罩在陽光之中, 一個聲音要我放棄, 那聲音摘下了我的眼鏡和莫名的堅持。 於是我轉身離去。 這一離去,其他人也跟著起身, 多天以來的疲倦一掃而空, 結論早就得出,只是沒人想承認居然是這麼簡單的事情。

淹水

圖片
家中位處偏僻,但居住多年來,除了冬不算冷,夏天有點熱之外,沒什麼大缺點。 海水倒灌的問題也因為堤防加高而不常出現。算是暫時治標了。 淹水問題,畢竟靠海,平時排水是很俐落的,但這次早上出門卻不是這麼一個回事。 摩托車出了家門後,剛要進入公路就和這一條新的「河道」相遇。摩托車的輪子被水拖住, 引擎像是被人摀住嘴巴,想唉唉不出聲音。 我知道這是準備變成人形路障的前兆,回頭是岸,趕緊將車移到比較高的地方, 接著把車架高,拼命催油門。幸好愛車的引擎還知道呼吸,總算活過來了。 這真的很令人很困擾, 就像快快樂樂出門到公園踏青時,卻一腳踩在補獸夾上。 伴隨著驚恐和無奈,我也只能和一些同樣被困住的人五味雜陳的望著眼前這條新「河道」 若是真的將摩托車開在上面,應該就跟騎水上摩托車一樣吧, 可是水深半個輪胎的現實,卻有可能在水上飄了一陣子之後讓我完全到不了公司。 到底是應該就這樣請假, 還是硬著頭皮賭看看…我就在這兩種抉擇中猶豫不決。 終於到了最後死線,不決定的話沒完沒了。 雨還在下,不小反大, 水窪上面被雨撞擊出的水滴漣漪讓密集得令人頭皮發麻。 唉、為了生活,衝了。 握住煞車,油門緊催就往「河道」衝。 我不知道是否整條馬路都成了「河道」, 但也只能賭賭看還有地方是屬於陸地的範疇, 若這「河道」長達數公里,「壯志未酬車先死」的話,我也認了。 就在引擎發出悲鳴,水深又越來越深的情況下, 終於發現靠近舊社區的馬路並沒有淹水, 趕緊將愛車騎到上面, 雖然轉速一慢下來就有熄火的感覺, 但還好,兩邊(車子和上班時間)都還有救。 一路被雨打得好痛, 慢車道又時常積水,不得不到快車道湊熱鬧, 時不時被濺起污水潑滿全身。 就這樣跌跌撞撞的到了公司, 一進門,一位前輩就說「今天不用上班耶?」 感覺整個早上的掙扎和努力都白費了。