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

<?xml version="1.0"?>
<!--

 Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.

NAME
    kusilm.xsl
DESCRIPTION
    XSLT stylesheet for XML => SXML conversion of ILM attributes in table UDTs
NOTES
    Do NOT modify this file under any circumstance. Copy the file
    if you wish to use this stylesheet with an external XML/XSL parser

MODIFIED        MM/DD/YY
    rapayne     08/09/16 - bug 24435630: generate IM clause for ILM policies.
                           note: this is a fwd merge from 12.2.0.1.
    jjanosik    10/12/15 - Add Disabled info to ILM Policy
    jjanosik    10/09/15 - Add inheritance info to ILM_POLICIES_ITEM
    lbarton     10/14/14 - bug 19164768: temporal validity + row archival
    lbarton     09/24/14 - row archival and SXML
    lbarton     05/32/13 - bug 15872712: SXML support for ILM policies
 -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://xmlns.oracle.com/ku">
 <!-- Top level imports -->
 <xsl:import href="kusstorg.xsl"/>
 <!-- Templates -->
 <xsl:template name="DoILMClause">
  <!-- *******************************************************************
Template: DoILMClause
 Description: generate ILM clause
 Current node: TABLE_T
 The relevant bits are in PROPERTY2:
  x08000 (32768)  row archival (formerly lifecycle management)
 The following bits are no longer valid
  x10000 (65536)  tracking (write time)
  x20000 (131072) tracking (create time)
  x40000 (262144) tracking (read time)
  x80000 (524288) tracking segment access
******************************************************************** -->
  <xsl:if test="(PROPERTY2 mod 65536) >= 32768">
   <xsl:element name="ROW_ARCHIVAL"/>
  </xsl:if>
 </xsl:template>
 <xsl:template match="ILM_POLICIES">
  <!-- *******************************************************************
Template: ILM_POLICIES - 
******************************************************************** -->
  <xsl:if test="ILM_POLICIES_ITEM">
   <xsl:element name="ILM_POLICIES">
    <xsl:for-each select="ILM_POLICIES_ITEM">
     <xsl:element name="ILM_POLICIES_ITEM">
      <!-- set inheritance info -->
      <xsl:variable name="Inherited">
       <xsl:choose>
        <xsl:when test="(ILMOBJ_FLAG mod 16)= 8">TABLESPACE</xsl:when>
        <xsl:when test="(OBJ_TYP != OBJ_TYP_ORIG) and (OBJ_TYP_ORIG = 2)">TABLE</xsl:when>
        <xsl:when test="(OBJ_TYP != OBJ_TYP_ORIG) and (OBJ_TYP_ORIG = 19)">PARTITION</xsl:when>
        <xsl:otherwise>NONE</xsl:otherwise>
       </xsl:choose>
      </xsl:variable>
      <xsl:choose>
       <xsl:when test="$Inherited != 'NONE'">
        <xsl:element name="INHERITED_FROM">
         <xsl:value-of select="$Inherited"/>
        </xsl:element>
       </xsl:when>
      </xsl:choose>
      <!-- set disabled info -->
      <xsl:choose>
       <xsl:when test="(ILMOBJ_FLAG mod 2)=1">
        <xsl:call-template name="DisablePolicy"/>
       </xsl:when>
      </xsl:choose>
      <!-- Process ILM Action -->
      <xsl:choose>
       <xsl:when test="ACTION='1' and (CTYPE='2' or CTYPE='3')">
        <xsl:call-template name="DoILMCompress"/>
       </xsl:when>
       <xsl:when test="ACTION='2'">
        <xsl:call-template name="DoILMTiering"/>
       </xsl:when>
       <!-- ADO inmemory policies 
              4 = set inmemory...
              5 = no inmemory
              1 = modify inmemory...
       -->
       <xsl:when test="ACTION='4' or ACTION='5' or (ACTION='1' and POL_SUBTYPE='1')">
        <xsl:call-template name="DoILMInmemory"/>
       </xsl:when>
      </xsl:choose>
      <xsl:choose>
       <xsl:when test="SCOPE='1'">
        <xsl:element name="SEGMENT"/>
       </xsl:when>
       <xsl:when test="SCOPE='2'">
        <xsl:element name="GROUP"/>
       </xsl:when>
       <xsl:when test="SCOPE='3'">
        <xsl:element name="ROW"/>
       </xsl:when>
      </xsl:choose>
      <!-- condition clause -->
      <xsl:choose>
       <xsl:when test="FLAG=8">
        <xsl:element name="ON">
         <xsl:value-of select="CUSTFUNC"/>
        </xsl:element>
       </xsl:when>
       <xsl:when test="DAYS > 0">
        <xsl:element name="AFTER">
         <xsl:element name="DAYS">
          <xsl:value-of select="DAYS"/>
         </xsl:element>
         <xsl:choose>
          <xsl:when test="CONDITION='0'">
           <xsl:element name="ACCESS">NO</xsl:element>
          </xsl:when>
          <xsl:when test="CONDITION='1'">
           <xsl:element name="ACCESS">LOW</xsl:element>
          </xsl:when>
          <xsl:when test="CONDITION='2'">
           <xsl:element name="MODIFICATION">NO</xsl:element>
          </xsl:when>
          <xsl:when test="CONDITION='3'">
           <xsl:element name="CREATION"/>
          </xsl:when>
         </xsl:choose>
        </xsl:element>
       </xsl:when>
      </xsl:choose>
     </xsl:element>
    </xsl:for-each>
   </xsl:element>
  </xsl:if>
 </xsl:template>
 <xsl:template name="DoILMCompress">
  <!-- *******************************************************************
