アプリ版:「スタンプのみでお礼する」機能のリリースについて

PLSQLについて
時間がきたら動くようなバッチファイルを作成したいのですが、
ソースコードを書く上でわからないあります。
下記は作成したソースコードですが
変数curA_recのデータ型はcurAのROWTYPEになります。

【質問1】dbms_outputの箇所を変更して抜き出したレコードをTAB区切りのtxt形式で出力する際の具体的なステートメントがわかりません。
【質問2】このファイルを任意のディレクトリにおいて時間がきたらファイルを実行するようにしたいのですがデータベース接続のためのConnect文を記述する箇所は一番上のset serveroutputの下に記述していいのでしょうか?
どなたか詳しい方お願いします。

<ソース>
set serveroutput on

declare
cursor curA is <SQL文>

curA_rec curA%ROWTYPE;

BEGIN
open curA;

LOOP

fetch curA INTO curA_rec;
exit when curA%NOTFOUND;
dbms_output.put_line(curA_rec.伝票番号||'
'||curA_rec.伝票日付||'
'||curA_rec.出荷先店番||'
'||curA_rec.ブランド品番||'
'||curA_rec.JANコード||'
'||curA_rec.出荷数量||'
'||curA_rec.商品単価||'
'||curA_rec.商品名||'
'||curA_rec.カラー名||'
'||curA_rec.サイズ名||'
'||curA_rec.ブランド||'
'||curA_rec.サブブランド||'
'||curA_rec.大分類||'
'||curA_rec.中分類||'
'||curA_rec.小分類||'
'||curA_rec.カラー||'
'||curA_rec.サイズ);
END LOOP;
CLOSE curA;
END;

A 回答 (3件)

> set Colsep を指定するときに''の中でTABを押すと出力されるファイルもTAB区切りになるのでしょうか?



Yes


> また、出力ファイルの最後に「~行選択されました。」の文字は消すことは出来ないのでしょうか?

こちらをどうぞ。

http://oracle.se-free.com/utl/C1_csv.html
    • good
    • 0

【質問1】


タブはchr(9)で表現できるので
curA_rec.伝票番号||chr(9)||curA_rec.伝票日付||・・・
とすればいいのではないでしょうか。

【質問2】
set serveroutput on
はDBに接続していないとできないですよね?
この無名ブロックとは別のsqlファイルを用意し
その中でconnectして、無名ブロックのsqlファイルを実行する、とすればいいのではないでしょうか。

No.1さんが示してくれた方法の方が簡単だとは思います。
    • good
    • 0
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
SPOOLを使って出力することができたのですが
set Colsep を指定するときに''の中でTABを押すと出力されるファイルもTAB区切りになるのでしょうか?
また、出力ファイルの最後に「~行選択されました。」の文字は消すことは出来ないのでしょうか?
お手数ですが教えていただければ幸いです。

お礼日時:2010/10/28 11:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!