ORA-12704: 无法转换字符数据

发布于 2024-09-15 10:29:37 字数 231 浏览 6 评论 0原文

我正在尝试跨远程数据库在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

年华零落成诗 2024-09-22 10:29:37

两个 name 列存储在不同的字符集中。这可能是因为它们的类型定义,也可能是因为两个数据库使用不同的字符集。

您可以通过将字段从远程数据库显式转换为本地数据库的字符集来解决此问题。试试这个:

SELECT NAME FROM localdb MINUS SELECT TO_CHAR(NAME) from remotedb@dblink

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:

SELECT NAME FROM localdb MINUS SELECT TO_CHAR(NAME) from remotedb@dblink
小红帽 2024-09-22 10:29:37

这表明这两个表中 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文