close
非常簡單的一個PROCEDURE,COMPILER 也OK,但是一執行就會有
錯誤 ORA-00903: invalid table name
TABLE真的存在,為何說INVALID呢?
CREATE OR REPLACE PROCEDURE TEST2 IS sql_stmt VARCHAR2 (4000); tablen varchar2(10); BEGIN tablen := 'test1'; sql_stmt := 'TRUNCATE TABLE :1'; EXECUTE IMMEDIATE sql_stmt USING tablen ; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END;
原因就是tablename 不能當作參數來使用,
改成下面的做法就OK了
CREATE OR REPLACE PROCEDURE TEST2 IS sql_stmt VARCHAR2 (4000); tablen varchar2(10); BEGIN tablen := 'test1'; sql_stmt := 'TRUNCATE TABLE ' || tablen; EXECUTE IMMEDIATE sql_stmt; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END;
FUNCTION 裡應該也是相同適用
文章標籤
全站熱搜
留言列表