2015-05-16 37 views
-1
-- procedure-- 
CREATE OR REPLACE PROCEDURE getDBUSERByUserId(
    p_userid IN DBUSER.USER_ID%TYPE, 
    o_username OUT DBUSER.USERNAME%TYPE, 
    o_createdby OUT DBUSER.CREATED_BY%TYPE, 
    o_createddate OUT DBUSER.CREATED_DATE%TYPE) 
IS 
BEGIN 
SELECT USERNAME , CREATED_BY 
INTO o_username, o_createdby 
**FROM DBUSER WHERE USER_ID = p_userid; 
END; 

DECLARE 
o_username DBUSER.USERNAME%TYPE; 
o_createdby DBUSER.CREATED_BY%TYPE; 
o_date DBUSER.CREATED_DATE%TYPE; 

BEGIN 
GETDBUSERBYUSERID(1001,o_username,o_createdby,o_date); 
DBMS_OUTPUT.PUT_LINE('username : ' || o_username); 
DBMS_OUTPUT.PUT_LINE('createdby : ' || o_createdby); 
END; 
  • DBUSER表列:
  • USER_ID,
  • USERNAME,
  • CREATED_BY,
  • CREATED_DATE,程序在Oracle不會運行

    錯誤報告 - ORA-06550:第11行,第3列: PLS-00103:遇到符號時遇到「文件結束」 e如下:

    ; 符號「;」被替代爲「文件結束」以繼續。

    1. 00000 - 「line%s,column%s:\ n%s」 *原因:通常是PL/SQL編譯錯誤。 *動作:」

我試圖測試出一個過程,因爲我是自學如何因他們,因爲我對任何事情過去基礎學校缺少教學。我在Oracle sqldeveloper程序中運行了這段代碼,我無法弄清楚我到達文件末尾是什麼意思,因爲我安裝了1個數據成員來匹配裏面的代碼。我不想顯示它添加的日期,所以這就是爲什麼它不在聲明語句中。

+0

粘貼代碼時,請勿粘貼行號。標出您在使用評論時遇到的錯誤。 –

+0

你已經想出了第一個問題,那麼你能展示實際得到第二個問題的代碼嗎?包括最後一個'/',如果有的話,並說出你如何運行它。 –

+0

@AlexPoole剛剛做了一個重新編輯,你最後的'/'是什麼意思? – Gorilla

回答

1

如果你運行你已經顯示爲腳本的一切,你需要一個/的PL/SQL代碼的每一部獨立後:

CREATE OR REPLACE PROCEDURE getDBUSERByUserId(
    p_userid IN DBUSER.USER_ID%TYPE, 
    o_username OUT DBUSER.USERNAME%TYPE, 
    o_createdby OUT DBUSER.CREATED_BY%TYPE, 
    o_createddate OUT DBUSER.CREATED_DATE%TYPE) 
IS 
BEGIN 
SELECT USERNAME , CREATED_BY 
INTO o_username, o_createdby 
FROM DBUSER WHERE USER_ID = p_userid; 
END; 
/

DECLARE 
o_username DBUSER.USERNAME%TYPE; 
o_createdby DBUSER.CREATED_BY%TYPE; 
o_date DBUSER.CREATED_DATE%TYPE; 
BEGIN 
GETDBUSERBYUSERID(1001,o_username,o_createdby,o_date); 
DBMS_OUTPUT.PUT_LINE('username : ' || o_username); 
DBMS_OUTPUT.PUT_LINE('createdby : ' || o_createdby); 
END; 
/

This documentation如果在SQL * Plus,但主要適用於SQL Developer也是如此。

+0

是的,它在我安裝完/ /有教育系統在教學生時缺乏的東西 – Gorilla