我必须在TABLE_A和TABLE_B中检查/加入TABLE_A.name,如TABle_B.name。
我有类似的算法,但主要问题我不能处理不同的编码。
因为桌子完成了。它是从不同的excels导入的,csv-s,java上传简单的oracle插入等。
其中一些是&ä&đ&>yc&äđ
编码所以我无法处理ßruce
=? Bruce
Ryán
=? Ryan
等,但更糟。
我在其他主题中找到了一些ASCII函数和其他函数,但我无法管理它。
所以,如果你在oracle sql开发人员或者java中有一些神奇的技巧 谢谢。
答案 0 :(得分:1)
如果您可以在导入TABLE_A和TABLE_B期间找出已使用的字符集,则可以使用CONVERT
函数转换值:
UPDATE table_a SET name = CONVERT(name, 'WE8ISO8859P1', 'AL32UTF8');
UPDATE table_b SET name = CONVERT(name, 'WE8MSWIN', 'AL32UTF8');
转换后,你应该可以毫无问题地加入(或检查?)两个表。
如果您无法更改数据,则可以动态进行转换,例如:
SELECT *
FROM table_a JOIN table_b
ON CONVERT(table_a.name, 'WE8ISO8859P1', 'AL32UTF8') =
CONVERT(table_b.name, 'WE8ISO8859P1', 'AL32UTF8');
请参阅文档以供参考:http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions027.htm