以下のシェルスクリプトを使用して、特定のテーブルの2つの列(フィールド)を次のようにcsvファイルにスプールします。
#!/usr/bin/bash
FILE="emp.csv"
sqlplus -s scott/tiger@XE <<EOF
SET PAGESIZE 50000
SET COLSEP ","
SET LINESIZE 200
SET FEEDBACK OFF
SPOOL $FILE
SELECT name,city FROM EMP;
SPOOL OFF
EXIT
EOF
しかし、結果のcsvファイルが大きすぎて私のエディタで開くことができません。レコードを小さくして開くことができる複数のcsvファイルに分割する方法はありますか?特定の値を超えると、データが別のファイルにスプールされるようにいくつかのカウンタを使用できますか?
答え1
cat emp.csv | split -l 6000
この場合、6000行の長さの小さなファイルの束が生成されます。デフォルトはxaa
等xab
ですが変更できます。のマニュアルページを参照してくださいsplit
。