oracle数字与字符的那点事
来源:互联网 发布:nba2konline韩德君数据 编辑:程序博客网 时间:2024/06/05 02:06
最近同事写了一个SQL如下
虽然语句很复杂,但我今天要说的一个问题其实只与其中的一个字段有关系,所以SQL 不是重要的,就是那个crorg_type它在数据库的定义中是一个字符型,这里写成数字型,在有些情况下是可以的,就是当你数据库中的所有记录的crorg_type取值都为数字时,只要有一条记录取值不是数字都会出现非数字字符的异常,所以还是要严格按照数据类型来写SQL,不要说当前可行,就数字字符都无所谓,从出错来看,数据库内部应该是将数据库中的字符数据转换为数字进行比较,如果存在非数字型字符就没有办法转换,就会报错.后写所以以后写SQL还是严格按类型来,是字符就添加引号,不要因为是数字就不加引号
select crorg_unid AS crorgUnid, crorg_uuid AS crorgUuid, crorg_level_code AS crorgLevelCode, crorg_parent_uuid AS crorgParentUuid, crorg_full_name AS crorgFullName, crorg_short_name AS crorgShortName, crorg_num AS crorgNum, crorg_cract_leader_uuid AS crorgCractLeaderUuid, crorg_cract_admin_uuid AS crorgCractAdminUuid, crorg_address AS crorgAddress, crorg_phone AS crorgPhone, crorg_type AS crorgType, crorg_level AS crorgLevel, crorg_status AS crorgStatus, crorg_ord AS crorgOrd, crorg_cdate AS crorgCdate, crorg_udate AS crorgUdate, crorg_cract_creater_uuid AS crorgCractCreaterUuid, crorg_memo AS crorgMemo, crorg_pinyin AS crorgPinyin, crorg_pp_nature AS crorgPpNature from core_organization aa join core_account bb on bb.cract_crorg_uuid = aa.crorg_uuid where cract_uuid = '0C7B11AD887D4567AD25EEA79152812E'union allselect dd.* from (select crorg_unid AS crorgUnid, crorg_uuid AS crorgUuid, crorg_level_code AS crorgLevelCode, crorg_parent_uuid AS crorgParentUuid, crorg_full_name AS crorgFullName, crorg_short_name AS crorgShortName, crorg_num AS crorgNum, crorg_cract_leader_uuid AS crorgCractLeaderUuid, crorg_cract_admin_uuid AS crorgCractAdminUuid, crorg_address AS crorgAddress, crorg_phone AS crorgPhone, crorg_type AS crorgType, crorg_level AS crorgLevel, crorg_status AS crorgStatus, crorg_ord AS crorgOrd, crorg_cdate AS crorgCdate, crorg_udate AS crorgUdate, crorg_cract_creater_uuid AS crorgCractCreaterUuid, crorg_memo AS crorgMemo, crorg_pinyin AS crorgPinyin, crorg_pp_nature AS crorgPpNature from core_organization where (select crorg_level_code from core_organization aa join core_account bb on bb.cract_crorg_uuid = aa.crorg_uuid where cract_uuid = '0C7B11AD887D4567AD25EEA79152812E') like crorg_level_code || '%' and crorg_type = 1 order by length(crorg_level_code) desc) dd where rownum < 2
虽然语句很复杂,但我今天要说的一个问题其实只与其中的一个字段有关系,所以SQL 不是重要的,就是那个crorg_type它在数据库的定义中是一个字符型,这里写成数字型,在有些情况下是可以的,就是当你数据库中的所有记录的crorg_type取值都为数字时,只要有一条记录取值不是数字都会出现非数字字符的异常,所以还是要严格按照数据类型来写SQL,不要说当前可行,就数字字符都无所谓,从出错来看,数据库内部应该是将数据库中的字符数据转换为数字进行比较,如果存在非数字型字符就没有办法转换,就会报错.后写所以以后写SQL还是严格按类型来,是字符就添加引号,不要因为是数字就不加引号
- oracle数字与字符的那点事
- ORACLE转义字符的那点事
- ORACLE转义字符的那点事
- Oracle那点事
- oracle spail的那点事
- 【字符转换】那点事
- 与CPU有关的那点事
- VS2005 与虚拟机的那点事
- synchronized 与 Lock 的那点事
- UIScrollview与Autolayout的那点事
- synchronized 与 Lock 的那点事
- synchronized 与 Lock 的那点事
- synchronized 与 Lock 的那点事
- synchronized 与 Lock 的那点事
- synchronized 与 Lock 的那点事
- synchronized 与 Lock 的那点事
- synchronized 与 Lock 的那点事
- synchronized 与 Lock 的那点事
- 对百度阿拉丁的深入解读
- 用Flex的编译参数实现AS3程序的自身预加载(Self Preloading)
- 如何将HTML5嵌入到IE旧版本中
- PHP的反射机制
- 报表模板实现网格式自定义报表
- oracle数字与字符的那点事
- 简单的图片浏览器和手势识别的功能实现
- Repeater 嵌套 Dropdownlist
- JBoss 下的目录结构说明和端口修改相关
- log4j配置文件demo
- 再谈关于缓冲器溢出
- Oracle JDBC dataType
- Visual Studio的调试技巧
- cocos2d from python Animation 动画的实现