[英]Getting error in PL/SQL program which alerts “missing or invalid option”
create or replace PROCEDURE PROC_OPE AS
FILE_PATH VARCHAR2(150) := 'd:\OPENTOW_'||trunc(sysdate)||'.csv';
QUERY_STRING VARCHAR2(100) := 'SPOOL'||FILE_PATH;
STATUS VARCHAR2(50) := 'Withdrawn';
DATEFORMAT VARCHAR2(50) := 'dd/mm/yyyy hh24:mi:ss';
TIMEFORMAT VARCHAR2(50) := 'hh24:mi:ss';
YES_FLAG VARCHAR(3) := 'Yes';
NO_FLAG VARCHAR(3) := 'No';
BLANK_SPACE VARCHAR2(1) := ' ';
BEGIN
execute immediate 'SET ECHO OFF';
execute immediate 'SET FEEDBACK OFF';
execute immediate QUERY_STRING;
I am getting this error 我收到此错误
Error Message:` ORA-00922: missing or invalid option ORA-06512: at "WS", line 12 ORA-06512: at line 2 Process exited.
错误消息:ORA-00922:缺少或无效的选项ORA-06512:在“ WS”的第12行ORA-06512:在第2行进程已退出。
Can anyone please help me? 谁能帮帮我吗?
SPOOL, SET ECHO OFF, SET FEEDBACK OFF - they are all SQL-Plus commands, not SQL commands. SPOOL,SET ECHO OFF,SET FEEDBACK OFF-它们都是SQL-Plus命令,而不是SQL命令。
If you try to run any of them using EXECUTE IMMEDIATE, you will get this error, for example: 如果尝试使用EXECUTE IMMEDIATE运行它们中的任何一个,则会出现此错误,例如:
BEGIN
execute immediate 'SET ECHO OFF';
END;
/
Error starting at line : 1 in command -
BEGIN
execute immediate 'SET ECHO OFF';
END;
Error report -
ORA-00922: brakująca lub niepoprawna opcja
ORA-06512: przy linia 2
00922. 00000 - "missing or invalid option"
Sql-Plus is a client utility. Sql-Plus是一个客户端实用程序。
SQL is a structured query language SQL是一种结构化查询语言
EXECUTE IMMEDIATE accepts ony SQL commands , you cannot run SQL-Plus in EXECUTE IMMEDIATE, they are ony available in SQL-PLus, or (some of them) is SQL-Developer, but not in other clients like JDBC, ODBC. EXECUTE IMMEDIATE只能接受SQL命令 ,您不能在EXECUTE IMMEDIATE中运行SQL-Plus,它们仅在SQL-PLus中可用,或者(其中一些)是SQL-Developer,但在其他客户端(如JDBC,ODBC)中不可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.