sql之Oracle SQL,是否可以在嵌套选择中使用用户定义的数据类型属性

davidwang456 阅读:20 2025-01-19 22:14:33 评论:0

我有一个 PL/SQL 函数,它返回一个具有属性 start_date 的数据类型:

create or replace FUNCTION RETURN_OBJ 
RETURN my_obj 
IS 
  obj my_obj; 
BEGIN 
   obj := my_obj(SYSDATE); 
   RETURN obj; 
END; 
 
create or replace TYPE my_obj 
AS OBJECT ( 
start_date DATE 
); 

我可以在简单的 SELECT 语句中使用该属性,例如

select RETURN_OBJ().start_date FROM DUAL 

但是,当我尝试使用虚拟表时(例如,为了避免多个函数调用),我收到一个错误:

select obj.start_date from (select RETURN_OBJ() AS obj FROM DUAL) 
ORA-00904: "OBJ"."START_DATE": invalid identifier 

我是不是使用了错误的语法,或者这是不可能的? (顺便说一句,尽管客户仍在使用 9,但我正在使用 Oracle 11)

非常感谢。

请您参考如下方法:

括号:-)

select (obj).start_date from (select RETURN_OBJ() AS obj FROM DUAL) 


标签:oracle
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号