最佳做法是在我的应用程序中使用PL / SQL代码查询Oracle数据字典视图(all_tab_columns等...)? 这些观点是否应仅用于DBA和开发人员,因为他们每天都在工作?
示例:我需要验证变量是否适合表列大小。这将在任何应用程序用户调用的进程中被询问。
答案 0 :(得分:2)
您的示例可能不是最佳示例,因为还有其他方法可以做到这一点。例如,将PL / SQL变量定义为table.column%type
,然后在尝试将用户数据放入其中时捕获出现的任何异常(例如,由于长度问题)。
一般来说,我发现生产代码必须从数据字典中查询是非常不寻常的。但是,我偶尔也会这样做,并且不记得有任何特殊问题,除非要记住PL / SQL对象所有者必须拥有字典的直接权限,并且无法通过角色访问它们,因为角色在具有定义权限的命名PL / SQL块中被禁用。