我正在使用SQL * Plus。当我使用以下查询时,它给出了错误
Error report:
ORA-06550: line 4, column 1:
PLS-00428: an INTO clause is expected in this SELECT statement
查询
declare
id varchar2(80) :='test123';
begin
select test_quote,test_id from order_link where id = 'test123';
end;
答案 0 :(得分:13)
不确定为什么要使用PL / SQL块。您没有使用您声明的id
,最好给它一个与列名称不同的名称以避免混淆。
您可以在SQL * Plus中声明绑定变量,然后选择:
var l_test_quote varchar2(80); -- or whatever type/size you need
var l_test_id varchar2(80);
declare
l_id varchar2(80) :='test123';
begin
select test_quote, test_id
into :l_test_quote, :l_test_id
from order_link
where id = l_id;
end;
/
print l_test_quote
print l_test_id
在引用块外部定义的变量之前注意:
,表明它们是绑定变量。 l_id
在块内声明,因此它没有前面的:
。
在这种情况下,您还可以在块外部定义l_id
,并在仍然使用绑定变量时避免使用PL / SQL:
var l_id varchar2(80);
exec :l_id := 'test123';
select test_quote, test_id
from order_link
where id = :l_id;
因为主查询不再是PL / SQL(虽然exec
是;这只是单行匿名块的简写),你不需要select ... into
所以你不需要声明那些变量。
答案 1 :(得分:0)
试试这个:
declare
id varchar2(80) :='test123';
v_test_quote order_link.test_quote%type;
v_test_id order_link.test_id%type;
begin
select test_quote,test_id
into v_test_qoute, v_test_id
from order_link
where id = 'test123';
end;