[英]Stored procedure in Oracle PL/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' ) );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.