2014/3/25
SQL Server 使用OpenQuery,並使用參數傳值
2013/8/26
Oracle的SQL報表出現斷行錯誤
今天要分享Oracle執行SQL報表時,可能會出現的錯誤狀況
你是否曾經遇過,SQL明明就是正確的,在TOAD上可以順利執行,但上傳到Oracle之後,卻頻頻出現出現錯誤,或毫無作用
先前的做法是:將多餘的空行刪掉,並注意SQL最後一行有沒有加 / 符號
但將多餘的空行刪掉,這動作究竟是為甚麼呢?
這時候可以檢查你的SQL檔案,並顯示特殊字元看看
在notepad顯示特殊字元的方法很簡單:檢視 > 特殊字元 > 顯示所有字元(參考下圖:顯示特殊字元)
你會發現每個換行的地方會出現CR CF 的符號,這就是傳說中的換行符號
一般來說換行符號是CR CF配對產生的,CR表示增加一行,CF表示游標移到下一行起點
而在Oracle中,如果換行字元不正確,那該SQL是無法正確執行的
因此如果你的檔案有換行,但無法正確執行(如下圖:不可執行的版本)那可能就是你的換行符號有問題了
顯示特殊字元:
可執行的版本:
不可執行的版本:
2013/1/16
搜尋資料庫所有欄位名稱、所有資料表名稱、系統時間
一、搜尋資料庫所有欄位名稱,可以使用這兩種語法
1. select * from syscolumns
2. select * from sys.columns
二、取得資料庫中所有資料表名稱,可以使用以下語法
SELECT * FROM INFORMATION_SCHEMA.TABLES
三、取系統時間
SQL Server 日期函數 CONVERT 範例
MS SQL Server中文版的預設日期datetime格式是 yyyy-mm-dd hh:mm:ss.mmm
例如:select getdate()
四、常用日期格式轉換方式
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),’-',”),’ ‘,”),’:',”)
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004
select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004
select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004
select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004
select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004
select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1
select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004
select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1
select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177