Stored procedures 使用存储过程将整个查询导出到文件
需要关于在db2中使用存储过程获取文本文件查询的帮助。我对这个很陌生,所以请帮忙 到目前为止,我能够创建一个文件并在创建的文件中获取数据。但是我希望在文件中有一个完整的查询,而不是一列数据 我创建了这样一个存储过程Stored procedures 使用存储过程将整个查询导出到文件,stored-procedures,triggers,db2,Stored Procedures,Triggers,Db2,需要关于在db2中使用存储过程获取文本文件查询的帮助。我对这个很陌生,所以请帮忙 到目前为止,我能够创建一个文件并在创建的文件中获取数据。但是我希望在文件中有一个完整的查询,而不是一列数据 我创建了这样一个存储过程 CREATE or replace PROCEDURE SCOPEMASTERP(my_statement varchar(10000)) AUTONOMOUS BEGIN DECLARE v_filehandle UTL_FILE.FILE_TYPE; DECLAR
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)
我需要做什么改变,请帮忙。提前谢谢 DB2中没有提供正在执行的SQL语句的特殊寄存器/变量等,因此您所要求的是不可能的。还需要其他问题吗?如果没有,请移除。