oracle.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: relmd
  5. (C) Copyright IBM Corp. 2008, 2017
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <!--
  9. Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  10. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  11. Oracle metadata extraction rules
  12. -->
  13. <relmd:vendorRules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:relmd="http://www.ibm.com/xmlns/prod/cognos/relmd/1/0" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/cognos/relmd/1/0 ../../webcontent/relmd/vendor/relmdVendorRules.xsd">
  14. <relmd:caseSensitivityRules relmd:storage="upper"/>
  15. <relmd:defaultCatalogSchemaQueryRules>
  16. <relmd:sql>select '' catalogName, user from dual</relmd:sql>
  17. </relmd:defaultCatalogSchemaQueryRules>
  18. <relmd:tablesViewsImportRules>
  19. <relmd:sql>SELECT '' parentCatalog, OWNER parentSchema, TABLE_NAME parentQueryObject, TABLE_TYPE queryObjectType, '' description
  20. FROM (
  21. SELECT A.OWNER OWNER, A.TABLE_NAME TABLE_NAME, 'T' TABLE_TYPE FROM ALL_TABLES A
  22. UNION
  23. SELECT B.OWNER OWNER, B.VIEW_NAME TABLE_NAME, 'V' TABLE_TYPE FROM ALL_VIEWS B)
  24. ORDER BY parentSchema, parentQueryObject</relmd:sql>
  25. <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM ALL_TABLES A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  26. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="A.TABLE_NAME"/>
  27. </relmd:objectSelectionsInclusion>
  28. <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM ALL_VIEWS B" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  29. <relmd:objectSelectionsCondition relmd:schemaExpression="B.OWNER" relmd:objectExpression="B.VIEW_NAME"/>
  30. </relmd:objectSelectionsInclusion>
  31. </relmd:tablesViewsImportRules>
  32. <relmd:tablesImportRules>
  33. <relmd:sql>SELECT '' parentCatalog, OWNER parentSchema, TABLE_NAME parentQueryObject, TABLE_TYPE queryObjectType, '' description
  34. FROM (
  35. SELECT A.OWNER OWNER, A.TABLE_NAME TABLE_NAME, 'T' TABLE_TYPE FROM ALL_TABLES A)
  36. ORDER BY parentSchema, parentQueryObject</relmd:sql>
  37. <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM ALL_TABLES A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  38. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="A.TABLE_NAME"/>
  39. </relmd:objectSelectionsInclusion>
  40. </relmd:tablesImportRules>
  41. <relmd:viewsImportRules>
  42. <relmd:sql>SELECT '' parentCatalog, OWNER parentSchema, TABLE_NAME parentQueryObject, TABLE_TYPE queryObjectType, '' description
  43. FROM (SELECT B.OWNER OWNER, B.VIEW_NAME TABLE_NAME, 'V' TABLE_TYPE FROM ALL_VIEWS B)
  44. ORDER BY parentSchema, parentQueryObject</relmd:sql>
  45. <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM ALL_VIEWS B" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  46. <relmd:objectSelectionsCondition relmd:schemaExpression="B.OWNER" relmd:objectExpression="B.VIEW_NAME"/>
  47. </relmd:objectSelectionsInclusion>
  48. </relmd:viewsImportRules>
  49. <relmd:columnsImportRules>
  50. <relmd:sql>SELECT '' parentCatalog, A.OWNER parentSchema, A.TABLE_NAME parentTable, A.COLUMN_NAME parentColumn, A.DATA_TYPE datatype, A.DATA_LENGTH length, A.DATA_PRECISION precision, A.DATA_SCALE scale, A.NULLABLE isNullable,'' defaultValue, '' collationSequence, '' description FROM ALL_TAB_COLUMNS A ORDER BY parentSchema, parentTable, A.COLUMN_ID</relmd:sql>
  51. <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM ALL_TAB_COLUMNS A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  52. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="A.TABLE_NAME"/>
  53. </relmd:objectSelectionsInclusion>
  54. </relmd:columnsImportRules>
  55. <relmd:uniqueKeysImportRules>
  56. <relmd:sql>SELECT '' parentCatalog, A.OWNER parentSchema, A.TABLE_NAME parentTable, A.CONSTRAINT_NAME uniqueKeyName, B.COLUMN_NAME refColumnName, B.POSITION refColumnSequence FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = B.OWNER AND A.TABLE_NAME = B.TABLE_NAME AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_TYPE IN ('P', 'U') ORDER BY parentSchema, parentTable, uniqueKeyName, refColumnSequence</relmd:sql>
  57. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
  58. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="A.TABLE_NAME"/>
  59. <relmd:objectSelectionsCondition relmd:schemaExpression="B.OWNER" relmd:objectExpression="B.TABLE_NAME"/>
  60. </relmd:objectSelectionsInclusion>
  61. </relmd:uniqueKeysImportRules>
  62. <relmd:foreignKeysImportRules>
  63. <relmd:sql>SELECT '' parentCatalog, FK.OWNER parentSchema, FKCOLS.TABLE_NAME parentQueryObject, FK.CONSTRAINT_NAME foreignKeyName, FKCOLS.COLUMN_NAME exportedColumn, FKCOLS.POSITION columnSequence, '' importedCatalog, PK.OWNER importedSchema, PKCOLS.TABLE_NAME importedTable, PK.R_CONSTRAINT_NAME importedUniqueKey, PKCOLS.COLUMN_NAME importedColumn, '' description
  64. FROM ALL_CONSTRAINTS FK, ALL_CONS_COLUMNS FKCOLS, ALL_CONSTRAINTS PK, ALL_CONS_COLUMNS PKCOLS WHERE FK.OWNER = PK.OWNER AND FK.CONSTRAINT_NAME = PK.CONSTRAINT_NAME AND FK.CONSTRAINT_TYPE = 'R'
  65. AND (PK.OWNER = PKCOLS.OWNER AND PK.R_CONSTRAINT_NAME = PKCOLS.CONSTRAINT_NAME)
  66. AND (FK.R_OWNER = FKCOLS.OWNER AND FK.CONSTRAINT_NAME = FKCOLS.CONSTRAINT_NAME) AND PKCOLS.POSITION = FKCOLS.POSITION
  67. ORDER BY parentSchema, parentQueryObject, foreignKeyName, columnSequence</relmd:sql>
  68. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND PKCOLS.POSITION = FKCOLS.POSITION" relmd:insertLocation="after" relmd:insertPrefix="AND">
  69. <relmd:objectSelectionsCondition relmd:schemaExpression="FK.OWNER" relmd:objectExpression="FKCOLS.TABLE_NAME"/>
  70. <relmd:objectSelectionsCondition relmd:schemaExpression="PKCOLS.OWNER" relmd:objectExpression="PKCOLS.TABLE_NAME"/>
  71. </relmd:objectSelectionsInclusion>
  72. </relmd:foreignKeysImportRules>
  73. <relmd:indexesImportRules>
  74. <relmd:sql>SELECT '' tableCatalog, A.TABLE_OWNER tableSchema, A.TABLE_NAME tableName, A.INDEX_NAME objectName, DECODE(A.UNIQUENESS, 'UNIQUE', 1, 0) isUnique, DECODE(A.INDEX_TYPE, 'NORMAL', '1', '0') storageType, '' parentCatalog, A.OWNER parentSchema, B.COLUMN_POSITION refColumnSequence, B.COLUMN_NAME refColumnName, DECODE(B.DESCEND, 'DESC', 'D', 'A') sortOrder, '' description
  75. FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = B.INDEX_OWNER AND A.INDEX_NAME = B.INDEX_NAME AND A.TABLE_OWNER = B.TABLE_OWNER AND A.TABLE_NAME = B.TABLE_NAME AND B.COLUMN_NAME != 'M_ROW$$'
  76. ORDER BY parentSchema, tableName, objectName, refColumnSequence</relmd:sql>
  77. <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND A.TABLE_NAME = B.TABLE_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
  78. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER"/>
  79. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_OWNER" relmd:objectExpression="A.TABLE_NAME"/>
  80. </relmd:objectSelectionsInclusion>
  81. </relmd:indexesImportRules>
  82. <relmd:synonymsImportRules>
  83. <relmd:sql>select '' parentCatalog, a.owner parentSchema, a.synonym_name synonymName, '' externalHostRef, '' refCatalog, CASE WHEN a.table_owner &lt;&gt; a.owner THEN a.table_owner ELSE '' END refSchema, a.table_name refQueryObject, '' description, '0' systemFlag, b.object_type refQueryObjectType
  84. from all_synonyms a, all_objects b
  85. where b.OWNER = a.TABLE_OWNER
  86. and b.OBJECT_NAME = a.TABLE_NAME
  87. and b.object_type in ('TABLE', 'VIEW', 'INDEX', 'PROCEDURE', 'FUNCTION', 'SYNONYM', 'PACKAGE')
  88. UNION
  89. select '' parentCatalog, T1.OWNER parentSchema, T1.SYNONYM_NAME synonymName, T1.DB_LINK externalHostRef, '' refCatalog, T1.TABLE_OWNER refSchema, T1.TABLE_NAME refQueryObject,
  90. '' description, '0' systemFlag, 'TABLE' refQueryObjectType
  91. FROM ALL_SYNONYMS T1
  92. WHERE T1.DB_LINK is not null
  93. order by parentCatalog, parentSchema, synonymName</relmd:sql>
  94. <relmd:objectSelectionsInclusion relmd:sqlFragment="b.object_type in ('TABLE', 'VIEW', 'INDEX', 'PROCEDURE', 'FUNCTION', 'SYNONYM', 'PACKAGE')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  95. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="A.SYNONYM_NAME"/>
  96. </relmd:objectSelectionsInclusion>
  97. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE T1.DB_LINK is not null" relmd:insertLocation="after" relmd:insertPrefix="AND">
  98. <relmd:objectSelectionsCondition relmd:schemaExpression="T1.OWNER" relmd:objectExpression="T1.SYNONYM_NAME"/>
  99. </relmd:objectSelectionsInclusion>
  100. </relmd:synonymsImportRules>
  101. <relmd:routinesImportRules>
  102. <relmd:sql>
  103. SELECT '' parentCatalog, A.OWNER parentSchema, decode(A.PROCEDURE_NAME, null, A.OBJECT_NAME
  104. , A.OBJECT_NAME || '.' || A.PROCEDURE_NAME) procedureName, '' description
  105. , DECODE( B.OBJECT_TYPE, 'PACKAGE', 'function', LOWER(B.OBJECT_TYPE)) invocationType
  106. FROM ALL_PROCEDURES A, ALL_OBJECTS B
  107. WHERE A.OWNER = B.OWNER
  108. AND NVL(A.PROCEDURE_NAME, A.OBJECT_NAME) = B.OBJECT_NAME
  109. AND (B.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION')
  110. OR B.OBJECT_TYPE = 'PACKAGE' AND NVL(A.PROCEDURE_NAME, 'XXXIBMC8RELMDBOGUSOBJXXX') != 'XXXIBMC8RELMDBOGUSOBJXXX')
  111. ORDER BY parentCatalog, parentSchema, procedureName
  112. </relmd:sql>
  113. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.OWNER = B.OWNER" relmd:insertLocation="after" relmd:insertPrefix="AND">
  114. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="decode(A.PROCEDURE_NAME, null, A.OBJECT_NAME, A.OBJECT_NAME || '.' || A.PROCEDURE_NAME)"/>
  115. </relmd:objectSelectionsInclusion>
  116. </relmd:routinesImportRules>
  117. <relmd:proceduresImportRules>
  118. <relmd:sql>
  119. (SELECT '' parentCatalog, P.OWNER parentSchema
  120. , DECODE( P.OBJECT_NAME, NULL, P.PROCEDURE_NAME, P.OBJECT_NAME || '.' || P.PROCEDURE_NAME ) as procedureName
  121. , '' description, DECODE(min(a.POSITION), 0, 'Function', 'Procedure') invocationType
  122. FROM ALL_PROCEDURES P, ALL_ARGUMENTS A
  123. WHERE P.OBJECT_NAME = A.PACKAGE_NAME
  124. AND P.PROCEDURE_NAME = A.OBJECT_NAME
  125. GROUP BY P.OWNER, P.OBJECT_NAME, P.PROCEDURE_NAME)
  126. UNION
  127. (select '' parentCatalog, B.OWNER parentSchema, B.OBJECT_NAME procedureName, '' description, 'Procedure' invocationType
  128. from ALL_OBJECTS B
  129. WHERE B.OBJECT_TYPE in ('PROCEDURE'))
  130. </relmd:sql>
  131. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE P.OBJECT_NAME = A.PACKAGE_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
  132. <relmd:objectSelectionsCondition relmd:schemaExpression="P.OWNER" relmd:objectExpression="DECODE( P.OBJECT_NAME, NULL, P.PROCEDURE_NAME, P.OBJECT_NAME || '.' || P.PROCEDURE_NAME )"/>
  133. </relmd:objectSelectionsInclusion>
  134. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE B.OBJECT_TYPE in ('PROCEDURE')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  135. <relmd:objectSelectionsCondition relmd:schemaExpression="B.OWNER" relmd:objectExpression="B.OBJECT_NAME"/>
  136. </relmd:objectSelectionsInclusion>
  137. </relmd:proceduresImportRules>
  138. <relmd:functionsImportRules>
  139. <relmd:sql>
  140. SELECT '' parentCatalog, A.OWNER parentSchema, decode(A.PROCEDURE_NAME, null, A.OBJECT_NAME
  141. , A.OBJECT_NAME || '.' || A.PROCEDURE_NAME) procedureName, '' description
  142. , DECODE( B.OBJECT_TYPE, 'PACKAGE', 'function', LOWER(B.OBJECT_TYPE)) invocationType
  143. FROM ALL_PROCEDURES A, ALL_OBJECTS B
  144. WHERE A.OWNER = B.OWNER
  145. AND NVL(A.PROCEDURE_NAME, A.OBJECT_NAME) = B.OBJECT_NAME
  146. AND (B.OBJECT_TYPE IN ('FUNCTION')
  147. OR B.OBJECT_TYPE = 'PACKAGE' AND NVL(A.PROCEDURE_NAME, 'XXXIBMC8RELMDBOGUSOBJXXX') != 'XXXIBMC8RELMDBOGUSOBJXXX')
  148. ORDER BY parentCatalog, parentSchema, procedureName
  149. </relmd:sql>
  150. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.OWNER = B.OWNER" relmd:insertLocation="after" relmd:insertPrefix="AND">
  151. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="decode(A.PROCEDURE_NAME, null, A.OBJECT_NAME, A.OBJECT_NAME || '.' || A.PROCEDURE_NAME)"/>
  152. </relmd:objectSelectionsInclusion>
  153. </relmd:functionsImportRules>
  154. <relmd:routineArgumentsImportRules>
  155. <relmd:sql>select '' parentCatalog, a.owner parentSchema, DECODE (B.PACKAGE_NAME, NULL, B.OBJECT_NAME, B.PACKAGE_NAME || '.' || B.OBJECT_NAME) as parentQueryObject, a.argument_name parameterName, a.data_type dataType, a.data_length datalength, a.data_precision dataprecision, a.data_scale datascale, 'false' nullableFlag, '' defaultValue, '' collationSequence, '' description, nvl(a.overload-1,0) signatureIndex, case a.in_out when 'IN/OUT' then 'inout' else lower(a.in_out) end parameterMode, '0' occurs, a.sequence parameterSequence, a.data_level dataLevel, a.position dataLevelPosition from all_arguments a
  156. ORDER BY parentCatalog, parentSchema, parentQueryObject, signatureIndex, parameterSequence, dataLevel, dataLevelPosition</relmd:sql>
  157. <relmd:objectSelectionsInclusion relmd:sqlFragment="from all_arguments a" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  158. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="DECODE (B.PACKAGE_NAME, NULL, B.OBJECT_NAME, B.PACKAGE_NAME || '.' || B.OBJECT_NAME)"/>
  159. </relmd:objectSelectionsInclusion>
  160. </relmd:routineArgumentsImportRules>
  161. <relmd:procedureRoutineArgusImportRules>
  162. <relmd:sql>
  163. SELECT distinct '' parentCatalog, A.owner parentSchema, DECODE (B.PACKAGE_NAME, NULL, B.OBJECT_NAME, B.PACKAGE_NAME || '.' || B.OBJECT_NAME) as parentQueryObject, B.ARGUMENT_NAME parameterName, B.DATA_TYPE dataType, B.DATA_LENGTH datalength, B.DATA_PRECISION dataprecision, B.DATA_SCALE datascale, 'false' nullableFlag, '' defaultValue, '' collationSequence, '' description,
  164. nvl(b.overload-1,0) signatureIndex, case b.in_out when 'IN/OUT' then 'inout' else lower(b.in_out) end parameterMode, '0' occurs, b.sequence parameterSequence, b.data_level dataLevel, b.position dataLevelPosition
  165. from ALL_OBJECTS A, ALL_ARGUMENTS B
  166. where A.OBJECT_ID = B.OBJECT_ID
  167. AND B.DATA_LEVEL = 0
  168. ORDER BY parentCatalog, parentSchema, parentQueryObject, signatureIndex, parameterSequence, dataLevel, dataLevelPosition</relmd:sql>
  169. <relmd:objectSelectionsInclusion relmd:sqlFragment="A.OBJECT_ID = B.OBJECT_ID" relmd:insertLocation="after" relmd:insertPrefix="AND">
  170. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="DECODE (B.PACKAGE_NAME, NULL, B.OBJECT_NAME, B.PACKAGE_NAME || '.' || B.OBJECT_NAME)"/>
  171. </relmd:objectSelectionsInclusion>
  172. </relmd:procedureRoutineArgusImportRules>
  173. <relmd:functionRoutineArgusImportRules>
  174. <relmd:sql>select '' parentCatalog, a.owner parentSchema, DECODE(a.package_name, null, a.object_name
  175. , a.package_name || '.' || a.object_name) parentQueryObject, a.argument_name parameterName
  176. , a.data_type dataType, a.data_length datalength, a.data_precision dataprecision, a.data_scale datascale
  177. , 'false' nullableFlag, '' defaultValue, '' collationSequence, '' description, nvl(a.overload-1,0) signatureIndex
  178. , case a.in_out when 'IN/OUT' then 'inout' else lower(a.in_out) end parameterMode
  179. , '0' occurs, a.sequence parameterSequence, a.data_level dataLevel, a.position dataLevelPosition from all_arguments a,
  180. ALL_OBJECTS B WHERE B.OBJECT_TYPE IN ('FUNCTION') AND A.OBJECT_NAME = B.OBJECT_NAME
  181. ORDER BY parentCatalog, parentSchema, parentQueryObject, signatureIndex, parameterSequence, dataLevel, dataLevelPosition</relmd:sql>
  182. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.OBJECT_NAME = B.OBJECT_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
  183. <relmd:objectSelectionsCondition relmd:schemaExpression="A.OWNER" relmd:objectExpression="DECODE(a.package_name, null, a.object_name, a.package_name || '.' || a.object_name)"/>
  184. </relmd:objectSelectionsInclusion>
  185. </relmd:functionRoutineArgusImportRules>
  186. <relmd:sqlObjectImportRules>
  187. <relmd:sql>(SELECT '' parentCatalog, a.owner parentSchema, a.object_name sqlObjectName, SUBSTR(a.object_type, 0, 1) objectType, '' externalHostRef, '' targetCatalog, '' targetSchema, '' targetObject, '' targetType, '' description
  188. FROM sys.all_objects A
  189. WHERE a.object_type IN ('TABLE','VIEW'))
  190. UNION
  191. (SELECT '' parentCatalog, a.owner parentSchema, a.synonym_name sqlObjectName, 'S' objectType, '' externalHostRef, '' refCatalog, CASE WHEN a.table_owner &lt;&gt; a.owner THEN a.table_owner ELSE '' END, a.table_name targetObject, SUBSTR(b.object_type,0,1) targetType, '' description
  192. FROM sys.all_synonyms a, all_objects b
  193. WHERE a.table_owner = b.owner
  194. AND a.table_name = b.object_name
  195. AND b.object_type IN ('TABLE','VIEW','SYNONYM'))</relmd:sql>
  196. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="a.object_type IN ('TABLE','VIEW')" relmd:insertPrefix="AND">
  197. <relmd:objectSelectionsCondition relmd:schemaExpression="a.owner" relmd:objectExpression="a.object_name"/>
  198. </relmd:objectSelectionsInclusion>
  199. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="b.object_type IN ('TABLE','VIEW','SYNONYM')" relmd:insertPrefix="AND">
  200. <relmd:objectSelectionsCondition relmd:schemaExpression="a.owner" relmd:objectExpression="a.synonym_name"/>
  201. </relmd:objectSelectionsInclusion>
  202. </relmd:sqlObjectImportRules>
  203. <relmd:schemasBrowseRules>
  204. <relmd:sql>
  205. SELECT A.OWNER objectName, '' description
  206. FROM ALL_CATALOG A
  207. GROUP BY A.OWNER
  208. ORDER BY A.OWNER
  209. </relmd:sql>
  210. <relmd:systemObjectFilter relmd:insertLocation="after" relmd:sqlFragment="FROM ALL_CATALOG A" relmd:insertPrefix="WHERE" relmd:objectExpression="A.OWNER">
  211. <relmd:systemObject relmd:name="SYS"/>
  212. <relmd:systemObject relmd:name="SYSTEM"/>
  213. <relmd:systemObject relmd:name="DBSNMP"/>
  214. <relmd:systemObject relmd:name="OUTLN"/>
  215. <relmd:systemObject relmd:name="MDSYS"/>
  216. <relmd:systemObject relmd:name="ORDSYS"/>
  217. <relmd:systemObject relmd:name="ORDPLUGINS"/>
  218. <relmd:systemObject relmd:name="CTXSYS"/>
  219. <relmd:systemObject relmd:name="DSSYS"/>
  220. <relmd:systemObject relmd:name="PERFSTAT"/>
  221. <relmd:systemObject relmd:name="WKPROXY"/>
  222. <relmd:systemObject relmd:name="WKSYS"/>
  223. <relmd:systemObject relmd:name="WMSYS"/>
  224. <relmd:systemObject relmd:name="XDB"/>
  225. <relmd:systemObject relmd:name="ANONYMOUS"/>
  226. <relmd:systemObject relmd:name="ODM"/>
  227. <relmd:systemObject relmd:name="ODM_MTR"/>
  228. <relmd:systemObject relmd:name="OLAPSYS"/>
  229. <relmd:systemObject relmd:name="TRACESVR"/>
  230. <relmd:systemObject relmd:name="REPADMIN"/>
  231. <relmd:systemObject relmd:name="SYSMAN"/>
  232. <relmd:systemObject relmd:name="EXFSYS"/>
  233. <relmd:systemObject relmd:name="DMSYS"/>
  234. <relmd:systemObject relmd:name="HR"/>
  235. <relmd:systemObject relmd:name="OE"/>
  236. <relmd:systemObject relmd:name="OLAPSYS"/>
  237. <relmd:systemObject relmd:name="ANONYMOUS"/>
  238. <relmd:systemObject relmd:name="SCOTT"/>
  239. <relmd:systemObject relmd:name="PUBLIC"/>
  240. </relmd:systemObjectFilter>
  241. </relmd:schemasBrowseRules>
  242. <relmd:tablesBrowseRules>
  243. <relmd:schemaGrainSql>
  244. SELECT A.TABLE_NAME objectName, '' description
  245. FROM ALL_TABLES A
  246. WHERE A.OWNER = '<relmd:schemaSubstitution/>'
  247. ORDER BY objectName
  248. </relmd:schemaGrainSql>
  249. </relmd:tablesBrowseRules>
  250. <relmd:viewsBrowseRules>
  251. <relmd:schemaGrainSql>
  252. SELECT A.VIEW_NAME objectName, '' description
  253. FROM ALL_VIEWS A
  254. WHERE A.OWNER = '<relmd:schemaSubstitution/>'
  255. ORDER BY objectName
  256. </relmd:schemaGrainSql>
  257. </relmd:viewsBrowseRules>
  258. <relmd:columnsBrowseRules>
  259. <relmd:objectGrainSql>
  260. SELECT A.COLUMN_NAME objectName, '' description
  261. FROM ALL_TAB_COLUMNS A
  262. WHERE A.OWNER = '<relmd:schemaSubstitution/>'
  263. AND A.TABLE_NAME= '<relmd:objectSubstitution/>'
  264. ORDER BY A.COLUMN_ID
  265. </relmd:objectGrainSql>
  266. </relmd:columnsBrowseRules>
  267. <relmd:synonymsBrowseRules>
  268. <relmd:schemaGrainSql>
  269. SELECT A.SYNONYM_NAME objectName, '' description
  270. FROM ALL_SYNONYMS A, ALL_OBJECTS B
  271. where b.OWNER = a.TABLE_OWNER
  272. and b.OBJECT_NAME = a.TABLE_NAME
  273. AND A.OWNER = '<relmd:schemaSubstitution/>'
  274. AND B.OBJECT_TYPE IN ('TABLE', 'VIEW', 'INDEX', 'PROCEDURE', 'FUNCTION', 'SYNONYM', 'PACKAGE')
  275. UNION
  276. select T1.SYNONYM_NAME objectName, '' description
  277. FROM ALL_SYNONYMS T1
  278. WHERE T1.DB_LINK is not null
  279. ORDER BY objectName
  280. </relmd:schemaGrainSql>
  281. </relmd:synonymsBrowseRules>
  282. <relmd:proceduresBrowseRules>
  283. <relmd:schemaGrainSql>
  284. (SELECT DISTINCT
  285. DECODE( P.OBJECT_NAME, NULL, P.PROCEDURE_NAME, P.OBJECT_NAME || '.' || P.PROCEDURE_NAME ) as objectName, '' description
  286. from ALL_PROCEDURES P, ALL_ARGUMENTS A
  287. WHERE P.OWNER = '<relmd:schemaSubstitution/>'
  288. AND P.OBJECT_NAME = A.PACKAGE_NAME
  289. AND P.PROCEDURE_NAME = A.OBJECT_NAME
  290. GROUP BY P.OBJECT_NAME, P.PROCEDURE_NAME)
  291. UNION
  292. (SELECT B.OBJECT_NAME objectName, '' description
  293. FROM ALL_OBJECTS B
  294. where B.OBJECT_TYPE in ('PROCEDURE') and B.OWNER = '<relmd:schemaSubstitution/>')
  295. </relmd:schemaGrainSql>
  296. </relmd:proceduresBrowseRules>
  297. <relmd:functionsBrowseRules>
  298. <relmd:schemaGrainSql>
  299. SELECT decode(A.PROCEDURE_NAME, null, A.OBJECT_NAME, A.OBJECT_NAME || '.' || A.PROCEDURE_NAME) objectName, '' description
  300. FROM ALL_PROCEDURES A, ALL_OBJECTS B
  301. WHERE A.OWNER = B.OWNER
  302. AND A.OWNER= '<relmd:schemaSubstitution/>'
  303. AND NVL(A.PROCEDURE_NAME, A.OBJECT_NAME) = B.OBJECT_NAME
  304. AND B.OBJECT_TYPE = 'FUNCTION'
  305. GROUP BY DECODE(A.PROCEDURE_NAME, null, A.OBJECT_NAME, A.OBJECT_NAME || '.' || A.PROCEDURE_NAME)
  306. ORDER BY objectName
  307. </relmd:schemaGrainSql>
  308. </relmd:functionsBrowseRules>
  309. <relmd:objectListingsRules>
  310. <relmd:sql>SELECT parentCatalog, parentSchema, databaseObject, objectType, description FROM
  311. (SELECT '' parentCatalog, A.OWNER parentSchema, A.OBJECT_NAME databaseObject, lower(OBJECT_TYPE) objectType, '' description
  312. FROM SYS.ALL_OBJECTS A
  313. WHERE A.OBJECT_TYPE IN ('TABLE','VIEW','SYNONYM')
  314. ORDER BY A.OWNER, A.OBJECT_NAME)
  315. UNION
  316. (SELECT '' parentCatalog, A.OWNER parentSchema, decode(A.PROCEDURE_NAME, null, A.OBJECT_NAME,
  317. A.OBJECT_NAME || '.' || A.PROCEDURE_NAME) databaseObject, DECODE( B.OBJECT_TYPE, 'PACKAGE', 'function', LOWER(B.OBJECT_TYPE)) objectType, '' description
  318. FROM ALL_PROCEDURES A, ALL_OBJECTS B
  319. WHERE A.OWNER = B.OWNER AND NVL(A.PROCEDURE_NAME, A.OBJECT_NAME) = B.OBJECT_NAME
  320. AND (B.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION') OR (B.OBJECT_TYPE = 'PACKAGE' AND NVL(A.PROCEDURE_NAME, 'XXXIBMC8RELMDBOGUSOBJXXX') != 'XXXIBMC8RELMDBOGUSOBJXXX')))
  321. ORDER BY parentSchema, databaseObject</relmd:sql>
  322. </relmd:objectListingsRules>
  323. <relmd:driverClass relmd:className="oracle.jdbc.OracleDriver"/>
  324. </relmd:vendorRules>