Oracle 数据字典最佳实践和指南

Oracle Data Dictionary best practices and guidelines

最好在我的应用程序中包含 PL/SQL 代码来查询 Oracle 数据字典视图(all_tab_columns,等等...)? 此视图是否应该仅用于 DBA 和开发人员的日常工作?

示例:我需要验证变量是否适合 table 列大小。这将在任何应用程序用户调用的进程中询问。

您的示例可能不是最好的示例,因为还有其他方法可以做到这一点。例如,将 PL/SQL 变量定义为 table.column%type,然后捕获在尝试将用户数据放入其中时出现的任何异常(例如,由于长度问题)。

总的来说,我发现生产代码必须从数据字典中查询是很不寻常的。但是,我偶尔会这样做,不记得有任何特殊问题由此产生,除了要记住 PL/SQL 对象所有者必须对字典具有直接权限并且不能通过角色访问它们,因为角色在具有定义者权限的命名 PL/SQL 块中被禁用。