2012-11-04 24 views
1

我試圖創建一個簡單的PL/SQL函數,但它的返回錯誤 - > PLS-00103:遇到符號「IS」。我不確定這裏有什麼不對,所以有人請幫助。我跟着下面的步驟 -PL/SQL函數錯誤 - PLS-00103:遇到符號「IS」

Step1 - sysdba身份登錄使用 - sqlplus/as sysdba

Step2 - 創建一個文件名test.sql與下面的代碼C:\下 -

CREATE OR REPLACE FUNCTION employer_details_func 
RETURN VARCHAR(20); 
IS 
    emp_name VARCHAR(20); 
BEGIN 
SELECT first_name INTO emp_name 
FROM emp_tbl WHERE empID = '100'; 
RETURN emp_name; 
END; 
/

Step3 - 運行以下命令 -

SQL>@C:\test.sql 
Warning: Function created with compilation errors. 
SQL> show error function Func; 
Errors for FUNCTION FUNC: 
LINE/COL ERROR 
5/1  PLS-00103: Encountered the symbol "IS" 
SQL> 

不知道我爲什麼會得到這個奇怪的錯誤。任何幫助,高度讚賞。

+1

當你登錄AS SYSDBA您連接到SYS帳戶。請請不要這樣做。 SYS是一個非常強大的帳戶,因爲它擁有數據字典。因此,如果我們不瞭解我們正在做什麼,就很容易破壞作爲SYS的數據庫。沒有冒犯,但你的問題的中期(一個微不足道的語法錯誤)表明這是你的情況。使用SYS創建應用程序用戶,然後使用它創建模式對象。 – APC

回答

1

創建功能如下,並嘗試

CREATE OR REPLACE FUNCTION employer_details_func 
    RETURN VARCHAR2 
IS 
    emp_name VARCHAR2 (20); 
BEGIN 
    SELECT first_name 
     INTO emp_name 
     FROM emp_tbl 
    WHERE empID = '100'; 

    RETURN emp_name; 
END; 
/
+0

仍然是一樣的錯誤:( - 5/1 PLS-00103:遇到符號「IS」 – anujin

+1

你可以嘗試從sql plus執行你的函數作爲'select employer_details_func from dual;' – user75ponic

+0

Polppan - +1爲你:) - With上面的陳述中,我能夠看到輸出 - 'SQL>從dual中選擇employer_details_func; EMPLOYER_DETAILS_FUNC ---------------------- sita' 所有功能都存儲在雙重? 不知道爲什麼編譯期間奇怪的警告? – anujin

相關問題