【发布时间】:2017-02-08 06:24:27
【问题描述】:
在使用 db2 中的存储过程获取文本文件查询方面需要帮助。我对此很陌生,所以请帮忙。
到目前为止,我能够创建一个文件并在创建的文件中获取数据。但我想要文件中的完整查询而不是单列数据。
我已经创建了一个这样的存储过程
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
我在触发器中创建了一个触发器,我正在调用存储过程
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 into SERVEIT.SCOPENAMEMASTER (SCOPENAMEID) values (1013)
GO
我正在获取在“D”驱动器中创建的文件
但我需要文件中的完整查询而不是仅仅得到 1013
Insert into SERVEIT.SCOPENAMEMASTER (SCOPENAMEID) values (1013)
我需要做些什么改变请帮忙。提前致谢!!
【问题讨论】:
-
您的其他问题还需要吗?如果没有,请删除。 stackoverflow.com/questions/42089402/…
标签: stored-procedures triggers db2