2017-09-04 36 views
0

我嘗試實現這個代碼,我得到一個錯誤,所有變量或不綁定。對我來說什麼是最好的解決方案。 我想實現這個代碼來聲明塊外面的變量並將它們調用到程序中。我得到一個錯誤,說所有變量不能綁定

variable b_salary employees.salary%type; 

declare 
    v_name employees.last_name%type; 
    v_salary employees.salary%type; 
BEGIN  

    select last_name,salary 
    into v_name, :b_salary 
    from employees 
    where phone_number = '9856849658'; 

    dbms_output.put_line ('EMP ' || V_name || ' earns ' || V_salary || ' monthly '); 
    dbms_output.put_line ('Hello Word') ; 
END; 
+1

刪除冒號':b_salary' – I3rutt

+0

爲什麼要定義b_salary和v_salary?聽起來就像你只需要v_salary ... – Boneist

+0

請** [編輯] **您的問題,並添加您得到的**精確**錯誤消息。 ** [**]您的問題 - 請勿**在論壇中發佈代碼或其他信息。 –

回答

1

本聲明未在SQL-PLUS允許:

variable b_salary employees.salary%type; 

此外,如果您運行在SQL-Plus或SQL-Develoer這條線,你會得到與使用說明下面的錯誤消息,我不知道爲什麼你沒有注意到它:

Usage: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) | 
    VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) | 
    NVARCHAR2 (n) | CLOB | NCLOB | BLOB | BFILE 
    REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE ] ] 

只能使用精確的類型名稱,一個從上面的消息,employees.salary%type這裏不允許使用。

相關問題