C114首页 | 新闻 技术 市场 会展 黄页 人物 | 3G NGN VoIP IPTV WiMax FTTH |          通信人家园 | 通信人博客 | 通信商情网 | 通信人才网 | English
近期导读

·我看移动500亿元划拨联通

·驳有谁从用户角度看重组

·对任正非勃然大怒的分析

  技术 - 学院 - 网络基础 - 正文
用一个实例讲解数据类型不一致引发的后果
 
( 2008/4/28 10:56 )
本文关键字: 测试1

数据类型不一致引发的后果:

在执行以下SQL语句后,出现ORA-01722: invalid number:

select distinct serial_number,
to_char(first_fire_date,'mm-dd-yyyy') first_fire_date,
cis.installation_engineer,
cis.technology,
customer_name,
CCS.site_nm,
email_id
from CTSV_INSTALL_SCHEDULE    cis,
CTSV_RFR_RED_FLAG_REVIEW crrfr,
ctst_customer_site       ccs,
prty                     p
where CRRFR.UNIT_NUMBER =
DECODE(CIS.SERIAL_NUMBER,
'NON-US',
CIS.ALTERNATE_SERIAL_NUMBER,
CIS.SERIAL_NUMBER)
AND FIRST_FIRE_STATUS <> 'RELEASE'
and first_fire_date between sysdate and sysdate + 14
and ccs.unit_number_id = cis.unit_number
and DECODE(p.lst_nm, NULL, p.frst_nm, p.lst_nm || ', ' || p.frst_nm) =
cis.installation_engineer
order by serial_number;
 

错误分析:

将sysdate + 14改为13后,却可以正确的执行,在测试过sysdate + 13+7/24,依然正确,输出sysdate + 13+7/24后,报错时刚好到4月29号0时。而且过了几分钟后,sysdate + 13+7/24也开始报错,因为到了下一个小时。

最开始以为是sysdate + 14的问题。经过一步一步的删除where中的条件后,最后发现问题在ccs.unit_number_id = cis.unit_number,左边是number类型的,右边是varchar2类型的,因此某些数据转不过去,而且因为这些数据中又有某些条件刚好满足在4月29号0时,因此发生了错误ORA-01722: invalid number现象。

作者:Arnold    来源:赛迪网
  你是通信人才吗? C114通信人才网
  是通信人才就要上专业通信人才网! 专业、高效、低成本、资源广!
  助你迅速找到满意工作! 拥有中国最全的通信行业人才数据库资源。
C114-AdKey 行业广告系统 
C114 提醒您:1.尊重网上道德,遵守国家的各项法律法规;2.承担一切因为您的行为而导致的相关法律责任;

3.新闻留言板管理人员有权删减留言中的内容;4.您在留言板发表的作品,C114有权站内转载。

[参与本留言即表明您已经阅读并接受上述条款]

 
Copyright©1999-2008 c114 All Right Reserved
上海荧通网络信息技术有限公司版权所有
南方广告业务部: 021-54451141,54451142 E-mail:c114@c114.net
北方广告业务部: 010-63533177,63533977 E-mail:shi@c114.net.cn
编辑部联系:021-54451141,54451142 E-mail:editor@c114.net.cn
服务热线:021-54451141,54451142