Plsql PLS-00103:遇到符号“&&引用;应为以下情况之一时:(+;案例模式新建不为空

Plsql PLS-00103:遇到符号“&&引用;应为以下情况之一时:(+;案例模式新建不为空,plsql,Plsql,SQL*Plus命名参数可以在PL/SQL中使用。我想您还没有给我们发送真正的代码 declare v_empno empdab.eno%type:=&n; v_empdab empdab%rowtype; begin select eno, ename,doj,position,salary,comm,address into v_empdab from empdab where eno=v_empno; dbms_output.put_li

SQL*Plus命名参数可以在PL/SQL中使用。我想您还没有给我们发送真正的代码

declare
    v_empno empdab.eno%type:=&n;
    v_empdab empdab%rowtype;
    begin
    select eno, ename,doj,position,salary,comm,address into v_empdab from empdab where eno=v_empno;
      dbms_output.put_line(v_empdab.eno||v_empdab.ename||v_empdab.doj||v_empdab.position||v_empdab.salary||v_empdab.comm||v_empdab.address);
end ;

Script start cc.sql
accept n prompt 'Enter value for n :'

set serveroutput on

declare
   v_v test.v%type := &n;
   r_v test%rowtype;

begin
   dbms_output.put_line(v_v);
   select v into v_v from test where rownum = 1;
   dbms_output.put_line(v_v);
   dbms_output.put_line(&n);

end;
/
End Script cc.sql

我没有发现这部分代码有任何问题,您确定这是完整的代码还是某些过程中的部分代码“&”与SQLPlus中的命名参数一起使用。但是,这里有一个PL/SQL块。我不相信您可以在PL/SQL块中使用SQLPlus命名参数,因为PL/SQL根本不理解它们。您需要这样做还有别的方法-也许把它变成一个可调用的过程?
SQL> @cc
Enter value for n :'abc'
old   2:    v_v test.v%type := &n;
new   2:    v_v test.v%type := 'abc';
old   9:    dbms_output.put_line(&n);
new   9:    dbms_output.put_line('abc');
abc
a
abc

PL/SQL procedure successfully completed.

SQL>