说明:数据库版本是 Oracle 10g express edition, 下面命令都在 Oracle 数据库主页中的 SQL 命令中执行、测试的。
在 Oracle 的 SQL 命令中执行如下 SQL 语句:
sql
ORA-00933: SQL 命令未正确结束
查阅了帮主文档,里面有这样一段说明:
About Command Termination
You can terminate a command in SQL Commands using a semicolon (;), a forward slash (/), or with nothing. Consider the following valid alternatives:
SELECT * from emp;
SELECT * from emp /
SELECT * from emp
The first example demonstrates the use of a semicolon (;), the second example demonstrates the use of forward slash (/), and the final example demonstrates a command with no termination.
根据这里的说明,上面的代码却是看不出来有什么问题!
在 CSDN 上某帖子看到有位兄弟的回答是这样的:
sql
用这种方法执行,成功插入。
提示信息是:已处理语句。
原来插入一行的提示信息是:已插入 1 行。
然后我查阅了文档,看到关于 SQL command 的一点说明:
A SQL command can contain SQL statements or PL/SQL blocks.
所以问题应该是这样的:
单条插入语句是一个 SQL statement, 直接执行即可;
但如果多条插入语句一起执行就属于一个 PL/SQL block, 所以需要以执行一个 PL/SQL block 的方式去运行,PL/SQL block 结构是:
delcare
varlist
begin
dosomething
end;