写sql遇到了一个invalid number错误
社区
基础和管理 帖子详情 写sql遇到了一个invalid number错误 sh09409 2012-04-17 09:52:29 语句select * from A,V where v.SWGLM = a.SWGLM 报invalid number
A是一个表,SWGLM是number(15)
B是一个视图
select E.SWGLM from E
union all select F.SWGLM from F
union all select to_char(G.SWGLM) from G
E.SWGLM是varchar2(32)
F.SWGLM是varchar2(32)
G.SWGLM是number(15)
我写成
select * from A,V where v.SWGLM = to_char(a.SWGLM)
select * from A,V where to_char(v.SWGLM) = to_char(a.SWGLM)
select * from A,V where to_number(v.SWGLM) = a.SWGLM
都没有用
...全文
9500 11 打赏 收藏 写sql遇到了一个invalid number错误 语句select * from A,V where v.SWGLM = a.SWGLM 报invalid number A是一个表,SWGLM是number(15) B是一个视图 select E.SWGLM from E union all select F.SWGLM from F union all select to_char(G.SWGLM) from G E.SWGLM是varchar2(32) F.SWGLM是varchar2(32) G.SWGLM是number(15) 我写成 复制链接
扫一扫 分享 转发到动态 举报 AI 作业
写回复 配置赞助广告取 消
确 定
用AI写文章 11 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 sh09409 2012-04-17 打赏举报 回复 我不能把数据过滤了。我希望以字符形式比较,就可以解决问题。转数字不适合我现在的情况。
数据是生产数据,不能改的。 啊彪123 2012-04-17 打赏举报 回复 写个方法把非数字型字符过滤即可!
create or replace function isNumber(p_in varchar2) return boolean as
i number;
begin
i:=to_number(p_in);
return true;
exception
when others then
return false;
end ; sh09409 2012-04-17 打赏举报 回复 数据是不能修改的,所以可不可以不让他转换成数字,就是以字符形式比较呢? 啊彪123 2012-04-17 打赏举报 回复 v中有不能转成数字的字符!
with t as(
select 1001 id,'1000'num,'1002 ' name from dual
union all select 1002,'1001','1003 ' from dual
union all select 1003,'1002','1004 ' from dual
union all select 1004,'1003','1005 ' from dual
)
--select a.* from t a,t b where a.id=b.num;
select a.* from t a,t b where a.id=b.name;
sh09409 2012-04-17 打赏举报 回复 没有B,写错了,对b的描述就是V yinan9 2012-04-17 打赏举报 回复 a,v的字段类型呢?和B有什么关系? sh09409 2012-04-17 打赏举报 回复 写错了。
应该V是一个视图
select E.SWGLM from E
union all select F.SWGLM from F
union all select to_char(G.SWGLM) from G
E.SWGLM是varchar2(32)
F.SWGLM是varchar2(32)
G.SWGLM是number(15) simula1314 2012-04-17 打赏举报 回复 是不是你的版本问题啊,测试了一把是正常的啊,pl/sql developer 10G 会自动转换的 啊彪123 2012-04-17 打赏举报 回复 一个是32位,一个15位,当然比较出错了 我心飞翔 2012-04-17 打赏举报 回复 问题很简单,就是存在字符串型的数据,在转换为number时,未成功转换,也就是说这个字符串不是一个有效的数字字符串。
所以这个问题,无论怎么做转换都不能解决,只能查看数据,然后修改数据。
要不就都转换成字符串,应该是没有问题的。 「已注销」 2012-04-17 打赏举报 回复 V的SWGLM是什么 SQL LOADER错误小结 如果最后一个字段是NUMBER类型,换行符会被当作数值的一部分,导致解析错误。解决方法是在控制文件中添加`INTEGER`或`TERMINATED BY WHITESPACE`。例如: ```sql Record 1: Rejected - Error on table DM.TM_WGGHF_... Oracle ORA-01722: invalid number 错误分析 ORA-01722: invalid number错误分析 java.sql.SQLException: Io 异常: Invalid number format for port number java.sql.SQLException: Io 异常: Invalid number format for port number java.sql.SQLException: Invalid number format for port number 端口 + 1521 01-sql invalid number 问题:俩个项目一样的代码一样的sql,其中一个查询报错,本地和测试环境没有问题,生产有问题。 错误日志: ### SQL: SELECT count(*) FROM xx t LEFT JOIN tes1 C2 ON t.aa= C2.aa ### Cause: java.sql....
基础和管理
17,382
社区成员
95,118
社区内容
发帖 与我相关 我的任务 基础和管理 Oracle 基础和管理 复制链接
扫一扫 分享 确定 社区描述 Oracle 基础和管理 社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告 试试用AI创作助手写篇文章吧
+ 用AI写文章
最新发布
-
如何在諾基亞 Lumia 830 上更新 Android 或其操作系統
2025-07-15 20:24:27 -
首页> 风月场中是什么动物生肖
2025-06-18 18:05:40 -
780T机箱的性能与功能分析(高效散热、宽敞空间、个性设计,780T机箱为您带来极致体验)
2025-07-05 05:10:59 -
红警ol服务器什么时候更新
2025-06-12 02:15:19 -
java静态方法的调用方法_Java静态方法和实例方法
2025-05-10 21:43:56 -
2022世界杯巴西赛程时间最新表 内马尔赛程安排
2025-05-03 15:39:47 -
《塞尔达传说:旷野之息》塞尔达在哪个平台能玩?
2025-06-06 17:47:44 -
“癸玺”“瘖兵”登场,《藏海传》引发忧虑,真的是封建迷信吗
2025-06-22 23:53:31 -
荣耀手机截图保存在哪个文件夹?在哪里截图和找到图片?
2025-05-17 10:13:06 -
世预赛-马内点球制胜 塞内加尔淘汰埃及进世界杯
2025-05-06 06:38:01