sql - 简单的 sql 脚本执行失败
问题描述
下面是一个示例 bash 脚本,当我执行 bash 时它似乎出错了。sql 独立工作,但奇怪的是在脚本中工作。
请指教
- JOB_RUNNING='SELECT count(1) from gv b,gv a WHERE b.paddr = a.addr AND type='''USER''' AND b.status='''ACTIVE''' AND b.program=' ''瘦客户端''' * 第 1 行出现错误:ORA-00942:表或视图不存在'
JOB_RUNNING=`sqlplus -s "/ as sysdba" << EOF
SET FEEDBACK OFF;
SET HEADING OFF;
SELECT count(1) from gv\$session b,gv\$process a WHERE b.paddr = a.addr AND type='USER' AND b.status='ACTIVE' AND b.program='Thin Client';
exit;
EOF
`
解决方案
输出显示from gv b,gv a
,因此$
仍然被视为 shell 变量。
反引号内的反斜杠 (\) 以不明显的方式处理...
要么双重逃避那些:
JOB_RUNNING=`sqlplus -s "/ as sysdba" << EOF
SET FEEDBACK OFF;
SET HEADING OFF;
SELECT count(1) from gv\\$session b,gv\\$process a WHERE b.paddr = a.addr AND type='USER' AND b.status='ACTIVE' AND b.program='Thin Client';
exit;
EOF
`
或使用$()
而不是反引号:
JOB_RUNNING=$(sqlplus -s "/ as sysdba" << EOF
SET FEEDBACK OFF;
SET HEADING OFF;
SELECT count(1) from gv\$session b,gv\$process a WHERE b.paddr = a.addr AND type='USER' AND b.status='ACTIVE' AND b.program='Thin Client';
exit;
EOF
)
推荐阅读
- php - IIS 7.5、405 - 不允许用于访问此页面的 HTTP 谓词
- javascript - 如何使用 p5.js 清除部分缓冲图像
- amazon-s3 - Generate index.html for AWS S3
- javascript - 按回车键输入 1 时防止提交表单
- python - 使用 numpy 数组的维度作为 if 语句 python
- ios - UITextView自动调整大小以调整单行iOS Objective -C
- sql - 在 SQL 中汇总行
- reactjs - 如何区分 React Redux 中的输入与按钮状态变化
- homebrew - 为 /usr/local/lib 酿造医生警告
- spring-security - Spring OAuth 1.0 在 POST 的请求正文中传递凭据