我正在尝试跨远程数据库在Oracle中执行SET操作。 我正在使用MINUS运算符。
我的查询看起来像这样。
SELECT NAME FROM localdb MINUS SELECT NAME from remotedb@dblink
这会引发ORA-12704错误。我理解这保证了某种转换或NLS设置。
我接下来应该尝试什么?
答案 0 :(得分:1)
两个name
列存储在不同的字符集中。这可能是因为它们的类型定义,或者可能是因为这两个数据库使用不同的字符集。
您可以通过将字段从远程数据库显式转换为本地字符集来解决此问题。试试这个:
SELECT NAME FROM localdb MINUS SELECT TO_CHAR(NAME) from remotedb@dblink
答案 1 :(得分:0)
它接缝那两个表中NAME列的类型是不同的。
确保remotedb表中的NAME列与localdb表中的NAME完全相同相同类型。使用MINUS运算符时必须使用。