動態SQL拼裝技巧

2021-08-15 04:23:37 字數 803 閱讀 4141

儲存過程裡有時候需要根據不同的條件拼裝動態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...