2011-04-19 176 views
0

動態SQL我有一個存儲過程是越來越成功創建問題與甲骨文

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:綁定變量不存在」 錯誤。 有什麼想法?

+0

注意SQL注入! – ObiWanKenobi 2011-04-19 07:01:33

回答

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; 
/
0

我不認爲有任何這裏編碼錯誤
所以,我認爲你必須確保你正在創建,並在同一數據庫或在同一模式