oracle - 如何在 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}''';
或者更简洁一点,因为您不必修改原始文本(假设 Forms 支持这个!?)使用替代引用机制:
command := q'[ls -lact --full-time /etc |awk 'END {print $6,$7,$8}']';
在这里,我用作[]
分隔符,但它们可以是实际字符串中没有出现的任何字符:
如果开头的quote_delimiter是 、 、 或 之一
[
,{
那么<
结尾(
的quote_delimiter必须是对应]
的 、}
、>
或)
。在所有其他情况下,开始和结束quote_delimiter必须是相同的字符。
推荐阅读
- flutter - Flutter FlatButton is deprecated - alternative solution with width and height
- pandas - 当满足列python中的条件时删除行
- javascript - 三元运算应该返回简单的数组
- reactjs - 组件的初始渲染问题
- javascript - 使用 MongoDB 中的 GraphQL 按 ID 查找对象
- asp.net - 一段时间后 Web 缓存消失
- node.js - 将数据库和 API 数据结构化,使其在结构方面看起来完全相同
- java - Google 地图活动错误:set_timerslack_ns 写入失败:不允许操作
- javascript - POST 适用于 JQuery,但不适用于 XMLHttpRequest
- sql - 带有 CONVERT 的 WHERE 子句中带有 BETWEEN 的数据范围未过滤正确