如何转义 Oracle Forms 10g varchar2 变量中的 Linux 字符串



如果我无法清楚地提出我的问题,请原谅我。

我正在尝试从Oracle Forms 10g过程执行以下Linux命令:

ls -lact --full-time /etc |awk 'END {print $6,$7,$8}'

在此过程中,我有以下内容:

command := ' ls -lact --full-time /etc |awk 'END {print $6,$7,$8}  ';

当然,变量command是事先声明的。

我得到的错误是这样的:

在预期以下情况之一时遇到符号"\">

我将不胜感激为解决这个问题提供的任何援助。

您可以通过将字符串值中的单引号加倍来转义它们:

command := 'ls -lact --full-time /etc |awk ''END {print $6,$7,$8}''';

或者更干净一点,因为您不必修改原始文本(假设表单支持这一点!?(使用替代引用机制:

command := q'[ls -lact --full-time /etc |awk 'END {print $6,$7,$8}']';

在这里,我使用[]作为分隔符,但它们可以是实际字符串中未出现的任何字符:

如果开仓quote_delimiter[{<(之一,则开盘quote_delimiter必须是对应的]}>)。在所有其他情况下,开始和结束quote_delimiter必须为同一字符。

最新更新