【发布时间】:2014-01-29 07:54:21
【问题描述】:
我正在尝试将表名分配给变量并在执行立即语句中使用相同的名称,请帮助我了解执行语句中的语法
场景是
我试图在过程中传递一个表名作为参数,并在执行立即使用它们来写入其他表。
请建议我输入参数和执行立即语句的语法。
我的程序:
CREATE OR REPLACE PROCEDURE tep
AS
v_sql VARCHAR2(1024) ;
a NUMBER;
b VARCHAR2(30) :='t_stg1_non_silicon_purchace_re';
BEGIN
v_sql := q'[SELECT COUNT(*) FROM b ]';
EXECUTE immediate v_sql INTO a;
DBMS_OUTPUT.PUT_LINE( TO_CHAR(v_sql));
DBMS_OUTPUT.PUT_LINE( TO_CHAR(a));
END;
/
【问题讨论】:
-
SO 已经有很多关于这个主题的答案。 Follow this link。哪一个真正适合您的情况取决于您未提供的详细信息。但我建议你浏览其中的一些。如果它们没有帮助,您需要完善您的问题。
-
请在发布问题之前检查现有的解决方案
-
创建或替换过程 tep 为 v_sql VARCHAR2(1024) ;一个号码; b varchar2(30) :='t_stg1_non_silicon_purchace_re';开始 v_sql := q'[SELECT COUNT(*) FROM b ]';立即执行 v_sql 到 a; DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_sql)); DBMS_OUTPUT.PUT_LINE(TO_CHAR(a));结尾;我正在尝试这个
标签: oracle stored-procedures plsql dynamic-sql