1
我的代碼中有用戶定義的類型,phrase_context_typ
。我打電話給function
,phrase_context
,它返回phrase_context_typ
的一個實例。從Oracle SQL中的用戶定義類型中選擇所有值
用戶定義的類型定義如下:
CREATE OR REPLACE type phrase_context_typ AS OBJECT (
context VARCHAR2(13),
parent_id NUMBER(10)
)
我有一個VIEW
含有CONTEXT
和PARENT_ID
列。我想根據phrase_context_typ
實例中的值選擇此VIEW
。
我能做到這一點通過以下方式:
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
一次不僅是爲了優雅,而且還因爲在function
中有更多的select
語句,因此通過調用n次來降低效率。
我想我要問的是,如果像下面這樣可以用Oracle SQL實現,即有效地扁平化用戶定義類型實例到行:
select PHRASE_CONTEXT(?, ?, ?, ?, ?).* from dual;
你的幫助非常感謝。
感謝託尼,大加讚賞。 – jabclab