Template: DoILMCompress
******************************************************************** -->
  <xsl:variable name="isOLTPCompressed" select="CTYPE='2'"/>
  <xsl:variable name="isArchCompressed" select="CTYPE='3'"/>
  <xsl:call-template name="DoCompressSyntax">
   <xsl:with-param name="isCompressed" select="true()"/>
   <xsl:with-param name="isOLTPCompressed" select="$isOLTPCompressed"/>
   <xsl:with-param name="isArchCompressed" select="$isArchCompressed"/>
   <xsl:with-param name="compressLevel" select="CLEVEL"/>
   <xsl:with-param name="flag" select="FLAG"/>
  </xsl:call-template>
 </xsl:template>
 <xsl:template name="DoILMTiering">
  <!-- *******************************************************************
Template: DoILMTiering
******************************************************************** -->
  <xsl:element name="TIER">
   <xsl:element name="TABLESPACE">
    <xsl:value-of select="TIER_TBS"/>
   </xsl:element>
   <xsl:if test="FLAG='1'">
    <xsl:element name="READ_ONLY"/>
   </xsl:if>
  </xsl:element>
 </xsl:template>
 <xsl:template name="DoILMInmemory">
  <!-- *******************************************************************
Template: DoILMInmemory
******************************************************************** -->
  <xsl:element name="INMEMORY">
   <xsl:choose>
    <xsl:when test="ACTION='1' and POL_SUBTYPE='1'">
     <xsl:element name="MODIFY">
      <xsl:value-of select="ACTIONC_CLOB"/>
     </xsl:element>
    </xsl:when>
    <xsl:when test="ACTION=4">
     <xsl:element name="NO_INMEMORY"/>
    </xsl:when>
    <xsl:when test="ACTION=5">
     <xsl:element name="SET">
      <xsl:value-of select="ACTIONC_CLOB"/>
     </xsl:element>
    </xsl:when>
   </xsl:choose>
  </xsl:element>
 </xsl:template>
 <xsl:template name="DisablePolicy">
  <!-- ************************************************************************
      Template:DisablePolicy
      Description:Generate disable ILM policy clause
*************************************************************************** -->
  <xsl:variable name="PolicyName" select="POLICY_NUM"/>
  <xsl:element name="DISABLED_NAME">
   <xsl:text>P</xsl:text>
   <xsl:value-of select="$PolicyName"/>
  </xsl:element>
 </xsl:template>
</xsl:stylesheet>

OHA YOOOO