3
是否有可能有這樣一個存儲過程中的某處嵌入的SQL查詢:存儲過程/ SQL
Select id, val from prmtable where id in ('app','config');
可以將此參數列表在運行時初始化與任意數量的字符串值(包括在運行時字符串的數量和值)由用戶決定?如果是,那麼它是如何完成的?
是否有可能有這樣一個存儲過程中的某處嵌入的SQL查詢:存儲過程/ SQL
Select id, val from prmtable where id in ('app','config');
可以將此參數列表在運行時初始化與任意數量的字符串值(包括在運行時字符串的數量和值)由用戶決定?如果是,那麼它是如何完成的?
如果您需要的參數,動態的數字,你可以創建一個類型
CREATE TYPE my_type AS TABLE OF VARCHAR2(128);
,並通過此表作爲參數的過程
CREATE OR REPLACE PROCEDURE my_procedure(vals IN my_type) AS
BEGIN
FOR c IN (
SELECT dummy
FROM dual
WHERE dummy IN (SELECT column_value FROM TABLE(vals))
) LOOP
dbms_output.put_line(c.dummy);
END LOOP;
END my_procedure;
此過程就可以這樣執行:
EXEC my_procedure(NEW my_type('X', 'Y'));
謝謝你@PeterLang,猜這應該是工作!當它發佈後會回發:) – Shylock77 2012-01-31 17:16:08
好@PeterLang .Guys n gals這個工程! – Shylock77 2012-02-01 09:14:59