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

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

 Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.

NAME
    kususerd.xsl
DESCRIPTION
    Convert USER document (SXML) to creation DDL.

MODIFIED        MM/DD/YY
    sdavidso    03/13/17 - bug25440009 handle user name with apostrophe
    jjanosik    10/21/16 - Project 34974: support no authentication for user
                           create
    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     03/09/16 - Bug 22899711: Remove DoParse template call
    jjanosik    09/28/15 - bug 21798129: Add support for LOCAL TEMPORARY
                           TABLESPACE.
    tbhukya     02/25/15 - Proj 47173: Data bound collation
    lbarton     06/25/14 - lrg 12377624: use SingleQuotedNameSxD
    lbarton     02/06/14 - bug 17943479: make template name unique
    dvekaria    01/21/14 - Bug18095007: Output external user DDL.
    rapayne     03/04/12 - bug 16418139: process PASSWORD quotes correctly.
    sdavidso    11/02/05 - fix inconsistent stylesheet format 
    lbarton     08/10/05 - lbarton_mddiff
    lbarton     07/11/05 - 
    htseng      03/16/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="kusindxd.xsl"/>
 <!-- Top-level parameters -->
 <!-- Parameters for DDL generation -->
 <xsl:param name="PRETTY">1</xsl:param>
 <xsl:param name="SQLTERMINATOR">0</xsl:param>
 <!-- *******************************************************************
Template: USER - top-level template for tables.
  This template puts out
   - CREATE USER name
  then calls one of
   - CreObjTable - for object tables and XMLType tables
   - CreRelTable - for relational tables
******************************************************************** -->
 <xsl:template match="sxml:USER">
  <xsl:choose>
   <xsl:when test="sxml:NAME='SYS' or sxml:NAME='SYSTEM'">
    <xsl:text> ALTER USER </xsl:text>
   </xsl:when>
   <xsl:otherwise>
    <xsl:text> CREATE USER </xsl:text>
   </xsl:otherwise>
  </xsl:choose>
  <xsl:text>"</xsl:text>
  <xsl:value-of select="sxml:NAME"/>
  <xsl:text>" </xsl:text>
  <xsl:choose>
   <xsl:when test="sxml:TYPE='NO_AUTHENTICATION'">
    <xsl:text> NO AUTHENTICATION </xsl:text>
   </xsl:when>
   <xsl:when test="sxml:TYPE='GLOBAL'">
    <xsl:text> IDENTIFIED GLOBALLY AS '</xsl:text>
    <xsl:call-template name="EscapeStringSxD">
     <xsl:with-param name="TheString" select="sxml:EXTERNAL_NAME"/>
    </xsl:call-template>
    <xsl:text>'</xsl:text>
   </xsl:when>
   <xsl:when test="sxml:TYPE='EXTERNAL'">
    <xsl:text> IDENTIFIED EXTERNALLY </xsl:text>
    <xsl:if test="sxml:EXTERNAL_NAME">
     <xsl:text>AS </xsl:text>
     <xsl:call-template name="SingleQuotedNameSxD">
      <xsl:with-param name="NameNode" select="sxml:EXTERNAL_NAME"/>
     </xsl:call-template>
    </xsl:if>
   </xsl:when>
   <xsl:when test="sxml:TYPE='LOCAL' and sxml:VALUE">
    <xsl:text> IDENTIFIED BY VALUES '</xsl:text>
    <xsl:call-template name="EscapeStringSxD">
     <xsl:with-param name="TheString" select="sxml:VALUE"/>
    </xsl:call-template>
    <xsl:text>'</xsl:text>
   </xsl:when>
   <xsl:when test="sxml:TYPE='LOCAL' and sxml:PASSWORD">
    <xsl:text>IDENTIFIED BY </xsl:text>
    <xsl:call-template name="EscapeStringSxD">
     <xsl:with-param name="TheString" select="sxml:PASSWORD"/>
    </xsl:call-template>
    <xsl:value-of select="sxml:PASSWORD"/>
   </xsl:when>
  </xsl:choose>
  <!-- Generate default collation -->
  <xsl:if test="$VERSION>=1202000000 and sxml:DEFAULT_COLLATION">
   <xsl:call-template name="DoCollation">
    <xsl:with-param name="IsDefault">1</xsl:with-param>
    <xsl:with-param name="Name" select="sxml:DEFAULT_COLLATION"/>
    <xsl:with-param name="CheckPretty">1</xsl:with-param>
   </xsl:call-template>
  </xsl:if>
  <xsl:if test="sxml:DEFAULT_TABLESPACE">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;   </xsl:text>
   </xsl:if>
   <xsl:text> DEFAULT TABLESPACE "</xsl:text>
   <xsl:value-of select="sxml:DEFAULT_TABLESPACE"/>
   <xsl:text>"</xsl:text>
  </xsl:if>
  <xsl:if test="sxml:TEMPORARY_TABLESPACE">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;   </xsl:text>
   </xsl:if>
   <xsl:text> TEMPORARY TABLESPACE "</xsl:text>
   <xsl:value-of select="sxml:TEMPORARY_TABLESPACE"/>
   <xsl:text>"</xsl:text>
  </xsl:if>
  <xsl:if test="sxml:PROFILE">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;   </xsl:text>
   </xsl:if>
   <xsl:text> PROFILE "</xsl:text>
   <xsl:value-of select="sxml:PROFILE"/>
   <xsl:text>"</xsl:text>
  </xsl:if>
  <xsl:if test="sxml:PASSWORD_EXPIRE">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;   </xsl:text>
   </xsl:if>
   <xsl:text> PASSWORD EXPIRE </xsl:text>
  </xsl:if>
  <xsl:if test="sxml:ACCOUNT_LOCK='Y'">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;   </xsl:text>
   </xsl:if>
   <xsl:text> ACCOUNT LOCK</xsl:text>
  </xsl:if>
  <xsl:if test="$SQLTERMINATOR=1">
   <xsl:text>;</xsl:text>
   <!-- Terminate the SQL statement -->
  </xsl:if>
  <xsl:if test="sxml:LOCAL_TEMPORARY_TABLESPACE">
   <xsl:if test="$PRETTY=1">
    <xsl:text>&#xa;</xsl:text>
   </xsl:if>
   <!-- ALTER USER -->
   <xsl:text> ALTER USER </xsl:text>
   <xsl:text>"</xsl:text>
   <xsl:value-of select="sxml:NAME"/>
   <xsl:text>" </xsl:text>
   <!-- LOCAL TEMPORARY TABLESPACE -->
   <xsl:if test="sxml:LOCAL_TEMPORARY_TABLESPACE">
    <xsl:if test="$PRETTY=1">
     <xsl:text>&#xa; </xsl:text>
     <xsl:text>    </xsl:text>
    </xsl:if>
    <xsl:text> LOCAL TEMPORARY TABLESPACE </xsl:text>
    <xsl:text>"</xsl:text>
    <xsl:value-of select="sxml:LOCAL_TEMPORARY_TABLESPACE"/>
    <xsl:text>" </xsl:text>
   </xsl:if>
   <xsl:if test="$SQLTERMINATOR=1">
    <xsl:text>;</xsl:text>
    <!-- Terminate the SQL statement -->
   </xsl:if>
  </xsl:if>
 </xsl:template>
</xsl:stylesheet>

OHA YOOOO