使用Toad执行SQL遇ORA-00922错误,求原因及解决方法
ORA-00922: missing or invalid option 错误原因与解决方法
问题重现
在Toad中执行以下SQL代码时,报错指向SET serveroutput ON;语句:
[Error] Execution (1: 5): ORA-00922: missing or invalid option in toad
执行的代码:
set serveroutput on; CREATE TABLE customers ( customer_id number(10) NOT NULL, customer_name varchar2(50) NOT NULL, city varchar2(50) ); DROP TABLE customers; /
错误原因
SET serveroutput ON是SQL*Plus专属命令:它不属于标准Oracle SQL语法,Toad的普通SQL编辑器窗口会将其当作SQL语句解析,无法识别该命令,从而触发ORA-00922错误。- 末尾的
/也是SQL*Plus命令:这个符号在SQL*Plus中用于执行当前缓冲区的代码,但在Toad普通SQL窗口中不被识别,属于多余的无效语法。
解决方法
方法一:使用Toad的SQL*Plus窗口执行
打开Toad的SQL*Plus Editor(可通过菜单栏或工具栏找到入口),将代码粘贴进去执行即可——SQL*Plus窗口完全支持这类专属命令。
方法二:调整代码适配普通SQL窗口
如果习惯使用普通SQL窗口执行,只需修改代码:
CREATE TABLE customers ( customer_id number(10) NOT NULL, customer_name varchar2(50) NOT NULL, city varchar2(50) ); DROP TABLE customers;
- 去掉
SET serveroutput ON;:若需要开启服务器输出,可在Toad设置中配置(路径:View → Toad Options → Execute → Oracle,勾选Enable serveroutput并设置缓冲区大小)。 - 去掉末尾的
/:普通SQL窗口会按分号自动分隔并执行每条语句。
内容的提问来源于stack exchange,提问作者noobprogrammer1987
相关产品推荐
相关产品推荐

