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 요청을 실행하기 위해 두 개의 매개변수를 사용하는 함수로 바꿉니다 .