【发布时间】:2018-07-17 21:09:07
【问题描述】:
在 SQL Server 中,可以执行 SSMS 中的多个语句。在 Oracle(使用 toad)中,我不知道为什么在做同样的事情时会收到某些错误。例如,我假设 Oracle 要求将它们放在一个块中,但我仍然得到以下信息:
DECLARE
v_datetime TIMESTAMP := SYSDATE;
BEGIN
insert into sometable_log values (v_datetime, 'this is a test ',1);
select * from sometable_log where event_dt = v_datetime;
END;
产生:
[错误] 执行 (5:1): ORA-06550: 第 4 行第 1 列: PLS-00428: an 此 SELECT 语句中应包含 INTO 子句
为什么需要使用 into 子句?有人可以帮我理解这是什么吗?
谢谢!
【问题讨论】:
-
在 PL/SQL 中,您需要一个
into子句,以便您可以捕获值以进行进一步处理。如果您想从 PL/SQL 块向调用者隐式返回 ref 游标,请参阅 stackoverflow.com/a/40360471/230471 -
如果您只想在 Toad 中一个接一个地运行两个命令,而不是在 PL/SQL 中编写任何代码,请查阅 Toad 文档(我不使用它)。
-
您似乎并不真的想要一个 PL/SQL 块。说出运行普通 SQL 语句时遇到的错误可能会更有用Maybe this?
标签: oracle