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