<?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,
         'Siebel Business Component'  business_area_name,
         'Siebel Business Component'  business_name,
         'Siebel Business Component'  description
  from dual
  union 
  select DISTINCT  BC.row_id business_area_id,
                   '1' parent_business_area_id,
                   BC.name business_area_name,
                   BC.name business_name,
                   BC.comments description
  from S_BUSCOMP<Parameter name="dblink"/> BC,
       S_REPOSITORY<Parameter name="dblink"/> REPO_1
  where BC.repository_id = REPO_1.row_id and REPO_1.name = 'Siebel Repository'
) order by parent_business_area_id, business_area_name
</miv_business_areas>

<miv_business_area_objects type="SQLStatement" default="true">
select distinct  a.name object_name,
       					 b.buscomp_id parent_business_area_id,
                 'TABLE' type,
                 a.desc_text description 
from S_TABLE<Parameter name="dblink"/> a, 
     (     select table_name, row_id as buscomp_id, repository_id from S_BUSCOMP<Parameter name="dblink"/>
           union
           select distinct dest_tbl_name as table_name, buscomp_id, repository_id from S_JOIN<Parameter name="dblink"/> 
           union
           select distinct join_name as table_name, buscomp_id, repository_id from S_FIELD<Parameter name="dblink"/> t_field
           where join_name is not null and
           not exists (select dest_tbl_name from S_JOIN<Parameter name="dblink"/> t_join
           where t_join.name = t_field.join_name and t_join.buscomp_id = t_field.buscomp_id )
     ) b,
     S_REPOSITORY<Parameter name="dblink"/> c
where a.name = b.table_name and a.repository_id = b.repository_id and a.repository_id = c.row_id and c.name = 'Siebel Repository'
</miv_business_area_objects>

<miv_tables type="SQLStatement" default="true">
select a.name table_name,
       a.user_name business_name,
	   a.desc_text description
from  <Parameter name="owner" quoted="false"/>.S_TABLE<Parameter name="dblink"/> a,
      <Parameter name="owner" quoted="false"/>.S_REPOSITORY<Parameter name="dblink"/> b
where a.repository_id = b.row_id
and b.NAME = 'Siebel Repository'
</miv_tables>


<miv_columns type="SQLStatement" default="true">
select b.name entity_name,
       a.sequence position, 
       a.name column_name, 
       (case a.data_type 
	     when 'V' then 'VARCHAR2'
		 when 'U' then 'DATE'
		 when 'D' then 'DATE'
		 when 'C' then 'CHAR'
		 when 'X' then 'LONG'
		 when 'T' then 'DATE'
		 when 'N' then 'NUMBER'
		 when 'S' then 'DATE'
		 when 'L' then 'CLOB'
		end )data_type,
       (case a.data_type
	     when 'V' then a.length * 4
		 when 'U' then 7
		 when 'D' then 7
		 when 'C' then a.length * 4
		 when 'X' then a.length
		 when 'T' then 7
		 when 'N' then 22
		 when 'S' then 7
		 when 'L' then 4000 
		end) length, 
       a.prec_num precision, 
       a.scale scale, 
       a.desc_text description,
       a.nullable isNullable,
       '' DATA_TYPE_OWNER,
       '' DATA_DEFAULT,
       '' CHARSET,
       1  BYTES_PER_CHAR,
       'N' USE_CHAR_SEMANTICS 
from <Parameter name="owner" quoted="false"/>.s_column<Parameter name="dblink"/> a,
     <Parameter name="owner" quoted="false"/>.s_table<Parameter name="dblink"/> b,
     <Parameter name="owner" quoted="false"/>.s_repository<Parameter name="dblink"/> c
where c.name = 'Siebel Repository'
and c.row_id = b.repository_id
and b.ROW_ID = a.tbl_id
</miv_columns>





<miv_unique_keys type="SQLStatement" default="true">
select T2.name entity_name, 
       T1.name key_name,
       T1.name business_name,
       '' description, 
       substr(T1.type, 1, 1) constraint_type
from <Parameter name="owner" quoted="false"/>.s_index<Parameter name="dblink"/> T1,
     <Parameter name="owner" quoted="false"/>.s_table<Parameter name="dblink"/> T2, 
     <Parameter name="owner" quoted="false"/>.s_repository<Parameter name="dblink"/> T3
