免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2506 | 回复: 7
打印 上一主题 下一主题

message(ORA-01722: invalid number [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-07 15:32 |只看该作者 |倒序浏览
5可用积分
写的入库程序,如果数据库中定义字段是number的,而文本中给的对应字段包含了非数字字符.就会出这样提示,

请问有oracle有办法能取出具体是哪些列数值非法的么?

最佳答案

查看完整内容

当然有办法了,写个函数来实现,你可以使用ascii这个函数来判断哪些字符不是数值的 select ascii(0) from dual;48select ascii(9) from dual;57如果ascii不在48-57 之间,那么就是非数字字符不过你也得考虑小数的情况,所以要查一下select ascii('.') from dual;46以上方法仅供参考,楼主自己总结吧

论坛徽章:
0
2 [报告]
发表于 2009-08-07 15:32 |只看该作者
当然有办法了,写个函数来实现,你可以使用ascii这个函数来判断哪些字符不是数值的

select ascii(0) from dual;

48

select ascii(9) from dual;

57

如果ascii不在48-57 之间,那么就是非数字字符

不过你也得考虑小数的情况,所以要查一下

select ascii('.') from dual;

46

以上方法仅供参考,楼主自己总结吧

论坛徽章:
0
3 [报告]
发表于 2009-08-07 16:02 |只看该作者

回复 #1 ghostgorst 的帖子

查看一下函数手册?或者自己写一个程序。

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
4 [报告]
发表于 2009-08-07 16:12 |只看该作者
好像没有

论坛徽章:
0
5 [报告]
发表于 2009-08-07 21:56 |只看该作者
原帖由 dingning239 于 2009-8-7 16:16 发表
当然有办法了,写个函数来实现,你可以使用ascii这个函数来判断哪些字符不是数值的

select ascii(0) from dual;

48

select ascii(9) from dual;

57

如果ascii不在48-57 之间,那么就是非数字字 ...


LZ的意思我理解为:在insert 或update后,如果报错,是否可以判断是哪个字段出的问题  -- 这个好像不行

不过既然LZ是用程序在做数据入库,可以从程序语言的角度来解决,insert或update报错后,对此行数据做判断

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
6 [报告]
发表于 2009-08-09 21:52 |只看该作者
原帖由 dingning239 于 2009-8-7 16:16 发表
当然有办法了,写个函数来实现,你可以使用ascii这个函数来判断哪些字符不是数值的

select ascii(0) from dual;

48

select ascii(9) from dual;

57

如果ascii不在48-57 之间,那么就是非数字字 ...

LZ应该是想直接提示是哪列不适合了

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
7 [报告]
发表于 2009-08-09 21:53 |只看该作者
原帖由 dingning239 于 2009-8-7 16:16 发表
当然有办法了,写个函数来实现,你可以使用ascii这个函数来判断哪些字符不是数值的

select ascii(0) from dual;

48

select ascii(9) from dual;

57

如果ascii不在48-57 之间,那么就是非数字字 ...

LZ应该是想直接提示是哪列不适合了

论坛徽章:
0
8 [报告]
发表于 2009-08-09 22:33 |只看该作者
楼主是在写一个程序,将文本中的记录导入到数据库中么?
可以这么搞:
1 在插入前检查一下需要插入的字段是否为数字
2 一个字段一个字段插入,如果有错,则可知道那个字段错了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP