将 varchar 值 'HTM' 转换为数据类型为 int 的列时发生语法错误。

[复制链接]
查看11 | 回复3 | 2010-12-20 10:41:38 | 显示全部楼层 |阅读模式
INSERT INTO Mmsmmg..EC_News

(title, content, author,time2,E_typeid, Original)
SELECT title, content, authors, time1,doctype, source
FROM cn_mysite_DATA..doc
运行时出现“将 varchar 值 'HTM' 转换为数据类型为 int 的列时发生语法错误。”
其中time是时间值,不知道如何改,请高手帮助解决!

回复

使用道具 举报

千问 | 2010-12-20 10:41:38 | 显示全部楼层
如果数据库是10g或以上的版本可以用sql正则表达式和判断字串索引函数联合去掉非数值的字符,然后把满足条件的数值插入到表中。 --补充sql:insert into new_table(field1,field2) select field1,to_number(regexp_replace(regexp_replace(laJE,'[^[:digit:]\.]+',''),'[\.]+','',REGEXP_INSTR(regexp_replace(laJE,'[^[:digit:]\.]+',''),'\.')+1)) from table_bak;说明:该方法可以提取出field2中的第一个小数点和所有的数值字符作为最终的结果。测
回复

使用道具 举报

千问 | 2010-12-20 10:41:38 | 显示全部楼层
E_typeid和doctype对不上,一个是数字,一个是文本型。
回复

使用道具 举报

千问 | 2010-12-20 10:41:38 | 显示全部楼层
文本类型是不能转成数字的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行