2014-02-28 40 views
0

我有一個表(客戶),並具有C_ID,FNAME,LNAME,年齡PL SQL錯誤PLS-00103

表中填入下列值的屬性

1|Ann|Smiths|23 
2|Chris|Gates|21 
3|Janes|Jobs|24 

我很新的PL/SQL和我寫了一個簡單的SELECT語句

DECLEAR 
    name varchar2(50); 
BEGIN 
    SELECT fname into name 
    FROM customer 
    WHERE fname= 'Ann'; 
END; 

當我從文本文件(的doSelect)在sqlplus中使用以下命令

執行腳本我
EXECUTE doselect 

但是它給了我下面的錯誤

ERROR at line 1: 
ORA-06550: line 1, column 8: 
PLS-00103: Encountered the symbol ":" when expecting one of the following: 
:= . (@ % ; 

請幫助。

+0

你的PLSQL腳本中有一個錯字 - 它應該是DECLARE而不是DECLEAR。 –

+0

仍然有相同的錯誤,儘管將其更改爲DECLARE – user3213758

回答

1

除了錯字(DECLEAR而不是DECLARE),你的腳本看起來很好。從SQL獲取輸出/另外,我也想補充一個DBMS_OUTPUT聲明:

DECLARE 
    name varchar2(50); 
BEGIN 
    SELECT fname into name 
    FROM customer 
    WHERE fname= 'Ann'; 
    -- print it 
    dbms_output.put_line(name); 
END; 

然而,執行從SQL /加一個文件,不要使用EXECUTE命令 - 而使用@

SQL> set serveroutput on 
SQL> @doselect 
10/
Ann 

SQL/Plus對新用戶不太友好 - 您可能想要使用另一個客戶端來開始(例如Oracle SQL/Developer - 它是免費的,並帶有一個很好的GUI)。

+0

感謝您的幫助 – user3213758

+0

@ user3213758不客氣。還有一個提示:我會拋棄「年齡」列,並添加一個date_of_birth列 - 年齡往往會隨着年齡的增長而改變。 –

+0

好的注意謝謝 – user3213758

0
DECLARE 
    name VARCHAR2 (50); 
BEGIN 
    SELECT FNAME 
    INTO name 
    FROM customer 
    WHERE FNAME = 'Ann'; 
EXCEPTION 
    WHEN OTHERS 
    THEN 
     DBMS_OUTPUT.put_line ('ERROR ' || SQLERRM); 
END; 
/

你的錯誤是在DECLEAR - > DECLARE中,你必須用/關閉你的腳本。

您應該總是插入一個塊來進行異常處理。