我有一个在远程数据库上执行的查询:

select /*+ DRIVING_SITE(rd) */ 'test' as tst, rd.id from mytable@remotedb rd

当我执行此查询时,我得到:
ORA-22992: cannot use LOB locators selected from remote tables
mytable@remotedb中的每一列都是INTEGERVARCHAR2

如果删除'test' as tst没问题,那么静态字符串'test'似乎以某种方式被格式化为CLOB而不是我认为会的VARCHAR2

我需要将其转换为VARCHAR2吗?这似乎很奇怪...是否有更好的方法在查询中创建静态返回字符串以确保它们将成为VARCHAR2

最佳答案

我怀疑该错误与LOB无关,并且我怀疑您是对的,这是一个Oracle错误。尝试解决方法(即用较早的Oracle语法替换ANSI语法),如果可行,在升级数据库之前,您可能不得不忍受这种方法。

关于sql - 如何在SQL查询中选择静态字符串并确保其类型为VARCHAR2?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3807905/

10-11 21:16