0 oracle
我当前正在将AIX迁移到Linux。Oracle脚本的列名中包含$。在获取shell脚本时,我将转义字符设置为$,但它不起作用。查询如下:
Set escape $
Select c.logoff$time from temp c;
Run Code Online (Sandbox Code Playgroud)
从shell脚本运行时,我得到“ c.logoff无效标识符”。
我怎样才能解决这个问题?
这不是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)