sql - 甲骨文基本问题

标签 sql oracle stored-procedures plsql ora-00904

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

CREATE OR REPLACE PROCEDURE PROCEDURE1 
AS
BEGIN

  SELECT FIRSTNAME,
         LASTNAME
    INTO FirstName,LastName
    FROM EMPLOYEE;

END PROCEDURE1;

我收到以下错误:

PL/SQL Statement Ignored Identifier FIRSTNAME must be declared ORA-00904 Invalid identifier

最佳答案

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

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;

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

关于sql - 甲骨文基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4337910/

相关文章:

mysql - 如何将参数作为输入发送到mysql程序中?

c# - 使用来自 Oracle 存储过程的 refcursor 值填充 C# 数据表

sql - 将行与列值进行比较

c# - 在多个 SQL 表中搜索数据

php - 如何让 <textarea> 仅将撇号识别为文本?

sql - 在 Oracle 中更改表时捕获异常

java - 了解 Hibernate 的条件#setMaxResults

java - 在终端中使用 JDBC 将 Java 连接到 Oracle 数据库

sql - 查找存储过程的哪些参数可为空(可选)

mysql - 在 SQL 中使用 CASE THEN