ORA-12704: 无法转换字符数据
我正在尝试跨远程数据库在 Oracle 中执行 SET 操作。 我正在使用 MINUS 运算符。
我的查询看起来像这样。
SELECT NAME FROM localdb MINUS SELECT NAME from remotedb@dblink
这会引发 ORA-12704 错误。我了解这需要某种转换或 NLS 设置。
接下来我应该尝试什么?
I am trying to perform SET operations in Oracle across remote databases.
I am using the MINUS operator.
My query looks something like this.
SELECT NAME FROM localdb MINUS SELECT NAME from remotedb@dblink
This is throwing up a ORA-12704 error. I understand this warrants some kind of conversion or a NLS Setting.
What should I try next?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
两个
name
列存储在不同的字符集中。这可能是因为它们的类型定义,也可能是因为两个数据库使用不同的字符集。您可以通过将字段从远程数据库显式转换为本地数据库的字符集来解决此问题。试试这个:
The two
name
columns are stored in different characters sets. This could be because of their type definitions, or it could be because the two databases are using different character sets.You might be able to get around this by explicitly converting the field from the remote database to the character set of the local one. Try this:
这表明这两个表中 NAME 列的类型不同。
确保remotedb 表中的NAME 列与localdb 表中的NAME 完全相同相同类型。当您使用 MINUS 运算符时,它是强制性的。
It seams the types of NAME column in those 2 tables are different.
Make sure the NAME column in the remotedb table is exactly the same type as the NAME in localdb table. It is mandatory when you use a MINUS operator.