2015-07-03 37 views
1

我在甲骨文初學者,我宣佈這個對象類型:如何在存儲過程中使用oracle對象類型?

create or replace 
TYPE behzadtype AS OBJECT 
(/* TODO enter attribute and method declarations here */ 
    SESSIONID Number 

) 

,我想在我的存儲過程,對象使用:

CREATE OR REPLACE PROCEDURE PROCEDURE1 AS 
    behzadtype t1; 
BEGIN 
    t1.SESSIONID:=12; 
    DBMS_OUTPUT.PUT_LINE('THE VALUES OF P_K ARE' || t1.SESSIONID); 

END PROCEDURE1; 

但是當編譯後續程序我得到這個錯誤:

Error(2,14): PLS-00201: identifier 'T1' must be declared

我該如何編寫正確的程序?感謝所有。

+0

@ davegreen100感謝關注我的問題,U可以寫信給我正確的程序給我嗎? –

回答

3

當您在PL/SQL中聲明變量時,首先聲明變量的名稱,後跟其數據類型。

在你的例子中,你已經聲明瞭一個behzadtype變量作爲t1類型的變量,然後試圖在你的代碼體中使用一個名爲t1的變量。它看起來像你想聲明一個變量t1爲behzadtype類型。

除此之外,您不能像這樣爲對象賦值 - 您必須首先將它初始化爲對象。

我想你以後就是:

create or replace type behzadtype as object 
(sessionid number); 
/

create or replace procedure procedure1 as 
    t1 behzadtype; 
begin 
    t1 := behzadtype(12); 
    dbms_output.put_line('THE VALUES OF P_K ARE' || t1.sessionid); 
end procedure1; 
/

begin 
    procedure1; 
end; 
/

THE VALUES OF P_K ARE12 

drop type behzadtype; 

drop procedure procedure1; 
+0

感謝您的幫助。 –