<?xml version="1.0"?>
<!-- Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. -->
<miv>
<miv_tables type="SQLStatement" default="true">
SELECT  a.table_name table_name, 
        a.table_name business_name, 
        c.description description
FROM (SELECT d.table_name, b.application_id 
    FROM dba_tables<Parameter name="dblink"/> d, 
	 fnd_application<Parameter name="dblink"/> b,
         fnd_product_installations<Parameter name="dblink"/> p, 
         fnd_oracle_userid<Parameter name="dblink"/> o
    WHERE p.oracle_id = o.oracle_id
      AND b.application_id = p.application_id
      AND d.owner = o.oracle_username
      AND (d.table_name like 'HZ_IMP_%_INT' OR d.table_name IN ('HZ_PARTIES', 'HZ_CONTACT_POINTS', 'HZ_PERSON_PROFILES'))) a 
    LEFT OUTER JOIN fnd_tables<Parameter name="dblink"/> c
ON c.application_id = a.application_id
AND c.table_name = a.table_name
</miv_tables>

<miv_views type="SQLStatement" default="true">
SELECT  a.view_name view_name, 
        a.view_name business_name,
        NVL(a.description, '') description,
        a.text view_definition
FROM 	fnd_views<Parameter name="dblink"/> a, 
	fnd_application<Parameter name="dblink"/> b, 
	dba_views<Parameter name="dblink"/> c 
WHERE a.application_id = b.application_id
AND a.view_name = c.view_name
AND c.owner = 'APPS'
</miv_views>

<miv_columns type="SQLStatement" default="true">
SELECT a.table_name entity_name, 
          a.column_id position,
          a.column_name column_name,
          a.data_type data_type,
          a.data_length length,
          a.data_precision precision,
          a.data_scale scale,
          e.description description,
          a.nullable isNullable,
          '' DATA_TYPE_OWNER,
          '' DATA_DEFAULT,
         a.CHARSET CHARSET,
         a.BYTES_PER_CHAR BYTES_PER_CHAR,
         a.USE_CHAR_SEMANTICS USE_CHAR_SEMANTICS
         FROM (SELECT ac.table_name table_name,
              ac.column_id column_id,
              rtrim(ac.column_name) column_name,
          rtrim(ac.data_type) data_type,
          ac.data_length data_length,
          ac.data_precision data_precision,
          ac.data_scale data_scale,
          '' description,
          ac.nullable nullable,
          '' 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,
          b.application_id application_id
         FROM 	dba_tab_columns<Parameter name="dblink"/> ac,
	       	fnd_application<Parameter name="dblink"/> b,
                fnd_product_installations<Parameter name="dblink"/> p, 
                fnd_oracle_userid<Parameter name="dblink"/> o
         WHERE p.oracle_id = o.oracle_id
           AND b.application_id = p.application_id
           AND ac.owner = o.oracle_username) a 
         LEFT OUTER JOIN 
	     (SELECT d.column_name column_name,
	             d.description description,
	             c.application_id application_id,
                 c.table_name table_name 
          FROM 	fnd_tables<Parameter name="dblink"/> c, 
		fnd_columns<Parameter name="dblink"/> d
	      WHERE c.application_id = d.application_id
	       AND  c.table_id = d.table_id) e
	ON a.application_id = e.application_id
	AND a.table_name = e.table_name 
	AND a.column_name = e.column_name
UNION ALL
	SELECT 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,
          '' 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 dba_tab_columns<Parameter name="dblink"/> ac,
	     fnd_application<Parameter name="dblink"/> b,
	     fnd_views<Parameter name="dblink"/> c
    WHERE ac.owner = 'APPS'
    AND ac.table_name = c.view_name
    AND b.application_id = c.application_id 
</miv_columns>

<miv_unique_keys type="SQLStatement" default="true">
SELECT b.table_name entity_name, 
       a.primary_key_name key_name,
       a.primary_key_name business_name,
       a.description description,
       decode(instr(a.primary_key_name, '_PK', LENGTH(a.primary_key_name)-3), 0, 'U', 'P') constraint_type
FROM 	fnd_primary_keys<Parameter name="dblink"/> a, 
	fnd_tables<Parameter name="dblink"/> b
WHERE a.application_id = b.application_id
AND  a.table_id = b.table_id
</miv_unique_keys>

<miv_foreign_keys type="SQLStatement" default="true">
SELECT b.table_name entity_name,
       a.foreign_key_name foreign_key_name,
       a.foreign_key_name business_name,
       a.description description,
       c.primary_key_name unique_key_name
FROM  fnd_foreign_keys<Parameter name="dblink"/> a, 
      fnd_tables<Parameter name="dblink"/> b,
      fnd_primary_keys<Parameter name="dblink"/> c
WHERE a.application_id = b.application_id
  AND a.table_id = b.table_id
  AND a.primary_key_application_id = c.application_id
  AND a.primary_key_table_id = c.table_id
  AND a.primary_key_id = c.primary_key_id
</miv_foreign_keys>

<miv_key_columns type="SQLStatement" default="true">
SELECT * FROM (
SELECT b.primary_key_name key_name, 
    c.column_name column_name, 
    a.primary_key_sequence position
FROM fnd_primary_key_columns<Parameter name="dblink"/> a,
     fnd_primary_keys<Parameter name="dblink"/> b,
     fnd_columns<Parameter name="dblink"/> c
WHERE a.application_id = b.application_id
  AND a.table_id = b.table_id
  AND a.primary_key_id = b.primary_key_id
  AND b.application_id = c.application_id
  AND b.table_id = c.table_id
  AND a.column_id = c.column_id
UNION ALL 
SELECT b.foreign_key_name key_name, 
    c.column_name column_name, 
    a.foreign_key_sequence position
FROM fnd_foreign_key_columns<Parameter name="dblink"/> a,
     fnd_foreign_keys<Parameter name="dblink"/> b,
     fnd_columns<Parameter name="dblink"/> c
WHERE a.application_id = b.application_id
  AND a.table_id = b.table_id
  AND a.foreign_key_id = b.foreign_key_id
  AND b.application_id = c.application_id
  AND b.table_id = c.table_id
  AND a.column_id = c.column_id
)
ORDER BY key_name, position
</miv_key_columns>
 
<miv_fk_tables type="SQLStatement" default="true">
SELECT distinct b.table_name orig_table_name,
       c.table_name foreign_table_name,
       c.description foreign_table_description
FROM fnd_foreign_keys<Parameter name="dblink"/> a,
     fnd_tables<Parameter name="dblink"/> b,
     fnd_tables<Parameter name="dblink"/> c
WHERE a.application_id = b.application_id
  AND a.table_id = b.table_id
  AND a.application_id = c.application_id
  AND a.primary_key_table_id = c.table_id
</miv_fk_tables>

<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>false</business_area_supported>	
	<business_area_table_supported>false</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>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>
