Oracle中的动态SQL问题

时间:2011-04-19 06:47:27

标签: sql oracle

我有一个存储过程

create or replace  procedure GETFILE(TableName in VARCHAR2)
is
No_Rows Number :=0;
state varchar2(100);
begin
state :=' select    count(*)  into   :p_id     from   ' || inTableName;
EXECUTE IMMEDIATE state using out NO_ROWS;

end;
end;

已成功创建存储过程。 但是当我使用它运行它时:

declare
begin
GETFILE('TABLE_NAME');
end;

显示“ORA-01006:绑定变量不存在” 错误。 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

这是否符合您的要求(您可能想删除put_line)......:

create or replace  procedure GETFILE(inTableName in VARCHAR2)
is
No_Rows Number :=0;
state varchar2(100);
begin
 state :=' select    count(*)   from   ' || inTableName;
dbms_output.put_line(state);
EXECUTE IMMEDIATE state into NO_ROWS;
dbms_output.put_line(no_rows);
end;
/

declare
begin
getfile('dual');
end;
/

答案 1 :(得分:0)

我认为这里没有任何编码错误 所以,我认为你必须确保你正在创建和执行你的程序 在相同的数据库或相同的架构