where T1.tbl_id = T2.row_id
and ((T1.type = 'User Key' and T1.isunique = 'Y') 
      or (T1.type = 'Primary Key'))
and  T3.row_id = T2.REPOSITORY_ID
and  T3.name = 'Siebel Repository'	 
</miv_unique_keys>




<miv_foreign_keys type="SQLStatement" default="true">
select T2.name entity_name, 
       T2.name || '_FK_' ||T1.name foreign_key_name,
       T2.name || '_FK_' ||T1.name business_name,
       '' description, 
       T5.name unique_key_name
from <Parameter name="owner" quoted="false"/>.s_column<Parameter name="dblink"/> T1,
     <Parameter name="owner" quoted="false"/>.s_table<Parameter name="dblink"/> T2, 
     <Parameter name="owner" quoted="false"/>.s_table<Parameter name="dblink"/> T4,
     <Parameter name="owner" quoted="false"/>.s_index<Parameter name="dblink"/> T5,
     <Parameter name="owner" quoted="false"/>.s_repository<Parameter name="dblink"/> T3
where T1.tbl_id = T2.row_id
and  T1.fkey_tbl_id is not null
and  T3.row_id = T2.REPOSITORY_ID
and  T3.name = 'Siebel Repository'
and  T4.row_id = T1.fkey_tbl_id
and  T5.tbl_id = t4.ROW_ID
and  T5.type = 'Primary Key'	  
</miv_foreign_keys>





<miv_key_columns type="SQLStatement" default="true">
select T2.name key_name,
	   T1.Name column_name,
	   T1.COL_POSTN position
from <Parameter name="owner" quoted="false"/>.s_index_column<Parameter name="dblink"/> T1,
     <Parameter name="owner" quoted="false"/>.s_index<Parameter name="dblink"/> T2,
     <Parameter name="owner" quoted="false"/>.s_table<Parameter name="dblink"/> T3,
     <Parameter name="owner" quoted="false"/>.s_repository<Parameter name="dblink"/> T4
where T1.index_id = T2.row_id
and ((T2.type = 'Primary Key' and T1.COL_POSTN = 1) or T2.type = 'User Key')
and  T2.tbl_id = T3.row_id
and  T3.repository_id = T4.row_id
and  T4.name = 'Siebel Repository'
UNION ALL
select 
       T2.name || '_FK_' ||T1.name key_name,
       T1.name column_name,
       1 position
from <Parameter name="owner" quoted="false"/>.s_column<Parameter name="dblink"/> T1,
     <Parameter name="owner" quoted="false"/>.s_table<Parameter name="dblink"/> T2, 
     <Parameter name="owner" quoted="false"/>.s_repository<Parameter name="dblink"/> T3
where T1.tbl_id = T2.row_id
and  T1.fkey_tbl_id is not null
and  T3.row_id = T2.REPOSITORY_ID
and  T3.name = 'Siebel Repository'  
</miv_key_columns>




<miv_fk_tables type="SQLStatement" default="true">
select distinct T1.name orig_table_name, 
       T2.name foreign_table_name, 
       T2.desc_text foreign_table_description
from <Parameter name="owner" quoted="false"/>.s_table<Parameter name="dblink"/> T1,
     <Parameter name="owner" quoted="false"/>.s_table<Parameter name="dblink"/> T2,
     <Parameter name="owner" quoted="false"/>.s_column<Parameter name="dblink"/> T3,
     <Parameter name="owner" quoted="false"/>.s_repository<Parameter name="dblink"/> T4
where 
     T3.fkey_tbl_id = T2.row_id and
     T3.tbl_id = T1.row_id and
     T3.fkey_tbl_id != T3.tbl_id and
     T3.fkey_tbl_id is not null and
     T4.row_id = T1.REPOSITORY_ID and
     T4.name = 'Siebel Repository'  
</miv_fk_tables>







<miv_capabilities type="ResultSet">
	<table_supported>true</table_supported>
	<view_supported>false</view_supported>
	<sequence_supported>false</sequence_supported>
	<table_name_filter_supported>true</table_name_filter_supported>
	<view_name_filter_supported>false</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>false</business_area_view_supported>	
	<business_area_sequence_supported>false</business_area_sequence_supported>	
	<application_owner_supported>true</application_owner_supported>
	<table_fklevel_supported>false</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>






