Oracle表列包含$

0 oracle

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

Set escape $

Select c.logoff$time from temp c;
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能解决这个问题?

Ale*_*ole 6

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

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

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

select c.logoff\$time from temp c;

EOF
Run Code Online (Sandbox Code Playgroud)