クエリによって生成されたテーブルをCSVの添付形式で出力するSQLプログラム命令を書けるかたおりましたら書いください。お願いします。
現在MyAdminを使用しクエリによって生成されたテーブルを出力しているのですが以下の条件で出力しています。
<< MyAdmin 出力条件>>
●フィールド区切り記号: ,(カンマ)
●フィールド囲み記号: ""(ダブルクォーテーション)
●フィールドのエスケープ記号: \(円マーク)
●行の終端記号: AUTO
●NULL の代替文字列: NULL
● ファイルに保存する にチェックを入れる
● ファイル名のテンプレート _TABLE_ (テンプレートを記憶させるにチェック)
● 圧縮は なし を選択
● SJIS エンコーディングへ変換する を選択
● 全角カナへ変換する にチェックを入れる
MyAdmin では以下の様な注意書きが書いてあります。
このテンプレートは strftime を使って解釈されます。そのため、時間の書式文字列を利用できます。また、次の変換も行われます。__SERVER__/サーバ名, __DB__/データベース名, __TABLE__/テーブル名 それ以外のテキストは修正されません
お時間ありましたらよろしくお願いします。
SELECT *
FROM PRODUCT_KANRI
INTO OUTFILE "product_kanri.xls"
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ですよ。[]は不要です。
ちなみに、csv形式で書き出されますので、outfileは.csvか.txtの方が良いのではないでしょうか。
Excel形式(xls)に変換したいのでしたら、PEARでSpreadsheet_Excel_Writerというパッケージがありますので、チャレンジしてみてください。
ご利用のRDBMSはMySQLですよね。
であれば、SQL文は下記のようになります。
select * from [テーブル名] into outfile "[出力CSVファイル名]" fields terminated by ',' optionally enclosed by '"';
これだと生のままのエンコードで出力されるので、制御プログラム側でShift_JISにエンコード+エスケープする必要があります。
制御プログラムはPHPをご利用ですか? であれば、mb_convert_encoding関数とaddslashes関数を使ってエンコード+エスケープできます。
ご回答ありがとうございます。試してみます。
制御はPHP,RDBMSはMySQLになります。
SELECT *
FROM PRODUCT_KANRI
INTO OUTFILE "product_kanri.xls"
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ですよ。[]は不要です。
ちなみに、csv形式で書き出されますので、outfileは.csvか.txtの方が良いのではないでしょうか。
Excel形式(xls)に変換したいのでしたら、PEARでSpreadsheet_Excel_Writerというパッケージがありますので、チャレンジしてみてください。
ありがとうございます。実行してみます。
ありがとうございます。実行してみます。