Delete DT e DS – Oracle XML Publisher

Pessoal,

Tô passando somente pra deixar um exemplo de como deletar seus DataTemplates e DataSources (Objetos XML Publisher) quando precisar! As vezes criamos errado ou não está sendo utilizado mais, etc…

Segue:


-- Inicio
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;
-- Fim

Abs,
Junio Vitor

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *