ora 04068 的解决方法

这个问题是oracle的两种情况。

一种是自己的程序里边出现了动态执行语句。在动态执行的过程中,将对象失效了。而下面的程序还是静态编译生成的。对它的引用还是老的物理地址。导致报错。原来的对象失效。

 

另一种是oracle本身的错误。

 

针对第一种情况。

1. goto的方法   

    goto 不能回走。

    假如程序在后面,就往下走。但要是回走就会报错。

    所以goto一般用来报错。或者是实现游标的continue。

 

2. 采用动态语句.

 

    由于对象被动态使用到了,所以会动态重编译重新取地址。

    当后面的程序需要调用该对象的时候,会因为根据老地址找不到对象,报错对象失效的错误。

 

    程序是静态编译的,对该对象取的地址是老地址,但程序在执行的过程中,该对象被动态编译了,就会使调用失效。

    针对这种情况,有两种方法:

    a  动态重编译程序。对该对象重新取地址。

    b  使用动态语句来调用过程。由于是动态调用,所以会在运行时才编译。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值