首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLPlus单行问题

SQLPlus单行问题
EN

Stack Overflow用户
提问于 2016-05-19 19:04:06
回答 1查看 74关注 0票数 0

我继承了一些在工作负载自动化工具中不再有效的sqlplus代码。它需要被转换成一个脚本并调用,或者一个单行命令.我完全理解如何做第一个(相当基本的)。但是,如果我想转换成一行,我的想法正确吗?

代码语言:javascript
复制
sqlplus -s myID/pwd <<EOF
define start_date=$start_date;
define end_date=$end_date;
define max_depth=$max_depth;
define min_units=$min_units;
@/app/myapp/sql/forecast
EOF

若要转换为一行,是否只需:

代码语言:javascript
复制
sqlplus -s myID/pwd < define start_date=$start_date; define   end_date=$end_date; define max_depth=$max_depth; define min_units=$min_units; @/app/myapp/sql/forecast

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-20 09:33:57

假设您的一行仍然是从shell脚本运行的,对sqlplus的调用表明,您可以使用管道而不是重定向将命令传递给SQL*Plus:

代码语言:javascript
复制
printf "define start_date=$start_date\ndefine end_date=$end_date\ndefine max_depth=$max_depth\ndefine min_units=$min_units\n@/app/myapp/sql/forecast" | sqlplus -s myID/pwd

或者更容易理解,你可能不同意这样的观点:

代码语言:javascript
复制
printf "define start_date=%s\ndefine end_date=%d\ndefine max_depth=%d\ndefine min_units=%d\n@%s" $start_date $end_date $max_depth $min_units /app/myapp/sql/forecast | sqlplus -s myID/pwd

您需要中断行,而不是分号来将define客户端命令与其他命令以及@分开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37332017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档