夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
              PL/SQL中對out,in out參數使用的?默認形參會復制一份實參的副本,然后在內部傳遞,修改等,發生異常,不會賦值給實參,控制權交還調用環境,而實參值不變,還是調用前的值。而使用了NOCOPY后,形參將獲得一個指向實參的指針,然后在內部傳遞,賦值都直接修改實參了,此時如果異常發生,控制權交還調用環境,但是實參已經被修改了。無法還原成調用前的值。
              對參數I N使用NOCOPY將會產生編譯錯誤,這是因為參數I N總是按引用傳遞.
              NOCOPY的主要優點是可以提高程序的效率。當我們傳遞大型PL/SQL表時,其優越性特別顯著.使用NOCOPY的限制在某些情況下,NOCOPY將被編譯器忽略,這時的參數仍將按值傳遞。這時,編譯器不會報告編譯錯誤。由于NOCOPY是一個提示項(Hint),編譯器可以決定是否執行該項。在下列情況下,編譯器將忽略NOCOPY項:
          1.實參是索引表(index-by table)的成員時。如果該實參是全表,則該限制不起作用。
          2.實參被強制指定精度,比例或NOT NULL時。該限制將不適用按最大長度強制的字符串參數。
          3.實參和形參都是記錄類型,二者是以隱含方式或使用了%ROWTYPE類型聲明時,作用在對應字段的強制說明不一致。
          4.傳遞實參需要隱式類型轉換時。
          5.子程序涉及到遠程過程調用(PRC)。遠程過程調用就是跨越數據庫對遠程服務器的過程調用。
          posted on 2008-01-21 15:23 HUIKK 閱讀(2764) 評論(3)  編輯  收藏 所屬分類: DataBase

          評論

          # re: ORACLE NOCOPY 2009-07-21 13:59 ffsd
          Pass-by-value subroutines define formal parameters using an IN mode
          only.  回復  更多評論
            

          # re: ORACLE NOCOPY 2009-07-21 14:00 ffsd
          In mode parameters still use 'pass-by-value'  回復  更多評論
            

          # re: ORACLE NOCOPY 2013-12-20 11:49 無憂旅行社
          子程序涉及到遠程過程調用(PRC)。遠程過程調用就是跨越數據庫對遠程服務器的過程調用
          這點很牛X


          如果有旅游的打算請聯系我:http://www.51khly.com/  回復  更多評論
            

          主站蜘蛛池模板: 汕头市| 九龙城区| 鸡泽县| 卓尼县| 东兴市| 天等县| 乃东县| 始兴县| 密云县| 秦皇岛市| 溆浦县| 东乡| 三门峡市| 昌乐县| 舟曲县| 山阴县| 揭阳市| 永靖县| 班戈县| 荔波县| 榕江县| 黄梅县| 泸溪县| 安庆市| 宣化县| 手游| 樟树市| 吴桥县| 弥渡县| 云霄县| 邯郸市| 怀化市| 呼伦贝尔市| 称多县| 枞阳县| 格尔木市| 开封县| 抚宁县| 五常市| 涟源市| 会理县|