静态 sql(相对于动态 SQL)会使 Oracle 中的其他包失效吗
你好 如果我编写一个自定义包,其中只包含静态 SQL,它会使其他包无效吗? (作为包装代码提供的其他第三方包)。
一位同事建议我用动态 SQL 重新编写自定义包,这样我就不会看到这个问题了。我发现这很难相信,因为第三方软件包不依赖于我的自定义软件包, 无论如何,已编译的包应该保持编译状态。
-谢谢
Hi
If I write a custom package with nothing but static SQL in it, would it invalidate other package. (other third party packages that were shipped as wrapped code).
a co worker suggests that I re write the custom package in Dynamic SQL, and I will not see this problem. I find this hard to believe because the third party packages are not dependent on my custom package,
a compiled package should stay compiled, regardless.
-thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它只会使包含自定义包作为依赖项的包无效。
您应该能够在测试环境中向您的同事(和您自己)证明这一点。
It would only invalidate packages that included your custom package as a dependency.
You should be able to prove that to your co-worker (and yourself) in a test environment.
编译新包不会使任何内容失效。根据定义,现有的已编译包无法引用尚未创建的新包。
当然,重新编译现有包(可能有一些引用)可能会使现有包失效。
Compiling a new package won't invalidate anything. By definition, an existing compiled package can't refer to your new package that you haven't created yet.
Recompiling an existing package (that might have some references to it) could invalidate existing packages, of course.
不会。带有 DML 语句的包根本不会使任何包失效。
No. A package with DML statements would not invalidate any package at all.