使用 clob 作为构造函数的参数的问题
Problems using clob as a parameter to a constructor
我有以下 PL/SQL 代码:
create type testingclob as object (
member_value number,
constructor function testingclob(
i_aclob clob
) return self as result
);
/
create type body testingclob as
constructor function testingclob(
i_aclob clob
) return self as result
is
begin
member_value := 0;
return;
end;
end;
/
declare
l_test testingclob;
begin
l_test := new testingclob('some text');
end;
但我收到错误
ORA-06550: line 5, column 18:
PLS-00307: too many declarations of 'TESTINGCLOB' match this call
ORA-06550: line 5, column 4:
类型的编译工作正常。但是看来我不能使用构造函数。有人知道我做错了什么吗?
参数 'some text'
应声明为 clob。
declare
l_param clob;
l_test testingclob;
begin
l_param:= 'some text';
l_test := new testingclob(l_param);
end;
默认情况下,系统提供一个默认构造函数,它接受与每个属性对应的参数,请参阅https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/10_objs.htm#i16312 章节'defining object constructors'。因此无法确定构造函数,因为其中 none 命中输入参数 varchar2.
尝试
begin
l_test := new testingclob(1);
end;
这是您的默认构造函数。
我有以下 PL/SQL 代码:
create type testingclob as object (
member_value number,
constructor function testingclob(
i_aclob clob
) return self as result
);
/
create type body testingclob as
constructor function testingclob(
i_aclob clob
) return self as result
is
begin
member_value := 0;
return;
end;
end;
/
declare
l_test testingclob;
begin
l_test := new testingclob('some text');
end;
但我收到错误
ORA-06550: line 5, column 18:
PLS-00307: too many declarations of 'TESTINGCLOB' match this call
ORA-06550: line 5, column 4:
类型的编译工作正常。但是看来我不能使用构造函数。有人知道我做错了什么吗?
参数 'some text'
应声明为 clob。
declare
l_param clob;
l_test testingclob;
begin
l_param:= 'some text';
l_test := new testingclob(l_param);
end;
默认情况下,系统提供一个默认构造函数,它接受与每个属性对应的参数,请参阅https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/10_objs.htm#i16312 章节'defining object constructors'。因此无法确定构造函数,因为其中 none 命中输入参数 varchar2.
尝试
begin
l_test := new testingclob(1);
end;
这是您的默认构造函数。