1 问题:
在插入数据库时,oracle报错,说插入“无效字符”
仔细检查了一下才发现原来是
使用merger语句的时候,将一个表中的number类型的字段插入另一个表的varchar的类型的字段中。
2 解决:
于是我做了一个转换,将number类型的转成verchar类型的
merge into zt_test tt1
using ip tt
on (tt1.info_1 = cast(tt.id as varchar(20)))
when matched then
update
set tt1.info = tt.ip,
tt1.info_2 = tt.mask
when not matched then
insert
values
(
tt.id,
tt.ip,
tt.mask)
这里使用的cast函数。cast(tt.id as varchar(20))是将表中的id从number转成20位的varchar。