创建函数时无效的对象类型

时间:2015-07-03 14:26:47

标签: plsql

我对PL / SQL很陌生,无法理解错误。

我创建新类型

create or replace TYPE "hmdtype" is object(entity_id number, tipe varchar2(200), oper_id number, message varchar2(200))

编译它,没关系。

然后我尝试创建返回此类型的函数:

    create or replace FUNCTION HDM RETURN HMDTYPE AS 
BEGIN
  RETURN NULL;
END HDM;

尝试编译。错误是错误(1,21):PLS-00905:对象U216_DM2_6350.HMDTYPE无效

提前致谢

2 个答案:

答案 0 :(得分:0)

如果您定义一个被“”包围的对象名称,则它区分大小写。 默认情况下(不带“”)名称将转换为大写。

尝试create or replace FUNCTION HDM RETURN "hmdtype" AS

或在没有“”的情况下重新定义您的类型

 create or replace TYPE hmdtype is object(entity_id number, tipe varchar2(200), oper_id number, message varchar2(200))

并且您的代码应该正常工作

答案 1 :(得分:0)

Hello you can use the exact name as you have compiled as "" means exact name whatever you have given during compilation. Below code you can check it works

CREATE OR REPLACE TYPE "test_object" IS OBJECT
(
F_NM VARCHAR2(100),
L_NM VARCHAR2(100)
);

CREATE OR REPLACE FUNCTION test_function RETURN
"test_object"
AS
BEGIN
NULL;
END;