oracle自定義函數(shù) oracle儲存function如何返回多個值?
oracle儲存function如何返回多個值?函數(shù)非常簡單,但有時使用函數(shù)查詢值可能會有多個結(jié)果。那么這個函數(shù)如何顯示所有這些結(jié)果呢?句子如下:create or replace function
oracle儲存function如何返回多個值?
函數(shù)非常簡單,但有時使用函數(shù)查詢值可能會有多個結(jié)果。
那么這個函數(shù)如何顯示所有這些結(jié)果呢?
句子如下:
create or replace function testFNuuuth1--working hours 1
(Punum VARCHAR2,
Pudate DATE)
RETURN DATE is
INPUNCH1 DATE
BEGIN
從VPTIMESHEETITMV42中選擇STARTDTM進入INPUNCH1
其中PERSONNUM=Punum
EVENTDATE通常來說,存儲過程和存儲函數(shù)的區(qū)別在于存儲函數(shù)可以有返回值,而存儲過程沒有返回值。
2. 過程和函數(shù)都可以指定一個或多個輸出行。我們可以使用out參數(shù)在過程和函數(shù)中返回多個值。
3. 存儲過程和存儲函數(shù)都可以有out參數(shù)。
4. 存儲過程和存儲函數(shù)都可以有多個out參數(shù)。
5. 存儲過程可以通過out參數(shù)返回值。
6. 如果只有一個返回值,則使用存儲函數(shù);否則,使用存儲過程。
2. 示例
--out參數(shù):查詢員工的姓名、工資和職位
/*
思考
1。查詢員工的所有信息-->>參數(shù)過多?
2. 查詢部門內(nèi)所有員工的所有信息——是否返回設置的入>;出?
*/
創(chuàng)建或替換過程查詢信息(ENO-in-number,
pename-out-VARCHAR2,
PSAL-out-number,
pjob-out-VARCHAR2)
as
begin
選擇ename,Sal,empjob-into-pename,PSAL,pjob from EMP where empno=eno
end
/
三個運行結(jié)果
pename=king
PSAL=10100
pjob=Present
如果在select語句中使用,則有一些限制:函數(shù)只能返回一條記錄(或字段值)。此時,我們只能考慮用符號拼接這三個值,并在匿名塊或存儲過程中將它們返回到一起。我們可以定義三個變量并接收函數(shù)的三個輸出返回參數(shù)。