db2_As400.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  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/>
  17. </relmd:defaultCatalogSchemaQueryRules>
  18. <relmd:tablesImportRules>
  19. <relmd:sql>SELECT '' CATALOG_NAME, RTRIM( base_schema ) SCHEMA_NAME, name TABLE_NAME, TYPE TABLE_TYPE, '' DESCRIPTION
  20. from(select A.creator, A.name,A.type,A.status,A.base_schema,base_name from sysibm.tables A, sysibm.tables B
  21. WHERE A.TYPE IN ('A')
  22. AND B.TYPE IN ('V','T','S','A')
  23. AND A.TBSCHEMA = B.TBSCHEMA
  24. AND A.BASE_TBNAME = B.NAME
  25. ORDER BY base_schema, name)</relmd:sql>
  26. <relmd:objectSelectionsInclusion relmd:sqlFragment="B.TYPE IN ('V','T','S','A')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  27. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TBSCHEMA" relmd:objectExpression="A.BASE_TBNAME"/>
  28. </relmd:objectSelectionsInclusion>
  29. </relmd:tablesImportRules>
  30. <relmd:viewsImportRules>
  31. <relmd:sql>SELECT '' CATALOG_NAME, RTRIM(creator) SCHEMA_NAME, name TABLE_NAME, TYPE TABLE_TYPE, '' DESCRIPTION
  32. from (select creator, name, type from qsys2.systables t WHERE t.TYPE IN ('V') order by creator,name)</relmd:sql>
  33. <relmd:objectSelectionsInclusion relmd:sqlFragment="t WHERE t.TYPE IN ('V')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  34. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  35. </relmd:objectSelectionsInclusion>
  36. </relmd:viewsImportRules>
  37. <relmd:columnsImportRules>
  38. <relmd:sql>SELECT '' CATALOG_NAME, RTRIM(AA.TABLE_SCHEMA) SCHEMA_NAME, AA.TABLE_NAME TABLE_NAME, AA.COLUMN_NAME COLUMN_NAME, AA.DATA_TYPE DATATYPE, AA.CHARACTER_MAXIMUM_LENGTH LENGTH, '' PRECISION, AA.SCALE SCALE,
  39. CASE WHEN AA.IS_NULLABLE = 'Y' THEN 'true' ELSE 'false' END NULLABLE_FLAG, AA.COLUMN_DEFAULT DEFAULT_VALUE, '' collationSequence, '' DESCRIPTION
  40. from
  41. (select
  42. c.TABLE_SCHEMA,
  43. c.TABLE_NAME,
  44. c.COLUMN_NAME,
  45. c.ORDINAL_POSITION,
  46. c.CHARACTER_MAXIMUM_LENGTH,
  47. c.NUMERIC_SCALE AS SCALE,
  48. c.COLUMN_DEFAULT,
  49. c.IS_NULLABLE,
  50. c.TABLE_SCHEMA SOURCE_SCHEMA,
  51. c.TABLE_NAME SOURCE_TABLE,
  52. c.DATA_TYPE
  53. from sysibm.columns c ORDER BY TABLE_SCHEMA,
  54. TABLE_NAME,
  55. ORDINAL_POSITION) AS AA</relmd:sql>
  56. <relmd:objectSelectionsInclusion relmd:sqlFragment="SYSCAT.COLUMNS A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  57. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  58. </relmd:objectSelectionsInclusion>
  59. </relmd:columnsImportRules>
  60. <relmd:uniqueKeysImportRules>
  61. <relmd:sql/>
  62. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.CONSTNAME = B.CONSTNAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
  63. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  64. </relmd:objectSelectionsInclusion>
  65. </relmd:uniqueKeysImportRules>
  66. <relmd:foreignKeysImportRules>
  67. <relmd:sql>SELECT '' parentCatalog, RTRIM(FKR_reftbcreator) parentSchema, FRK_TBNAME parentQueryObject, FRK_relname foreignKeyName, FKRC_COLNAME exportedColumn, FKRC_COLSEQ columnSequence, '' importedCatalog,
  68. RTRIM(FKR_reftbcreator) importedSchema, reftbname importedTable, refkeyname importedUniqueKey, PKRC_COLNAME importedColumn, '' description
  69. from (
  70. SELECT FRK.CONSTRAINT_NAME FRK_RELNAME,
  71. FRK.CONSTRAINT_SCHEMA FRK_refcreator,
  72. FRKC.TABLE_NAME FRK_TBNAME,
  73. FRK.CONSTRAINT_SCHEMA definer,
  74. '' FKR_definertype,
  75. FRKP.UNIQUE_CONSTRAINT_NAME refkeyname,
  76. FRKP.CONSTRAINT_SCHEMA FKR_reftbcreator,
  77. FRKCP.TABLE_NAME reftbname,
  78. FRK.COLUMN_COUNT,
  79. FRK.DELETE_RULE,
  80. FRK.UPDATE_RULE,
  81. '' A,
  82. '' B,
  83. FRKC.COLUMN_NAME FKRC_COLNAME,
  84. FRKCP.COLUMN_NAME PKRC_COLNAME,
  85. FRKC.ORDINAL_POSITION FKRC_COLSEQ
  86. from qsys2.SYSREFCST FRK, qsys2.SYSKEYCST FRKC, qsys2.SYSREFCST FRKP, qsys2.SYSKEYCST FRKCP
  87. where FRK.CONSTRAINT_NAME = FRKC.CONSTRAINT_NAME
  88. AND FRK.CONSTRAINT_SCHEMA = FRKC.CONSTRAINT_SCHEMA
  89. AND FRKP.UNIQUE_CONSTRAINT_NAME = FRKCP.CONSTRAINT_NAME
  90. AND FRKP.CONSTRAINT_SCHEMA = FRKCP.CONSTRAINT_SCHEMA
  91. AND FRKP.UNIQUE_CONSTRAINT_NAME = FRK.UNIQUE_CONSTRAINT_NAME
  92. AND FRK.CONSTRAINT_SCHEMA = FRKP.CONSTRAINT_SCHEMA
  93. AND FRKP.CONSTRAINT_NAME = FRK.CONSTRAINT_NAME
  94. )</relmd:sql>
  95. <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">
  96. <relmd:objectSelectionsCondition relmd:schemaExpression="FKR.REFTABSCHEMA" relmd:objectExpression="FKR.TABNAME"/>
  97. </relmd:objectSelectionsInclusion>
  98. </relmd:foreignKeysImportRules>
  99. <relmd:indexesImportRules>
  100. <relmd:sql>SELECT '' tableCatalog, RTRIM( k_creator) tableSchema, k_tbname tableName, name objectName,
  101. CASE UNIQUERULE WHEN 'P' THEN '1' WHEN 'U' THEN '1' ELSE '0' END isUnique,
  102. CASE INDEXTYPE WHEN 'REG' THEN '1' WHEN 'CLUS' THEN '3' ELSE '0' END storageType, '' parentCatalog,
  103. RTRIM(k_tbcreator) parentSchema, colseq refColumnSequence, colname refColumnName, 'A' /*B.COLORDER*/ sortOrder, '' description
  104. from (select k.INDEX_OWNER k_creator,k.INDEX_NAME name,k.TABLE_OWNER k_tbcreator,k.TABLE_NAME k_tbname,k.IS_UNIQUE uniquerule,k.IS_UNIQUE made_unique,'' indextype,'' entrytype,i.INDEX_SCHEMA indschema,i.INDEX_NAME indname,
  105. i.COLUMN_NAME colname,i.ORDINAL_POSITION colseq,i.ORDERING colorder from qsys2.SYSINDEXES as k,qsys2.SYSKEYS as i
  106. where k.INDEX_OWNER = i.INDEX_SCHEMA
  107. and k.INDEX_NAME = i.INDEX_NAME
  108. ORDER BY k.INDEX_OWNER, k.TABLE_NAME, k.INDEX_NAME, i.ORDINAL_POSITION) AS DD</relmd:sql>
  109. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.INDNAME = B.INDNAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
  110. <relmd:objectSelectionsCondition relmd:schemaExpression="A.INDSCHEMA"/>
  111. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  112. </relmd:objectSelectionsInclusion>
  113. </relmd:indexesImportRules>
  114. <relmd:synonymsImportRules>
  115. <relmd:sql/>
  116. <relmd:objectSelectionsInclusion relmd:sqlFragment="A.TYPE IN ('A', 'N')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  117. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  118. </relmd:objectSelectionsInclusion>
  119. </relmd:synonymsImportRules>
  120. <relmd:routinesImportRules>
  121. <relmd:sql/>
  122. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('F','P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  123. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  124. </relmd:objectSelectionsInclusion>
  125. </relmd:routinesImportRules>
  126. <relmd:proceduresImportRules>
  127. <relmd:sql>SELECT '' parentCatalog, RTRIM(ROUTINE_SCHEMA) parentSchema, ROUTINE_NAME procedureName,'' description, ROUTINE_TYPE procedureType
  128. from
  129. (SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE FROM qsys2.SYSROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_SCHEMA NOT IN ('SYSIBM') ) AS SS
  130. </relmd:sql>
  131. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  132. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  133. </relmd:objectSelectionsInclusion>
  134. </relmd:proceduresImportRules>
  135. <relmd:functionsImportRules>
  136. <relmd:sql>SELECT DISTINCT '' parentCatalog, RTRIM(ROUTINE_SCHEMA) parentSchema, ROUTINE_NAME procedureName,'' description, ROUTINE_TYPE procedureType
  137. from
  138. (SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE FROM qsys2.SYSROUTINES WHERE ROUTINE_TYPE = 'FUNCTION' ) </relmd:sql>
  139. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('F')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  140. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  141. </relmd:objectSelectionsInclusion>
  142. </relmd:functionsImportRules>
  143. <relmd:routineArgumentsImportRules>
  144. <relmd:sql/>
  145. <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('F','P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  146. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  147. </relmd:objectSelectionsInclusion>
  148. <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
  149. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  150. </relmd:objectSelectionsInclusion>
  151. </relmd:routineArgumentsImportRules>
  152. <relmd:procedureRoutineArgusImportRules>
  153. <relmd:sql/>
  154. <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  155. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  156. </relmd:objectSelectionsInclusion>
  157. <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
  158. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  159. </relmd:objectSelectionsInclusion>
  160. </relmd:procedureRoutineArgusImportRules>
  161. <relmd:functionRoutineArgusImportRules>
  162. <relmd:sql/>
  163. <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('F')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  164. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  165. </relmd:objectSelectionsInclusion>
  166. <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
  167. <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
  168. </relmd:objectSelectionsInclusion>
  169. </relmd:functionRoutineArgusImportRules>
  170. <relmd:sqlObjectImportRules>
  171. <relmd:sql/>
  172. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="A.TYPE IN ('V','T','S')" relmd:insertPrefix="AND">
  173. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  174. </relmd:objectSelectionsInclusion>
  175. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="B.TYPE IN ('V','T','S','A')" relmd:insertPrefix="AND">
  176. <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
  177. </relmd:objectSelectionsInclusion>
  178. </relmd:sqlObjectImportRules>
  179. <relmd:schemasBrowseRules>
  180. <relmd:sql>
  181. </relmd:sql>
  182. <relmd:systemObjectFilter relmd:insertPrefix="WHERE" relmd:sqlFragment="FROM SYSCAT.TABLES A" relmd:insertLocation="after" relmd:objectExpression="RTRIM(A.TABSCHEMA)">
  183. <relmd:systemObject relmd:name="SQLJ"/>
  184. <relmd:systemObject relmd:name="SYSCAT"/>
  185. <relmd:systemObject relmd:name="SYSFUN"/>
  186. <relmd:systemObject relmd:name="SYSIBM"/>
  187. <relmd:systemObject relmd:name="SYSIBMADM"/>
  188. <relmd:systemObject relmd:name="SYSIBMINTERNAL"/>
  189. <relmd:systemObject relmd:name="SYSIBMTS"/>
  190. <relmd:systemObject relmd:name="SYSPROC"/>
  191. <relmd:systemObject relmd:name="SYSSTAT"/>
  192. <relmd:systemObject relmd:name="SYSTOOLS"/>
  193. </relmd:systemObjectFilter>
  194. </relmd:schemasBrowseRules>
  195. <relmd:tablesBrowseRules>
  196. <relmd:schemaGrainSql>
  197. SELECT A.TABNAME objectName, '' description
  198. FROM SYSCAT.TABLES A
  199. WHERE A.TYPE IN ('T','S')
  200. AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
  201. ORDER BY objectName
  202. </relmd:schemaGrainSql>
  203. </relmd:tablesBrowseRules>
  204. <relmd:viewsBrowseRules>
  205. <relmd:schemaGrainSql>
  206. SELECT A.TABNAME objectName, '' description
  207. FROM SYSCAT.TABLES A
  208. WHERE A.TYPE IN ('V')
  209. AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
  210. ORDER BY objectName
  211. </relmd:schemaGrainSql>
  212. </relmd:viewsBrowseRules>
  213. <relmd:columnsBrowseRules>
  214. <relmd:objectGrainSql>
  215. SELECT A.COLNAME objectName, '' description
  216. FROM SYSCAT.COLUMNS A
  217. WHERE A.TABSCHEMA = '<relmd:schemaSubstitution/> '
  218. AND A.TABNAME = '<relmd:objectSubstitution/>'
  219. ORDER BY A.COLNO
  220. </relmd:objectGrainSql>
  221. </relmd:columnsBrowseRules>
  222. <relmd:synonymsBrowseRules>
  223. <relmd:schemaGrainSql>
  224. SELECT A.TABNAME objectName, '' description
  225. FROM SYSCAT.TABLES A
  226. WHERE A.TYPE IN ('A', 'N')
  227. AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
  228. ORDER BY objectName
  229. </relmd:schemaGrainSql>
  230. </relmd:synonymsBrowseRules>
  231. <relmd:proceduresBrowseRules>
  232. <relmd:schemaGrainSql>
  233. SELECT A.ROUTINENAME objectName,'' description
  234. FROM SYSCAT.ROUTINES A
  235. WHERE A.ROUTINETYPE = 'P'
  236. AND A.ROUTINESCHEMA = '<relmd:schemaSubstitution/>'
  237. GROUP BY A.ROUTINENAME
  238. ORDER BY objectName
  239. </relmd:schemaGrainSql>
  240. </relmd:proceduresBrowseRules>
  241. <relmd:functionsBrowseRules>
  242. <relmd:schemaGrainSql>
  243. SELECT A.ROUTINENAME objectName,'' description
  244. FROM SYSCAT.ROUTINES A
  245. WHERE A.ROUTINETYPE = 'F'
  246. AND A.ROUTINESCHEMA = '<relmd:schemaSubstitution/>'
  247. GROUP BY A.ROUTINENAME
  248. ORDER BY objectName
  249. </relmd:schemaGrainSql>
  250. </relmd:functionsBrowseRules>
  251. <relmd:objectListingsRules>
  252. <relmd:sql>SELECT '' parentCatalog, RTRIM(A.TABSCHEMA) parentSchema, A.TABNAME objectName, A.TYPE objectType, '' description
  253. FROM SYSCAT.TABLES A WHERE A.TYPE IN ('V','T','S','A', 'N')
  254. UNION
  255. SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME objectName, a.routinetype objectType, '' description
  256. FROM SYSCAT.ROUTINES A WHERE A.ROUTINETYPE IN ('F', 'P')
  257. ORDER BY parentSchema, objectName</relmd:sql>
  258. </relmd:objectListingsRules>
  259. <relmd:driverClass relmd:className="com.ibm.db2.jcc.DB2Driver"/>
  260. <relmd:driverClass relmd:className="COM.ibm.db2.jdbc.net.DB2Driver"/>
  261. <relmd:driverClass relmd:className="COM.ibm.db2.jdbc.app.DB2Driver"/>
  262. </relmd:vendorRules>