MINI MINI MANI MO
<?xml version="1.0"?>
<!--
Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
NAME
kuaqtab.xsl
DESCRIPTION
Convert sxml AQ_QUEUE_TABLE diff document to ALTER_XML document
MODIFIED MM/DD/YY
sdavidso 02/09/17 - bug25440009 handle user name with apostrophe
sogugupt 12/05/14 - Bug 18596422: illegal name attribute value in xsl
lbarton 01/13/10 - bug 8796742: translatable error messages
lbarton 07/10/08 - bug 5709159: SQL_LIST_ITEM subelements
htseng 01/08/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="kuacomm.xsl"/>
<!-- Templates -->
<xsl:template match="sxml:AQ_QUEUE_TABLE">
<!-- *******************************************************************
Template: AQ_QUEUE_TABLE - top-level template for AQ_QUEUE_TABLE.
******************************************************************** -->
<xsl:element name="ALTER_XML" namespace="http://xmlns.oracle.com/ku">
<xsl:attribute name="version">1.0</xsl:attribute>
<!-- Object type -->
<xsl:element name="OBJECT_TYPE">AQ_QUEUE_TABLE</xsl:element>
<!-- Display schema.objname for CoMPareObjects 1 and 2 -->
<xsl:call-template name="CmpObjects">
<xsl:with-param name="ParentNode" select="."/>
</xsl:call-template>
<!-- Alter list -->
<xsl:element name="ALTER_LIST">
<!-- NOT_ALTERABLE cases -->
<xsl:if test="sxml:SORT_LIST/@value1 or sxml:SORT_LIST/@src">
<xsl:call-template name="CommonNotAlterable">
<xsl:with-param name="XpathNode" select="./sxml:SORT_LIST"/>
<xsl:with-param name="NameNode" select="sxml:NAME"/>
<xsl:with-param name="Reason">AQ_QUEUE_TABLE_ATTRIBUTE</xsl:with-param>
<xsl:with-param name="Message" select="$MSG_AQ_QUEUE_TABLE_ATTRIBUTE"/>
<xsl:with-param name="Subst">SORT_LIST</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="sxml:MULTIPLE_CONSUMERS/@value1 or sxml:MULTIPLE_CONSUMERS/@src">
<xsl:call-template name="CommonNotAlterable">
<xsl:with-param name="XpathNode" select="./sxml:MULTIPLE_CONSUMERS"/>
<xsl:with-param name="NameNode" select="sxml:NAME"/>
<xsl:with-param name="Reason">AQ_QUEUE_TABLE_ATTRIBUTE</xsl:with-param>
<xsl:with-param name="Message" select="$MSG_AQ_QUEUE_TABLE_ATTRIBUTE"/>
<xsl:with-param name="Subst">MULTIPLE_CONSUMERS</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="sxml:COMPATIBLE/@value1 or sxml:COMPATIBLE/@src">
<xsl:call-template name="CommonNotAlterable">
<xsl:with-param name="XpathNode" select="./sxml:COMPATIBLE"/>
<xsl:with-param name="NameNode" select="sxml:NAME"/>
<xsl:with-param name="Reason">AQ_QUEUE_TABLE_ATTRIBUTE</xsl:with-param>
<xsl:with-param name="Message" select="$MSG_AQ_QUEUE_TABLE_ATTRIBUTE"/>
<xsl:with-param name="Subst">COMPATIBLE</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="sxml:COMMENT/@value1 or sxml:COMMENT/@src='2' or
sxml:PRIMARY_INSTANCE/@value1 or sxml:PRIMARY_INSTANCE/@src='2' or
sxml:SECONDARY_INSTANCE/@value1 or sxml:SECONDARY_INSTANCE/@src='2'">
<xsl:element name="ALTER_LIST_ITEM">
<xsl:call-template name="AlterQTab">
<xsl:with-param name="ParentNode" select="."/>
<xsl:with-param name="Action">PARSE</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="AlterQTab">
<xsl:with-param name="ParentNode" select="."/>
<xsl:with-param name="Action">SQL</xsl:with-param>
</xsl:call-template>
</xsl:element>
</xsl:if>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template name="AlterQTab">
<xsl:param name="ParentNode" select="''"/>
<xsl:param name="Action" select="''"/>
<!-- *******************************************************************
Template: AlterQTab
Parameters:
ParentNode -
Action - PARSE or SQL
******************************************************************** -->
<xsl:choose>
<xsl:when test="$Action='PARSE' and ($PRS_NAME=1 or
$PRS_CLAUSE_TYPE=1 or
$PRS_XPATH=1)">
<xsl:element name="PARSE_LIST">
<xsl:call-template name="AddXPathParseItem">
<xsl:with-param name="Node" select="$ParentNode"/>
</xsl:call-template>
<xsl:call-template name="AddParseItem">
<xsl:with-param name="ParseIt" select="$PRS_NAME"/>
<xsl:with-param name="Item">NAME</xsl:with-param>
<xsl:with-param name="Value1" select="$ParentNode/sxml:NAME"/>
</xsl:call-template>
<xsl:call-template name="AddParseItem">
<xsl:with-param name="ParseIt" select="$PRS_CLAUSE_TYPE"/>
<xsl:with-param name="Item">CLAUSE_TYPE</xsl:with-param>
<xsl:with-param name="Value1">AQ_QUEUE_TABLE</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="AddParseItem">
<xsl:with-param name="ParseIt" select="$PRS_COLUMN_ATTRIBUTE"/>
<xsl:with-param name="Item">AQ_QUEUE_TABLE_PARAMETERS</xsl:with-param>
<xsl:with-param name="Value1">
<xsl:if test="$ParentNode/sxml:COMMENT/@value1 or $ParentNode/sxml:COMMENT/@src='2'">COMMENT</xsl:if>
</xsl:with-param>
<xsl:with-param name="Value2">
<xsl:if test="$ParentNode/sxml:PRIMARY_INSTANCE/@value1 or $ParentNode/sxml:PRIMARY_INSTANCE/@src='2'">PRIMARY_INSTANCE</xsl:if>
</xsl:with-param>
<xsl:with-param name="Value3">
<xsl:if test="$ParentNode/sxml:SECONDARY_INSTANCE/@value1 or $ParentNode/sxml:SECONDARY_INSTANCE/@src='2'">SECONDARY_INSTANCE</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="$Action='SQL'">
<xsl:element name="SQL_LIST">
<xsl:element name="SQL_LIST_ITEM">
<xsl:element name="TEXT">
<xsl:text> BEGIN DBMS_AQADM.ALTER_QUEUE_TABLE(</xsl:text>
<xsl:text>QUEUE_TABLE => '</xsl:text>
<xsl:variable name="Nam">
<xsl:call-template name="SchemaName">
<xsl:with-param name="ParentNode" select="$ParentNode"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="EnQuote">
<xsl:with-param name="String" select="$Nam"/>
</xsl:call-template>
<xsl:text>'</xsl:text>
<xsl:if test="$ParentNode/sxml:COMMENT/@value1 or $ParentNode/sxml:COMMENT/@src='2'">
<xsl:text>, </xsl:text>
<xsl:text>COMMENT => '</xsl:text>
<xsl:call-template name="EnQuote">
<xsl:with-param name="String" select="$ParentNode/sxml:COMMENT"/>
</xsl:call-template>
<xsl:text>'</xsl:text>
</xsl:if>
<xsl:if test="$ParentNode/sxml:PRIMARY_INSTANCE/@value1 or $ParentNode/sxml:PRIMARY_INSTANCE/@src='2'">
<xsl:text>, </xsl:text>
<xsl:text>PRIMARY_INSTANCE => </xsl:text>
<xsl:value-of select="$ParentNode/sxml:PRIMARY_INSTANCE"/>
</xsl:if>
<xsl:if test="$ParentNode/sxml:SECONDARY_INSTANCE/@value1 or $ParentNode/sxml:SECONDARY_INSTANCE/@src='2'">
<xsl:text>, </xsl:text>
<xsl:text>SECONDARY_INSTANCE => </xsl:text>
<xsl:value-of select="$ParentNode/sxml:SECONDARY_INSTANCE"/>
</xsl:if>
<xsl:text> ); </xsl:text>
<xsl:text>END;</xsl:text>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
OHA YOOOO