sqlplus를 사용하여 쿼리를 실행한 후 bash 스크립트가 계속되지 않습니다.

sqlplus를 사용하여 쿼리를 실행한 후 bash 스크립트가 계속되지 않습니다.

여기에서는 sqlplus를 사용하여 일반 쿼리를 실행하고 결과를 CSV 파일로 덤프하려고 합니다. 그런 다음 해야 할 또 다른 작업이 있습니다. 내가 직면한 문제는 sqlplus 쿼리를 실행한 후 내 스크립트를 계속할 수 없다는 것입니다. 결과만 보고 결과만 볼 수 있습니다. 출력을 csv 파일로 덤프하지만 계속되지 않으며 결과를 보지 않고 데이터를 덤프하는 방법을 모르겠습니다.

#!/bin/bash

cd /dir/test_dir

    sqlplus -s test/test <<EOF
    set colsep ,
    set underline off,
    set headsep off,
    set feedback off,
    set long 99999,
    set linesize 32767,
    set trimspool on,
    spool report(date +%Y-%m-%d).csv
    select a.s, a.d, a.t, a.ww, a.tt from test a;
    exit;
    EOF
cd ../

mkdir test/
.
.
.

답변1

이 줄 EOF에는 다음이 포함됩니다.선행 공백여기에서 로 시작하는 문서는 종료되지 않습니다 <<EOF. EOF선행 공백 없이 사용하세요 . 바꾸다

    EOF

당신은 사용해야합니다

EOF

또는 리디렉션을 통해 줄을 변경한 sqlplus -s test/test <<-EOF다음 탭 들여쓰기를 사용하세요.

리디렉션 연산자가 인 경우 <<-입력 줄과 구분 기호가 포함된 줄에서 모든 선행 탭 문자가 제거됩니다. 이를 통해 쉘 스크립트의 문서를 자연스럽게 들여쓰기할 수 있습니다.

(원천)

관련 정보