基本的Oracle问题

kay*_*yak 3 sql oracle plsql stored-procedures ora-00904

我是oracle的新手.当我使用以下方法创建存储过程时:

CREATE OR REPLACE PROCEDURE PROCEDURE1 
AS
BEGIN

  SELECT FIRSTNAME,
         LASTNAME
    INTO FirstName,LastName
    FROM EMPLOYEE;

END PROCEDURE1;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

PL/SQL语句忽略标识符必须声明FIRSTNAME ORA-00904标识符无效

OMG*_*ies 7

您需要在尝试填充变量之前声明变量:

CREATE OR REPLACE PROCEDURE PROCEDURE1 
AS

 FirstName EMPLOYEE.FIRSTNAME%TYPE;
 LastName EMPLOYEE.LASTNAME%TYPE;

BEGIN

  SELECT FIRSTNAME,
         LASTNAME
    INTO FirstName,LastName
    FROM EMPLOYEE;

END PROCEDURE1;
Run Code Online (Sandbox Code Playgroud)

%TYPE表示法是与列数据类型匹配的数据类型声明的简写.如果该数据类型发生更改,则无需更新该过程.

  • 不要将变量命名为与列相同,这也是一个好主意. (2认同)