最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle 子程序參數(shù)模式,IN,OUT,NOCOPY

 更新時間:2009年10月19日 14:52:51   作者:  
Oracle 子程序參數(shù)模式主要有IN,OUT,NOCOPY,IN和OUT可以組合,OUT和NOCOPY也可以組合使用.

IN主要用于傳入?yún)?shù),可以是變量,常量,表達(dá)式,在子程序內(nèi)部不能改變其值.

復(fù)制代碼 代碼如下:

DECLARE
n NUMBER := 10;
PROCEDURE do_something (
n1 IN NUMBER) IS
BEGIN
dbms_output.put_line(n1); -- prints 10
--n1:=20; --illegal assignment.
END;
BEGIN
do_something(n);
do_something(20);
END;

OUT模式用于返回值,必須傳入變量調(diào)用,變量的初始的值不會傳給形式參數(shù),如<<1>>所示.
形參的值在子程序返回時(不是在形式參數(shù)改變時)才copy給實參, ,如<<2>>所示,如果在 返回之前發(fā)生異常,實際參數(shù)的值不會被改變.
復(fù)制代碼 代碼如下:

DECLARE
n NUMBER := 10;
PROCEDURE do_something (
n1 OUT NUMBER) IS
BEGIN
dbms_output.put_line('before assign: ' || n1); -- prints none <<1>>
n1:=20;
dbms_output.put_line('before return: ' || n); -- prints 10 <<2>>
END;
BEGIN
do_something(n);
dbms_output.put_line('after return: ' || n); -- prints 20
END;

NOCOPY模式用于限定OUT模式在調(diào)用時是不是以傳引用的方式進(jìn)行(它只是一個編譯器暗示,不一定總是起作用),默認(rèn)情況下,OUT模式的參數(shù)是以傳值的方式進(jìn)行調(diào)用的.
IN主要用于傳入?yún)?shù)的,雖然n2 := 20被調(diào)用,但是要到返回的時候才生效.如<<1>>所示.
NOCOPY是傳引用,會在賦值的時候立即生效 ,如<<2>>所示,如果在 返回之前發(fā)生異常,實際參數(shù)的值也會被改變.
由于OUT參數(shù)在 子程序返回的時候會將值copy到實際參數(shù),所以調(diào)用完后n的值為20,如<<3>>所示.
復(fù)制代碼 代碼如下:

DECLARE
n NUMBER := 10;
PROCEDURE do_something (
n1 IN NUMBER,
n2 IN OUT NUMBER,
n3 IN OUT NOCOPY NUMBER) IS
BEGIN
n2 := 20;
dbms_output.put_line(n1); -- prints 10<<1>>
n3 := 30;
dbms_output.put_line(n1); -- prints 30 <<2>>
END;
BEGIN
do_something(n, n, n);
dbms_output.put_line(n); -- prints 20 <<3>>
END;

相關(guān)文章

最新評論

齐齐哈尔市| 洪湖市| 布尔津县| 洛川县| 盐城市| 灵丘县| 疏勒县| 佛山市| 桂平市| 偃师市| 慈利县| 宣化县| 仁布县| 明光市| 蛟河市| 始兴县| 扶风县| 固阳县| 凯里市| 大连市| 沭阳县| 汝南县| 灵台县| 张家川| 徐州市| 涿鹿县| 进贤县| 滁州市| 安新县| 乌兰察布市| 泗水县| 水城县| 勐海县| 永仁县| 巩义市| 全南县| 安龙县| 沭阳县| 定日县| 霍邱县| 南投县|