<?xml version="1.0"?>
<!-- Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. -->
<miv>
<!--
/*
    NO CHANGES MADE HERE - ALREADY MISSING NOT_SO_NEW COLUMNS
    If this is to be used, synchronize with DB2/SQLServer definitions
    If not, it should be removed

 ******************************************************************************
 * WARNING: For non-DB2/SQLSERVER miv types, the "implementation" will be to  *
 *          return constants. As they are brought on line, the owner/developer*
 *          should add real implementations were possible.                    *
 ******************************************************************************
    Added three columns at end of current miv_columns query (see DB2/SQLSERVER):
      NULL CHARSET, 1 BYTES_PER_CHAR, 'N' USE_CHAR_SEMANTICS

      CHARSET: The IANA charset [RFC 2978] corresponding to the character
               set/code page defined for this attribute on the metadata source.

      BYTES_PER_CHAR: The (max) number of bytes required to represent a 
                      character in the charset. int, default = 1

      USE_CHAR_SEMANTICS: Did the definition for this attribute on the metadata
                          source specify character semantics? (Y/N) default N
 */
-->
<miv_business_areas type="SQLStatement" default="true">
select * from (
select '1' business_area_id,
        '0' parent_business_area_id,
        'PeopleSoft 8'  business_area_name,
        'business_name'  business_name,
        'description' description
from dual
union
select DISTINCT '1_' || rtrim(a6.menugroup) business_area_id, 
       '1' parent_business_area_id,
       substr(a6.menugroup, 1, instr(a6.menugroup, '&amp;') - 1) 
        || rtrim(substr(a6.menugroup, instr(a6.menugroup, '&amp;') + 1)) business_area_name,
       '' business_name,
       '' description      
from   psmenudefn<Parameter name="dblink"/> a6
where a6.menutype = 0
union
SELECT DISTINCT '2_' || rtrim(a6.menulabel) || '_1_' || rtrim(a6.menugroup) business_area_id,
     '1_' || rtrim(a6.menugroup) parent_business_area_id,
	 substr(a6.menulabel, 1, instr(a6.menulabel, '&amp;') - 1) ||
	 rtrim(substr(a6.menulabel, instr(a6.menulabel, '&amp;') + 1)) business_area_name,	
	 '' business_name,
     '' description     
    FROM psmenudefn<Parameter name="dblink"/> a6
where a6.menutype = 0
    and (instr(a6.menulabel, '(') = 0 or 
        (instr(a6.menulabel, '(') != 0 and 
            (instr(a6.menulabel, '&amp;GBL') != 0 or
             instr(a6.menulabel, 'GBL') != 0 or 
             instr(a6.menulabel, 'G&amp;BL') != 0)))
union
SELECT DISTINCT '3_' || rtrim(a5.itemlabel) || '_2_' || rtrim(a6.menulabel) 
    || '_1_' || rtrim(a6.menugroup) business_area_id,
     '2_' || rtrim(a6.menulabel) || '_1_' || rtrim(a6.menugroup) parent_business_area_id,
	 substr(a5.itemlabel, 1, instr(a5.itemlabel, '&amp;') - 1) || 
	 rtrim(substr(a5.itemlabel, instr(a5.itemlabel, '&amp;') + 1)) business_area_name,	 
	 '' business_name,
     '' description      
    FROM psmenudefn<Parameter name="dblink"/> a6, psmenuitem<Parameter name="dblink"/> a5
    WHERE  a6.menuname = a5.menuname
    and a6.menutype = 0
    and a5.itemtype = 5
    and a5.market = 'GBL'
    and (instr(a6.menulabel, '(') = 0 or 
        (instr(a6.menulabel, '(') != 0 and 
            (instr(a6.menulabel, '&amp;GBL') != 0 or
             instr(a6.menulabel, 'GBL') != 0 or 
             instr(a6.menulabel, 'G&amp;BL') != 0)))
union
SELECT DISTINCT '4_' || rtrim(a4.pnlname) business_area_id,
    '3_' || rtrim(a5.itemlabel) || '_2_' || rtrim(a6.menulabel) 
    || '_1_' || rtrim(a6.menugroup) parent_business_area_id,
     substr(a4.itemlabel, 1, instr(a4.itemlabel, '&amp;') - 1) || 
	 rtrim(substr(a4.itemlabel, instr(a4.itemlabel, '&amp;') + 1)) business_area_name,	 
	 '' business_name,
     '' description      
    FROM psmenudefn<Parameter name="dblink"/> a6, 
	psmenuitem<Parameter name="dblink"/> a5, 
	pspnlgroup<Parameter name="dblink"/> a4
    WHERE  a6.menuname = a5.menuname
    AND a5.pnlgrpname = a4.pnlgrpname
    and a5.market = a4.market
    and a6.menutype = 0
    and a5.itemtype = 5
    and a5.market = 'GBL'
    and (instr(a6.menulabel, '(') = 0 or 
        (instr(a6.menulabel, '(') != 0 and 
            (instr(a6.menulabel, '&amp;GBL') != 0 or
             instr(a6.menulabel, 'GBL') != 0 or 
             instr(a6.menulabel, 'G&amp;BL') != 0)))
)
order by parent_business_area_id, business_area_name
</miv_business_areas>





