SQLPlus单行问题

时间:2016-05-19 19:04:06

标签: sqlplus

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

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

转换为一行,就像它一样简单:

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

提前致谢

1 个答案:

答案 0 :(得分:0)

假设你的一行仍在从一个shell脚本运行,调用sqlplus建议,你可以使用管道而不是重定向将命令传递给SQL * Plus:

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

或者稍微更可读,你可能不同意:

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客户端命令与@booking-search.component.ts分开。