2017-03-07 52 views
-2

error screenshot我想在蟾蜍中執行下面的程序。程序錯誤'&'

create or replace procedure tst_excp as 
    var_sal number; 
    var_empid number; 
    var_excp exception; 
begin 
    select sal into var_sal from emp 
    where empno = &var_empid; 

    if var_sal < 4500 then 
     raise var_excp; 
    end if; 
exception 
    when var_excp then 
     dbms_output.put_line ('The salary is low'); 
end; 

,我在線路收到錯誤:where empno = &var_empid;

錯誤信息是:

PL/SQL: ORA-00936: missing expression 

我打算在執行它的值傳遞給該變量。

回答

1

&是sqlplus(和TOAD,SQL Developer和PL/SQL Developer)運行時變量的一部分。它會提示你執行(在你編譯過程的情況下)輸入代碼中的替換。

如果希望得到該程序的輸入,所以它會被添加到在每次運行where子句中,你需要接受它作爲一個輸入變量:

create or replace procedure tst_excp (var_empid in number) as -- << changed here 
var_sal number; 
var_empid number; 
var_excp exception; 
begin 
    select sal into var_sal from emp 
    where empno = var_empid; -- << changed here too 

     if var_sal < 4500 then 
     raise var_excp; 
    end if; 
    exception 
    when var_excp then 
    dbms_output.put_line ('The salary is low'); 
end; 
+0

非常感謝您瑣。它爲我工作:-)我不得不評論var_empid(第3行),因爲它現在是一個重複的條目。 – aks