<miv_business_area_objects type="SQLStatement" default="true">
select distinct 'PS_' || rtrim(a1.recname) object_name, 
    '4_' || rtrim(a2.pnlname) parent_business_area_id,  
    decode(a1.rectype, 0, 'TABLE', 1, 'VIEW') type,
    a1.recdescr description
from psrecdefn<Parameter name="dblink"/> a1, 
pspnlfield<Parameter name="dblink"/> a2
where (a1.rectype = 1 or a1.rectype = 0)
and a2.recname = a1.recname
and ltrim(rtrim(a2.recname)) is not null
and a1.sqltablename = ' '
</miv_business_area_objects>





<miv_tables type="SQLStatement" default="true">
select 'PS_' || rtrim(psrecdefn.recname) table_name, 
       'PS_' || rtrim(psrecdefn.recname) || ' [' || rtrim(psrecdefn.recdescr) || ']' business_name, 
       rtrim(psrecdefn.recdescr) description 
FROM   psrecdefn<Parameter name="dblink"/>
WHERE  psrecdefn.rectype = 0
and psrecdefn.sqltablename = ' '
order by table_name
</miv_tables>




<miv_views type="SQLStatement" default="true">
select 'PS_' || rtrim(p.recname) view_name, 
       'PS_' || rtrim(p.recname) || ' [' || rtrim(p.recdescr) || ']' business_name, 
        rtrim(p.recdescr) description,
        a.text view_definition
FROM   psrecdefn<Parameter name="dblink"/> p, 
       all_views<Parameter name="dblink"/> a
WHERE  p.rectype = 1
and    p.sqltablename = ' '
and    'PS_' || p.recname = a.view_name 
</miv_views>


<miv_columns type="SQLStatement" default="true">
	SELECT rtrim(ac.table_name) entity_name, ac.column_id position, rtrim(ac.column_name) column_name, rtrim(ac.data_type) data_type, ac.data_length length, ac.data_precision precision, ac.data_scale scale,  rtrim(acc.descr100) description, ac.nullable isNullable,
       '' DATA_TYPE_OWNER,
       '' DATA_DEFAULT,
         decode(ac.CHARACTER_SET_NAME, NULL, ac.CHARACTER_SET_NAME, NLS_CHARSET_NAME(NLS_CHARSET_ID(ac.CHARACTER_SET_NAME))) CHARSET,
         decode(ac.CHAR_LENGTH,NULL, 1, 0, 1,ac.DATA_LENGTH/ac.CHAR_LENGTH) BYTES_PER_CHAR,
         decode(ac.CHAR_USED,'C', 'Y','N') USE_CHAR_SEMANTICS
	FROM all_tab_columns<Parameter name="dblink"/> ac ,
             psfldfielddefn<Parameter name="dblink"/> acc
	WHERE   ac.table_name = 'PS_' || acc.flddefnname(+)
	        AND ac.column_name = acc.fldfieldname(+)
		AND ac.owner = <Parameter name="owner"/>
        ORDER BY ac.table_name, ac.column_id
</miv_columns>




<miv_unique_keys type="SQLStatement" default="true">
SELECT 'PS_' || rtrim(recname) entity_name,
    'PS_' || rtrim(recname) key_name,
    'PS_' || rtrim(recname) business_name,
    '' description, 'P' constraint_type
FROM pskeydefn<Parameter name="dblink"/>
WHERE  indexid ='_' and keyposn = 1
</miv_unique_keys>











<miv_key_columns type="SQLStatement" default="true">
SELECT 'PS_' || rtrim(recname) key_name, rtrim(fieldname) column_name, keyposn position
FROM pskeydefn<Parameter name="dblink"/>
WHERE indexid = '_'
</miv_key_columns>
 






<miv_capabilities type="ResultSet">
	<table_supported>true</table_supported>
	<view_supported>true</view_supported>
	<sequence_supported>false</sequence_supported>
	<table_name_filter_supported>true</table_name_filter_supported>
	<view_name_filter_supported>true</view_name_filter_supported>
	<sequence_name_filter_supported>false</sequence_name_filter_supported>
	<business_area_supported>true</business_area_supported>	
	<business_area_table_supported>true</business_area_table_supported>	
	<business_area_view_supported>true</business_area_view_supported>	
	<business_area_sequence_supported>false</business_area_sequence_supported>	
	<application_owner_supported>true</application_owner_supported>
	<table_fklevel_supported>true</table_fklevel_supported>
	<reimport_supported>true</reimport_supported>
	<data_object_at_leaf_levels>true</data_object_at_leaf_levels>
	<multiple_tree_supported>false</multiple_tree_supported>
</miv_capabilities>
</miv>
