Teradata 从Unicode字符集更新具有拉丁字符集的表
我正在尝试从源表(字符集为unicode)中使用拉丁字符集(在我的目标中)更新一个表。 我得到了一个类似“字符串包含不可翻译字符”的错误。 然后,我删除了表格并将字符集更改为拉丁语,但在该表格中重新插入数据时出现了相同的错误 在这种情况下我能做什么? 下面是我的更新Teradata 从Unicode字符集更新具有拉丁字符集的表,teradata,Teradata,我正在尝试从源表(字符集为unicode)中使用拉丁字符集(在我的目标中)更新一个表。 我得到了一个类似“字符串包含不可翻译字符”的错误。 然后,我删除了表格并将字符集更改为拉丁语,但在该表格中重新插入数据时出现了相同的错误 在这种情况下我能做什么? 下面是我的更新 update AM1 from DB1.AM_7541 AM1, (sel distinct TRIM(SB.BUILDING_NAME) NEID, trim( leading '0' from sb.MAN) LCDMN
update AM1 from DB1.AM_7541 AM1,
(sel
distinct TRIM(SB.BUILDING_NAME) NEID,
trim( leading '0' from sb.MAN) LCDMNO,
AM.Netw_equip,
LAST_TRANSACTION_DATE,
DISCONNECT_DATE,
SEQUENCE_NUMBER
from DB1.PLTL SB
inner join DB1.AM_7541 AM
on trim( leading '0' from sb.MAN)=AM.AM_NUM
where (SB.LAST_TRANSACTION_DATE,trim(sb.MAN),SB.SEQUENCE_NUMBER)
in ( sel max(LAST_TRANSACTION_DATE),trim(MAN) lcdmno,max(cast(SEQUENCE_NUMBER as integer))
from DB1.PLTL
where DISCONNECT_DATE ='2500-01-01 00:00:00' and trim(lcdmno) not like ''
and lcdmno is not null
group by lcdmno
)
and TRIM(SB.BUILDING_NAME) not like ''
and DISCONNECT_DATE ='2500-01-01 00:00:00'
) der
set Netw_equip=der.NEID
where AM1.AM_NUM=der.lcdmno
我的表DB1.PLTL是具有unicode字符集的源表,DB1.AM_7541具有拉丁字符集
谢谢。
Amit因为您的源代码是unicode,所以最好对这两个表都使用unicode。如果您不能这样做,您可以使用
translate
:
选择
翻译(使用UNICODE\u到\u拉丁语)
请记住,并非所有unicode字符都会转换为拉丁语,因此可能会出现错误。如果你这样做了,你可以用下面的方法把一些难看的案例陈述放在一起。但是你最好在任何地方都使用unicode。或者你可以使用
translate(使用unicode\u TO\u LATIN WITH ERROR)
将所有不可翻译的字符替换为子(替换)字符。我更喜欢使用translate\u chk
和case语句来控制用什么替换不可翻译的字符。但是翻译。。。带错误的当然也可以。我的一个字段是十进制,一个是日期时间。我也需要翻译吗?不,翻译只针对字符串数据
translate(<your latin column> USING UNICODE_TO_LATIN)