儲存過程裡有時候需要根據不同的條件拼裝動態sql,比如下圖是乙個簡單的sql語句拼裝函式:
執行結果如下:
plsql的字串連線時,需要用2個單引號表示1個單引號,比如上例中的to_date函式裡面用到的日期模式。
實際應用中可能會拼裝比這個複雜很多倍的動態sql,特別是當引號比較多的時候,對於拼裝出來的sql是否有問題需要除錯很多次才能拼正確。那麼如何減少拼裝的錯誤呢,這裡舉2個技巧:
1.用q字元做字串常量的引導
對於單引號特別多的場景,用"q"+分隔符包起來的部分,不需要用2個單引號來表示1個單引號。分隔符可以是!或|或其他配對的符號如花括號、方括號、圓括號等。比如下面的字串表示式左右是一樣的
q'[this's a sample!]' == 'this''s a sample!',實際值this's a sample!
q'('this's a sample!')' == '''this''s a sample!''',實際值'this's a sample!'
2.用繫結變數
Oracle動態SQL的拼裝要領
oracle的動態sql語句用起來很方便,但其拼裝過程太煩人。尤其在拼裝語句中涉及到date型別欄位時,拼裝時要加to char先轉換成字元,到了sql中又要使用to date轉成date型別和原字段再比較。www.akdy.cn 例如這樣乙個sql select and t.created to ...
Extjs 動態拼裝Store
動態拼裝arraystore 1 定義store var result 資料 var fieldstr 列名 var store ext.create ext.data.arraystore 2 在function 中拼接data和field function getdata var date fp...
java Annotation 拼裝SQL語句
宣告字段對映 target elementtype.field retention retentionpolicy.runtime public inte ce filedref 宣告表對映 target elementtype.type retention retentionpolicy.runt...