我有一个在远程数据库上执行的查询:
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
中的每一列都是INTEGER
或VARCHAR2
。如果删除
'test' as tst
没问题,那么静态字符串'test'
似乎以某种方式被格式化为CLOB
而不是我认为会的VARCHAR2
。我需要将其转换为
VARCHAR2
吗?这似乎很奇怪...是否有更好的方法在查询中创建静态返回字符串以确保它们将成为VARCHAR2
? 最佳答案
我怀疑该错误与LOB无关,并且我怀疑您是对的,这是一个Oracle错误。尝试解决方法(即用较早的Oracle语法替换ANSI语法),如果可行,在升级数据库之前,您可能不得不忍受这种方法。
关于sql - 如何在SQL查询中选择静态字符串并确保其类型为VARCHAR2?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3807905/