2017-05-10 5 views
0

私はこの単純なコードスニペットコンパイルしようとすると:XY「」に無効な識別子:PL/SQL ACCEPTコマンドは無効な識別子を返しますか?

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は私が受け入れに入力したテキストです)

何が問題なのですか? 途中で問題がある場合、エナメとジョブは同じテーブルにあります。

答えて

3

単一引用符で置換変数を入れて:

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;