oracle 存储过程中select * from 变量 这么写?这个怎么定义

oracle 存储过程中select * from变量 这么写?这个怎么定义
2024-12-19 11:19:11
推荐回答(1个)
回答1:

用动态SQL。

CREATE OR REPLACE PROCEDURE TEST(I_TABLE    IN  VARCHAR2)
IS
BEGIN
   DECLARE 
      STRSQL VARCHAR2(4000);
      P_VALUE  VARCHAR2(4000);      
   BEGIN
      STRSQL := 'SELECT COL FROM ' || I_TABLE ; --COL为字段名,保证能且只返回一行
      EXECUTE IMMEDIATE STRSQL RETURNING P_VALUE ;
   EXCEPTION
      WHEN OTHERS THEN
         --这里是异常处理
         P_VALUE := '';
   END;
END;
/

不明白可以追问。