执行查询时ORACLE中的错误

时间:2015-01-05 10:12:51

标签: oracle plsql oracle11g

我正在尝试执行以下查询并尝试在变量中获取输出。

DECLARE LATESTID INT
SELECT LATESTID := ID FROM Cust_RectifiedDetails WHERE CustNo = UNIFIEDCUSTOMERNO
ORDER BY ID DESC

但在执行时我收到以下错误:

ORA-24344: success with compilation error
PLS-00103: Encountered the symbol "LATESTID" when expecting one of the following:

   := . ( @ % ; not null range default character

请指导我 此致

2 个答案:

答案 0 :(得分:2)

DECLARE部分后,您需要BEGIN

此外,INT之后的分号丢失。

您无法使用:=在select语句中指定值。请改用select into

最后,当您order by时,select into毫无意义。您可能想要抓住too_many_values。或者,您可能想尝试max()或其任何衍生产品。

declare
  latestid int;

begin

  select id into latestid
   from  cust_rectifieddetails
   where custno = unifiedcustomerno;

exception when to_many_values then
-- Do what you need to do.
   raise;

end;

答案 1 :(得分:1)

使用SELECT INTO完成 试试这个:

BEGIN
   SELECT ID INTO LATESTID  FROM Cust_RectifiedDetails WHERE CustNo = UNIFIEDCUSTOMERNO
END;

别忘了BEGIN和END; INT后面的子句和分号