关于调用Oracle存储过程时发生“BCD Overflow”错误的处理
来源:互联网 发布:xy坐标转换经纬度软件 编辑:程序博客网 时间:2024/05/17 07:26
笔者最近在使用TSQLStoredProc调用Oracle存储过程时发现,即使存储过程体为空时,都会发生 BCD Overflow 错误,该表部分定义如下:
PLANE_ALL_PARAMETER表:
字段名数据类型PLANE_MODEL_IDNUMBERNATURAL_FLY_WEIGHT FLOATNOLOAD_WEIGHTFLOATMAX_FUEL_WEIGHTFLOAT…………
PLANE_ALL_PARAMETER表:
字段名数据类型PLANE_MODEL_IDNUMBERNATURAL_FLY_WEIGHT FLOATNOLOAD_WEIGHTFLOATMAX_FUEL_WEIGHTFLOAT…………
在存储过程的参数表中,做如下定义:
procedure update_plane_model( ModelID in PLANE_ALL_PARAMETER.PLANE_MODEL_ID%type, NaturalFlyWeight in PLANE_ALL_PARAMETER.NATURAL_FLY_WEIGHT%type, NoLoadWeight in PLANE_ALL_PARAMETER.NOLOAD_WEIGHT%type, MaxFuelWeight in PLANE_ALL_PARAMETER.MAX_FUEL_WEIGHT%type, ……);
并且在设置参数时使用如下方式:
ParamByName('NaturalFlyWeight').AsFloat := PlaneModelInfo^.NATURAL_FLY_WEIGHT ;ParamByName('NoLoadWeight').AsFloat := PlaneModelInfo^.NOLOAD_WEIGHT;ParamByName('MaxFuelWeight').AsFloat := PlaneModelInfo^.MAX_FUEL_WEIGHT;
这样在调用该存储过程时就会发生此错误,笔者发现如果使用AsBCD方式赋值,而不是使用AsFloat就可以避免发生 BCD Overflow 错误。
ParamByName('NaturalFlyWeight').AsBCD := PlaneModelInfo^.NATURAL_FLY_WEIGHT ;ParamByName('NoLoadWeight').AsBCD := PlaneModelInfo^.NOLOAD_WEIGHT;ParamByName('MaxFuelWeight').AsBCD := PlaneModelInfo^.MAX_FUEL_WEIGHT;看来dbExpress虽好,但也是问题多,估计在SQL Server上不会存在这样的问题,不知道Sysbase和DB2上有没有,大家可以试试!
- 关于调用Oracle存储过程时发生“BCD Overflow”错误的处理
- 关于oracle的存储过程以及调用。
- 关于SPRING调用ORACLE的存储过程
- oracle存储过程错误处理
- 关于ADO连接MYSQL调用存储过程的ERROR1064错误
- ORACLE存储过程调用存储过程时commit的问题
- 关于asp调用oracle存储过程的问题
- 关于在PB中动态调用ORACLE的存储过程
- 关于oracle存储过程的调用(java)
- 存储过程的错误处理
- Oracle存储过程的调用
- Oracle存储过程的调用
- Oracle存储过程的调用
- Oracle存储过程的调用
- 关于存储过程的调用
- 【原创】java调用Oracle存储过程时,处理cursor类型的方法。
- 关于oracle存储过程调用问题。execute method error : DataAccessException,或者时参数个数或类型错误,等等
- "服务器无法继续该事务 3400000006"错误原因--JAVA调用SQLSERVER存储过程时过程发生异常内部事务未提交
- 在Weblogic环境下的servlet中实现应用级身份认证
- 问题:部分XP客户,Activex插件安装没反应
- Another_eYes写的FastPos函数
- Server.MapPath()札记
- 安装oracle9i出现/temp/orainstall目录下没有足够的磁盘空间问题
- 关于调用Oracle存储过程时发生“BCD Overflow”错误的处理
- Delphi 一些常用函数
- Oracle常用数据字典(系统视图类)
- SAP 查找BADI
- Delphi7的dbExpress驱动问题
- 判断Unicode编码的文件
- linux下的RandomAccessFile类
- 【原创】Ubuntu的版本命名学习
- C++之父评论C++与Java (转载)