我的代码中有一个用户定义的类型,phrase_context_typ
. 我调用一个function
, phrase_context
,它返回一个phrase_context_typ
.
用户定义类型定义如下:
CREATE OR REPLACE type phrase_context_typ AS OBJECT (
context VARCHAR2(13),
parent_id NUMBER(10)
)
我有一个VIEW
包含CONTEXT
和PARENT_ID
列。我想根据实例VIEW
中存在的值从中进行选择。phrase_context_typ
我可以通过以下方式做到这一点:
select distinct(col)
from my_view v
where v.parent_id = PHRASE_CONTEXT(?, ?, ?, ?, ?).parent_id
and
v.context = PHRASE_CONTEXT(?, ?, ?, ?, ?).context
这可行,但是否可以只调用一次phrase_context
function
? 我只想调用function
一次,不仅是为了优雅,还因为在select
调用n次function
时会影响效率。
我想我要问的是,如果可以在 Oracle SQL 中实现以下功能,即有效地将用户定义的类型实例扁平化为一行:
select PHRASE_CONTEXT(?, ?, ?, ?, ?).* from dual;
非常感谢您的帮助。