前提・実現したいこと
sql文を実行して、抽出データを出力するシェルスクリプトを作成しています。
抽出も出力も成功しましたが、出力ファイルの中身に抽出データ以外のパラメータが出て困っております。
抽出データのみを出力したいときにどう設定すればよいのでしょうか?
それともスクリプトでsqlを抽出すると出てしまう仕様なのでしょうか?
発生している問題・エラーメッセージ
出力ファイルの中身
抽出データの前後にあるコメントが出ないようにしたい。
SQL*Plus: Release 12.2.0.1.0 Production on 火 11月 9 14:04:01 2021 Copyright (c) 1982, 2016, Oracle. All rights reserved. 最終正常ログイン時間: 火 11月 09 2021 13:58:08 +09:00 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production に接続されました。 SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> 2 3 4 5 6 7 8 9 10 001 00001923 008 019 014 検証機能無効化(Chrome) dummy.bmp C:\nri\infra\bat c:\nri\infra\bat\Browser_Devoff_Availability_forGC.bat 0 0 0 1 0 ~~~~~~~~~抽出データ~~~~~~~~~~ ~~~~~~~~~抽出データ~~~~~~~~~~ ~~~~~~~~~抽出データ~~~~~~~~~~ SQL> SQL> Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Productionとの接続が切断されました。
該当のソースコード
test_slct.sh
#sqlの定義 sql_ID=aaaa sql_PWD=aaa@bbb #出力ファイル outputF=/hoge/test/EXPORT_TEST.txt data_exp() { sqlplus $sql_ID/$sql_PWD << EOD whenever sqlerror exit sql.sqlcode rollback; set echo off set heading off set termout off set pause off set pagesize 0 set linesize 4000 set feedback off set trimspool on set verify off select aaaa,bbbb,cccc from test_table; exit; EOD } #データのエクスポート data_exp > $outputF
test_table
create table test_table ( aaaa NUMBER(3) NOT NULL, bbbb NUMBER(3) NOT NULL, cccc NUMBER(3) NOT NULL ) ;
試したこと
sql文だけの抽出であれば抽出データのみが出力されました。
test.slct.sql
set echo off set heading off set termout off set pause off set pagesize 0 set linesize 4000 set feedback off set trimspool on set verify off select aaaa,bbbb,cccc from test_table;
補足情報(FW/ツールのバージョンなど)
test_tableのクリエイト文間違っていましたらごめんなさい
環境:teraterm
SQL :sqlplus
回答2件
あなたの回答
tips
プレビュー