2017-02-08 2 views
0

db2のストアード・プロシージャーを使用してテキスト・ファイルの照会を取得する際の助けが必要です。私はこれに非常に新しいので、助けてください。ストアード・プロシージャーを使用して照会全体をファイルにエクスポート

これまでファイルを作成し、作成したファイルにデータを取得することができました。しかし、私はファイル内の完全なクエリが1つの列のデータではありません。

私はこの

CREATE or replace PROCEDURE SCOPEMASTERP(my_statement varchar(10000)) 
AUTONOMOUS 
BEGIN 
    DECLARE v_filehandle UTL_FILE.FILE_TYPE; 
    DECLARE v_dirAlias  VARCHAR(50) DEFAULT 'mydir'; 
    DECLARE v_filename  VARCHAR(100) DEFAULT 'bluestar_transaction-'; 
    DECLARE v_format  VARCHAR(200); 
    SET v_format = '%s\n'; 

    set v_filename = concat(v_filename, VARCHAR_FORMAT(current_date, 'DD-MM-YYYY')); 
    set v_filename = concat(v_filename, '.log'); 
    CALL UTL_DIR.CREATE_OR_REPLACE_DIRECTORY('D:', '/archivelog/asd/'); 
    SET v_filehandle = UTL_FILE.FOPEN(v_dirAlias,v_filename,'a'); 
    CALL UTL_FILE.PUTF(v_filehandle,v_format, my_statement); 
    CALL DBMS_OUTPUT.PUT_LINE('Wrote to file: ' || v_filename); 
    CALL UTL_FILE.FCLOSE(v_filehandle); 
END 

のようなストアドプロシージャを作成していると私は私が

Insert into SERVEIT.SCOPENAMEMASTER (SCOPENAMEID) values (1013) 
GO 
を実行していますストアドプロシージャ

CREATE OR REPLACE TRIGGER SCOPEMASTER_Trigger 
    AFTER INSERT ON SERVEIT.SCOPENAMEMASTER 
    REFERENCING NEW AS N 
    FOR EACH ROW 
    BEGIN ATOMIC 

call SCOPEMASTERP(N.SCOPENAMEID); 
    END 

insert文を呼び出していますトリガー内でトリガーを作成しました

「D」ドライブに作成中のファイルは、

enter image description here

しかし、だけではなく、1013年を取得する私は、してください助けを行う必要がありますどのような変更

Insert into SERVEIT.SCOPENAMEMASTER (SCOPENAMEID) values (1013) 

ファイルに完全なクエリを必要とします。前もって感謝します!!

+1

その他の質問はまだ必要ですか?そうでない場合は削除します。 http://stackoverflow.com/questions/42089402/trigger-to-write-all-insert-updates-queries-to-file –

答えて

1

特別なレジスタ/変数/などはありません。実行中のSQL文を提供するDB2で利用可能なので、あなたが求めているものは不可能です。

関連する問題