oracle ORA-01790(错误的数据类型)用于跨数据库链接的ROWID的UNION

ruoxqz4g  于 2023-04-20  发布在  Oracle
关注(0)|答案(1)|浏览(136)
SELECT ROWID FROM DUAL
UNION ALL
SELECT ROWID FROM DUAL@OTHERDB;

给予
ORA-01790: expression must have same datatype as corresponding expression
检查版本(使用select BANNER_FULL from V$VERSION),我在两个数据库上都得到了Version 19.17.0.0.0
我知道union rowids跨dbs有点奇怪,但我们正在拆分现有应用程序,并且使用ROWID进行本地连接的视图现在跨dbs连接,导致此错误。
有什么原因和/或解决方案吗?
谢谢

3yhwsihp

3yhwsihp1#

尝试castROWID s到VARCHAR2数据类型,例如

SQL> select cast(rowid as varchar2(30)) from dual
  2  union all
  3  select cast(rowid as varchar2(30)) from dual@dbl;

CAST(ROWIDASVARCHAR2(30))
------------------------------
AAAAB0AABAAAAOhAAA
AAAAECAABAAAAgiAAA

SQL>

相关问题