db2.xml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  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, 2015
  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.YY
  10. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  11. DB2 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 DISTINCT '' catalogName, rtrim(current_schema) from sysibm.sysdummy1</relmd:sql>
  17. </relmd:defaultCatalogSchemaQueryRules>
  18. <relmd:tablesImportRules>
  19. <relmd:sql>SELECT '' CATALOG_NAME, RTRIM(A.TABSCHEMA) SCHEMA_NAME, A.TABNAME TABLE_NAME, TYPE TABLE_TYPE, A.REMARKS DESCRIPTION
  20. FROM SYSCAT.TABLES A WHERE A.TYPE IN ('T','S')
  21. ORDER BY SCHEMA_NAME, TABLE_NAME</relmd:sql>
  22. <relmd:objectSelectionsInclusion relmd:sqlFragment="A WHERE A.TYPE IN ('T','S')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  23. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  24. </relmd:objectSelectionsInclusion>
  25. </relmd:tablesImportRules>
  26. <relmd:viewsImportRules>
  27. <relmd:sql>SELECT '' CATALOG_NAME, RTRIM(A.TABSCHEMA) SCHEMA_NAME, A.TABNAME TABLE_NAME, TYPE TABLE_TYPE, A.REMARKS DESCRIPTION
  28. FROM SYSCAT.TABLES A WHERE A.TYPE IN ('V')
  29. ORDER BY SCHEMA_NAME, TABLE_NAME</relmd:sql>
  30. <relmd:objectSelectionsInclusion relmd:sqlFragment="A WHERE A.TYPE IN ('V')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  31. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  32. </relmd:objectSelectionsInclusion>
  33. </relmd:viewsImportRules>
  34. <relmd:columnsImportRules>
  35. <relmd:sql>SELECT '' CATALOG_NAME, RTRIM(A.TABSCHEMA) SCHEMA_NAME, A.TABNAME TABLE_NAME, A.COLNAME COLUMN_NAME, A.TYPENAME DATATYPE, A.LENGTH LENGTH, A.LENGTH PRECISION, A.SCALE SCALE, CASE WHEN A.NULLS = 'Y' THEN 'true' ELSE 'false' END NULLABLE_FLAG, A.DEFAULT DEFAULT_VALUE, '' collationSequence, A.REMARKS DESCRIPTION FROM SYSCAT.COLUMNS A ORDER BY SCHEMA_NAME, TABLE_NAME, A.COLNO</relmd:sql>
  36. <relmd:objectSelectionsInclusion relmd:sqlFragment="SYSCAT.COLUMNS A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  37. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME" relmd:columnExpression="A.COLNAME"/>
  38. </relmd:objectSelectionsInclusion>
  39. </relmd:columnsImportRules>
  40. <relmd:uniqueKeysImportRules>
  41. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.TABSCHEMA) parentSchema, A.TABNAME parentQueryObject, A.CONSTNAME keyName, B.COLNAME refColumnName, B.COLSEQ refColumnSequence, '' description
  42. FROM SYSCAT.TABCONST A, SYSCAT.KEYCOLUSE B
  43. WHERE A.TYPE IN ('P', 'U')
  44. AND A.TABSCHEMA=B.TABSCHEMA
  45. AND A.TABNAME=B.TABNAME
  46. AND A.CONSTNAME = B.CONSTNAME
  47. ORDER BY parentSchema, parentQueryObject, keyName, refColumnSequence</relmd:sql>
  48. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.CONSTNAME = B.CONSTNAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
  49. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  50. </relmd:objectSelectionsInclusion>
  51. </relmd:uniqueKeysImportRules>
  52. <relmd:foreignKeysImportRules>
  53. <relmd:sql>SELECT '' parentCatalog, RTRIM(FKR.REFTABSCHEMA) parentSchema, FKR.TABNAME parentQueryObject, FKR.CONSTNAME foreignKeyName, FKRC.COLNAME exportedColumn, FKRC.COLSEQ columnSequence, '' importedCatalog, RTRIM(PKR.TABSCHEMA) importedSchema, PKR.REFTABNAME importedTable, FKR.REFKEYNAME importedUniqueKey, PKRC.COLNAME importedColumn, '' description
  54. FROM SYSCAT.REFERENCES FKR, SYSCAT.KEYCOLUSE FKRC, SYSCAT.REFERENCES PKR, SYSCAT.KEYCOLUSE PKRC
  55. WHERE FKR.TABSCHEMA = FKRC.TABSCHEMA AND FKR.TABNAME = FKRC.TABNAME AND FKR.CONSTNAME = FKRC.CONSTNAME
  56. AND PKR.REFTABSCHEMA = PKRC.TABSCHEMA AND PKR.REFTABNAME = PKRC.TABNAME AND PKR.REFKEYNAME = PKRC.CONSTNAME AND PKR.REFTABSCHEMA = PKRC.TABSCHEMA
  57. AND PKR.REFTABSCHEMA = FKR.TABSCHEMA AND FKR.CONSTNAME = PKR.CONSTNAME AND FKRC.COLSEQ = PKRC.COLSEQ
  58. ORDER BY parentSchema, parentQueryObject, foreignKeyName, columnSequence</relmd:sql>
  59. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND PKR.REFTABSCHEMA = FKR.TABSCHEMA AND FKR.CONSTNAME = PKR.CONSTNAME AND FKRC.COLSEQ = PKRC.COLSEQ" relmd:insertLocation="after" relmd:insertPrefix="AND">
  60. <relmd:objectSelectionsCondition relmd:schemaExpression="FKR.REFTABSCHEMA" relmd:objectExpression="FKR.TABNAME"/>
  61. </relmd:objectSelectionsInclusion>
  62. </relmd:foreignKeysImportRules>
  63. <relmd:indexesImportRules>
  64. <relmd:sql>SELECT '' tableCatalog, RTRIM(A.TABSCHEMA) tableSchema, A.TABNAME tableName, A.INDNAME objectName, CASE A.UNIQUERULE WHEN 'P' THEN '1' WHEN 'U' THEN '1' ELSE '0' END isUnique, CASE A.INDEXTYPE WHEN 'REG' THEN '1' WHEN 'CLUS' THEN '3' ELSE '0' END storageType, '' parentCatalog, RTRIM(A.INDSCHEMA) parentSchema, B.COLSEQ refColumnSequence, B.COLNAME refColumnName, 'A' /*B.COLORDER*/ sortOrder, '' description
  65. FROM SYSCAT.INDEXES A, SYSCAT.INDEXCOLUSE B
  66. WHERE A.INDSCHEMA = B.INDSCHEMA
  67. AND A.INDNAME = B.INDNAME
  68. ORDER BY parentSchema, tableName, objectName, refColumnSequence</relmd:sql>
  69. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.INDNAME = B.INDNAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
  70. <relmd:objectSelectionsCondition relmd:schemaExpression="A.INDSCHEMA"/>
  71. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  72. </relmd:objectSelectionsInclusion>
  73. </relmd:indexesImportRules>
  74. <relmd:synonymsImportRules>
  75. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.TABSCHEMA) parentSchema, A.TABNAME sqlObjectName
  76. , '' externalHostRef, '' refCatalog, CASE WHEN A.BASE_TABSCHEMA &lt;&gt; A.TABSCHEMA THEN RTRIM(A.BASE_TABSCHEMA) ELSE '' END refSchema
  77. , A.BASE_TABNAME targetSqlObjectName, '' description FROM SYSCAT.TABLES A
  78. WHERE A.TYPE IN ('A', 'N')
  79. ORDER BY parentCatalog, parentSchema, targetSqlObjectName</relmd:sql>
  80. <relmd:objectSelectionsInclusion relmd:sqlFragment="A.TYPE IN ('A', 'N')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  81. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  82. </relmd:objectSelectionsInclusion>
  83. </relmd:synonymsImportRules>
  84. <relmd:routinesImportRules>
  85. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME procedureName,'' description, A.ROUTINETYPE procedureType
  86. FROM SYSCAT.ROUTINES A
  87. WHERE A.ROUTINETYPE IN ('F','P')
  88. ORDER BY parentSchema, procedureName</relmd:sql>
  89. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('F','P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  90. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  91. </relmd:objectSelectionsInclusion>
  92. </relmd:routinesImportRules>
  93. <relmd:proceduresImportRules>
  94. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME procedureName,'' description, A.ROUTINETYPE procedureType
  95. FROM SYSCAT.ROUTINES A
  96. WHERE A.ROUTINETYPE IN ('P')
  97. ORDER BY parentSchema, procedureName</relmd:sql>
  98. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  99. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  100. </relmd:objectSelectionsInclusion>
  101. </relmd:proceduresImportRules>
  102. <relmd:functionsImportRules>
  103. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME procedureName,'' description, A.ROUTINETYPE procedureType
  104. FROM SYSCAT.ROUTINES A
  105. WHERE A.ROUTINETYPE IN ('F')
  106. ORDER BY parentSchema, procedureName</relmd:sql>
  107. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('F')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  108. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  109. </relmd:objectSelectionsInclusion>
  110. </relmd:functionsImportRules>
  111. <relmd:routineArgumentsImportRules>
  112. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME parentQueryObject, A.PARMNAME parameterName
  113. , A.TYPENAME dataType, A.LENGTH length, '' precision, A.SCALE scale, 'FALSE' isNullable, '' defaultValue
  114. , '' collationSequence, '' description, B.ROUTINEID signatureIndex
  115. , CASE A.ROWTYPE
  116. WHEN 'R' THEN 'out' WHEN 'C' THEN 'out' WHEN 'P' THEN 'in' WHEN 'O' THEN 'out' WHEN 'B' THEN 'inout'
  117. END parameterMode
  118. , '0' occurs, A.ORDINAL parameterSequence, 0 dataLevel, 0 argumentPosition
  119. FROM SYSCAT.ROUTINEPARMS A, SYSCAT.ROUTINES B
  120. WHERE A.ROUTINESCHEMA = B.ROUTINESCHEMA AND A.ROUTINENAME = B.ROUTINENAME AND A.SPECIFICNAME = B.SPECIFICNAME AND B.ROUTINETYPE IN ('F','P')
  121. UNION
  122. SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME parentQueryObject
  123. , '' parameterName, '' dataType, 0 length, '' precision, 0 scale, 'FALSE' isNullable, '' defaultValue, '' collationSequence, '' description, -1 signatureIndex, 'emptyArgumentListPlacholder' parameterMode, '0' occurs, 0 parameterSequence, 0 dataLevel, 0 argumentPosition
  124. FROM SYSCAT.ROUTINES A
  125. WHERE (A.ROUTINESCHEMA, A.ROUTINENAME, A.SPECIFICNAME) NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)
  126. ORDER BY parentCatalog, parentSchema, parentQueryObject, signatureIndex, parameterSequence, dataLevel, argumentPosition</relmd:sql>
  127. <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('F','P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  128. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  129. </relmd:objectSelectionsInclusion>
  130. <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
  131. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  132. </relmd:objectSelectionsInclusion>
  133. </relmd:routineArgumentsImportRules>
  134. <relmd:procedureRoutineArgusImportRules>
  135. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME parentQueryObject, A.PARMNAME parameterName
  136. , A.TYPENAME dataType, A.LENGTH length, '' precision, A.SCALE scale, 'FALSE' isNullable, '' defaultValue
  137. , '' collationSequence, '' description, B.ROUTINEID signatureIndex
  138. , CASE A.ROWTYPE
  139. WHEN 'R' THEN 'out' WHEN 'C' THEN 'out' WHEN 'P' THEN 'in' WHEN 'O' THEN 'out' WHEN 'B' THEN 'inout'
  140. END parameterMode
  141. , '0' occurs, A.ORDINAL parameterSequence, 0 dataLevel, 0 argumentPosition
  142. FROM SYSCAT.ROUTINEPARMS A, SYSCAT.ROUTINES B
  143. WHERE A.ROUTINESCHEMA = B.ROUTINESCHEMA AND A.ROUTINENAME = B.ROUTINENAME AND A.SPECIFICNAME = B.SPECIFICNAME AND B.ROUTINETYPE IN ('P')
  144. UNION
  145. SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME parentQueryObject
  146. , '' parameterName, '' dataType, 0 length, '' precision, 0 scale, 'FALSE' isNullable, '' defaultValue, '' collationSequence, '' description, -1 signatureIndex, 'emptyArgumentListPlacholder' parameterMode, '0' occurs, 0 parameterSequence, 0 dataLevel, 0 argumentPosition
  147. FROM SYSCAT.ROUTINES A
  148. WHERE (A.ROUTINESCHEMA, A.ROUTINENAME, A.SPECIFICNAME) NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)
  149. ORDER BY parentCatalog, parentSchema, parentQueryObject, signatureIndex, parameterSequence, dataLevel, argumentPosition</relmd:sql>
  150. <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  151. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  152. </relmd:objectSelectionsInclusion>
  153. <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
  154. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  155. </relmd:objectSelectionsInclusion>
  156. </relmd:procedureRoutineArgusImportRules>
  157. <relmd:functionRoutineArgusImportRules>
  158. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME parentQueryObject, A.PARMNAME parameterName
  159. , A.TYPENAME dataType, A.LENGTH length, '' precision, A.SCALE scale, 'FALSE' isNullable, '' defaultValue
  160. , '' collationSequence, '' description, B.ROUTINEID signatureIndex
  161. , CASE A.ROWTYPE
  162. WHEN 'R' THEN 'out' WHEN 'C' THEN 'out' WHEN 'P' THEN 'in' WHEN 'O' THEN 'out' WHEN 'B' THEN 'inout'
  163. END parameterMode
  164. , '0' occurs, A.ORDINAL parameterSequence, 0 dataLevel, 0 argumentPosition
  165. FROM SYSCAT.ROUTINEPARMS A, SYSCAT.ROUTINES B
  166. WHERE A.ROUTINESCHEMA = B.ROUTINESCHEMA AND A.ROUTINENAME = B.ROUTINENAME AND A.SPECIFICNAME = B.SPECIFICNAME AND B.ROUTINETYPE IN ('F')
  167. UNION
  168. SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME parentQueryObject
  169. , '' parameterName, '' dataType, 0 length, '' precision, 0 scale, 'FALSE' isNullable, '' defaultValue, '' collationSequence, '' description, -1 signatureIndex, 'emptyArgumentListPlacholder' parameterMode, '0' occurs, 0 parameterSequence, 0 dataLevel, 0 argumentPosition
  170. FROM SYSCAT.ROUTINES A
  171. WHERE (A.ROUTINESCHEMA, A.ROUTINENAME, A.SPECIFICNAME) NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)
  172. ORDER BY parentCatalog, parentSchema, parentQueryObject, signatureIndex, parameterSequence, dataLevel, argumentPosition</relmd:sql>
  173. <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('F')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  174. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  175. </relmd:objectSelectionsInclusion>
  176. <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
  177. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  178. </relmd:objectSelectionsInclusion>
  179. </relmd:functionRoutineArgusImportRules>
  180. <relmd:sqlObjectImportRules>
  181. <relmd:sql>(SELECT '' AS parentCatalog, RTRIM(A.TABSCHEMA) AS parentSchema, A.TABNAME AS sqlObjectName,
  182. CASE A.TYPE WHEN 'A' THEN 'S' WHEN 'S' THEN 'T' ELSE A.TYPE END AS objectType
  183. , '' AS externalHostRef, '' AS refCatalog, '' AS refSchema, '' AS synonymTargetName, '' AS synonymTargetType, '' AS description
  184. FROM SYSCAT.TABLES A
  185. WHERE A.TYPE IN ('V','T','S'))
  186. UNION
  187. (SELECT '' AS parentCatalog, RTRIM(A.TABSCHEMA) AS parentSchema, A.TABNAME AS sqlObjectName, 'S' AS objectType
  188. , '' AS externalHostRef, '' AS refCatalog, CASE WHEN A.BASE_TABSCHEMA &lt;&gt; A.TABSCHEMA THEN RTRIM(A.BASE_TABSCHEMA) ELSE '' END AS refSchema
  189. , A.BASE_TABNAME AS synonymTargetName, CASE B.type WHEN 'A' THEN 'S' WHEN 'S' THEN 'T' ELSE B.TYPE END AS synonymTargetType, '' AS description
  190. FROM SYSCAT.TABLES A, SYSCAT.TABLES B
  191. WHERE A.TYPE IN ('A')
  192. AND B.TYPE IN ('V','T','S','A')
  193. AND A.BASE_TABSCHEMA = B.TABSCHEMA
  194. AND A.BASE_TABNAME = B.TABNAME)
  195. ORDER BY parentSchema, sqlObjectName</relmd:sql>
  196. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="A.TYPE IN ('V','T','S')" relmd:insertPrefix="AND">
  197. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  198. </relmd:objectSelectionsInclusion>
  199. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="B.TYPE IN ('V','T','S','A')" relmd:insertPrefix="AND">
  200. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  201. </relmd:objectSelectionsInclusion>
  202. </relmd:sqlObjectImportRules>
  203. <relmd:schemasBrowseRules>
  204. <relmd:sql>
  205. SELECT SCHEMANAME objectName, '' description
  206. FROM SYSCAT.SCHEMATA A
  207. GROUP BY SCHEMANAME
  208. ORDER BY objectName
  209. </relmd:sql>
  210. <relmd:systemObjectFilter relmd:insertPrefix="WHERE" relmd:sqlFragment="FROM SYSCAT.SCHEMATA A" relmd:insertLocation="after" relmd:objectExpression="SCHEMANAME">
  211. <relmd:systemObject relmd:name="SQLJ"/>
  212. <relmd:systemObject relmd:name="SYSCAT"/>
  213. <relmd:systemObject relmd:name="SYSFUN"/>
  214. <relmd:systemObject relmd:name="SYSIBM"/>
  215. <relmd:systemObject relmd:name="SYSIBMADM"/>
  216. <relmd:systemObject relmd:name="SYSIBMINTERNAL"/>
  217. <relmd:systemObject relmd:name="SYSIBMTS"/>
  218. <relmd:systemObject relmd:name="SYSPROC"/>
  219. <relmd:systemObject relmd:name="SYSSTAT"/>
  220. <relmd:systemObject relmd:name="SYSTOOLS"/>
  221. </relmd:systemObjectFilter>
  222. </relmd:schemasBrowseRules>
  223. <relmd:tablesBrowseRules>
  224. <relmd:schemaGrainSql>
  225. SELECT A.TABNAME objectName, '' description
  226. FROM SYSCAT.TABLES A
  227. WHERE A.TYPE IN ('T','S')
  228. AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
  229. ORDER BY objectName
  230. </relmd:schemaGrainSql>
  231. </relmd:tablesBrowseRules>
  232. <relmd:viewsBrowseRules>
  233. <relmd:schemaGrainSql>
  234. SELECT A.TABNAME objectName, '' description
  235. FROM SYSCAT.TABLES A
  236. WHERE A.TYPE IN ('V')
  237. AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
  238. ORDER BY objectName
  239. </relmd:schemaGrainSql>
  240. </relmd:viewsBrowseRules>
  241. <relmd:columnsBrowseRules>
  242. <relmd:objectGrainSql>
  243. SELECT A.COLNAME objectName, '' description
  244. FROM SYSCAT.COLUMNS A
  245. WHERE A.TABSCHEMA = '<relmd:schemaSubstitution/> '
  246. AND A.TABNAME = '<relmd:objectSubstitution/>'
  247. ORDER BY A.COLNO
  248. </relmd:objectGrainSql>
  249. </relmd:columnsBrowseRules>
  250. <relmd:synonymsBrowseRules>
  251. <relmd:schemaGrainSql>
  252. SELECT A.TABNAME objectName, '' description
  253. FROM SYSCAT.TABLES A
  254. WHERE A.TYPE IN ('A', 'N')
  255. AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
  256. ORDER BY objectName
  257. </relmd:schemaGrainSql>
  258. </relmd:synonymsBrowseRules>
  259. <relmd:proceduresBrowseRules>
  260. <relmd:schemaGrainSql>
  261. SELECT A.ROUTINENAME objectName,'' description
  262. FROM SYSCAT.ROUTINES A
  263. WHERE A.ROUTINETYPE = 'P'
  264. AND A.ROUTINESCHEMA = '<relmd:schemaSubstitution/>'
  265. GROUP BY A.ROUTINENAME
  266. ORDER BY objectName
  267. </relmd:schemaGrainSql>
  268. </relmd:proceduresBrowseRules>
  269. <relmd:functionsBrowseRules>
  270. <relmd:schemaGrainSql>
  271. SELECT A.ROUTINENAME objectName,'' description
  272. FROM SYSCAT.ROUTINES A
  273. WHERE A.ROUTINETYPE = 'F'
  274. AND A.ROUTINESCHEMA = '<relmd:schemaSubstitution/>'
  275. GROUP BY A.ROUTINENAME
  276. ORDER BY objectName
  277. </relmd:schemaGrainSql>
  278. </relmd:functionsBrowseRules>
  279. <relmd:objectListingsRules>
  280. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.TABSCHEMA) parentSchema, A.TABNAME objectName, A.TYPE objectType, '' description
  281. FROM SYSCAT.TABLES A WHERE A.TYPE IN ('V','T','S','A', 'N')
  282. UNION
  283. SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME objectName, a.routinetype objectType, '' description
  284. FROM SYSCAT.ROUTINES A WHERE A.ROUTINETYPE IN ('F', 'P')
  285. ORDER BY parentSchema, objectName</relmd:sql>
  286. </relmd:objectListingsRules>
  287. <relmd:driverClass relmd:className="com.ibm.db2.jcc.DB2Driver"/>
  288. <relmd:driverClass relmd:className="COM.ibm.db2.jdbc.net.DB2Driver"/>
  289. <relmd:driverClass relmd:className="COM.ibm.db2.jdbc.app.DB2Driver"/>
  290. </relmd:vendorRules>