麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

Oracle 子程序參數模式,IN,OUT,NOCOPY

2024-08-29 13:56:23
字體:
來源:轉載
供稿:網友

IN主要用于傳入參數,可以是變量,常量,表達式,在子程序內部不能改變其值.

復制代碼 代碼如下:


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模式用于返回值,必須傳入變量調用,變量的初始的值不會傳給形式參數,如<<1>>所示.
形參的值在子程序返回時(不是在形式參數改變時)才copy給實參, ,如<<2>>所示,如果在 返回之前發生異常,實際參數的值不會被改變.

復制代碼 代碼如下:


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模式在調用時是不是以傳引用的方式進行(它只是一個編譯器暗示,不一定總是起作用),默認情況下,OUT模式的參數是以傳值的方式進行調用的.
IN主要用于傳入參數的,雖然n2 := 20被調用,但是要到返回的時候才生效.如<<1>>所示.
NOCOPY是傳引用,會在賦值的時候立即生效 ,如<<2>>所示,如果在 返回之前發生異常,實際參數的值也會被改變.
由于OUT參數在 子程序返回的時候會將值copy到實際參數,所以調用完后n的值為20,如<<3>>所示.

復制代碼 代碼如下:


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;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产69精品久久久久孕妇黑 | 免费一级在线观看 | 懂色av懂色aⅴ精彩av | 国产午夜精品一区二区三区嫩草 | fc2成人免费人成在线观看播放 | 蜜桃视频网站在线观看 | 久久国产一二三 | 精品国产欧美一区二区 | 羞羞视频.www在线观看 | 久久精品中文字幕一区 | 成人国产精品色哟哟 | 久久精品亚洲精品国产欧美kt∨ | 久久久久久高清 | 日韩精品hd | 一分钟免费观看完整版电影 | 久久国产成人午夜av浪潮 | 成人短视频在线观看 | 精品一区二区三区在线视频 | 久久精品女人天堂av | 一级毛片真人免费播放视频 | 草久免费 | 国产视频在线观看一区二区三区 | 久久人人爽人人爽人人片av高清 | 最新在线中文字幕 | 国产精品中文在线 | 久草在线视频网 | 国产精品美女久久久久久不卡 | 午夜精品久久久久久久爽 | 中文字幕欧美一区二区三区 | 一级做受毛片免费大片 | 一区二区三区在线观看免费视频 | 国产大片全部免费看 | 亚洲国产成人一区二区 | 爱操视频| 天天干导航 | 激情九九 | 欧美人的天堂一区二区三区 | 国产羞羞视频在线免费观看 | 日日爱影院 | 精品国产一区三区| 欧美成人福利 |