先日、shellからsql実行して結果をcsv出力したいですと質問した者です
#!/bin/bash filename=test.csv cat $filename | while read line do name=$(echo "$line" | cut -d',' -f1) sql=$(echo "$line" | cut -d',' -f2-) sqlplus -s ユーザ名/パスワード << EOF set colsep','; set underline off; SPOOL /home/oracle/gomi/$name.csv CREATE $sql SPOOL OFF exit EOF cat gomi/$name.csv | sed 1d | sed2d > kekka/$name.csv
色々とサイト等を参考にして考え上記のシェルを作成しました
実行したsqlの結果をカンマ区切りにしてcsv出力してそこから更に不要な空白等を
消してkekkaディレクトリにcsv出力するという感じになっています
これで
id, name, password
1 田中, test
という風にcsv出力できたのですが、カラム名が途中で途切れて困っています
具体的には
id, name, pass
1, 田中, test
上記のようにカラム名が"password"のはずが"pass"までしか表示されない状態です
調べてみると SQL*PLUSの表示幅は自動的に決定されカラムヘッダは勝手に捨てられるとのことでした
col カラム名 format a数値 で対策できるとあったのですが、
これ以外の解決方法はないのでしょうか?

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/19 00:40