我是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;
但是在编译程序时我收到此错误:
错误(2,14):PLS-00201:必须声明标识符'T1'
如何编写正确的程序?谢谢大家。
答案 0 :(得分: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;