Pessoal, boa noite!
Deixo aqui uma dica para aqueles que querem facilitar a exclusão do Data Template / Data Definition referente à um Relatório XML Publisher, por exemplo.
Basta executar o script abaixo, alterando os dois parâmetros iniciais.
SET SERVEROUTPUT ON
DECLARE
-- Altere os parametros abaixo conforme sua necessidade
var_templateCode VARCHAR2(100) := 'NAME_TEMPLATE_CODE'; -- Template Code.
boo_deleteDataDef BOOLEAN := TRUE; -- True/False para excluir Data Def. associado.
BEGIN
FOR RS IN (SELECT T1.APPLICATION_SHORT_NAME TEMPLATE_APP_NAME
, T1.DATA_SOURCE_CODE
, T2.APPLICATION_SHORT_NAME DEF_APP_NAME
FROM XDO_TEMPLATES_B T1
, XDO_DS_DEFINITIONS_B T2
WHERE T1.TEMPLATE_CODE = var_templateCode
AND T1.DATA_SOURCE_CODE = T2.DATA_SOURCE_CODE) LOOP
XDO_TEMPLATES_PKG.DELETE_ROW(RS.TEMPLATE_APP_NAME, var_templateCode);
DBMS_OUTPUT.PUT_LINE('Template ' || var_templateCode || ' excluído.');
IF boo_deleteDataDef THEN
XDO_DS_DEFINITIONS_PKG.DELETE_ROW(RS.DEF_APP_NAME, RS.DATA_SOURCE_CODE);
DBMS_OUTPUT.PUT_LINE('Data Definition ' || RS.DATA_SOURCE_CODE || ' excluido.');
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Faça um COMMIT ou um ROLLBACK para finalizar a execução!');
EXCEPTION
WHEN OTHERS THEN
-- ROLLBACK;
DBMS_OUTPUT.PUT_LINE('Não é possível excluir Template XML Publisher' || var_templateCode);
DBMS_OUTPUT.PUT_LINE(substr(SQLERRM, 1, 200));
END;
Abraço,
Júnio Vitor de Paula
