Oracle Procedure error (PLS-00428)

Jon P picture Jon P · Jan 24, 2013 · Viewed 17.1k times · Source

This is the error message: PLS-00428: an INTO clause is expected in this SELECT statement. Meanwhile, this is the procedure for testing displaying the system date:

CREATE OR REPLACE 
PROCEDURE "TEST_PROCEDURE"
AS
BEGIN
    SELECT SYSDATE FROM DUAL;
END;

In the first place I don't need to use that INTO Oracle is insisting for me to do. Is there other way around beside using a cursor (I've seen it here https://stackoverflow.com/a/6029963/1983024)? I think it should not be like that, this does run normally just like in MS SQL without using INTO or cursor.

Answer

Jeffrey Kemp picture Jeffrey Kemp · Jan 24, 2013

In the first place I don't need to use that INTO Oracle is insisting for me to do.

The fact is, Oracle is correct: you do need to use an INTO to take the return value.

After all, if you want to display the result of the query you're going to need a variable to put it in first.