我有一个字段,在某些情况下需要从一个表中选择,在其他情况下需要从另一个表中选择。我试图使用宏变量来解析从哪个表中选择字段,但不断出现错误。
在下面的场景中,变量 TableValue 的值为“abc”,基于我程序中先前确定的条件。该变量在 SELECT 语句中使用来引用具有该别名的表:
SELECT
&TableValue..type as ITEM_TYPE
FROM
rca.items abc
left join rca2.items abcd on rca2.ItemNum = rca.ItemNum
我在解析上述变量时遇到问题,收到以下错误:
ORACLE prepare error: ORA-22806: not an object or REF. SQL statement: SELECT
'abc'.type
任何帮助将不胜感激,我怀疑它与单引号有关,但无法替换等。谢谢!
如果宏变量 TableValue 的值中包含引号:
'abc'
答案是删除引号。要调试此问题,请让程序在没有宏变量的情况下运行:
然后,在其工作之后,替换
abc
为将解析为 的宏变量引用abc
。