我有一个经常被修改的Oracle软件包。在编辑程序包后调用此程序包时,Oracle会抛出ORA-04068:已丢弃现有的程序包状态。虽然它在后续通话中运行正常,但这是一种烦人的体验。有没有办法避免在第一次调用已编译的包时抛出此消息。
我通过连接到Oracle 11G的WCF / ODP.NET 4.121.1.0调用该软件包。
答案 0 :(得分:1)
如果您的包变量只需要一次调用,而您不需要在调用之间保留值,则可以使用SERIALLY_REUSABLE Pragma。 您可以在此处找到详细信息:http://docs.oracle.com/cd/B14117_01/appdev.101/b10807/13_elems046.htm
如果您需要编辑包的逻辑但变量的类型和名称保持不变,您可以将它们放在另一个包中。它不是美丽而是有效。