Oracle 子程序參數模式,IN,OUT,NOCOPY建站知識
導讀:1建站知識Oracle 子程序參數模式主要有IN,OUT,NOCOPY,IN和OUT可以組合,OUT和NOCOPY也可以組合使用.網站建設教程網seo優化趨勢。
IN主要用于傳入參數,可以是變量,常量,表達式,在子程序內部不能改變其值.
復制代碼 代碼如下:
DECLARE n NUMBER := 10; PROCEDURE do_som網站建設制作ething ( 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模式在seo網站優化培訓調用時是不是以傳引用的方式進行(它只是一個編譯器暗示,不一定總是起作用),默認情況下,OUT模式的參數是以傳值的方式進行調用的. IN主要用于傳入參數的,雖然n2 := 20被調用,但是要到返回的時候才生效.如<<1>>所示. NOCOPY是傳引用,會在賦值的時候立即生效 ,如<<2>>所示,如果在 返回之前發生異常,實際參數的值也會被改變. 由于OUT參數在 網站seo優化軟件子程序返回的時候會將值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;
相關網站建設教程網seo優化趨勢。關鍵詞標簽: 參數 子程序 IN OUT NOCOPY建站知識1
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-22 ,文章Oracle 子程序參數模式,IN,OUT,NOCOPY建站知識主要講述子程序,參數,Oracle 子程序參數模式,IN,OUT,N網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_4987.html