PL/SQL ACCEPT 命令返回无效标识符?

Posted

技术标签:

【中文标题】PL/SQL ACCEPT 命令返回无效标识符?【英文标题】:PL/SQL ACCEPT command returns Invalid identifier? 【发布时间】:2017-05-10 17:09:18 【问题描述】:

当我尝试编译这个简单的代码 sn-p:

set serveroutput on 
set verify off

accept p_job prompt 'job';

declare
  v_job emp.job%type := &p_job;
begin
  for r_emp in (select ename, job from emp where job like &p_job) loop
    dbms_output.put_line('');
  end loop;
end;

我收到一条错误消息,提示 ORA00904: 'xy' invalid identifier。 (xy是我在accept中输入的文字)

可能是什么问题? 顺便说一句,Ename 和 job 在同一个表中。

【问题讨论】:

【参考方案1】:

将替换变量放在单引号中:

declare
  v_job emp.job%type := '&p_job';
begin
  for r_emp in (select ename, job from emp where job like '&p_job') loop
    dbms_output.put_line('');
  end loop;
end;

【讨论】:

以上是关于PL/SQL ACCEPT 命令返回无效标识符?的主要内容,如果未能解决你的问题,请参考以下文章

错误:PL/SQL:ORA-00904::标识符无效

ORA-00904 PL/SQL 中的标识符无效

PL/SQL JAVA ORACLE 错误 ORA-00904: 标识符无效

过程(PL/SQL 包)中的“ORA-01001 无效游标”

基本 Oracle 触发器审计表

Oracle PL SQL 中的 ACCEPT 语句