<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JUST DO IT ~

    我只想當個程序員

    plsql 包,tomcat jdbc 調用存儲過程老是報錯 ORA-06508: PL/SQL: could not find program unit being called:

    sqlplus 外面執行正常.

    tomcat調用老有問題.多調用幾次久正常.

     

    可能是包中的全局變量引起的.

     

     

    If so, that's because your package is stateful:

    The values of the variables, constants, and cursors that a package declares (in either its specification or body) comprise its package state. If a PL/SQL package declares at least one variable, constant, or cursor, then the package is stateful; otherwise, it is stateless.

    When you recompile the state is lost:

    If the body of an instantiated, stateful package is recompiled (either explicitly, with the "ALTER PACKAGE Statement", or implicitly), the next invocation of a subprogram in the package causes Oracle Database to discard the existing package state and raise the exception ORA-04068.

    After PL/SQL raises the exception, a reference to the package causes Oracle Database to re-instantiate the package, which re-initializes it...

    You can't avoid this if your package has state. I think it's fairly rare to really need a package to be stateful though, so you should revisit anything you have declared in the package, but outside a function or procedure, to see if it's really needed at that level. Since you're on 10g though, that includes constants, not just variables and cursors.

    But the last paragraph from the quoted documentation means that the next time you reference the package in the same session, you won't get the error and it will work as normal (until you recompile again).

     

    existing state of packages has been discarded means, that your Package had some sort of state.

    This is caused by a global variable (or constant) stored in your Package Body.

    Since the package has already been used in your session, Oracle assumes that this state is relevant for you. Some of these variables might have different values now, and when you recompile the Body, the values are reset.

    This exception is thrown, so that your clients know that they can't rely on those variables any more.

    You could try to remove all global variables and constants from the Package Body, or close your session and reconnect before calling the package again.

     

     

    參考:

    http://stackoverflow.com/questions/2502722/pl-sql-package-invalidated

     

    http://stackoverflow.com/questions/19376440/ora-06508-pl-sql-could-not-find-program-unit-being-called

    posted on 2014-07-16 21:14 小高 閱讀(1652) 評論(0)  編輯  收藏 所屬分類: Oracle

    導航

    <2014年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統計

    常用鏈接

    留言簿(3)

    隨筆分類(352)

    收藏夾(19)

    關注的blog

    手冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚美影视免费在线观看| 国产亚洲福利精品一区二区| a国产成人免费视频| 伊在人亚洲香蕉精品区麻豆| 黄页网址在线免费观看| 免费v片在线观看| 伊人久久国产免费观看视频| 亚洲精品国产高清嫩草影院| 日韩免费高清一级毛片| 区久久AAA片69亚洲| 国产一精品一av一免费爽爽 | 99热这里只有精品免费播放| 亚洲国产成人一区二区精品区| 华人在线精品免费观看| 久久精品国产亚洲AV果冻传媒| 99蜜桃在线观看免费视频网站| 色噜噜综合亚洲av中文无码| jjizz全部免费看片| 亚洲欧好州第一的日产suv| 四虎影视在线永久免费观看| 乱爱性全过程免费视频| 亚洲精选在线观看| 毛片免费视频在线观看| 成人福利在线观看免费视频| 国产精品久久久亚洲| 在线a免费观看最新网站| 亚洲欧美日韩自偷自拍| 亚洲无码高清在线观看| 久久精品无码专区免费东京热| 日本亚洲精品色婷婷在线影院| 免费国产小视频在线观看| 丁香花在线观看免费观看图片| 亚洲综合久久成人69| 啦啦啦www免费视频| 91在线视频免费观看| 亚洲av无码不卡久久| 久久99亚洲综合精品首页| 5555在线播放免费播放| 亚洲AV无码一区二区三区电影| 亚洲午夜久久久久妓女影院| 成年网站免费视频A在线双飞|