我继承了一些在我们的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
提前致谢
答案 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
分开。