我有一个名为objects.txt
包含表和列的文件,如下所示。
Part:1
Table_name: customer1
Column_name: account_no
Part:2
Table_name: customer2
Column_name: purchase_id
.
.
Part:n
现在,我想从文件中选择 table_name 和 column_name 作为循环中的两个变量,并将其发送到sqlplus
运行以下查询。
For tab in grep of table_name
For col in grep of column_name
Set table=$tab
Set column=$col
Set Null_check='sqlplus -s/@$oracle' ‹‹ENDOFSQL
set serveroutput on;
Select count(*) from (select $column from $table where $column is null);
Exit
ENDOFSQL
请帮助我如何在单个 for 循环迭代中循环这两个变量并发送到此 SQL 查询
答案1
像这样的东西:
function insert {
printf "Table: %s Column: %s\n" $1 $2
}
while read prefix rest
do
case $prefix in
'Table_name:')
table=$rest
;;
'Column_name:')
column=$rest
insert $table $column
;;
*)
;;
esac
done < datafile
您将其替换insert
为使用两个参数来运行 SQL 请求的函数。