所有,EXECUTE IMMEDIATE與使用條款,給予錯誤
我是很新的一般的存儲過程,但我與那些在甲骨文特別掙扎。我已經創建了一個非常簡單的例子,我正試圖完成這個簡化版本,但仍然遇到同樣的錯誤。
示例存儲過程如下:
CREATE OR REPLACE PROCEDURE ashish_test
AUTHID CURRENT_USER IS
BEGIN
DECLARE
v_tab VARCHAR2(50);
v_strSQL VARCHAR2(50);
BEGIN
v_strSQL := 'SELECT * FROM :1';
v_tab := 'ex.emp';
EXECUTE IMMEDIATE v_strSQL USING v_tab;
END;
END;
當我調用使用CALL ashish_test()
上述的存儲過程,我得到:
基於this article(查找實施例7- 1),USING
關鍵字應將v_strSQL
內的編號佔位符(:1
)替換爲存儲在中的值。但是,我不斷收到無效的表錯誤。我猜這是因爲EXECUTE IMMEDIATE
由於某種原因無法用值替換佔位符,但我不確定這是爲什麼。有誰知道我是否在這裏做一些愚蠢的事情?
我使用PL/SQL Developer在Oracle 10g數據庫&上運行此操作。
相關:[動態SQL爲什麼我不能使用綁定變量在DDL/SCL語句?](http://stackoverflow.com/q/25489002/1461424) – Krumia 2014-08-26 04:02:21