今天寫儲存過程的時候,遇到了傳入多個引數,不能用in匹配的問題。
例如:傳入引數:
b = 'a','b','c';
pl/sql語句:
select * from table
where var in ( + b + );
不能匹配,因為pl/sql把b當做乙個完整的字串, select * from table where var in (''a','b','c'');
解決方法:
傳入引數:
b = a,b,c;
pl/sql語句:
str:= ','||b||',';
select * from table
where instr(str,','||var||',') > 0
解釋: 把傳入的引數拼接為: str = ,a,b,c,;
instr 判斷 str中是否有 ,var, 存在。
多個引數的儲存過程
今天寫了乙個通過多個引數查詢列表記錄的儲存過程,查詢和排序的時候涉及了多個表和字段,寫下來記錄一下.也給需要的同僚借鑑一下.正文如下 use dbname go object storedprocedure dbo getproductlistbymanyparams script date 07 ...
sql儲存過程in 多個引數
首先要建立乙個擷取字串的函式,新建乙個查詢,把下面 複製進去執行。函式sqlitin的第乙個引數是儲存過程要in的字串,第二個引數是分隔符 create function splitin c varchar 200 split varchar 2 returns t table col varcha...
SQL 儲存過程引數解決方案
今天做這個乙個問題,需要動態使用sql語句,原來的解決方案是在程式中是用 if else 語句來解決 後來因為資料問題,沒辦法只有使用儲存過程。源 是這樣的 這個儲存過程是對的,但是裡面有5個引數,但是在程式中除了時間外的另外三個引數都有可能為空,而且在為空的情況下需要能夠檢索查詢出所有資訊!一時間...