2013/8/26

Oracle的SQL報表出現斷行錯誤

今天要分享Oracle執行SQL報表時,可能會出現的錯誤狀況

你是否曾經遇過,SQL明明就是正確的,在TOAD上可以順利執行,但上傳到Oracle之後,卻頻頻出現出現錯誤,或毫無作用

先前的做法是:將多餘的空行刪掉,並注意SQL最後一行有沒有加 / 符號

但將多餘的空行刪掉,這動作究竟是為甚麼呢?

這時候可以檢查你的SQL檔案,並顯示特殊字元看看

在notepad顯示特殊字元的方法很簡單:檢視 > 特殊字元 > 顯示所有字元(參考下圖:顯示特殊字元)

你會發現每個換行的地方會出現CR CF 的符號,這就是傳說中的換行符號

一般來說換行符號是CR CF配對產生的,CR表示增加一行,CF表示游標移到下一行起點

在Oracle中,如果換行字元不正確,那該SQL是無法正確執行的

因此如果你的檔案有換行,但無法正確執行(如下圖:不可執行的版本)那可能就是你的換行符號有問題了

顯示特殊字元:

clip_image002[8]

可執行的版本:

clip_image004[8]

不可執行的版本:

clip_image006

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。