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/kusclusd.xsl

<?xml version="1.0"?>
<!--
NAME
    kusclusd.xsl
DESCRIPTION
    Convert CLUSTER (SXML) document to creation DDL.

MODIFIED        MM/DD/YY
    jjanosik    09/12/16 - Bug 24387072: Fix how collation clause is output
    tbhukya     08/04/16 - Bug 24313182: Add double quotes to collation name
    tbhukya     06/24/15 - Bug 21276592: Partitioned cluster
    tbhukya     05/31/15 - Bug 21166493: DBC support
    htseng      12/22/05 - 
    rapayne     11/02/05 - Bug 4715313: Reformat with XMLSpy
    lbarton     08/10/05 - lbarton_mddiff
    htseng      05/23/05 - 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="kuscommd.xsl"/>
 <xsl:import href="kustabld.xsl"/>
 <xsl:import href="kusstorg.xsl"/>
 <xsl:import href="kustbphd.xsl"/>
 <xsl:import href="kusindxd.xsl"/>
 <xsl:import href="kuspard.xsl"/>
 <!-- Top-level parameters -->
  <xsl:param name="SEGMENT_ATTRIBUTES">1</xsl:param>
 <xsl:param name="STORAGE">1</xsl:param>
 <xsl:param name="TABLESPACE">1</xsl:param>
 <!-- Parameters for DDL generation -->
 <xsl:param name="PRETTY">1</xsl:param>
 <xsl:param name="SQLTERMINATOR">0</xsl:param>
 <!-- *******************************************************************
Template: top-level template for CLUSTER.


******************************************************************** -->
 <xsl:template match="sxml:CLUSTER">
  <xsl:text>CREATE CLUSTER </xsl:text>
  <xsl:call-template name="SchemaName">
   <xsl:with-param name="ParentNode" select="."/>
  </xsl:call-template>
  <!-- column_list -->
  <xsl:text>( </xsl:text>
  <xsl:for-each select="sxml:COL_LIST/sxml:COL_LIST_ITEM">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;    </xsl:text>
   </xsl:if>
   <xsl:text>"</xsl:text>
   <xsl:value-of select="sxml:NAME"/>
   <xsl:text>" </xsl:text>
   <xsl:call-template name="Datatype"/>
   <!-- Generate columns collate name -->
   <xsl:if test="$VERSION>=1202000000 and sxml:COLLATE_NAME">
   <xsl:call-template name="DoCollation">
    <xsl:with-param name="IsDefault">0</xsl:with-param>
    <xsl:with-param name="Name" select="sxml:COLLATE_NAME"/>
   </xsl:call-template>
   </xsl:if>
   <xsl:apply-templates select="sxml:SORT"/>
   <xsl:if test="position()!=last()">, </xsl:if>
  </xsl:for-each>
  <xsl:text>) </xsl:text>
  <!-- SIZE -->
  <xsl:if test="sxml:SIZE">
   <xsl:text> SIZE </xsl:text>
   <xsl:value-of select="sxml:SIZE"/>
  </xsl:if>
  <xsl:if test="$SEGMENT_ATTRIBUTES=1">
   <xsl:if test="$PRETTY=1 and not(sxml:RANGE_PARTITIONING)">
    <xsl:text>&#xa; </xsl:text>
    <xsl:call-template name="PhysicalAttributes">
     <xsl:with-param name="ParentNode" select="."/>
    </xsl:call-template>
   </xsl:if>
   <xsl:if test="(sxml:TABLESPACE) and ($TABLESPACE=1)">
    <xsl:if test="$PRETTY=1">
     <xsl:text>&#xa; </xsl:text>
    </xsl:if>
    <xsl:text> TABLESPACE "</xsl:text>
    <xsl:value-of select="sxml:TABLESPACE"/>
    <xsl:text>"</xsl:text>
   </xsl:if>
  </xsl:if>
  <!--hashkeys_clause -->
  <xsl:if test="sxml:HASHKEYS">
   <xsl:if test="sxml:HASHKEYS/sxml:SINGLE_TABLE">
    <xsl:if test="$PRETTY=1">
     <xsl:text>&#xa;  </xsl:text>
    </xsl:if>
    <xsl:text>SINGLE TABLE </xsl:text>
   </xsl:if>
   <xsl:if test="sxml:HASHKEYS/sxml:VALUES">
    <xsl:if test="$PRETTY=1">
     <xsl:text>&#xa;  </xsl:text>
    </xsl:if>
    <xsl:text>HASHKEYS </xsl:text>
    <xsl:value-of select="sxml:HASHKEYS/sxml:VALUES"/>
   </xsl:if>
   <xsl:if test="sxml:HASHKEYS/sxml:HASH_EXPR">
    <xsl:if test="$PRETTY=1">
     <xsl:text>&#xa;  </xsl:text>
    </xsl:if>
    <xsl:text>HASH IS </xsl:text>
    <xsl:value-of select="sxml:HASHKEYS/sxml:HASH_EXPR"/>
   </xsl:if>
  </xsl:if>
  <xsl:if test="sxml:ROW_DEPENDENCIES">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;  </xsl:text>
   </xsl:if>
   <xsl:text>ROWDEPENDENCIES </xsl:text>
  </xsl:if>
  <!-- parallel_clause  -->
  <xsl:call-template name="DoParallel">
   <xsl:with-param name="AttNode" select="."/>
  </xsl:call-template>
  <xsl:if test="sxml:CACHE">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;  </xsl:text>
   </xsl:if>
   <xsl:text>CACHE </xsl:text>
  </xsl:if>
  <!-- table_range_partitioning -->
  <xsl:if test="sxml:RANGE_PARTITIONING">
   <xsl:call-template name="TableRangePartitioning">
    <xsl:with-param name="PartitioningNode" select="sxml:RANGE_PARTITIONING"/>
   </xsl:call-template>
  </xsl:if>
 </xsl:template>
</xsl:stylesheet>

OHA YOOOO