Thursday, May 13, 2010

proc_dlmt

PROCEDURE proc_dlmt (qry VARCHAR2, filename VARCHAR2, nr OUT NUMBER)
IS
cursor_number exec_sql.curstype;
ln$empno NUMBER;
lc$name VARCHAR2 (30);
ln$count NUMBER;
BEGIN
cursor_number := exec_sql.open_cursor;
exec_sql.parse (cursor_number, qry);
ln$count := exec_sql.EXECUTE (cursor_number);
exec_sql.close_cursor (cursor_number);

SELECT dump_csv (qry, filename)
INTO nr
FROM DUAL;

FOR fcnt IN 0 .. TRUNC (nr / 65000)
LOOP
web.show_document ('/forms/webutil/' || filename || fcnt || '.xls',
'_blank'
);
END LOOP;
EXCEPTION
WHEN exec_sql.invalid_connection
THEN
alert_msg ('Invalid Connection error.', 'S');
WHEN exec_sql.package_error
THEN
alert_msg (SUBSTR (exec_sql.last_error_mesg,
INSTR (exec_sql.last_error_mesg, ':') + 2
),
'S'
);

IF exec_sql.is_open (cursor_number)
THEN
exec_sql.close_cursor (cursor_number);
alert_msg ('Exception - Cleaned up Cursor', 'N');
END IF;
END;

No comments:

Post a Comment