簡體   English   中英

Oracle PL / SQL中的存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM