MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/xml/xsl/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/xml/xsl/kustrigc.xsl

<?xml version="1.0"?>
<!--
 Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
NAME
    kutrigc.xsl
DESCRIPTION
    Templates for common and utility functions used by both kustrigd.xsl
    and kuatrig.xsl
NOTE
    Because these templates may be applied to SXML difference documents,
    they must be aware of the @src and @value1 attributes.
MODIFIED        MM/DD/YY
    abodge      03/31/15 - Bug 20728442: use TargetSchemaName in CM mode
    tbhukya     01/05/15 - Bug 20319428: Modify incorrect if stmt
    rapayne     05/20/14 - bug 18609821: fix COMPOUND trigger ddl as well
                           EDITIONABLE ddl.
    abodge      09/22/09 - CONSOLIDATE STYLESHEETS: Multistatement support
    lbarton     06/02/08 - bug 6767780: view trigger on nested table col
    lbarton     01/02/07 - Initial version
 -->
<xsl:stylesheet version="1.0" xmlns:sxml="http://xmlns.oracle.com/ku" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- Top level imports -->
 <xsl:import href="kuscommc.xsl"/>
 <xsl:template  name="CreTrigger">
  <!-- *******************************************************************
Template: CreTrigger
Current node: TRIGGER
  This template puts out
   - CREATE TRIGGER schema.name
******************************************************************** -->
  <xsl:text>  CREATE OR REPLACE</xsl:text>
  <xsl:if test="$VERSION>=1200000000">
   <xsl:choose>
    <xsl:when test="sxml:NONEDITIONABLE"> NONEDITIONABLE</xsl:when>
    <xsl:otherwise> EDITIONABLE</xsl:otherwise>
   </xsl:choose>
  </xsl:if>
  <xsl:text> TRIGGER </xsl:text>
   <xsl:choose>
     <xsl:when test="$CM_MODE=1">
      <xsl:call-template name="TargetSchemaName">
       <xsl:with-param name="ParentNode" select="."/>
      </xsl:call-template>
     </xsl:when>
     <xsl:otherwise>
      <xsl:call-template name="SchemaName">
       <xsl:with-param name="ParentNode" select="."/>
      </xsl:call-template>
     </xsl:otherwise>
    </xsl:choose>
  <xsl:if test="$PRETTY=1">
   <xsl:text>&#xa; </xsl:text>
  </xsl:if>
  <xsl:apply-templates select="sxml:TRIGGER_TYPE"/>
  <!-- one of the following three will match -->
  <xsl:apply-templates select="sxml:DDL_EVENT[not(@src='1')]"/>
  <xsl:apply-templates select="sxml:DML_EVENT[not(@src='1')]"/>
  <xsl:apply-templates select="sxml:DATABASE_EVENT[not(@src='1')]"/>
  <!-- when_condition -->
  <xsl:if test="sxml:WHEN_CONDITION[not(@src='1')]">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;</xsl:text>
   </xsl:if>
   <xsl:text> WHEN (</xsl:text>
   <xsl:value-of select="sxml:WHEN_CONDITION"/>
   <xsl:text>)</xsl:text>
  </xsl:if>
  <xsl:if test="sxml:PLSQL_BLOCK[not(@src='1')]">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa; </xsl:text>
   </xsl:if>
   <xsl:text> </xsl:text>
   <xsl:value-of select="sxml:PLSQL_BLOCK"/>
  </xsl:if>
  <xsl:if test="sxml:CALL_PROCEDURE[not(@src='1')]">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;</xsl:text>
   </xsl:if>
   <xsl:text> CALL </xsl:text>
   <xsl:value-of select="sxml:CALL_PROCEDURE"/>
  </xsl:if>
 </xsl:template>
 <xsl:template match="sxml:TRIGGER_TYPE">
 <!-- *******************************************************************
Template: TRIGGER_TYPE - This template puts out one of
    BEFORE
    AFTER
    INSTEAD OF
    FOR (i.e., COMPOUND triggers)
******************************************************************** -->
  <xsl:choose>
   <xsl:when test=".='BEFORE'"> BEFORE </xsl:when>
   <xsl:when test=".='AFTER'"> AFTER </xsl:when>
   <xsl:when test=".='INSTEAD_OF'"> INSTEAD OF </xsl:when>
   <xsl:when test=".='COMPOUND'"> FOR </xsl:when>
  </xsl:choose>
 </xsl:template>
 <xsl:template match="sxml:DATABASE_EVENT">
 <!-- *******************************************************************
Template: DATABASE_EVENT
******************************************************************** -->
  <xsl:apply-templates select="sxml:EVENT_LIST"/>
  <xsl:text> ON DATABASE</xsl:text>
 </xsl:template>
 <xsl:template match="sxml:DDL_EVENT">
 <!-- *******************************************************************
Template: DDL_EVENT
******************************************************************** -->
  <xsl:apply-templates select="sxml:EVENT_LIST"/>
  <xsl:apply-templates select="sxml:DATABASE[not(@src='1')]"/>
  <xsl:apply-templates select="sxml:SCHEMA[not(@src='1')]"/>
 </xsl:template>
 <xsl:template match="sxml:DML_EVENT">
 <!-- *******************************************************************
Template: DML_EVENT
******************************************************************** -->
  <xsl:apply-templates select="sxml:EVENT_LIST"/>
  <xsl:text> ON </xsl:text>
  <xsl:apply-templates select="sxml:NESTED_TABLE_COLUMN[not(@src='1')]"/>
  <xsl:call-template name="TargetSchemaName">
   <xsl:with-param name="ParentNode" select="."/>
  </xsl:call-template>
  <xsl:apply-templates select="sxml:REFERENCING"/>
 </xsl:template>
 <xsl:template match="sxml:EVENT_LIST">
 <!-- *******************************************************************
Template: EVENT_LIST
******************************************************************** -->
  <xsl:for-each select="sxml:EVENT_LIST_ITEM[not(@src='1')]">
   <xsl:value-of select="sxml:EVENT"/>
   <xsl:apply-templates select="sxml:COL_LIST"/>
   <xsl:if test="position()!=last()"> OR </xsl:if>
  </xsl:for-each>
 </xsl:template>
 <xsl:template match="sxml:COL_LIST">
 <!-- *******************************************************************
Template: COL_LIST
******************************************************************** -->
  <xsl:text> OF </xsl:text>
  <xsl:for-each select="sxml:COL_LIST_ITEM[not(@src='1')]">
   <xsl:value-of select="sxml:NAME"/>
   <xsl:if test="position()!=last()">, </xsl:if>
  </xsl:for-each>
 </xsl:template>
 <xsl:template match="sxml:DATABASE">
 <!-- *******************************************************************
Template: DATABASE
******************************************************************** -->
  <xsl:text> ON DATABASE</xsl:text>
 </xsl:template>
 <xsl:template match="sxml:SCHEMA">
 <!-- *******************************************************************
Template: SCHEMA
******************************************************************** -->
  <xsl:text> ON "</xsl:text>
  <xsl:value-of select="."/>
  <xsl:text>".SCHEMA</xsl:text>
 </xsl:template>
 <xsl:template match="sxml:NESTED_TABLE_COLUMN">
 <!-- *******************************************************************
Template: NESTED_TABLE_COLUMN
******************************************************************** -->
  <xsl:text>NESTED TABLE </xsl:text>
  <xsl:value-of select="."/>
  <xsl:text> OF </xsl:text>
 </xsl:template>
 <xsl:template match="sxml:REFERENCING">
 <!-- *******************************************************************
Template: REFERENCING
******************************************************************** -->
  <xsl:if test="$PRETTY=1">
   <xsl:text>&#xa; </xsl:text>
  </xsl:if>
  <xsl:text> REFERENCING </xsl:text>
  <xsl:if test="sxml:NEW_AS[not(@src='1')]">
   <xsl:text>NEW AS </xsl:text>
   <xsl:value-of select="sxml:NEW_AS"/>
   <xsl:text> </xsl:text>
  </xsl:if>
  <xsl:if test="sxml:OLD_AS[not(@src='1')]">
   <xsl:text>OLD AS </xsl:text>
   <xsl:value-of select="sxml:OLD_AS"/>
   <xsl:text> </xsl:text>
  </xsl:if>
  <xsl:if test="sxml:PARENT_AS[not(@src='1')]">
   <xsl:text>PARENT AS </xsl:text>
   <xsl:value-of select="sxml:PARENT_AS"/>
   <xsl:text> </xsl:text>
  </xsl:if>
  <xsl:if test="sxml:FOR_EACH_ROW[not(@src='1')]">
   <xsl:text>FOR EACH ROW</xsl:text>
  </xsl:if>
 </xsl:template>
 <xsl:template match="sxml:DISABLE">
 <!-- *******************************************************************
Template: DISABLE
******************************************************************** -->
  <xsl:choose>
   <xsl:when test="$CM_MODE=1 and $PRS_DDL=1">
    <xsl:value-of select="$PRS_DELIM"/>
    <xsl:text>C</xsl:text>
   </xsl:when>
   <xsl:otherwise>
    <xsl:text>&#xa;</xsl:text>
   </xsl:otherwise>
  </xsl:choose>
  <xsl:text>  ALTER TRIGGER </xsl:text>
  <xsl:call-template name="SchemaName">
   <xsl:with-param name="ParentNode" select=".."/>
  </xsl:call-template>
  <xsl:text> DISABLE</xsl:text>
  <xsl:if test="$SQLTERMINATOR=1">
   <xsl:text>;</xsl:text>
  </xsl:if>
 </xsl:template>
</xsl:stylesheet>

OHA YOOOO