0
私は35個のテーブルのsqlクエリを実行し、出力をcsvファイルに持っていくUnixシェルスクリプトを作成します。私が思ったのは、配列を作成し、forループを使用して、テーブル名をSQLクエリに渡します。サンプルとして、SQLクエリで変数としてテーブル名を渡そうとしています。 私はテーブル名を渡しているだけでなく、私が作成したCSVのSQLクエリです。 しかし、動作していません。お手数です...Unixシェルスクリプト内のsqlクエリでテーブル名を変数として渡すSolaris
table_nm="PRODUCT"
sqlplus -s admin/[email protected] <<EOF
SPOOL /data2/interfaces/scripts/`$table_nm`.CSV;
set colsep ,
set feedback off
set trimspool on
set linesize 5000
set pagesize 1000
set heading on
set term off
set verify off
set timing off
set echo off
select * from `$table_nm` where PROD_ID = '1618' AND PROD_SER_NUM = 21 ;
spool off;
EXIT;
EOF
echo "end"
変数を囲むバッククォートではなく、dbl-quotesです。 'SPOOL/data2/interfaces/scripts /" $ table_nm ".CSV;'を参照してください。うーん、あなたがここの文書の中にいるように、あなたはdbl-quotesを必要としなくてもよい(あるいは問題を引き起こすかもしれない。がんばろう。 – shellter