oracle – 如何最小化物理DDL更改和PLSQL更改之间的耦合依赖关系?

oracle – 如何最小化物理DDL更改和PLSQL更改之间的耦合依赖关系?,第1张

概述我们遇到了Oracle表定义(DDL)和我们的一个PL / SQL脚本中的特定问题. 问题是,表中有一个更改,从varchar(20)更改为varchar(30),然而,这个更改并没有在我们的一个消耗数据的PL / SQL脚本中得到充分反映,这仍然是varchar(20) ,在我们的一个回归测试中导致ORA-06502:PL / SQL:数字或值错误错误. 我想在这里向Oracle和数据库专家寻求 我们遇到了Oracle表定义(DDL)和我们的一个PL / sql脚本中的特定问题.

问题是,表中有一个更改,从varchar(20)更改为varchar(30),然而,这个更改并没有在我们的一个消耗数据的PL / sql脚本中得到充分反映,这仍然是varchar(20),在我们的一个回归测试中导致ORA-06502:PL / sql:数字或值错误错误.

我想在这里向Oracle和数据库专家寻求建议,无论您是否在过去遇到过这样的情况,表DDL都有变化,并且没有反映在PL / sql中以及如何处理这个差距.

我知道一种简单的方法是某种形式的强制执行或文书工作,但是会不会出现更美观或更优雅的解决方案,即外键如何避免插入/更新/删除异常?

谢谢!

解决方法 对于初学者,您应该始终根据表中的列定义将变量声明为TYPE:

即,而不是:

dept_name  VARCHAR2(50);

使用:

dept_name  dept.dept_name%TYPE;

这样,当您的基表更改时,您的声明仍然有效.

您也可以将过程参数声明为类型:

PROCEDURE proc(p1 IN dept.dept_name%TYPE)
总结

以上是内存溢出为你收集整理的oracle – 如何最小化物理DDL更改和PL / SQL更改之间的耦合/依赖关系?全部内容,希望文章能够帮你解决oracle – 如何最小化物理DDL更改和PL / SQL更改之间的耦合/依赖关系?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1165838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存