【发布时间】:2019-03-08 10:58:27
【问题描述】:
我有这个程序:
create or replace
PROCEDURE P_P2
IS
v_str varchar2(1000);
v_file_name varchar2(1000);
BEGIN
P_P1(v_str, 'EXPORT_CSV',v_file_name);
v_str := 'select * from H----)';
v_file_name := 'H_'||to_char(sysdate,'DD-MM-YYYY')||'.csv';
END;
我在执行时收到错误“ORA-06561:给定语句不受包 DBMS_SQL 支持”:
Error starting at line : 165 in command -
exec P_P1
Error report -
ORA-06561: given statement is not supported by package DBMS_SQL
ORA-06512: at "SYS.DBMS_SQL", line 1120
ORA-06512: at "BIDB.P_P1", line 40
ORA-06512: at "BIDB.P_P2", line 7
ORA-06512: at line 1
06561. 00000 - "given statement is not supported by package DBMS_SQL"
*Cause: Attempting to parse an unsupported statement using procedure
PARSE provided by package DBMS_SQL.
*Action: Only statements which begin with SELECT, DELETE, INSERT, UPDATE,
LOCK, BEGIN, DECLARE or << (PL/SQL label delimiter) are supported.
我不明白为什么。我做错了什么?
【问题讨论】:
-
错误来自在“BIDB.P_P1”第 40 行进行的调用,而您没有向我们展示该过程。您似乎还直接执行
P_P1,而不是通过P_P2,这有点令人困惑,因为这似乎不是错误的意思。
标签: oracle stored-procedures plsql dynamic-sql