ORA-01426: 执行存储过程时出现数字溢出异常
我将 Delphi 6 应用程序移植到 Delphi 2007,它使用 BDE 连接到 Oracle 9i 数据库。 我正在得到一个
ORA-01426: 数字溢出异常
执行存储过程时出现数字溢出异常。 这是随机发生的,如果我 使用相同的参数通过应用程序重新运行存储过程 异常不会发生。
旧的 Delphi 6 应用程序运行得很好。
有人有想法吗?
I ported a Delphi 6 application to Delphi 2007 and it uses BDE to connect to
an Oracle 9i database. I am getting an
ORA-01426: numeric overflow exception
When I execute a stored procedure. This happens randomly and if I
re-run the stored procedure through the application with the same parameters
the exception does not occur.
The old Delphi 6 application works just fine.
Ideas anybody?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
显示代码示例可以使这变得更容易,但这里有一些预感:
数据是否来自没有显式数据类型的另一个源(例如 Excel)? 混合或不明确的数据可能会导致 BDE 将错误的数据类型分配给与数据库字段不兼容的字段。
可能是数字格式问题(某些以美国为中心的组件无法正确处理本地化)。 您的本地化版本不是英语(美国)吗? 是这样,将其更改为英语(美国)是否可以解决问题?
如果这些完全遗漏,更多细节可能会有所帮助。
Showing a code example could make this easier, but here are a couple of hunches:
Are the data coming from another source (like Excel) that does not have explicit data types? Mixed or ambiguous data may be causing BDE to assign the wrong data type to a field that then is incompatible with the database field.
Could be a numeric formatting issue (some U.S.-centric components do not handle localization properly). Is your localization other than English(U.S.)? Is so, does changing it to English(U.S.) fix the problem?
If these completely miss, more details might help.
D6版本的应用程序使用相同版本的BDE、Oracle和数据库吗? 如果是这样,那么可能与传递的数据有关(内容或机制)。
不知道这些数据是什么,也不知道它们是如何传递的,使得诊断变得非常困难。
Does the D6 version of the app use the same version of BDE, Oracle, and the database? If so, then it's probably something about the data being passed (either content or mechanism).
Not knowing what those data are, nor how they are passed, makes it pretty hard to diagnose.