3
我想創建一個函數(Oracle 11g),它將返回多個值,但不必創建新的TYPE。最終目標比我提供的示例複雜得多,但除了獲取值返回之外,我幾乎可以做其他任何事情。ORACLE從函數返回而不創建新類型
這是我遇到麻煩的極簡化版本。
例如下表給出的(員工):
emplid | emplname | emplchildren
478 |SAM |"GEORGE,RON"
479 |JOSE |"RICHARD,JANE,RACHEL"
480 |PAM |"JORDAN"
我想下面的語句select CHILD_FN from employees
返回:
GEORGE
RON
RIRCHARD
JANE
RACHEL
JORDAN
這被簡化,以顯示我在遇到麻煩的部分與 這裏是一個示例代碼:
create or replace function CHILD_FN RETURN employee.emplname%TYPE IS
chldnames employee.emplname%TYPE;
CURSOR child_cur
IS
Select emplchildren FROM employees;
begin
/*do complicated parsing to separate each delimited
value of child_cur and assign
it to a new row in the names_col variable/
/*how do I add values to the names_col variable? I've tried
'chldnames.extend',
various types of 'bulk collect into chldnames'
and they all give various errors*/
return chldnames;
end LOCAL_TEST_FN;
是否需要更改我的返回類型,還是未正確聲明?
我並不完全反對在數據庫中創建一個新類型,它只是我們已經非常遠,沒有創建一個新類型,並且我可以做得越簡單越好。如果有解決辦法,我寧願學習這種方式,並決定哪個更好。
讓我知道我是否需要提供更多信息。