명령 줄 매개 변수를 배열로 읽는 ksh 스크립트를 작성하고 DML 문을 작성하여 oracle 데이터베이스에 레코드를 삽입해야한다는 요구 사항이 있습니다. 이 작업을 위해 아래 스크립트를 작성했습니다. 그러나 스크립트를 호출하는 사용자에게는 스크립트를 실행해야하는 디렉토리에 쓸 수있는 권한이 없습니다. 그래서, 루프 내에서 sqlplus에 여러번 연결하지 않고 데이터베이스에 여러 개의 삽입 작업을 수행 할 수있는 방법이 있습니까? 다음과 같이 임시 SQL 파일을 만들지 않으시겠습니까? 어떤 아이디어든지 높게 평가된다. 미리 감사드립니다!루프에있는 파일에 쓰지 않고 sqlplus에 한 번만 연결하십시오.
i=0
while ((i<$src_tbl_cnt))
do
echo "insert into temp_table values ('${src_tbl_arr[$i]}', ${ins_row_arr[$i]}, ${rej_row_arr[$i]});" >> temp_scrpt.sql
((i+=1))
done
echo "commit; disc; quit" >> temp_scrpt.sql
sqlplus user/[email protected] @ temp_scrpt.sql
죄송합니다 파일로. – user3221849