首页 > 解决方案 > 在 spool 中打印输出,并在不同的变量中使用相同的输出

问题描述

下面我试图打印存储在input.lst

我需要在 while 循环中使用上述这些变量。

SPOOL input.lst
sqlplus -s ${DB_STRING} << EOF

select a.poid_id0,a.Account_obj_id0, b.BILL_INFO_ID,b.PAYINFO_OBJ_ID0,b.poid_id0
from ACCT_IBAN_ASSOCIATION_T a, billinfo_t b
where a.ACCOUNT_OBJ_ID0 = b.ACCOUNT_OBJ_ID0
and b.BILL_INFO_ID !='Account Bill';

SPOOL OFF
EOF

标签: shellunix

解决方案


您可以尝试以下 col1、col2、col3 等应该是您的变量:

output=$(sqlplus -S ${DB_STRING} << EOF

select a.poid_id0,a.Account_obj_id0, b.BILL_INFO_ID,b.PAYINFO_OBJ_ID0,b.poid_id0
from ACCT_IBAN_ASSOCIATION_T a, billinfo_t b
where a.ACCOUNT_OBJ_ID0 = b.ACCOUNT_OBJ_ID0
and b.BILL_INFO_ID !='Account Bill';
SPOOL OFF
EOF
)
echo -e "$output" | while read col1 col2 col3 (etc..) ; do ... ; done

推荐阅读