Oracle表列包含$

时间:2019-05-31 15:24:52

标签: oracle

我当前正在将AIX迁移到Linux。 Oracle脚本的列名中包含$。在获取shell脚本时,我将转义字符设置为$,但它不起作用。查询如下:

Set escape $

Select c.logoff$time from temp c;

从shell脚本运行时,我得到“ c.logoff无效标识符”。

我该如何解决?

1 个答案:

答案 0 :(得分:6)

这不是SQL * Plus(我假设是您的客户)问题,所以set escape并没有做任何事情-这是为了逃避SQL * Plus试图解释的事情-see the docs

这是外壳问题/功能。 $time部分被视为shell变量,并且该变量不存在,因此最终表名称中没有该变量。您可以在外壳层对此进行转义,请参考\$time;例如如果您使用的是Heredoc:

sqlplus -s -l usr/pass@db <<EOF

select c.logoff\$time from temp c;

EOF