plsql - 在哪里保存 PL/SQL 常量?

标签 plsql

您通常在哪里存储 PL/SQL 常量?在封装体层面?在规范中?我还看到有些人将常量保存在专门的包中,只是为了常量。该领域的最佳实践是什么?

谢谢。

最佳答案

在包主体或规范中包含常量的一个缺点是,当您重新编译包时,任何在 PGA 中具有包状态的用户 session 都会收到 ORA-04068。出于这个原因,在一个大型开发环境中,我们采用了一种约定,即使用一个单独的仅规范包来保存每个包的常量(以及包全局变量,如果有的话)。然后,我们会强加一条规则,规定这些仅规范的包只能由它们的“所属”包引用 - 我们在代码审查时强制执行该规则。这不是一个完美的解决方案,但它当时对我们有用。

出于同样的原因,我永远不会推荐使用一个常量包来规则它们,因为每次有人需要引入一个新常量或修改一个现有常量时,所有用户 session 都会收到 ORA-04068 .

关于plsql - 在哪里保存 PL/SQL 常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279386/

相关文章:

sql - 用案例反透视表不同的数据类型

mysql - 验证大量数据的副本

plsql - 如何删除(删除)Oracle AQ 队列?

sql - 使用 pl sql 读取 .docx 和 .pdf 文件

oracle - Oracle 是否有任何内置的哈希函数?

Oracle:查询中的 DML 操作

sql - 显示循环表的结果(oracle、pl/sql)

mysql - Oracle PL/SQL 存储过程日期时间间隔精度 ORA-30088

mysql - 具有相同复合键的两个表

sql - 如何将多个值传递给 plsql 中的过程