cogdmd2.ini 80 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082
  1. ;***********************************************************************
  2. ;Licensed Materials - Property of IBM
  3. ;
  4. ;BI and PM: UDA
  5. ;
  6. ;(C) Copyright IBM Corp. 2005, 2020
  7. ;
  8. ;U.S. Government Users Restricted Rights - Use, duplication, or disclosure
  9. ;by GSA ADP Schedule Contract with IBM Corp.
  10. ;
  11. ;Unless specifically authorized by IBM, you may not modify any part of this
  12. ;file. Where modification is authorized, you must reproduce any copyright
  13. ;notices contained in this file and specifically identify which
  14. ;modifications have been made by your organization. YOU ARE SOLELY
  15. ;RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF ANY MODIFICATIONS TO
  16. ;THIS FILE AND ASSUME ALL RISKS ASSOCIATED WITH THE USE AND DISTRIBUTION
  17. ;OF THE MODIFIED FILE. IBM will not provide support relating to
  18. ;unauthorized changes you make to this file.
  19. ;***********************************************************************
  20. ; $Header: //uda/main/prod/dmd/sgi/odbc35/db2/cogdmd2.ini#9 $
  21. ;
  22. ; Module:
  23. ; cogdmd2.ini
  24. ;
  25. ; Purpose:
  26. ; This module contains the DB2 gateway information.
  27. ;
  28. ; Notes:
  29. ; Do NOT modify this file. Doing so could result in unknown behavior
  30. ; by the DB2 gateway, possibly resulting in application aborts.
  31. ;
  32. ; Entries:
  33. ; Entries are put under sections and subsections. Subsection name is a
  34. ; combination of the section name, the database name and/or the database
  35. ; version, driver name and/or driver version. The format is:
  36. ; [section name DATABASE:database name VERSION:database version
  37. ; DRIVER:driver name VERSION:driver version]
  38. ; Entries under sections are the default and will affect all databases.
  39. ; Entrise under subsections without specifing the database/driver version
  40. ; will affect all databases with the same database/driver name.
  41. ; Entries under subsections without specifing the driver name and version
  42. ; will affect all databases with the same database name and version through
  43. ; any driver.
  44. ; For this reason overwrites should be added to the appropriate
  45. ; subsections only.
  46. ; An example of section name is [Database Functions]
  47. ; An example of subsection name is
  48. ; [Database Functions DATABASE:SQL VERSION:05.02]
  49. ;
  50. ; SQL_DBMS_NAME:
  51. ; SQL -- common server, UDB
  52. ; QSQ -- DB2/400
  53. ; DSN -- DB2/MVS
  54. ;
  55. ; SQL_DRIVER_NAME:
  56. ; DB2CLI.DLL -- common server, UDB, DB2/MVS, DB2/400
  57. ; DCSYB30.DLL -- sybase direct connect to DB2/MVS, DB2/400
  58. ; LIBDB2.A (unix) -- UDB, DB2/MVS, DB2/400
  59. ;
  60. ; The sections and subsections are alphabetical, ordered ascending by
  61. ; section name, database name, and databse version, driver name,
  62. ; driver version.
  63. ;
  64. ; ************************************************************************
  65. ; To enable tracing of CLI routines called, uncomment the following two lines
  66. ; and specify a vaild trace file name.
  67. ;[TRACE]
  68. ;output=<my trace file specification>
  69. ;
  70. ; To enable tracing of data in the bound buffers, uncomment the following line
  71. ;Data=yes
  72. ;
  73. ; To enable printing the elapsed times for CLI function calls, uncomment the following line:
  74. ;Timer=yes
  75. [Database Functions]
  76. t:localtime({%1n})=CURRENT_TIME;
  77. s:localtimestamp({%1n})=CURRENT_TIMESTAMP;
  78. ;DB2/ZOS
  79. [DRIVER:DSNAOCLI DATABASE:DSN]
  80. SQL_DRIVER_ODBC_VER="03.10"
  81. SQL_ODBC_VER="03.10"
  82. SQL_COLUMN_ALIAS="Y"
  83. SQL_MAX_CONCURRENT_ACTIVITIES="1"
  84. [DRIVER:DSNAOCLI VERSION:10]
  85. Bulk Fetch uses SQLFetchScroll="Y"
  86. [DRIVER:DSNAOCLI VERSION:09]
  87. Bulk Fetch uses SQLFetchScroll="Y"
  88. [DRIVER:DSNAOCLI VERSION:08]
  89. Bulk Fetch uses SQLExtendedFetch="Y"
  90. [Database Functions DRIVER:DSNAOCLI DATABASE:DSN]
  91. cx:trim_trailing_spaces(%1cx)=RTRIM(%1);
  92. ;DB2/MVS/ZOS
  93. [Database Functions DATABASE:DSN]
  94. c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3}, CODEUNITS32);
  95. n:char_length(%1cx)=CHARACTER_LENGTH(%1, CODEUNITS32);
  96. n:position(%1cx, %2cx)=POSITION(%1, %2, CODEUNITS32);
  97. bcxdnst:coalesce(%1bcxdnst *{, %2bcxdnst})=COALESCE(%1 *{, %2});
  98. bcxdnst:nullif(%1bcxdnst, %2bcxdnst)=IFNULL(%1, %2);
  99. c:lower(%1c)=LCASE(%1);
  100. c:translate(%1c{, %2c{, %3c{, %4c}}})=TRANSLATE(%1{, %2{, %3{, %4}}});
  101. c:upper(%1c)=UCASE(%1);
  102. c:cast_char(%1cxdnts)=CHAR(%1);
  103. c:cast_char(%1cxdnts, %2cn)=CHAR(CHAR(%1), %2);
  104. d:cast_date(%1cds)=DATE(%1);
  105. n:cast_decimal(%1cn {, %2n, %3n})=CAST(%1 AS DECIMAL{(%2, %3)});
  106. n:cast_double_precision(%1cn)=CAST(%1 AS DOUBLE);
  107. n:cast_float(%1cn)=CAST(%1 AS FLOAT);
  108. n:cast_integer(%1cn)=CAST(%1 AS INTEGER);
  109. n:cast_numeric(%1cn {, %2n, %3n})=CAST(%1 AS NUMERIC{(%2, %3)});
  110. n:cast_real(%1cn)=CAST(%1 AS REAL);
  111. n:cast_smallint(%1cn)=CAST(%1 AS SMALLINT);
  112. t:cast_time(%1cst)=TIME(%1);
  113. s:cast_timestamp(%1cs)=TIMESTAMP(%1);
  114. c:cast_varchar(%1cxdst, %2n)=CAST(%1 AS VARCHAR (%2));
  115. n:absolute(%1n)=ABS(%1);
  116. c:d2_d2_char(%1cdnst {, %2cn})=CHAR(%1 {, %2});
  117. n:d2_day(%1cdns)=DAY(%1);
  118. n:d2_days(%1cds)=DAYS(%1);
  119. n:dayofmonth(%1cds)=DAYOFMONTH(%1);
  120. n:dayofweek(%1cds)=DAYOFWEEK(%1);
  121. n:dayofyear(%1cds)=DAYOFYEAR(%1);
  122. n:degrees(%1n)=DEGREES(%1);
  123. n:d2_double(%1cn)=DOUBLE(%1);
  124. c:downshift(%1c)=LCASE(%1);
  125. n:d2_float(%1cn)=FLOAT(%1);
  126. n:d2_hour(%1cnst)=HOUR(%1);
  127. bcdnst:ifnull(%1bcdnst, %2bcdnst)=IFNULL(%1, %2);
  128. n:index(%1c, %2c)=LOCATE(%2,%1);
  129. c:d2_insert(%1c, %2n, %3n, %4c)=INSERT(%1, %2, %3, %4);
  130. n:d2_integer(%1cn)=INTEGER(%1);
  131. c:d2_left(%1c, %2n)=LEFT(%1, %2);
  132. n:d2_minute(%1cnst)=MINUTE(%1);
  133. n:d2_month(%1cdns)=MONTH(%1);
  134. n:nconvert(%1c)=DOUBLE(%1);
  135. n:d2_random({%1n})=RAND({%1});
  136. n:d2_real(%1cn)=REAL(%1);
  137. c:d2_right(%1c, %2n)=RIGHT(%1, %2);
  138. n:d2_round(%1n, %2n)=ROUND(%1,%2);
  139. n:d2_second(%1cnst)=SECOND(%1);
  140. n:d2_smallint(%1cn)=SMALLINT(%1);
  141. n:d2_stddev(%1n)=STDDEV(%1);
  142. n:d2_truncate(%1n, %2n)=TRUNCATE(%1,%2);
  143. c:upshift(%1c)=UCASE(%1);
  144. c:d2_varchar(%1cdnst {, %2cn})=VARCHAR(%1 {, %2});
  145. n:d2_variance(%1n)=VARIANCE(%1);
  146. n:d2_year(%1cdns)=YEAR(%1);
  147. c:truncate(%1c)=RTRIM(%1);
  148. n:truncate(%1n,%2n)=TRUNCATE(%1,%2);
  149. n:round(%1n, %2n)=round(%1, %2);
  150. cx:trim(%1cx,%2c,%3c)=STRIP(%3,%1,%2);
  151. n:days(%1cds)=DAYS(%1);
  152. d:date(%1cdns)=DATE(%1);
  153. ;added to fix the COGCQ869926
  154. cx:trim_both_spaces(%1cx)=LTRIM(RTRIM(%1));
  155. cx:trim_leading_spaces(%1cx)=LTRIM(%1);
  156. cx:trim_trailing_spaces(%1cx)=RTRIM(%1);
  157. ;following mapping order to pick correct entry for source of null, specific types, and all other types
  158. c:coguda#cast_char(%1c,%2n)=cast(%1 as CHAR(%2));
  159. c:coguda#cast_char(%1t,%2n)=cast(char(%1,JIS) as CHAR(%2));
  160. c:coguda#cast_char(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as CHAR(%2));
  161. c:coguda#cast_char(%1z,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM') as CHAR(%2));
  162. c:coguda#cast_char(%1,%2n)=cast(%1 as CHAR(%2));
  163. c:coguda#cast_varchar(%1c,%2n)=cast(%1 as VARCHAR(%2));
  164. c:coguda#cast_varchar(%1t,%2n)=cast(char(%1,JIS) as VARCHAR(%2));
  165. c:coguda#cast_varchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as VARCHAR(%2));
  166. c:coguda#cast_varchar(%1z,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM') as VARCHAR(%2));
  167. c:coguda#cast_varchar(%1,%2n)=cast(%1 as VARCHAR(%2));
  168. ;support of cast to national character is enabled for Unicode database
  169. c:coguda#cast_nchar(%1c,%2n)=cast(%1 as GRAPHIC(%2));
  170. c:coguda#cast_nchar(%1t,%2n)=cast(char(%1,JIS) as GRAPHIC(%2));
  171. c:coguda#cast_nchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as GRAPHIC(%2));
  172. c:coguda#cast_nchar(%1z,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM') as GRAPHIC(%2));
  173. c:coguda#cast_nchar(%1,%2n)=cast(%1 as GRAPHIC(%2));
  174. c:coguda#cast_nvarchar(%1c,%2n)=cast(%1 as VARGRAPHIC(%2));
  175. c:coguda#cast_nvarchar(%1t,%2n)=cast(char(%1,JIS) as VARGRAPHIC(%2));
  176. c:coguda#cast_nvarchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as VARGRAPHIC(%2));
  177. c:coguda#cast_nvarchar(%1z,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM') as VARGRAPHIC(%2));
  178. c:coguda#cast_nvarchar(%1,%2n)=cast(%1 as VARGRAPHIC(%2));
  179. ;DB2/400
  180. [Database Functions DATABASE:QSQ]
  181. c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3});
  182. n:char_length(%1cx)=CHAR_LENGTH(%1);
  183. bcxdnst:coalesce(%1bcxdnst *{, %2bcxdnst})=COALESCE(%1 *{, %2});
  184. bcxdnst:nullif(%1bcxdnst, %2bcxdnst)=IFNULL(%1, %2);
  185. c:translate(%1c{, %2c{, %3c{, %4c}}})=TRANSLATE(%1{, %2{, %3{, %4}}});
  186. cx:upper(%1cx)=UCASE(%1);
  187. n:absolute(%1n)=ABS(%1);
  188. c:d2_d2_char(%1dst {, %2c})=CHAR(%1 {, %2});
  189. d:d2_date(%1cdns)=DATE(%1);
  190. n:d2_day(%1dns)=DAY(%1);
  191. n:d2_days(%1cds)=DAYS(%1);
  192. n:d2_decimal(%1n {, %2n {, %3n}})=DECIMAL(%1 {, %2 {, %3}});
  193. n:d2_double(%1n)=DOUBLE(%1);
  194. n:d2_float(%1n)=FLOAT(%1);
  195. n:d2_hour(%1nst)=HOUR(%1);
  196. n:d2_integer(%1n)=INTEGER(%1);
  197. c:d2_left(%1c, %2n)=LEFT(%1, %2);
  198. cdnst:d2_max(%1cdnst, %2cdnst *{, %3cdnst})=MAX(%1, %2 *{, %3});
  199. cdnst:d2_min(%1cdnst, %2cdnst *{, %3cdnst})=MIN(%1, %2 *{, %3});
  200. n:d2_minute(%1nst)=MINUTE(%1);
  201. n:d2_month(%1dns)=MONTH(%1);
  202. c:d2_right(%1c, %2n)=SUBSTR(%1, LENGTH(%1)+1-%2, %2);
  203. n:d2_second(%1nst)=SECOND(%1);
  204. n:d2_stddev(%1n)=STDDEV(%1);
  205. t:d2_time(%1cst)=TIME(%1);
  206. s:d2_timestamp(%1cds {, %2ct})=TIMESTAMP(%1 {, %2});
  207. c:upshift(%1c)=UCASE(%1);
  208. c:d2400_varchar(%1cn {, %2cn {, %3n} })=VARCHAR(%1 {, %2 {, %3}});
  209. n:d2_variance(%1n)=VARIANCE(%1);
  210. n:d2_year(%1dns)=YEAR(%1);
  211. n:nconvert(%1c)=DOUBLE(%1);
  212. n:round(%1n, %2n)=round(%1, %2);
  213. n:d2_truncate(%1n, %2n)=TRUNCATE(%1,%2);
  214. n:truncate(%1n,%2n)=TRUNCATE(%1,%2);
  215. c:truncate(%1c)=RTRIM(%1);
  216. cx:lower(%1cx)=LOWER(%1);
  217. c:d2_d2_char(%1cdnst {, %2cn})=CHAR(%1 {, %2});
  218. n:d2_decimal(%1cn {, %2n {, %3n {, %4c}}})=DECIMAL(%1 {, %2 {, %3 {, %4}}});
  219. n:d2_double(%1cn)=DOUBLE(%1);
  220. c:downshift(%1c)=LCASE(%1);
  221. n:d2_float(%1cn)=FLOAT(%1);
  222. n:index(%1c, %2c)=LOCATE(%2,%1);
  223. n:d2_integer(%1cn)=INTEGER(%1);
  224. n:d2_real(%1cn)=REAL(%1);
  225. n:d2_round(%1n, %2n)=ROUND(%1,%2);
  226. n:d2_smallint(%1cn)=SMALLINT(%1);
  227. c:cast_char(%1cxdnts)=CHAR(%1);
  228. c:cast_char(%1cxdnts, %2cn)=CHAR(CHAR(%1), %2);
  229. c:cast_varchar(%1cxdst, %2n)=CAST(%1 AS VARCHAR (%2));
  230. d:cast_date(%1cds)=CAST(%1 AS DATE);
  231. n:cast_decimal(%1cn {, %2n, %3n})=CAST(%1 AS DECIMAL {(%2, %3)});
  232. n:cast_double_precision(%1cn)=CAST(%1 AS DOUBLE);
  233. n:cast_float(%1cn)=CAST(%1 AS FLOAT);
  234. n:cast_integer(%1cn)=CAST(%1 AS INTEGER);
  235. n:cast_smallint(%1cn)=CAST(%1 AS SMALLINT);
  236. s:cast_timestamp(%1cs)=CAST(%1 AS TIMESTAMP);
  237. n:days(%1cds)=DAYS(%1);
  238. d:date(%1cdns)=DATE(%1);
  239. ;following mapping order to pick correct entry for source of null, specific types, and all other types
  240. c:coguda#cast_char(%1c,%2n)=cast(%1 as CHAR(%2));
  241. c:coguda#cast_char(%1t,%2n)=cast(char(%1,JIS) as CHAR(%2));
  242. c:coguda#cast_char(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as CHAR(%2));
  243. c:coguda#cast_char(%1,%2n)=cast(%1 as CHAR(%2));
  244. c:coguda#cast_varchar(%1c,%2n)=cast(%1 as VARCHAR(%2));
  245. c:coguda#cast_varchar(%1t,%2n)=cast(char(%1,JIS) as VARCHAR(%2));
  246. c:coguda#cast_varchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as VARCHAR(%2));
  247. c:coguda#cast_varchar(%1,%2n)=cast(%1 as VARCHAR(%2));
  248. ;support of cast to national character is enabled for Unicode database
  249. c:coguda#cast_nchar(%1c,%2n)=cast(%1 as NCHAR(%2));
  250. c:coguda#cast_nchar(%1t,%2n)=cast(char(%1,JIS) as NCHAR(%2));
  251. c:coguda#cast_nchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as NCHAR(%2));
  252. c:coguda#cast_nchar(%1,%2n)=cast(%1 as NCHAR(%2));
  253. c:coguda#cast_nvarchar(%1c,%2n)=cast(%1 as NVARCHAR(%2));
  254. c:coguda#cast_nvarchar(%1t,%2n)=cast(char(%1,JIS) as NVARCHAR(%2));
  255. c:coguda#cast_nvarchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as NVARCHAR(%2));
  256. c:coguda#cast_nvarchar(%1,%2n)=cast(%1 as NVARCHAR(%2));
  257. ;DB2 Common Server and UDB
  258. [Database Functions DATABASE:SQL]
  259. c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3});
  260. n:char_length(%1cx)=CHARACTER_LENGTH(%1);
  261. n:position(%1cx, %2cx)=POSITION(%1, %2);
  262. bcxdnst:coalesce(%1bcxdnst *{, %2bcdnst})=COALESCE(%1 *{, %2});
  263. cx:lower(%1cx)=LCASE(%1);
  264. cx:upper(%1cx)=UCASE(%1);
  265. c:cast_char(%1cxdnts)=CHAR(%1);
  266. c:cast_char(%1cxdnts, %2cn)=CHAR(CHAR(%1), %2);
  267. d:cast_date(%1cds)=CAST(%1 AS DATE);
  268. n:cast_decimal(%1cn {, %2n, %3n})=CAST(%1 AS DECIMAL{(%2, %3)});
  269. n:cast_double_precision(%1cn)=CAST(%1 AS DOUBLE);
  270. n:cast_float(%1n)=CAST(%1 AS FLOAT);
  271. n:cast_integer(%1cn)=CAST(%1 AS INTEGER);
  272. c:cast_longvarchar(%1cx)=CAST(%1 AS LONG VARCHAR);
  273. n:cast_numeric(%1cn, %2n , %3n)=CAST(%1 AS NUMERIC (%2, %3));
  274. n:cast_smallint(%1cn)=CAST(%1 AS SMALLINT);
  275. t:cast_time(%1ct)=CAST(%1 AS TIME);
  276. s:cast_timestamp(%1cs)=CAST(%1 AS TIMESTAMP);
  277. c:cast_varchar(%1cxdts, %2n)=CAST(%1 AS VARCHAR (%2));
  278. n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
  279. n:_week_of_year(%1ds)=WEEK_ISO( %1 );
  280. n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
  281. n:absolute(%1n)=ABS(%1);
  282. n:d2_ascii(%1c)=ASCII(%1);
  283. c:d2_char(%1n)=CHR(%1);
  284. c:d2_d2_char(%1cdnst {, %2cn})=CHAR(%1 {, %2});
  285. d:d2_date(%1cdns)=DATE(%1);
  286. n:d2_day(%1cdns)=DAY(%1);
  287. n:d2_days(%1cds)=DAYS(%1);
  288. n:d2_decimal(%1cn {, %2n {, %3n {, %4c}}})=DECIMAL(%1 {, %2 {, %3 {, %4}}});
  289. n:d2_double(%1cn)=DOUBLE(%1);
  290. c:downshift(%1c)=LCASE(%1);
  291. n:d2_float(%1n)=FLOAT(%1);
  292. n:d2_hour(%1cnst)=HOUR(%1);
  293. n:index(%1c, %2c)=LOCATE(%2,%1);
  294. c:d2_insert(%1c, %2n, %3n, %4c)=INSERT(%1, %2, %3, %4);
  295. n:d2_integer(%1cn)=INTEGER(%1);
  296. c:d2_left(%1c, %2n)=LEFT(%1, %2);
  297. n:d2_minute(%1cnst)=MINUTE(%1);
  298. n:d2_month(%1cdns)=MONTH(%1);
  299. n:nconvert(%1c)=DOUBLE(%1);
  300. n:d2_random({%1n})=RAND({%1});
  301. c:d2_right(%1c, %2n)=RIGHT(%1, %2);
  302. n:d2_round(%1n, %2n)=ROUND(%1,%2);
  303. n:d2_second(%1cnst)=SECOND(%1);
  304. n:d2_smallint(%1cn)=SMALLINT(%1);
  305. c:d2_soundex(%1c)=SOUNDEX(%1);
  306. n:d2_stddev(%1n)=STDDEV(%1);
  307. t:d2_time(%1cst)=TIME(%1);
  308. s:d2_timestamp(%1cds {, %2ct})=TIMESTAMP(%1 {, %2});
  309. n:timestampdiff2(%1n, %2c)=TIMESTAMPDIFF(%1, %2);
  310. n:d2_truncate(%1n, %2n)=TRUNCATE(%1,%2);
  311. n:truncate(%1n,%2n)=TRUNCATE(%1,%2);
  312. c:truncate(%1c)=RTRIM(%1);
  313. c:upshift(%1c)=UCASE(%1);
  314. n:d2_variance(%1n)=VARIANCE(%1);
  315. c:d2_varchar(%1cdst {, %2n})=VARCHAR(%1 {, %2});
  316. n:d2_year(%1cdns)=YEAR(%1);
  317. n:d2_real(%1n)=REAL(%1);
  318. s:timestampadd_day(%1n,%2cdst)=TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))+(%1) DAYS;
  319. s:timestampadd_month(%1n,%2cdst)=TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))+(%1) MONTHS;
  320. s:timestampadd_year(%1n,%2cdst)=TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))+(%1) YEARS;
  321. s:timestampdiff_day(%1cdst,%2cdst)=SYSFUN.TIMESTAMPDIFF(16, CHAR((TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))-TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%1)))));
  322. s:timestampdiff_month(%1cdst,%2cdst)=SYSFUN.TIMESTAMPDIFF(64, CHAR((TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))-TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%1)))));
  323. s:timestampdiff_year(%1cdst,%2cdst)=SYSFUN.TIMESTAMPDIFF(256, CHAR((TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))-TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%1)))));
  324. n:round(%1n, %2n)=round(%1, %2);
  325. n:ascii(%1c)=ASCII(%1);
  326. cx:trim_both_spaces(%1cx)=LTRIM(RTRIM(%1));
  327. cx:trim_leading_spaces(%1cx)=LTRIM(%1);
  328. cx:trim_trailing_spaces(%1cx)=RTRIM(%1);
  329. n:days(%1cds)=DAYS(%1);
  330. d:date(%1cdns)=DATE(%1);
  331. x:long_varchar(%1)=LONG_VARCHAR(%1);
  332. s:coguda#cast_timestamp(%1s)=cast(%1 as TIMESTAMP);
  333. s:coguda#cast_timestamp(%1d)=timestamp(%1,'00:00:00');
  334. s:coguda#cast_timestamp(%1t)=timestamp(CURRENT_DATE,%1);
  335. s:coguda#cast_timestamp(%1)=cast(%1 as TIMESTAMP);
  336. ;following mapping order to pick correct entry for source of null, specific types, and all other types
  337. c:coguda#cast_char(%1c,%2n)=cast(%1 as CHAR(%2));
  338. c:coguda#cast_char(%1t,%2n)=cast(char(%1,JIS) as CHAR(%2));
  339. c:coguda#cast_char(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as CHAR(%2));
  340. c:coguda#cast_char(%1,%2n)=cast(%1 as CHAR(%2));
  341. c:coguda#cast_varchar(%1c,%2n)=cast(%1 as VARCHAR(%2));
  342. c:coguda#cast_varchar(%1t,%2n)=cast(char(%1,JIS) as VARCHAR(%2));
  343. c:coguda#cast_varchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as VARCHAR(%2));
  344. c:coguda#cast_varchar(%1,%2n)=cast(%1 as VARCHAR(%2));
  345. ;support of cast to national character is enabled for Unicode database
  346. c:coguda#cast_nchar(%1c,%2n)=cast(%1 as NCHAR(%2));
  347. c:coguda#cast_nchar(%1t,%2n)=cast(char(%1,JIS) as NCHAR(%2));
  348. c:coguda#cast_nchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as NCHAR(%2));
  349. c:coguda#cast_nchar(%1,%2n)=cast(%1 as NCHAR(%2));
  350. c:coguda#cast_nvarchar(%1c,%2n)=cast(%1 as NVARCHAR(%2));
  351. c:coguda#cast_nvarchar(%1t,%2n)=cast(char(%1,JIS) as NVARCHAR(%2));
  352. c:coguda#cast_nvarchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as NVARCHAR(%2));
  353. c:coguda#cast_nvarchar(%1,%2n)=cast(%1 as NVARCHAR(%2));
  354. d:truncate(%1d {,%2c {,%3c} })=truncate(%1 {,%2 {,%3} });
  355. t:truncate(%1t {,%2c {,%3c} })=truncate(%1 {,%2 {,%3} });
  356. s:truncate(%1s {,%2c {,%3c} })=truncate(%1 {,%2 {,%3} });
  357. d:round(%1d {,%2c {,%3c} })=round(%1 {,%2 {,%3} });
  358. t:round(%1t {,%2c {,%3c} })=round(%1 {,%2 {,%3} });
  359. s:round(%1s {,%2c {,%3c} })=round(%1 {,%2 {,%3} });
  360. s:round(%1c {,%2c {,%3c} })=round_timestamp(%1 {,%2 {,%3} });
  361. [Database Functions DATABASE:SQL VERSION:10]
  362. c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3}, CODEUNITS32);
  363. n:char_length(%1cx)=CHARACTER_LENGTH(%1, CODEUNITS32);
  364. n:position(%1cx, %2cx)=POSITION(%1, %2, CODEUNITS32);
  365. [Database Functions DATABASE:SQL VERSION:09]
  366. c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3}, CODEUNITS32);
  367. n:char_length(%1cx)=CHARACTER_LENGTH(%1, CODEUNITS32);
  368. n:position(%1cx, %2cx)=POSITION(%1, %2, CODEUNITS32);
  369. [Database Functions DATABASE:SQL VERSION:09.01]
  370. d:truncate(%1d {,%2c {,%3c} })=;
  371. t:truncate(%1t {,%2c {,%3c} })=;
  372. s:truncate(%1s {,%2c {,%3c} })=;
  373. d:round(%1d {,%2c {,%3c} })=;
  374. t:round(%1t {,%2c {,%3c} })=;
  375. s:round(%1s {,%2c {,%3c} })=;
  376. s:round(%1c {,%2c {,%3c} })=;
  377. [Database Functions DATABASE:SQL VERSION:09.05]
  378. d:truncate(%1d {,%2c {,%3c} })=;
  379. t:truncate(%1t {,%2c {,%3c} })=;
  380. s:truncate(%1s {,%2c {,%3c} })=;
  381. d:round(%1d {,%2c {,%3c} })=;
  382. t:round(%1t {,%2c {,%3c} })=;
  383. s:round(%1s {,%2c {,%3c} })=;
  384. s:round(%1c {,%2c {,%3c} })=;
  385. [Builtin Functions]
  386. ;
  387. ; Business Functions for Date Calculations
  388. ;
  389. d:_add_days(%1d,%2n)=((%1) + (%2) DAY);
  390. s:_add_days(%1s,%2n)=((%1) + (%2) DAY);
  391. d:_add_months(%1d,%2n)=((%1) + (%2) MONTH);
  392. s:_add_months(%1s,%2n)=((%1) + (%2) MONTH);
  393. d:_add_years(%1d,%2n)=((%1) + (%2) YEAR);
  394. s:_add_years(%1s,%2n)=((%1) + (%2) YEAR);
  395. n:_days_between(%1ds,%2ds)=( DAYS( %1 ) - DAYS( %2 ) );
  396. ; Trakker 581732, UDB LUW TIMESTAMPDIFF returned invalid result for "_months_between".
  397. ; Enable _months_between local process, since DB2 consider it just documentation issue.
  398. ; PMR 35709,756,000.
  399. n:_months_between(%1ds,%2ds)=;
  400. n:_years_between(%1s,%2s)=TIMESTAMPDIFF( 256, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  401. n:_years_between(%1s,%2d)=TIMESTAMPDIFF( 256, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  402. n:_years_between(%1d,%2s)=TIMESTAMPDIFF( 256, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  403. n:_years_between(%1d,%2d)=TIMESTAMPDIFF( 256, CAST( ( TIMESTAMP( %1, '00:00:00' ) - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  404. n:_days_to_end_of_month(%1ds)=( DAYS( ( %1 - DAY( %1 ) DAY + 1 DAY ) + 1 MONTH - 1 DAY ) - DAYS( %1 ) );
  405. n:_age(%1d)=(CURRENT DATE - %1);
  406. n:_age(%1s)=(CURRENT DATE - DATE( %1 ));
  407. d:_first_of_month(%1d)=(%1 - DAY(%1) DAY + 1 DAY);
  408. s:_first_of_month(%1s)=(%1 - DAY(%1) DAY + 1 DAY);
  409. d:_last_of_month(%1d)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
  410. s:_last_of_month(%1s)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
  411. s:_make_timestamp(%1n,%2n,%3n)=TIMESTAMP_ISO( DATE( CHAR( RIGHT( DIGITS( %1 ), 4 ) || '-' || RIGHT( DIGITS( %2 ), 2 ) || '-' || RIGHT( DIGITS( %3 ), 2 ) ) ) );
  412. n:_ymdint_between(%1ds,%2ds)=;
  413. n:_round(%1n,%2n)=ROUND(%1, %2);
  414. ;
  415. ; Additional Business Functions for Date Calculations
  416. ;
  417. s:_add_hours(%1s,%2n)=(%1 + %2 HOUR);
  418. t:_add_hours(%1t,%2n)=(%1 + %2 HOUR);
  419. s:_add_minutes(%1s,%2n)=(%1 + %2 MINUTE);
  420. t:_add_minutes(%1t,%2n)=(%1 + %2 MINUTE);
  421. s:_add_seconds(%1s,%2n)=(%1 + %2 SECOND);
  422. t:_add_seconds(%1t,%2n)=(%1 + %2 SECOND);
  423. n:_hours_between(%1s,%2s)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  424. n:_hours_between(%1s,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  425. n:_hours_between(%1d,%2s)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  426. n:_hours_between(%1d,%2d)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  427. n:_minutes_between(%1s,%2s)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  428. n:_minutes_between(%1s,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  429. n:_minutes_between(%1d,%2s)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  430. n:_minutes_between(%1d,%2d)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  431. n:_seconds_between(%1s,%2s)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  432. n:_seconds_between(%1s,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  433. n:_seconds_between(%1d,%2s)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  434. n:_seconds_between(%1d,%2d)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  435. ;
  436. ; Functions required for the EXTRACT function
  437. ;
  438. n:coguda#extract_year(%1ds)=YEAR(%1);
  439. n:coguda#extract_month(%1ds)=MONTH(%1);
  440. n:coguda#extract_day(%1ds)=DAY(%1);
  441. n:coguda#extract_hour(%1st)=HOUR(%1);
  442. n:coguda#extract_minute(%1st)=MINUTE(%1);
  443. n:coguda#extract_second(%1s)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
  444. n:coguda#extract_second(%1t)=SECOND(%1);
  445. [Builtin Functions DATABASE:QSQ]
  446. n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
  447. n:_week_of_year(%1ds)=WEEK_ISO( %1 );
  448. n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
  449. n:_months_between(%1ds,%2ds)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
  450. n:_years_between(%1ds,%2ds)=YEAR( %1 - %2 );
  451. s:_make_timestamp(%1n,%2n,%3n)=TIMESTAMP( RTRIM(CHAR(%1)) || '-' || RTRIM(CHAR(%2)) || '-' || RTRIM(CHAR(%3)) || ' 00:00:00' );
  452. n:ceiling(%1n)=ceiling(%1);
  453. n:bit_length(%1cx)=bit_length(%1);
  454. n:octet_length(%1cx)=octet_length(%1);
  455. [Builtin Functions DATABASE:QSQ VERSION:05.01]
  456. n:ceiling(%1n)=;
  457. n:bit_length(%1cx)=;
  458. n:octet_length(%1cx)=;
  459. [Builtin Functions DATABASE:QSQ VERSION:05.02]
  460. n:ceiling(%1n)=;
  461. n:bit_length(%1cx)=;
  462. n:octet_length(%1cx)=;
  463. [Builtin Functions DATABASE:QSQ VERSION:05.03]
  464. s:_make_timestamp(%1n,%2n,%3n)=;
  465. [Builtin Functions DATABASE:DSN]
  466. s:_make_timestamp(%1n,%2n,%3n)=TIMESTAMP( RTRIM(CHAR(%1)) || '-' || RTRIM(CHAR(%2)) || '-' || RTRIM(CHAR(%3)) || ' 00:00:00' );
  467. n:_day_of_year(%1dsz)=DAYOFYEAR( %1 );
  468. n:_week_of_year(%1dsz)=WEEK_ISO( %1 );
  469. n:_day_of_week(%1dsz, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
  470. z:_add_seconds(%1z,%2n)=((%1) + (%2) SECOND);
  471. z:_add_minutes(%1z,%2n)=((%1) + (%2) MINUTE);
  472. z:_add_hours(%1z,%2n)=((%1) + (%2) HOUR);
  473. z:_add_days(%1z,%2n)=((%1) + (%2) DAY);
  474. z:_add_months(%1z,%2n)=((%1) + (%2) MONTH);
  475. z:_add_years(%1z,%2n)=((%1) + (%2) YEAR);
  476. n:_years_between(%1dsz,%2dsz)=YEAR( %1 - %2 );
  477. n:_months_between(%1dsz,%2dsz)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
  478. n:_days_between(%1dsz,%2dsz)=( DAYS( %1 ) - DAYS( %2 ) );
  479. n:_hours_between(%1sz,%2sz)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  480. n:_hours_between(%1sz,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  481. n:_hours_between(%1d,%2sz)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  482. n:_minutes_between(%1sz,%2sz)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  483. n:_minutes_between(%1sz,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  484. n:_minutes_between(%1d,%2zs)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  485. n:_seconds_between(%1sz,%2zs)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  486. n:_seconds_between(%1sz,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  487. n:_seconds_between(%1d,%2sz)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  488. z:_first_of_month(%1sz)=(%1 - DAY(%1) DAY + 1 DAY);
  489. z:_last_of_month(%1sz)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
  490. n:coguda#extract_year(%1dsz)=YEAR(%1);
  491. n:coguda#extract_month(%1dsz)=MONTH(%1);
  492. n:coguda#extract_day(%1dsz)=DAY(%1);
  493. n:coguda#extract_hour(%1st)=HOUR(%1);
  494. n:coguda#extract_minute(%1st)=MINUTE(%1);
  495. n:coguda#extract_second(%1sz)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
  496. [Builtin Functions DATABASE:DSN VERSION:09]
  497. n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
  498. n:_week_of_year(%1ds)=WEEK_ISO( %1 );
  499. n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
  500. z:_add_seconds(%1z,%2n)=;
  501. z:_add_minutes(%1z,%2n)=;
  502. z:_add_hours(%1z,%2n)=;
  503. z:_add_days(%1z,%2n)=;
  504. z:_add_months(%1z,%2n)=;
  505. z:_add_years(%1z,%2n)=;
  506. n:_years_between(%1ds,%2ds)=YEAR( %1 - %2 );
  507. n:_months_between(%1ds,%2ds)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
  508. n:_days_between(%1ds,%2ds)=( DAYS( %1 ) - DAYS( %2 ) );
  509. n:_hours_between(%1s,%2s)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  510. n:_hours_between(%1s,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  511. n:_hours_between(%1d,%2s)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  512. n:_minutes_between(%1s,%2s)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  513. n:_minutes_between(%1s,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  514. n:_minutes_between(%1d,%2s)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  515. n:_seconds_between(%1s,%2s)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  516. n:_seconds_between(%1s,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  517. n:_seconds_between(%1d,%2s)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  518. s:_first_of_month(%1s)=(%1 - DAY(%1) DAY + 1 DAY);
  519. s:_last_of_month(%1s)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
  520. n:coguda#extract_year(%1ds)=YEAR(%1);
  521. n:coguda#extract_month(%1ds)=MONTH(%1);
  522. n:coguda#extract_day(%1ds)=DAY(%1);
  523. n:coguda#extract_hour(%1st)=HOUR(%1);
  524. n:coguda#extract_minute(%1st)=MINUTE(%1);
  525. n:coguda#extract_second(%1s)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
  526. n:coguda#extract_second(%1t)=SECOND(%1);
  527. [Builtin Functions DATABASE:DSN VERSION:08]
  528. n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
  529. n:_week_of_year(%1ds)=WEEK_ISO( %1 );
  530. n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
  531. z:_add_seconds(%1z,%2n)=;
  532. z:_add_minutes(%1z,%2n)=;
  533. z:_add_hours(%1z,%2n)=;
  534. z:_add_days(%1z,%2n)=;
  535. z:_add_months(%1z,%2n)=;
  536. z:_add_years(%1z,%2n)=;
  537. n:_years_between(%1ds,%2ds)=YEAR( %1 - %2 );
  538. n:_months_between(%1ds,%2ds)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
  539. n:_days_between(%1ds,%2ds)=( DAYS( %1 ) - DAYS( %2 ) );
  540. n:_hours_between(%1s,%2s)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  541. n:_hours_between(%1s,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  542. n:_hours_between(%1d,%2s)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  543. n:_minutes_between(%1s,%2s)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  544. n:_minutes_between(%1s,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  545. n:_minutes_between(%1d,%2s)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  546. n:_seconds_between(%1s,%2s)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  547. n:_seconds_between(%1s,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  548. n:_seconds_between(%1d,%2s)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  549. s:_first_of_month(%1s)=(%1 - DAY(%1) DAY + 1 DAY);
  550. s:_last_of_month(%1s)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
  551. n:coguda#extract_year(%1ds)=YEAR(%1);
  552. n:coguda#extract_month(%1ds)=MONTH(%1);
  553. n:coguda#extract_day(%1ds)=DAY(%1);
  554. n:coguda#extract_hour(%1st)=HOUR(%1);
  555. n:coguda#extract_minute(%1st)=MINUTE(%1);
  556. n:coguda#extract_second(%1s)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
  557. n:coguda#extract_second(%1t)=SECOND(%1);
  558. [Builtin Functions DATABASE:DSN VERSION:07]
  559. n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
  560. n:_week_of_year(%1ds)=WEEK_ISO( %1 );
  561. n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
  562. z:_add_seconds(%1z,%2n)=;
  563. z:_add_minutes(%1z,%2n)=;
  564. z:_add_hours(%1z,%2n)=;
  565. z:_add_days(%1z,%2n)=;
  566. z:_add_months(%1z,%2n)=;
  567. z:_add_years(%1z,%2n)=;
  568. n:_years_between(%1ds,%2ds)=YEAR( %1 - %2 );
  569. n:_months_between(%1ds,%2ds)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
  570. n:_days_between(%1ds,%2ds)=( DAYS( %1 ) - DAYS( %2 ) );
  571. n:_hours_between(%1s,%2s)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  572. n:_hours_between(%1s,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  573. n:_hours_between(%1d,%2s)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  574. n:_minutes_between(%1s,%2s)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  575. n:_minutes_between(%1s,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  576. n:_minutes_between(%1d,%2s)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  577. n:_seconds_between(%1s,%2s)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
  578. n:_seconds_between(%1s,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
  579. n:_seconds_between(%1d,%2s)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
  580. s:_first_of_month(%1s)=(%1 - DAY(%1) DAY + 1 DAY);
  581. s:_last_of_month(%1s)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
  582. n:coguda#extract_year(%1ds)=YEAR(%1);
  583. n:coguda#extract_month(%1ds)=MONTH(%1);
  584. n:coguda#extract_day(%1ds)=DAY(%1);
  585. n:coguda#extract_hour(%1st)=HOUR(%1);
  586. n:coguda#extract_minute(%1st)=MINUTE(%1);
  587. n:coguda#extract_second(%1s)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
  588. n:coguda#extract_second(%1t)=SECOND(%1);
  589. ;Optimization directives are supported by DB2 UDB
  590. ;Entries for statement level directives, which will be used by sqltosql.
  591. ;SQL_ATTRIB_DB_OPTIMIZER_GOAL = First_Row_Text
  592. ;SQL_ATTRIB_DB_JOIN_ORDER = Ordered_Text or Star_Text
  593. ;SQL_ATTRIB_DB_DOP = Dop_Text
  594. ; All QSQ, SQL and DSN, all supported versions, support
  595. ; OPTIMIZE FOR 1 ROWS clause.
  596. ; Row Limit in DB2 is achieved by adding the following line
  597. ; FETCH FIRST n ROWS ONLY to the end of sql statement
  598. ;
  599. ; Added Row Limit for DB2 AS400 (V5R2) native (Trakker #399902)
  600. ; Added Row Limit for DB2 MVS 390 (Trakker #418642)
  601. ;
  602. ; Append_Pre_Text and Append_Post_Text are entries to add
  603. ; special text for directive session, which will be used by sqltosql
  604. [Directives Session]
  605. First_Row_Pos=Append_End
  606. ; First row optimization has been disabled due to performance issues.
  607. ; (Trakker 493725). To enable first row optimization, set the
  608. ; First_Row_Text entry to " OPTIMIZE FOR 1 ROWS"
  609. First_Row_Text=
  610. Append_Pre_Text=" "
  611. Append_Post_Text=" "
  612. Query_Row_Limit_Pos=Append_End
  613. Query_Row_Limit_Text=" FETCH FIRST %d ROWS ONLY "
  614. [Exceptions Aggregates]
  615. ; The Stddev function for DB2 uses the biased method.
  616. ; The Stddev flag indicates if the unbased method is available.
  617. ; If you really want to use the DB2 stddev funciton use d2_stddev.
  618. ;
  619. ; The Variance function for DB2 uses the biased method.
  620. ; The Variance flag indicates if the unbased method is available.
  621. ; If you really want to use the DB2 variance funciton use d2_variance.
  622. ; DB2 on MVS doesn't support STDDEV and VARIANCE
  623. Max="max"
  624. Min="min"
  625. Sum="sum"
  626. Avg="avg"
  627. Count="count"
  628. Count_Star="count(*)"
  629. Grouping="grouping"
  630. [Exceptions Aggregates DATABASE:SQL]
  631. Stddev_Samp="stddev_samp"
  632. Var_Samp="var_samp"
  633. Percent_Rank="percent_rank"
  634. Percentile_Cont="percentile_cont"
  635. Percentile_Disc="percentile_disc"
  636. [Exceptions Aggregates DATABASE:SQL VERSION:10]
  637. Stddev_Samp=
  638. Var_Samp=
  639. Percent_Rank=
  640. Percentile_Cont=
  641. Percentile_Disc=
  642. [Exceptions Aggregates DATABASE:SQL VERSION:09]
  643. Stddev_Samp=
  644. Var_Samp=
  645. Percent_Rank=
  646. Percentile_Cont=
  647. Percentile_Disc=
  648. [Exceptions Aggregates DATABASE:DSN]
  649. ; DB2 MVS UDB 7.1 supports the following functions
  650. ; (uda function mapping is given in the brackets):
  651. ; stddev_samp (stddev, stddev_samp)
  652. ; stddev_pop (stddev_pop)
  653. ; stddev (stddev_pop)
  654. ; variance_samp (variance, var_samp)
  655. ; var_samp (variance, var_samp)
  656. ; var_pop (var_pop)
  657. ; variance (var_pop)
  658. ; var (var_pop)
  659. ; The following mapping has been selected:
  660. Max="max"
  661. Min="min"
  662. Sum="sum"
  663. Avg="avg"
  664. Count="count"
  665. Count_Star="count(*)"
  666. Grouping="grouping"
  667. Stddev="stddev_samp"
  668. Stddev_pop="stddev_pop"
  669. Stddev_samp="stddev_samp"
  670. Variance="var_samp"
  671. Var_pop="var_pop"
  672. Var_samp="var_samp"
  673. [Exceptions Aggregates DATABASE:DSN VERSION:06]
  674. Grouping=
  675. Stddev=
  676. Stddev_pop=
  677. Stddev_samp=
  678. Variance=
  679. Var_pop=
  680. Var_samp=
  681. [Exceptions Aggregates DATABASE:SQL VERSION:06.01]
  682. Grouping=
  683. [Exceptions Aggregates DATABASE:SQL VERSION:07.01]
  684. Grouping=
  685. [Exceptions OLAP Functions]
  686. Olap_Max="max"
  687. Olap_Min="min"
  688. Olap_Sum="sum"
  689. Olap_Avg="avg"
  690. Olap_Count="count"
  691. Olap_Count_Star="count(*)"
  692. Olap_Stddev_Pop="stddev_pop"
  693. Olap_Var_Pop="var_pop"
  694. Olap_Stddev_Samp="stddev_samp"
  695. Olap_Var_Samp="var_samp"
  696. Olap_Rank="rank"
  697. Olap_Dense_Rank="dense_rank"
  698. Olap_Percent_Rank="percent_rank"
  699. Olap_Cume_Dist="cume_dist"
  700. Olap_Row_Number="row_number"
  701. Olap_Ratio_To_Report="ratio_to_report"
  702. Olap_Ntile="ntile"
  703. Olap_First_Value="first_value"
  704. Olap_Last_Value="last_value"
  705. ;COGCQ00674367
  706. Olap_Last_Value_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  707. [Exceptions OLAP Functions DATABASE:SQL]
  708. Olap_Stddev_Pop=
  709. Olap_Var_Pop=
  710. Olap_Ratio_To_Report=
  711. Olap_Ntile=
  712. Olap_Percentile_Cont="percentile_cont"
  713. Olap_Percentile_Disc="percentile_disc"
  714. [Exceptions OLAP Functions DATABASE:SQL VERSION:10]
  715. Olap_Stddev_Samp=
  716. Olap_Var_Samp=
  717. Olap_Percent_Rank=
  718. Olap_Cume_Dist=
  719. Olap_Percentile_Cont=
  720. Olap_Percentile_Disc=
  721. [Exceptions OLAP Functions DATABASE:SQL VERSION:09]
  722. Olap_Stddev_Samp=
  723. Olap_Var_Samp=
  724. Olap_Percent_Rank=
  725. Olap_Cume_Dist=
  726. Olap_Percentile_Cont=
  727. Olap_Percentile_Disc=
  728. [Exceptions OLAP Functions DATABASE:DSN]
  729. Olap_Max=
  730. Olap_Min=
  731. Olap_Var_Pop="VARIANCE"
  732. Olap_Stddev_Samp=
  733. Olap_Var_Samp=
  734. Olap_Percent_Rank=
  735. Olap_Cume_Dist=
  736. Olap_Ratio_To_Report=
  737. Olap_Ntile=
  738. Olap_First_Value=
  739. Olap_Last_Value=
  740. [Exceptions OLAP Functions DATABASE:DSN VERSION:09]
  741. Olap_Sum=
  742. Olap_Avg=
  743. Olap_Count=
  744. Olap_Count_Star=
  745. Olap_Stddev_Pop=
  746. Olap_Var_Pop=
  747. [Exceptions OLAP Functions DATABASE:DSN VERSION:08]
  748. Olap_Rank=
  749. Olap_Dense_Rank=
  750. Olap_Row_Number=
  751. Olap_Sum=
  752. Olap_Avg=
  753. Olap_Count=
  754. Olap_Count_Star=
  755. Olap_Stddev_Pop=
  756. Olap_Var_Pop=
  757. [Exceptions OLAP Functions DATABASE:DSN VERSION:07]
  758. Olap_Rank=
  759. Olap_Dense_Rank=
  760. Olap_Row_Number=
  761. Olap_Sum=
  762. Olap_Avg=
  763. Olap_Count=
  764. Olap_Count_Star=
  765. Olap_Stddev_Pop=
  766. Olap_Var_Pop=
  767. [Exceptions OLAP Functions DATABASE:QSQ]
  768. Olap_Percent_Rank=
  769. [Exceptions OLAP Functions DATABASE:QSQ VERSION:07.02]
  770. Olap_Max=
  771. Olap_Min=
  772. Olap_Sum=
  773. Olap_Avg=
  774. Olap_Count=
  775. Olap_Count_Star=
  776. Olap_Stddev_Pop=
  777. Olap_Var_Pop=
  778. Olap_Stddev_Samp=
  779. Olap_Var_Samp=
  780. Olap_Percent_Rank=
  781. Olap_Cume_Dist=
  782. Olap_Ratio_To_Report=
  783. Olap_Ntile=
  784. Olap_First_Value=
  785. Olap_Last_Value=
  786. [Exceptions OLAP Functions DATABASE:QSQ VERSION:07.01]
  787. Olap_Max=
  788. Olap_Min=
  789. Olap_Sum=
  790. Olap_Avg=
  791. Olap_Count=
  792. Olap_Count_Star=
  793. Olap_Stddev_Pop=
  794. Olap_Var_Pop=
  795. Olap_Stddev_Samp=
  796. Olap_Var_Samp=
  797. Olap_Percent_Rank=
  798. Olap_Cume_Dist=
  799. Olap_Ratio_To_Report=
  800. Olap_Ntile=
  801. Olap_First_Value=
  802. Olap_Last_Value=
  803. [Exceptions Clauses]
  804. From="from"
  805. Group_By="group by"
  806. Having="having"
  807. Where="where"
  808. ;Both DB2 UDB 7 and 8, DB2 AS/400 V4R5 to V5R2 support use of WITH clause
  809. ;DB2 MVS 8.1 supports With-clause
  810. With="with "
  811. With_Recursive="with "
  812. [Exceptions Clauses DATABASE:DSN VERSION:06]
  813. With=
  814. With_Recursive=
  815. [Exceptions Clauses DATABASE:DSN VERSION:07]
  816. With=
  817. With_Recursive=
  818. [Exceptions Commands]
  819. Delete="delete "
  820. Insert="insert "
  821. Select="select "
  822. Update="update "
  823. Call="call "
  824. Max_Stmt_Len="2097152"
  825. Max_Decimal_Precision="31"
  826. [Exceptions Commands DATABASE:SQL VERSION:08.01]
  827. ;Longest SQL statment of UDB version 8.01 is 65K bytes
  828. Max_Stmt_Len="65535"
  829. [Exceptions Commands DATABASE:SQL VERSION:07]
  830. ;Longest SQL statment of UDB version 7.02 and 7.01 is 65K bytes
  831. Max_Stmt_Len="65535"
  832. [Exceptions Commands DATABASE:SQL VERSION:06]
  833. ;Longest SQL statment of UDB version 6 is 65K bytes
  834. Max_Stmt_Len="65535"
  835. [Exceptions Commands DATABASE:QSQ VERSION:05.03]
  836. ;Longest SQL statment of iSeries V5R3 is 65K bytes
  837. Max_Stmt_Len="65535"
  838. [Exceptions Commands DATABASE:QSQ VERSION:05.02]
  839. ;Longest SQL statment of iSeries V5R2 is 65K bytes
  840. Max_Stmt_Len="65535"
  841. [Exceptions Commands DATABASE:DSN VERSION:07]
  842. ;Longest SQL statment of OS/390 version 7 is 32K bytes
  843. Max_Stmt_Len="32765"
  844. [Exceptions Commands DATABASE:DSN VERSION:06]
  845. ;Longest SQL statment of OS/390 version 6 is 32K bytes
  846. Max_Stmt_Len="32765"
  847. [Exceptions Delimiters]
  848. Catalog_Delimiter="\""
  849. Schema_Delimiter="\""
  850. Table_Delimiter="\""
  851. Column_Delimiter="\""
  852. Procedure_Delimiter="\""
  853. Comment_Begin="/* "
  854. Comment_End=" */ "
  855. [Exceptions Delimiters DATABASE:DSN]
  856. Procedure_Delimiter=
  857. [Exceptions Delimiters DRIVER:DSNAOCLI DATABASE:DSN]
  858. Schema_Delimiter=
  859. [Exceptions General]
  860. Count_Blob=T
  861. Count_Non_Distinct=T
  862. Count_Value_Expr=T
  863. Count_Literal=T
  864. Group_By_Expr=T
  865. Is_Null_Value_Expr=T
  866. Is_Null_Value_Parm=F
  867. Like_Value_Expr=T
  868. Like_With_Escape=T
  869. Multiple_Distinct=T
  870. Subquery_In_Case=F
  871. Olap_Distinct=F
  872. Null_Order=F
  873. Olap_Null_Order=T
  874. Order_By_In_Derived_Table=T
  875. With_In_Derived_Table=F
  876. With_Column_List=T
  877. Boolean_Comparison=F
  878. Comments=T
  879. ;When setting to "PT", the native SQL in common table expression of a With clause
  880. ;is considered as a pass-through SQL only which is pushed to database.
  881. ;When setting to "DT", the native SQL is re-written as a derived table (10.1 and prior behaviour)
  882. ;Native_SQL_In_CTE="KEEP"
  883. [Exceptions General DRIVER:DB2CLI.DLL VERSION:08]
  884. Comments=F
  885. [Exceptions General DRIVER:LIBDB2.SO VERSION:08]
  886. Comments=F
  887. [Exceptions General DRIVER:LIBDB2.SL VERSION:08]
  888. Comments=F
  889. [Exceptions General DRIVER:LIBDB2.A VERSION:08]
  890. Comments=F
  891. [Exceptions General DRIVER:DB2CLI.DLL VERSION:07]
  892. Comments=F
  893. [Exceptions General DRIVER:LIBDB2.SO VERSION:07]
  894. Comments=F
  895. [Exceptions General DRIVER:LIBDB2.SL VERSION:07]
  896. Comments=F
  897. [Exceptions General DRIVER:LIBDB2.A VERSION:07]
  898. Comments=F
  899. [Exceptions General DRIVER:CWBODBC.DLL VERSION:05.02]
  900. Comments=F
  901. [Exceptions General DATABASE:DSN]
  902. ; the settings in this section reflect the behavior of the latest DSN version
  903. Aggregate_Literal=F
  904. Count_Blob=F
  905. Count_Non_Distinct=T
  906. Count_Value_Expr=T
  907. Group_By_Expr=T
  908. Like_Value_Expr=T
  909. Multiple_Distinct=T
  910. Nested_Case=T
  911. Subquery_Column_Alias=F
  912. [Exceptions General DATABASE:DSN VERSION:06]
  913. Count_Non_Distinct=F
  914. Count_Value_Expr=F
  915. Multiple_Distinct=F
  916. Group_By_Expr=F
  917. Olap_Null_Order=F
  918. Order_By_In_Derived_Table=F
  919. [Exceptions General DATABASE:DSN VERSION:07]
  920. ; DB2 UDB 7.1 OS/390 supports non-distinct
  921. ; Count() as well as Count( expr )
  922. Multiple_Distinct=F
  923. Group_By_Expr=F
  924. Olap_Null_Order=F
  925. Order_By_In_Derived_Table=F
  926. [Exceptions General DATABASE:DSN VERSION:08]
  927. ; Due to Trakker 451348, Count_Literal was turned off as
  928. ; it caused the following error:
  929. ; [IBM][CLI Driver] SQL1034C The database is damaged. All applications
  930. ; processing the database have been stopped. SQLSTATE=5803
  931. ; Applying APAR AK07792 to the server will resolve this issue.
  932. Count_Literal=T
  933. Olap_Null_Order=F
  934. Order_By_In_Derived_Table=F
  935. Comments=F
  936. [Exceptions General DATABASE:QSQ]
  937. ;trakker 588935
  938. Olap_Null_Order=F
  939. Order_By_In_Derived_Table=F
  940. Subquery_In_Case=T
  941. [Exceptions General DATABASE:QSQ VERSION:05.03]
  942. Olap_Null_Order=F
  943. [Exceptions General DATABASE:QSQ VERSION:05.02]
  944. Olap_Null_Order=F
  945. [Exceptions General DATABASE:QSQ VERSION:05.01]
  946. Olap_Null_Order=F
  947. Subquery_In_Case=F
  948. [Exceptions General DATABASE:SQL]
  949. Subquery_Column_Alias=T
  950. Subquery_In_Case=T
  951. Subquery_In_Group_By=F
  952. Nested_Olap_Functions=T
  953. [Exceptions General DATABASE:SQL VERSION:07]
  954. Order_By_In_Derived_Table=F
  955. [Exceptions Joins]
  956. Cross=F
  957. Inner_Tbl_Restrict=F
  958. Outer_Syntax=T
  959. Optnl_Tbl_Restrict=T
  960. One_Outer=T
  961. Left_Eql=" LEFT OUTER JOIN "
  962. Right_Eql=" RIGHT OUTER JOIN "
  963. [Exceptions Joins DATABASE:DSN]
  964. Full_Non_Equi_Join=T
  965. Full_Outer=T
  966. Inner=T
  967. Inner_Tbl_Restrict=F
  968. Left_Nested=T
  969. Left_Outer=T
  970. Nested_Outer=T
  971. Non_Equi_Joins=T
  972. Non_Join_Expr=T
  973. On_Condition_Functions=T
  974. On_Condition_Between_Predicate=T
  975. On_Condition_In_Predicate=T
  976. On_Condition_IsNull_Predicate=T
  977. On_Condition_Like_Predicate=F
  978. On_Condition_Not_Predicate=T
  979. On_Condition_Or_Predicate=T
  980. On_Condition_Set_Functions=F
  981. On_Condition_Subqueries=F
  982. One_Outer=F
  983. Optnl_Tbl_Filter=T
  984. Optnl_Tbl_Restrict=F
  985. Optnl_Tbl_Join_Filter=T
  986. Right_Nested=T
  987. Right_Outer=T
  988. [Exceptions Joins DATABASE:DSN VERSION:06]
  989. Non_Join_Expr=F
  990. On_Condition_Functions=F
  991. [Exceptions Joins DATABASE:QSQ]
  992. Full_Outer=T
  993. Full_Non_Equi_Join=T
  994. Optnl_Tbl_Filter=T
  995. Inner_Tbl_Restrict=F
  996. Left_Nested=T
  997. Left_Outer=T
  998. Left_Post=""
  999. Left_Pre=""
  1000. Non_Equi_Joins=T
  1001. Non_Join_Expr=T
  1002. One_Outer=F
  1003. On_Condition_IsNull_Predicate=T
  1004. On_Condition_Not_Predicate=T
  1005. On_Condition_Subqueries=T
  1006. On_Condition_Or_Predicate=T
  1007. On_Condition_Between_Predicate=T
  1008. On_Condition_Like_Predicate=T
  1009. Prsrv_Tbl_Join_Filter=F
  1010. Right_Nested=T
  1011. ;THE FOLLOWING ENTRIES WHERE ADDED TO FIX THE PROBLEM 319725
  1012. Inner=T
  1013. Nested_Outer=T
  1014. Optnl_Tbl_Join_Filter=T
  1015. Optnl_Tbl_Restrict=F
  1016. Prsrv_Tbl_Join_Filter=T
  1017. ; The following entry is turnded off for Trakker 496752
  1018. On_Condition_In_Predicate=F
  1019. [Exceptions Joins DATABASE:QSQ VERSION:05.01]
  1020. Cross=T
  1021. [Exceptions Joins DATABASE:QSQ VERSION:05.02]
  1022. Cross=T
  1023. [Exceptions Joins DATABASE:SQL]
  1024. Full_Outer=T
  1025. Full_Non_Equi_Join=T
  1026. Inner=T
  1027. Inner_Tbl_Restrict=F
  1028. Left_Nested=T
  1029. Left_Pre=""
  1030. Left_Post=""
  1031. Non_Equi_Joins=T
  1032. Nested_Outer=T
  1033. One_Outer=F
  1034. Optnl_Tbl_Restrict=F
  1035. Optnl_Tbl_Join_Filter=T
  1036. Optnl_Tbl_Filter=T
  1037. On_Condition_Not_Predicate=T
  1038. On_Condition_In_Predicate=T
  1039. On_Condition_Between_Predicate=T
  1040. On_Condition_Like_Predicate=T
  1041. On_Condition_IsNull_Predicate=T
  1042. On_Condition_Or_Predicate=T
  1043. Right_Nested=T
  1044. [Exceptions Literals]
  1045. ;
  1046. ; IBM's CLI uses conversion functions to convert date, time, timestamp
  1047. ; literals into DATE, TIME and TIMESTAMP datatype when using the
  1048. ; ODBC/CLI escape sequence for the literals (ie {d 'xx-xx-xxxx'} ).
  1049. ; This can cause DB/2 to use a table scan instead of the index,
  1050. ; impacting the performance of the query.
  1051. ;
  1052. ; The DB2 gateway has already provided a KLUDGE for it, which is using
  1053. ; the alternate date/time literal strings specified in the [ <driver> ]
  1054. ; section for translation of date/time literals so that date/time
  1055. ; literals are translated into character strings instead of the default,
  1056. ; which is DB2 CLI date/time literals.
  1057. ;
  1058. ; But now, a better solutions is provided. Similar to the KLUDGE, alternate
  1059. ; date/time literal strings can be specified in this section, which will be
  1060. ; used for translation of date/time literals. But they are used only in the
  1061. ; specified situations:
  1062. ;
  1063. ; Alt_Date_Lit_Assignment - UPDATE .. SET <column> =<value_expr>
  1064. ; Alt_Date_Lit_Between - <value_expr> BETWEEN <value_expr> AND <value_expr>
  1065. ; Alt_Date_Lit_Comparison - <value_expr> op <value_expr>
  1066. ; where op is >, <, =, <>, >=, or <=
  1067. ; Alt_Date_Lit_In - <value_expr> IN ( <value_expr>, ... )
  1068. ; Alt_Date_Lit_Insert_Val - INSERT .. VALUES ( <value_expr>, ... )
  1069. ;
  1070. ; The KLUDGE provided by DB2 gateway overrides this new solution.
  1071. ; If you want to use the new solution, remove the date/time literal strings in
  1072. ; the [Special DLL Information] section and remove the ';' in the following
  1073. ; entries that you find appropiate.
  1074. ;
  1075. ; DB2/400 and DB2/MVS returns result of datatype varChar when selecting
  1076. ; a datetime literal, but user expects the datatype to be datetime.
  1077. ; e.g. select DATE 'xxxx-xx-xx' from parts. To fix this problem, we have
  1078. ; the entries which converts the datatime literal to datatime before we
  1079. ; send it to the database.
  1080. ; These entries for DB2/MVS are removed as required by IMP because DB2
  1081. ; doesn't accept such syntax in some certain cases, such as in IN clause.
  1082. ; This means that IMP QC will get a varChar when they do a select datetime
  1083. ; literal.
  1084. ;
  1085. ; Those entries for DB2CLI/400 are comment out as required by IMP QC for
  1086. ; the same reason.
  1087. ;
  1088. ; The entries below show the defaults.
  1089. ; If the data source supports the call SQLGetTypeInfo
  1090. ; then all the following flags will be over written by
  1091. ; information retrieved from the data source.
  1092. Alt_Date_Literal_Assignment=F
  1093. Alt_Date_Literal_Between=F
  1094. Alt_Date_Literal_Comparison=F
  1095. Alt_Date_Literal_In=F
  1096. Alt_Date_Literal_Insert_Value=F
  1097. Alt_Date_Literal_Str=
  1098. Alt_Interval_Literal_Str=
  1099. Alt_Time_Literal_Str=
  1100. Alt_Timestamp_Literal_Str=
  1101. Boolean_Literal=F
  1102. Date_Add_Function_Str=
  1103. Date_Format_Str="YYYY MM DD"
  1104. Date_Literal=C
  1105. Date_Literal_Str="{d '%s-%s-%s'}"
  1106. Date_Sub_Function_Str=
  1107. False_Literal_Str=
  1108. Interval_Format_Str=
  1109. Interval_Literal=F
  1110. Interval_Literal_Str=
  1111. IntervalYM_Format_Str=
  1112. IntervalYM_Literal=F
  1113. IntervalYM_Literal_Str=
  1114. NChar_Literal=T
  1115. Apostrophe_In_NChar_Literal=F
  1116. Time_Format_Str="HH MM SS"
  1117. Time_Literal=C
  1118. Time_Literal_Str="{t '%s:%s:%s'}"
  1119. TimeTZ_Format_Str=
  1120. TimeTZ_Literal=F
  1121. TimeTZ_Literal_Str=
  1122. Timestamp_Format_Str="YYYY MM DD HH MM SS"
  1123. Timestamp_Literal=C
  1124. Timestamp_Literal_Str="{ts '%s-%s-%s %s:%s:%s'}"
  1125. TimestampTZ_Format_Str=
  1126. TimestampTZ_Literal=F
  1127. TimestampTZ_Literal_Str=
  1128. True_Literal_Str=
  1129. Unknown_Literal_Str=
  1130. Zero_Date_Literal_Str=
  1131. Zero_Timestamp_Literal_Str=
  1132. [Exceptions Literals DATABASE:DSN]
  1133. Alt_Date_Literal_Assignment=T
  1134. Alt_Date_Literal_Between=T
  1135. Alt_Date_Literal_Comparison=T
  1136. Alt_Date_Literal_In=T
  1137. Alt_Date_Literal_Insert_Value=T
  1138. Alt_Date_Literal_Str="{d '%s-%s-%s'}"
  1139. Alt_Interval_Literal_Str=
  1140. Alt_Time_Literal_Str="{t '%s.%s.%s'}"
  1141. Alt_Timestamp_Literal_Str="{ts '%s-%s-%s-%s.%s.%s.%s'}"
  1142. Date_Add_Function_Str=
  1143. Date_Format_Str="YYYY MM DD"
  1144. Date_Literal=C
  1145. Date_Literal_Str="date({d '%s-%s-%s'})"
  1146. Date_Sub_Function_Str=
  1147. Interval_Format_Str=
  1148. Interval_Literal=F
  1149. Interval_Literal_Str=
  1150. Time_Format_Str="HH MM SS"
  1151. Time_Literal=C
  1152. Time_Literal_Str="time({t '%s:%s:%s'})"
  1153. Timestamp_Format_Str="YYYY MM DD HH MM SS FFFFFF"
  1154. Timestamp_Literal=C
  1155. Timestamp_Literal_Str="timestamp({ts '%s-%s-%s %s:%s:%s.%s'})"
  1156. TimestampTZ_Literal=F
  1157. TimestampTZ_Format_Str="YYYY MM DD HH MM SS FFFFFFFFF HHMM"
  1158. TimestampTZ_Literal_Str="timestamp_tz('%s-%s-%s %s:%s:%s.%s %s:%s')"
  1159. Zero_Date_Literal_Str=
  1160. Zero_Timestamp_Literal_Str=
  1161. [Exceptions Literals DATABASE:DSN VERSION:09]
  1162. TimestampTZ_Format_Str=
  1163. TimestampTZ_Literal_Str=
  1164. [Exceptions Literals DATABASE:DSN VERSION:08]
  1165. TimestampTZ_Format_Str=
  1166. TimestampTZ_Literal_Str=
  1167. [Exceptions Literals DATABASE:DSN VERSION:07]
  1168. TimestampTZ_Format_Str=
  1169. TimestampTZ_Literal_Str=
  1170. [Exceptions Literals DATABASE:QSQ]
  1171. Alt_Date_Literal_Assignment=T
  1172. Alt_Date_Literal_Between=T
  1173. Alt_Date_Literal_Comparison=T
  1174. Alt_Date_Literal_In=T
  1175. Alt_Date_Literal_Insert_Value=T
  1176. Alt_Date_Literal_Str="'%s-%s-%s'"
  1177. Alt_Interval_Literal_Str=
  1178. Alt_Time_Literal_Str="'%s.%s.%s'"
  1179. Alt_Timestamp_Literal_Str="'%s-%s-%s-%s.%s.%s.%s'"
  1180. Date_Add_Function_Str=
  1181. Date_Format_Str="YYYY MM DD"
  1182. Date_Literal=C
  1183. Date_Literal_Str="date('%s-%s-%s')"
  1184. Date_Sub_Function_Str=
  1185. Interval_Format_Str=
  1186. Interval_Literal=F
  1187. Interval_Literal_Str=
  1188. Time_Format_Str="HH MM SS"
  1189. Time_Literal=C
  1190. Time_Literal_Str="time('%s.%s.%s')"
  1191. Timestamp_Format_Str="YYYY MM DD HH MM SS FFFFFF"
  1192. Timestamp_Literal=C
  1193. Timestamp_Literal_Str="timestamp('%s-%s-%s-%s.%s.%s.%s')"
  1194. Zero_Date_Literal_Str=
  1195. Zero_Timestamp_Literal_Str=
  1196. [Exceptions Literals DATABASE:SQL]
  1197. Date_Literal=C
  1198. Date_Literal_Str="date('%s-%s-%s')"
  1199. Time_Literal=C
  1200. Time_Literal_Str="time('%s:%s:%s')"
  1201. Timestamp_Literal=C
  1202. Timestamp_Literal_Str="timestamp('%s-%s-%s %s:%s:%s.%s')"
  1203. [Exceptions Operators]
  1204. Add="+"
  1205. And="and"
  1206. Div="/"
  1207. Eql="="
  1208. Geq=">="
  1209. Grt=">"
  1210. Leq="<="
  1211. Les="<"
  1212. Mul="*"
  1213. Neq="<>"
  1214. Not="not"
  1215. Or="or"
  1216. Sub="-"
  1217. [Exceptions Operators DATABASE:DSN]
  1218. Neq=" <> "
  1219. Varchar_Compare_Limit="4000"
  1220. [Exceptions Operators DATABASE:SQL]
  1221. [Exceptions Predicates]
  1222. All="all "
  1223. Exists="exists "
  1224. [Exceptions Predicates DATABASE:QSQ]
  1225. All="all"
  1226. Any="any"
  1227. [Exceptions Set Operators]
  1228. Distinct="distinct"
  1229. Except_All=T
  1230. Except=" except "
  1231. Intersect_All=T
  1232. Intersect="intersect"
  1233. Union_All=T
  1234. Union="union"
  1235. [Exceptions Set Operators DATABASE:DSN VERSION:08]
  1236. Intersect=""
  1237. Intersect_All=F
  1238. Except=""
  1239. Except_All=F
  1240. [Exceptions Set Operators DATABASE:DSN VERSION:07]
  1241. Intersect=""
  1242. Intersect_All=F
  1243. Except=""
  1244. Except_All=F
  1245. [Exceptions Set Operators DATABASE:QSQ]
  1246. Except_All=F
  1247. Intersect_All=F
  1248. Union=
  1249. Union_All=F
  1250. [Exceptions Set Operators DATABASE:QSQ VERSION:05.01]
  1251. Except=
  1252. Intersect=
  1253. [Exceptions Set Operators DATABASE:QSQ VERSION:05.02]
  1254. Except=
  1255. Intersect=
  1256. [Exceptions Tables]
  1257. Joined=T
  1258. Derived=T
  1259. Table_Constructor=T
  1260. UniqueName_Prefix="coguda"
  1261. [Exceptions Tables DATABASE:SQL]
  1262. Tbl_Ref_Limit="256"
  1263. [Exceptions Tables DATABASE:DSN]
  1264. Table_Constructor=F
  1265. Tbl_Ref_Limit="256"
  1266. [Exceptions Tables DATABASE:QSQ]
  1267. Joined=F
  1268. Derived=T
  1269. Tbl_Ref_Limit="1000"
  1270. SubSelect_Limit="256"
  1271. Table_Constructor=F
  1272. [Exceptions Tables DATABASE:QSQ VERSION:05.03]
  1273. Joined=F
  1274. Derived=T
  1275. Tbl_Ref_Limit="256"
  1276. SubSelect_Limit="31"
  1277. [Exceptions Tables DATABASE:QSQ VERSION:05.02]
  1278. Joined=F
  1279. Derived=T
  1280. Tbl_Ref_Limit="256"
  1281. SubSelect_Limit="31"
  1282. [Exceptions Value Expressions]
  1283. Bit_Length=F
  1284. Case=T
  1285. Cast=T
  1286. Char_Length=C
  1287. Coalesce=T
  1288. Extract=C
  1289. Extract_Year=coguda#extract_year
  1290. Extract_Month=coguda#extract_month
  1291. Extract_Day=coguda#extract_day
  1292. Extract_Hours=coguda#extract_hour
  1293. Extract_Minutes=coguda#extract_minute
  1294. Extract_Seconds=coguda#extract_second
  1295. Lower=F
  1296. Nullif=T
  1297. Octet_Length=F
  1298. Position=F
  1299. StrCat=T
  1300. Substring=C
  1301. Upper=F
  1302. Cube=T
  1303. Rollup=T
  1304. Grouping_Sets=T
  1305. Current_Date=T
  1306. Current_Time=F
  1307. Current_Timestamp=F
  1308. Localtime=C
  1309. Localtimestamp=C
  1310. Abs=T
  1311. Ceiling=T
  1312. Exp=T
  1313. Floor=T
  1314. Ln=T
  1315. Mod=T
  1316. Power=T
  1317. Sqrt=T
  1318. Trim=F
  1319. Row_Value_Constructors=T
  1320. [Exceptions Value Expression DATABASE:DSN]
  1321. Case=F
  1322. Case_Simple=T
  1323. Case_Searched=T
  1324. Cast=T
  1325. Cube=F
  1326. Grouping_Sets=F
  1327. Lower=T
  1328. Nullif=T
  1329. Position=C
  1330. Rollup=F
  1331. StrCat=T
  1332. Trim=C
  1333. Upper=T
  1334. [Exceptions Value Expression DATABASE:DSN VERSION:06]
  1335. Trim=F
  1336. Case_Simple=F
  1337. [Exceptions Value Expressions DATABASE:QSQ]
  1338. Case=T
  1339. Cast=T
  1340. Char_Length=T
  1341. Nullif=T
  1342. Lower=T
  1343. Upper=T
  1344. Position=T
  1345. Cube=F
  1346. Rollup=F
  1347. Grouping_Sets=F
  1348. Trim=T
  1349. Extract=T
  1350. Bit_Length=T
  1351. Octet_Length=T
  1352. [Exceptions Value Expressions DATABASE:QSQ VERSION:05.01]
  1353. Ceiling=F
  1354. Extract=C
  1355. Bit_Length=F
  1356. Octet_Length=F
  1357. Substring=F
  1358. [Exceptions Value Expressions DATABASE:QSQ VERSION:05.02]
  1359. Ceiling=F
  1360. Extract=C
  1361. Bit_Length=F
  1362. Octet_Length=F
  1363. Substring=F
  1364. [Exceptions Value Expressions DATABASE:SQL]
  1365. Lower=T
  1366. Upper=T
  1367. Cube=T
  1368. Rollup=T
  1369. Grouping_Sets=T
  1370. Trim_Both_Spaces=C
  1371. Trim_Leading_Spaces=C
  1372. Trim_Trailing_Spaces=C
  1373. Extract=T
  1374. [Exceptions Value Expressions DATABASE:SQL VERSION:06.01]
  1375. Cube=F
  1376. Rollup=F
  1377. Grouping_Sets=F
  1378. [Exceptions Value Expressions DATABASE:SQL VERSION:08]
  1379. Extract=C
  1380. [Exceptions Value Expressions DATABASE:SQL VERSION:09.01]
  1381. Extract=C
  1382. [Exceptions Value Expressions DATABASE:SQL VERSION:09.05]
  1383. Extract=C
  1384. [Exceptions Blob Expressions]
  1385. Blob_In_Substring=T
  1386. Blob_In_StrCat=T
  1387. Blob_In_Trim=T
  1388. [Exceptions Misc DATABASE:SQL]
  1389. Session_Sort_Order=T
  1390. [I18N Encoding Mapping]
  1391. 1252=cp1252
  1392. 1250=cp1250
  1393. 1208=utf-8
  1394. 1200=ucs-2
  1395. 943=Shift_JIS
  1396. 954=EUC_JP
  1397. 874=cp874
  1398. 5488=gb18030
  1399. [Misc]
  1400. ; Specifies which conversion mechanism to use
  1401. Numeric_binding=B
  1402. ;
  1403. ; Default processing mode.
  1404. Processing Mode=Database Only
  1405. [Misc DATABASE:QSQ]
  1406. Numeric_binding=C
  1407. ; From this point on this ini file contains entries pertaining
  1408. ; to the operation of DB2 through the DB2 driver being used.
  1409. ; The format for these entries is a section name in the format
  1410. ; [<drivername>] containing entries indicating a special DB2
  1411. ; exception for the driver. The possible exceptions, listed
  1412. ; alphabetical for easy lookup, that can be set are...
  1413. ; Alternate Metadata Retrieval=[T|F]
  1414. ; If set to T, the primary meta data retrieval method, performing
  1415. ; a select and describing the results, is replace with calls to
  1416. ; SQLColumns. Drivers that do not support 'select *' will use the
  1417. ; alternate metadata retrieval method.
  1418. ; Keyword Ascending=<literal>
  1419. ; If given, the default ascending keyword, "asc" will be replaced
  1420. ; with this literal. For some drivers this keyword is optional or
  1421. ; invalid, an blank entry will remove the keyword.
  1422. ; Columns Are Nullable=[T|F]
  1423. ; If set to T, the column descriptions returned by the driver will
  1424. ; allow NULL values. If set to F, the column descriptions returned
  1425. ; by the driver will disallow NULL values. If set to neither T or F
  1426. ; the normal driver description will be used.
  1427. ; Convert To Blob Limit=<number>
  1428. ; The number will indicate the size limit for LongVarChar and
  1429. ; LongVarBinary data. If the data size is greater then the
  1430. ; specified size the data type will be treated as blob data.
  1431. ; By default the size limit is 32K.
  1432. ; Date format=<date format>
  1433. ; If given, the default date format, YYYY MM DD, will be
  1434. ; replaced with <date format>. The DB2 driver or underlying
  1435. ; database must understand the date format.
  1436. ; Date literal=<double quoted single quoted string>
  1437. ; If given, the default DB2 date conversion, "{d '%s-%s-%s'}",
  1438. ; will be replaced with a literal date string. For some drivers,
  1439. ; ODBC date literals are converted into function calls and may
  1440. ; cause the database optimizer to use table scan instead of index scan,
  1441. ; impacting performance. So alternate literal date string can be
  1442. ; used if the default ODBC date conversion is not desired.
  1443. ; Disable Transaction Support=[T|F]
  1444. ; If set to T, transaction support is disabled and the drivers
  1445. ; auotcommit option will be in effect. This option sets the
  1446. ; transaction isolation level to SQL_TXN_SERIALIZABLE, meaning
  1447. ; dirty reads, nonrepeatable reads and phantom reads will not
  1448. ; be possible.
  1449. ; Optimize For=<numeric value>
  1450. ; If a numeric value greater then zero is given, "OPTIMIZE FOR n ROWS" clause will
  1451. ; be appended to the select statements ( n being equal to the numeric value and the
  1452. ; number of rows to optimize for ). This option can improve performance based on the
  1453. ; assumption that <n> rows will be retrieved and causes a suitable communication
  1454. ; buffer size to be chosen for blocked cursors.
  1455. ; Multiple Active Statements Support=[1|0]
  1456. ; If set to 1, indicates that the DB2 driver does support multiple active statements
  1457. ; within a transaction. If set to 0 would indicate otherwise. This option can work
  1458. ; around situations where the driver returns incorrect information regarding this
  1459. ; support.
  1460. ; Qualified Synonyms are not supported=[T|F]
  1461. ; If set to T, the database doesn't supported qualified synonyms.
  1462. ; Replace Count Non-Distinct=[T|F]
  1463. ; If set to T, the count(value) expression will be replaced by count(*).
  1464. ; Note, that this is NOT semantically equivalent: count(*) may count NULL
  1465. ; values whereas count(value) does not.
  1466. ; Select For Fetch Only=[T|F]
  1467. ; If set to T, "FOR FETCH ONLY" will be appended to select statements.
  1468. ; This option can work around quirks on the server by turning on
  1469. ; journalling or improve performance by affecting the locking strategy.
  1470. ; Select For Update Disabled=[T|F]
  1471. ; If set to T, "FOR UPDATE" will not be allowed in SELECT statements.
  1472. ; Time literal=<double quoted string>
  1473. ; If given, the default ODBC time conversion, "{t '%s:%s:%s'}",
  1474. ; will be replaced with a literal time string. For some drivers,
  1475. ; ODBC time literals are converted into function calls and may
  1476. ; cause the database optimizer to use table scan instead of index scan,
  1477. ; impacting performance. So alternate literal time string can
  1478. ; be used if the default ODBC time conversion is not desired.
  1479. ; Timestamp format=<timestamp format>
  1480. ; If given, the default timestamp format, YYYY MM DD HH MM SS FFF,
  1481. ; will be replaced with <timestamp format>. The DB2 driver or
  1482. ; underlying database must understand the timestamp format.
  1483. ; Timestamp literal=<double quoted string>
  1484. ; If given, the default ODBC timestamp conversion, "{ts '%s-%s-%s %s:%s:%s'}",
  1485. ; will be replaced with a literal timestamp string. For some drivers
  1486. ; ODBC timestamp literals are converted into function calls and may
  1487. ; cause the database optimizer to use table scan instead of index scan,
  1488. ; impacting performance. So alternate literal timestamp string can
  1489. ; be used if the default ODBC timestamp conversion is not desired.
  1490. ; Treat Integers as Signed=[T|F]
  1491. ; If set to T, all integers will be treated as signed integers.
  1492. [UDA Misc]
  1493. ; Set this entry to one of the following values to force the type of
  1494. ; transformation performed on queries containing aggregates computed
  1495. ; at different levels of granularity. A value other than 0 will cause
  1496. ; a query to generated that is more materialized view friendly.
  1497. ;
  1498. ; 0 = default
  1499. ; 1 = derived tables
  1500. ; 2 = union
  1501. ;
  1502. Multigrain_Query_XForm_Strategy=0
  1503. [UDA Misc DATABASE:QSQ]
  1504. ;Trakker 518105
  1505. ; Set this entry to F to avoid generation of predicates of the form
  1506. ; T1.C1 = T2.C1 OR ( T1.C1 IS NULL AND T2.C1 IS NULL ). Care must be
  1507. ; taken, however, since doing so may cause data integrity problems if
  1508. ; data contains null values.
  1509. Generate_Equal_Or_Null=T
  1510. [DATABASE:DSN]
  1511. Trim Trailing Identifier Spaces="T"
  1512. State Overwrite 0="CCLMSG_UDA_SQL_GENERAL SQL_API_ALL_FUNCTIONS 40003 08S01"
  1513. Qualified Synonyms Are Not Supported="T"
  1514. SQL_IDENTIFIER_CASE="3"
  1515. SQL_API_SQLPROCEDURES="TRUE:SELECT ?1, SCHEMA, NAME, 0, 0, 0, '', CASE ROUTINETYPE WHEN 'P' THEN 1 ELSE 2 END FROM SYSIBM.SYSROUTINES WHERE ROUTINETYPE IN ('F', 'P') AND ORIGIN IN ('E', 'Q', 'U' ,'N') AND SCHEMA <> 'SYSIBM' AND SCHEMA ?2 AND NAME ?3 ORDER BY SCHEMA, NAME"
  1516. ;mapping for TYPE_NAME to value: DECIMAL=3, SMALLINT=5, INTEGER=4, DOUBLE=8, CHARACTER=1, VARCHAR=12, LONGVARCHAR=-1, CLOB=-1, DATE=9, TIME=10, TIMESTAMP=11, BOOLEAN=5, BLOB=-98, REAL=7, DOUBLE=8, BIGINT=-5, ELSE=-2
  1517. ;as there is no info in ROUTINEPARMS catalog view about nullness, so we'll default to NULLS OK
  1518. ;sometimes function parameters do not have names, in this case we'll concate the corresponding rowtype and ordinal to form a unique name
  1519. ;we also concate the ROUTINENAME with SPECIFICNAME so we can group all the parameters into parmSet where parm of same group are sorted together
  1520. SQL_API_SQLPROCEDURECOLUMNS="TRUE:SELECT ?1, SCHEMA, NAME || ';' || SPECIFICNAME AS ROUTINENAME, COALESCE(PARMNAME, ROWTYPE || CAST(ORDINAL AS CHAR(3))), CASE ROWTYPE WHEN 'B' THEN 2 WHEN 'O' THEN 4 WHEN 'P' THEN 1 ELSE 3 END, CASE TYPENAME WHEN 'DECIMAL' THEN 3 WHEN 'SMALLINT' THEN 5 WHEN 'INTEGER' THEN 4 WHEN 'BIGINT' THEN -5 WHEN 'REAL' THEN 7 WHEN 'DOUBLE' THEN 8 WHEN 'CHAR' THEN 1 WHEN 'VARCHAR' THEN 12 WHEN 'LONGVARCHAR' THEN -1 WHEN 'CLOB' THEN -1 WHEN 'DATE' THEN 9 WHEN 'TIME' THEN 10 WHEN 'TIMESTAMP' THEN 11 WHEN 'BOOLEAN' THEN 5 WHEN 'BLOB' THEN -98 ELSE -2 END, TYPENAME, CASE TYPENAME WHEN 'DECIMAL' THEN (LENGTH * 2 - 1) WHEN 'SMALLINT' THEN 5 WHEN 'INTEGER' THEN 10 WHEN 'BIGINT' THEN 19 WHEN 'DOUBLE' THEN 64 WHEN 'REAL' THEN 32 ELSE LENGTH END, LENGTH, SCALE, CASE TYPENAME WHEN 'DECIMAL' THEN 10 WHEN 'SMALLINT' THEN 10 WHEN 'INTEGER' THEN 10 WHEN 'BIGINT' THEN 10 WHEN 'DOUBLE' THEN 2 WHEN 'REAL' THEN 2 ELSE CAST(NULL AS INTEGER) END, 1 AS NULLABLE FROM SYSIBM.SYSPARMS WHERE SCHEMA ?2 AND NAME ?3 AND ROWTYPE IN ('P', 'O', 'B' ) ORDER BY SCHEMA, NAME, ORDINAL"
  1521. Bulk Insert Supported="T"
  1522. ;Use GET_CURRENT_SCHEMA to retrieve the current schema within the connection and use the returned schema to qualify table
  1523. ;This is set only if the Schema defined in the package is blank
  1524. ;To switch to the other behavior, which will replace a blank schema with
  1525. ; the current user name, uncomment the following line:
  1526. ;Set User As Default Schema="T"
  1527. Get_Current_Schema="TRUE:SELECT DISTINCT RTRIM(CURRENT_SCHEMA) FROM SYSIBM.SYSENVIRONMENT"
  1528. [DATABASE:DSN VERSION:10]
  1529. ; This entry is intended for mapping a new database which is in compatibility mode
  1530. ; to its previous version. This mapping indicates how the DB is acting (whether new features
  1531. ; have been enabled or not.
  1532. ; Mapping is "<previous_major_ver>_<previous_minor_ver>"
  1533. ; Changing these mappings may cause UDA to no longer honour compatibility mode
  1534. Compatibility mode mapping="9.1"
  1535. [DATABASE:DSN VERSION:09]
  1536. Compatibility mode mapping="8.1"
  1537. [DATABASE:DSN VERSION:08]
  1538. Compatibility mode mapping="7.1"
  1539. [DRIVER:CWBODBC.DLL]
  1540. Set User As Default Schema="F"
  1541. [DRIVER:LIBCWBODBC.SO]
  1542. Set User As Default Schema="F"
  1543. [DATABASE:QSQ]
  1544. Set User As Default Schema="T"
  1545. SQL_API_SQLPROCEDURES="TRUE:SELECT * FROM ( SELECT ?1, ROUTINE_SCHEMA AS SCHEMA, ROUTINE_NAME AS NAME, 0, 0, 0, '', CASE ROUTINE_TYPE WHEN 'PROCEDURE' THEN 1 WHEN 'FUNCTION' THEN 2 ELSE 0 END FROM QSYS2.SYSROUTINES WHERE ( FUNCTION_ORIGIN IN ('E', 'U' ) AND ROUTINE_SCHEMA <> 'SYSIBM' ) OR FUNCTION_ORIGIN = '' ) AS T WHERE SCHEMA ?2 AND NAME ?3"
  1546. ;possible COL_TYPE are 0 for UNKNOWN, 1 for INPUT, 2 for INOUT, 3 for RESULT_COL, 4 for OUTPUT and 5 for RETURN_VALUE
  1547. ;mapping for TYPE_NAME to value: DECIMAL=3, SMALLINT=5, INTEGER=4, DOUBLE=8, CHARACTER=1, VARCHAR=12, LONGVARCHAR=-1, CLOB=-1, DATE=9, TIME=10, TIMESTAMP=11, BOOLEAN=5, BLOB=-98, REAL=7, DOUBLE=8, BIGINT=-5, ELSE=-2
  1548. SQL_API_SQLPROCEDURECOLUMNS="TRUE:SELECT ?1, B.ROUTINE_SCHEMA AS SCHEMA, B.ROUTINE_NAME || ';' || B.SPECIFIC_NAME AS PROC_NAME, A.PARAMETER_NAME, CASE A.PARAMETER_MODE WHEN 'IN' THEN 1 WHEN 'OUT' THEN 4 ELSE 2 END AS COL_TYPE, CASE A.DATA_TYPE WHEN 'DECIMAL' THEN 3 WHEN 'NUMERIC' THEN 3 WHEN 'SMALLINT' THEN 5 WHEN 'INTEGER' THEN 4 WHEN 'BIGINT' THEN -5 WHEN 'REAL' THEN 7 WHEN 'DOUBLE PRCISION' THEN 8 WHEN 'CHARACTER' THEN 1 WHEN 'CHARACTER VARYING' THEN 12 WHEN 'DATE' THEN 9 WHEN 'TIME' THEN 10 WHEN 'TIMESTAMP' THEN 11 ELSE -2 END AS DATA_TYPE, A.DATA_TYPE AS TYPE_NAME, CASE A.DATA_TYPE WHEN 'DECIMAL' THEN A.NUMERIC_PRECISION WHEN 'NUMERIC' THEN A.NUMERIC_PRECISION WHEN 'SMALLINT' THEN 5 WHEN 'INTEGER' THEN 10 WHEN 'BIGINT' THEN 19 WHEN 'DOUBLE' THEN 64 WHEN 'REAL' THEN 32 ELSE A.CHARACTER_MAXIMUM_LENGTH END AS COL_SIZE, CASE A.DATA_TYPE WHEN 'DECIMAL' THEN CAST((A.NUMERIC_PRECISION + 1) / 2 AS INTEGER) WHEN 'SMALLINT' THEN 2 WHEN 'INTEGER' THEN 4 WHEN 'BIGINT' THEN 8 WHEN 'DOUBLE' THEN 8 WHEN 'REAL' THEN 4 ELSE A.CHARACTER_MAXIMUM_LENGTH END AS BUFFER_LENGTH, A.NUMERIC_SCALE, A.NUMERIC_PRECISION_RADIX, CASE A.IS_NULLABLE WHEN 'YES' THEN 1 ELSE 0 END AS NULLABLE, A.LONG_COMMENT FROM QSYS2.SYSPARMS A, (SELECT ROUTINE_SCHEMA, SPECIFIC_SCHEMA, ROUTINE_NAME, SPECIFIC_NAME FROM QSYS2.SYSFUNCS B WHERE ROUTINE_SCHEMA ?2 AND ROUTINE_NAME ?3 UNION SELECT ROUTINE_SCHEMA, SPECIFIC_SCHEMA, ROUTINE_NAME, SPECIFIC_NAME FROM QSYS2.SYSPROCS WHERE ROUTINE_SCHEMA ?2 AND ROUTINE_NAME ?3 ) B WHERE A.PARAMETER_NAME IS NOT NULL AND A.SPECIFIC_SCHEMA = B.SPECIFIC_SCHEMA AND A.SPECIFIC_NAME = B.SPECIFIC_NAME ORDER BY SCHEMA, PROC_NAME, A.ORDINAL_POSITION, COL_TYPE"
  1549. ;
  1550. ;Table types.
  1551. ;
  1552. User Tables="'TABLE','MATERIALIZED QUERY TABLE'"
  1553. User Synonyms="'ALIAS'"
  1554. Bulk Insert Supported="T"
  1555. [DRIVER:DB2CLI.DLL DATABASE:QSQ]
  1556. SQL_MAX_CATALOG_NAME_LEN="128"
  1557. [DRIVER:LIBDB2.A DATABASE:QSQ]
  1558. SQL_MAX_CATALOG_NAME_LEN="128"
  1559. [DATABASE:QSQ VERSION:05.01]
  1560. SQL_IDENTIFIER_CASE="3"
  1561. User Tables="'TABLE'"
  1562. [DATABASE:QSQ VERSION:05.02]
  1563. SQL_IDENTIFIER_CASE="3"
  1564. User Tables="'TABLE'"
  1565. [DATABASE:SQL]
  1566. ;Use GET_CURRENT_SCHEMA to retrieve the current schema within the connection and use the returned schema to qualify table
  1567. ;To back to the old behavior, comment out the following line
  1568. ;Set User As Default Schema="T"
  1569. Get_Current_Schema="TRUE:SELECT DISTINCT RTRIM(CURRENT_SCHEMA) FROM SYSIBM.SYSTABLES"
  1570. ;According to DB2:
  1571. ;An expression resulting in a string data type with a maximum length greater
  1572. ;than 255 bytes is not permitted in:
  1573. ;A SELECT DISTINCT statement
  1574. ;A GROUP BY clause
  1575. ;An ORDER BY clause
  1576. ;A column function with DISTINCT
  1577. ;A SELECT or VALUES statement of a set operator other than UNION ALL.
  1578. ;Therefore, we set Convert To Blob Limit to 255.
  1579. Convert To Blob Limit="255"
  1580. Bulk Insert Supported="T"
  1581. ;Entries for session level directives,
  1582. ;which will be executed within gateway.
  1583. ;SQL_ATTRIB_DB_OPTIMIZER_GOAL = Exec_OptimizerGoal_FirstRow or
  1584. ;Exec_OptimizerGoal_AllRows
  1585. ;SQL_ATTRIB_DB_JOIN_ORDER = Exec_JoinOrder_NoJoinOrder or
  1586. ;Exec_JoinOrder_OrderedJoin or Exec_JoinOrder_StarJoin
  1587. ;SQL_ATTRIB_DB_DOP = Exec_DegreeOfParallelism
  1588. ;SQL_ATTRIB_DB_OPTIMIZER_LEVEL = Exec_OptimizerLevel
  1589. Exec_DegreeOfParallelism="SET CURRENT DEGREE = '%d'"
  1590. Exec_OptimizerLevel="SET CURRENT QUERY OPTIMIZATION %d"
  1591. OptimizerLevel_Low_Range="0"
  1592. OptimizerLevel_High_Range="9"
  1593. ;trakker 304150 - the database is lying about the sensitivity
  1594. SQL_IDENTIFIER_CASE="3"
  1595. SQL_API_SQLPROCEDURES="TRUE:SELECT ?1, ROUTINESCHEMA, ROUTINENAME, 0, 0, 0, '', CASE ROUTINETYPE WHEN 'P' THEN 1 ELSE CASE FUNCTIONTYPE WHEN 'C' THEN 2 WHEN 'S' THEN 2 ELSE 3 END END FROM SYSCAT.ROUTINES WHERE ROUTINETYPE IN ('F', 'P') AND ORIGIN IN ('E', 'Q', 'U' ) AND ROUTINESCHEMA <> 'SYSFUN' AND ROUTINESCHEMA ?2 AND ROUTINENAME ?3 ORDER BY ROUTINESCHEMA, ROUTINENAME"
  1596. ;possible COL_TYPE are 0 for UNKNOWN, 1 for INPUT, 2 for INOUT, 3 for RESULT_COL, 4 for OUTPUT and 5 for RETURN_VALUE
  1597. ;mapping for TYPE_NAME to value: DECIMAL=3, SMALLINT=5, INTEGER=4, DOUBLE=8, CHARACTER=1, VARCHAR=12, LONGVARCHAR=-1, CLOB=-1, DATE=9, TIME=10, TIMESTAMP=11, BOOLEAN=5, BLOB=-98, REAL=7, DOUBLE=8, BIGINT=-5, ELSE=-2
  1598. ;as there is no info in ROUTINEPARMS catalog view about nullness, so we'll default to NULLS OK
  1599. ;sometimes function parameters do not have names, in this case we'll concate the corresponding rowtype and ordinal to form a unique name
  1600. ;we also concate the ROUTINENAME with SPECIFICNAME so we can group all the parameters into parmSet where parm of same group are sorted together
  1601. SQL_API_SQLPROCEDURECOLUMNS="TRUE:SELECT ?1, ROUTINESCHEMA, ROUTINENAME || ';' || SPECIFICNAME AS ROUTINENAME, COALESCE(PARMNAME, ROWTYPE || CAST(ORDINAL AS CHAR(3))), CASE ROWTYPE WHEN 'B' THEN 2 WHEN 'O' THEN 4 WHEN 'P' THEN 1 ELSE 3 END, CASE TYPENAME WHEN 'DECIMAL' THEN 3 WHEN 'SMALLINT' THEN 5 WHEN 'INTEGER' THEN 4 WHEN 'BIGINT' THEN -5 WHEN 'REAL' THEN 7 WHEN 'DOUBLE' THEN 8 WHEN 'CHARACTER' THEN 1 WHEN 'VARCHAR' THEN 12 WHEN 'LONGVARCHAR' THEN -1 WHEN 'CLOB' THEN -1 WHEN 'DATE' THEN 9 WHEN 'TIME' THEN 10 WHEN 'TIMESTAMP' THEN 11 WHEN 'BOOLEAN' THEN 5 WHEN 'BLOB' THEN -98 ELSE -2 END, TYPENAME, CASE TYPENAME WHEN 'DECIMAL' THEN (LENGTH * 2 - 1) WHEN 'SMALLINT' THEN 5 WHEN 'INTEGER' THEN 10 WHEN 'BIGINT' THEN 19 WHEN 'DOUBLE' THEN 64 WHEN 'REAL' THEN 32 ELSE LENGTH END, LENGTH, SCALE, CASE TYPENAME WHEN 'DECIMAL' THEN 10 WHEN 'SMALLINT' THEN 10 WHEN 'INTEGER' THEN 10 WHEN 'BIGINT' THEN 10 WHEN 'DOUBLE' THEN 2 WHEN 'REAL' THEN 2 ELSE CAST(NULL AS INTEGER) END, 1 AS NULLABLE, REMARKS FROM SYSCAT.ROUTINEPARMS WHERE ROUTINESCHEMA ?2 AND ROUTINENAME ?3 ORDER BY ROUTINESCHEMA, ROUTINENAME, ORDINAL"
  1602. [DATABASE:SQL VERSION:07.01]
  1603. SQL_API_SQLPROCEDURES="TRUE:SELECT ?1, SCHEMA, NAME, 0, 0, 0, '', TYPE FROM (SELECT FUNCSCHEMA AS SCHEMA, FUNCNAME AS NAME, CASE TYPE WHEN 'C' THEN 2 WHEN 'S' THEN 2 ELSE 3 END AS TYPE FROM SYSCAT.FUNCTIONS WHERE FUNCSCHEMA <> 'SYSFUN' AND ORIGIN IN ('E', 'Q', 'U' ) AND TYPE IN ('C', 'S') UNION ALL SELECT PROCSCHEMA AS SCHEMA, PROCNAME AS NAME, 1 AS TYPE FROM SYSCAT.PROCEDURES WHERE PROCSCHEMA <> 'SYSFUN' ) AS T WHERE SCHEMA ?2 AND NAME ?3 ORDER BY SCHEMA, NAME"
  1604. ;possible COL_TYPE are 1 for INPUT, 2 for INOUT, 3 for RESULT_COL and 4 for OUTPUT
  1605. ;mapping for TYPE_NAME to value: DECIMAL=3, SMALLINT=5, INTEGER=4, DOUBLE=8, CHARACTER=1, VARCHAR=12, LONGVARCHAR=-1, CLOB=-1, DATE=9, TIME=10, TIMESTAMP=11, BOOLEAN=5, BLOB=-98, REAL=7, DOUBLE=8, BIGINT=-5, ELSE=-2
  1606. ;sometimes function parameters do not have names, in this case we'll concate the corresponding rowtype and ordinal to form a unique name
  1607. ;we also concate the FUNCNAME with SPECIFICNAME so we can group all the parameters into parmSet where parm of same group are sorted together
  1608. SQL_API_SQLPROCEDURECOLUMNS="TRUE:SELECT ?1, SCHEMA, PROC_NAME, COL_NAME, COL_TYPE, CASE WHEN CAST(DATA_TYPE AS CHAR(7)) = 'DECIMAL' THEN 3 WHEN CAST(DATA_TYPE AS CHAR(8)) = 'SMALLINT' THEN 5 WHEN CAST(DATA_TYPE AS CHAR(7)) = 'INTEGER' THEN 4 WHEN CAST(DATA_TYPE AS CHAR(6)) = 'BIGINT' THEN -5 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'REAL' THEN 7 WHEN CAST(DATA_TYPE AS CHAR(6)) = 'DOUBLE' THEN 8 WHEN CAST(DATA_TYPE AS CHAR(9)) = 'CHARACTER' THEN 1 WHEN CAST(DATA_TYPE AS CHAR(7)) = 'VARCHAR' THEN 12 WHEN CAST(DATA_TYPE AS CHAR(11)) = 'LONGVARCHAR' THEN -1 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'CLOB' THEN -1 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'DATE' THEN 9 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'TIME' THEN 10 WHEN CAST(DATA_TYPE AS CHAR(9)) = 'TIMESTAMP' THEN 11 WHEN CAST(DATA_TYPE AS CHAR(7)) = 'BOOLEAN' THEN 5 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'BLOB' THEN -98 ELSE -2 END AS DATA_TYPE, TYPE_NAME, CASE WHEN CAST(COL_SIZE AS CHAR(7)) = 'DECIMAL' THEN (BUFFER_LENGTH * 2 - 1) WHEN CAST(COL_SIZE AS CHAR(8)) = 'SMALLINT' THEN 5 WHEN CAST(COL_SIZE AS CHAR(7)) = 'INTEGER' THEN 10 WHEN CAST(COL_SIZE AS CHAR(6)) = 'BIGINT' THEN 19 WHEN CAST(COL_SIZE AS CHAR(6)) = 'DOUBLE' THEN 64 WHEN CAST(COL_SIZE AS CHAR(4)) = 'REAL' THEN 32 WHEN CAST(COL_SIZE AS CHAR(4)) = 'DATE' THEN 10 ELSE BUFFER_LENGTH END AS COL_SIZE, BUFFER_LENGTH, DEC_DIGIT, CASE WHEN CAST(RADIX AS CHAR(7)) = 'DECIMAL' THEN 10 WHEN CAST(RADIX AS CHAR(8)) = 'SMALLINT' THEN 10 WHEN CAST(RADIX AS CHAR(7)) = 'INTEGER' THEN 10 WHEN CAST(RADIX AS CHAR(6)) = 'BIGINT' THEN 10 WHEN CAST(RADIX AS CHAR(6)) = 'DOUBLE' THEN 2 WHEN CAST(RADIX AS CHAR(4)) = 'REAL' THEN 2 ELSE CAST(NULL AS INTEGER) END AS RADIX, CASE WHEN CAST(NULLABLE AS CHAR(1)) = 'Y' THEN 1 ELSE 0 END AS NULLABLE, CAST(NULL as CHAR(1)) AS REMARKS FROM (SELECT FUNCSCHEMA AS SCHEMA, FUNCNAME || ';' || SPECIFICNAME AS PROC_NAME, COALESCE(PARMNAME, ROWTYPE || CAST(ORDINAL AS CHAR(3))) AS COL_NAME, ORDINAL AS ORDINAL, CASE WHEN CAST(ROWTYPE AS CHAR(1)) = 'R' THEN 0 WHEN CAST(ROWTYPE AS CHAR(1)) = 'C' THEN 3 ELSE 1 END AS COL_TYPE, TYPENAME AS DATA_TYPE, TYPENAME AS TYPE_NAME, TYPENAME AS COL_SIZE, LENGTH AS BUFFER_LENGTH, SCALE AS DEC_DIGIT, TYPENAME AS RADIX,'N' AS NULLABLE FROM SYSCAT.FUNCPARMS WHERE FUNCSCHEMA <> 'SYSFUN' AND FUNCSCHEMA ?2 AND FUNCNAME ?3 UNION ALL SELECT PROCSCHEMA AS SCHEMA, PROCNAME || ';' || SPECIFICNAME AS PROC_NAME, PARMNAME AS COL_NAME, ORDINAL AS ORDINAL, CASE WHEN CAST(PARM_MODE AS CHAR(3)) = 'OUT' THEN 4 WHEN CAST(PARM_MODE AS CHAR(2)) = 'IN' THEN 1 WHEN CAST(PARM_MODE AS CHAR(5)) = 'INOUT' THEN 2 ELSE 0 END AS COL_TYPE, TYPENAME AS DATA_TYPE, TYPENAME AS TYPE_NAME, TYPENAME AS COL_SIZE, LENGTH AS BUFFER_LENGTH, SCALE AS DEC_DIGIT, TYPENAME AS RADIX, NULLS AS NULLABLE FROM SYSCAT.PROCPARMS WHERE PROCSCHEMA ?2 AND PROCNAME ?3 ) AS T ORDER BY SCHEMA, PROC_NAME, ORDINAL"
  1609. [DATABASE:SQL VERSION:07.02]
  1610. SQL_API_SQLPROCEDURES="TRUE:SELECT ?1, SCHEMA, NAME, 0, 0, 0, '', TYPE FROM (SELECT FUNCSCHEMA AS SCHEMA, FUNCNAME AS NAME, CASE TYPE WHEN 'C' THEN 2 WHEN 'S' THEN 2 ELSE 3 END AS TYPE FROM SYSCAT.FUNCTIONS WHERE FUNCSCHEMA <> 'SYSFUN' AND ORIGIN IN ('E', 'Q', 'U' ) AND TYPE IN ('C', 'S') UNION ALL SELECT PROCSCHEMA AS SCHEMA, PROCNAME AS NAME, 1 AS TYPE FROM SYSCAT.PROCEDURES WHERE PROCSCHEMA <> 'SYSFUN' ) AS T WHERE SCHEMA ?2 AND NAME ?3 ORDER BY SCHEMA, NAME"
  1611. ;possible COL_TYPE are 0 for UNKNOWN, 1 for INPUT, 2 for INOUT, 3 for RESULT_COL, 4 for OUTPUT and 5 for RETURN_VALUE
  1612. ;mapping for TYPE_NAME to value: DECIMAL=3, SMALLINT=5, INTEGER=4, DOUBLE=8, CHARACTER=1, VARCHAR=12, LONGVARCHAR=-1, CLOB=-1, DATE=9, TIME=10, TIMESTAMP=11, BOOLEAN=5, BLOB=-98, REAL=7, DOUBLE=8, BIGINT=-5, ELSE=-2
  1613. ;sometimes function parameters do not have names, in this case we'll concate the corresponding rowtype and ordinal to form a unique name
  1614. ;we also concate the FUNCNAME with SPECIFICNAME so we can group all the parameters into parmSet where parm of same group are sorted together
  1615. SQL_API_SQLPROCEDURECOLUMNS="TRUE:SELECT ?1, SCHEMA, PROC_NAME, COL_NAME, COL_TYPE, CASE WHEN CAST(DATA_TYPE AS CHAR(7)) = 'DECIMAL' THEN 3 WHEN CAST(DATA_TYPE AS CHAR(8)) = 'SMALLINT' THEN 5 WHEN CAST(DATA_TYPE AS CHAR(7)) = 'INTEGER' THEN 4 WHEN CAST(DATA_TYPE AS CHAR(6)) = 'BIGINT' THEN -5 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'REAL' THEN 7 WHEN CAST(DATA_TYPE AS CHAR(6)) = 'DOUBLE' THEN 8 WHEN CAST(DATA_TYPE AS CHAR(9)) = 'CHARACTER' THEN 1 WHEN CAST(DATA_TYPE AS CHAR(7)) = 'VARCHAR' THEN 12 WHEN CAST(DATA_TYPE AS CHAR(11)) = 'LONGVARCHAR' THEN -1 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'CLOB' THEN -1 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'DATE' THEN 9 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'TIME' THEN 10 WHEN CAST(DATA_TYPE AS CHAR(9)) = 'TIMESTAMP' THEN 11 WHEN CAST(DATA_TYPE AS CHAR(7)) = 'BOOLEAN' THEN 5 WHEN CAST(DATA_TYPE AS CHAR(4)) = 'BLOB' THEN -98 ELSE -2 END AS DATA_TYPE, TYPE_NAME, CASE WHEN CAST(COL_SIZE AS CHAR(7)) = 'DECIMAL' THEN (BUFFER_LENGTH * 2 - 1) WHEN CAST(COL_SIZE AS CHAR(8)) = 'SMALLINT' THEN 5 WHEN CAST(COL_SIZE AS CHAR(7)) = 'INTEGER' THEN 10 WHEN CAST(COL_SIZE AS CHAR(6)) = 'BIGINT' THEN 19 WHEN CAST(COL_SIZE AS CHAR(6)) = 'DOUBLE' THEN 64 WHEN CAST(COL_SIZE AS CHAR(4)) = 'REAL' THEN 32 WHEN CAST(COL_SIZE AS CHAR(4)) = 'DATE' THEN 10 ELSE BUFFER_LENGTH END AS COL_SIZE, BUFFER_LENGTH, DEC_DIGIT, CASE WHEN CAST(RADIX AS CHAR(7)) = 'DECIMAL' THEN 10 WHEN CAST(RADIX AS CHAR(8)) = 'SMALLINT' THEN 10 WHEN CAST(RADIX AS CHAR(7)) = 'INTEGER' THEN 10 WHEN CAST(RADIX AS CHAR(6)) = 'BIGINT' THEN 10 WHEN CAST(RADIX AS CHAR(6)) = 'DOUBLE' THEN 2 WHEN CAST(RADIX AS CHAR(4)) = 'REAL' THEN 2 ELSE CAST(NULL AS INTEGER) END AS RADIX, CASE WHEN CAST(NULLABLE AS CHAR(1)) = 'Y' THEN 1 ELSE 0 END AS NULLABLE, CAST(NULL as CHAR(1)) AS REMARKS FROM (SELECT FUNCSCHEMA AS SCHEMA, FUNCNAME || ';' || SPECIFICNAME AS PROC_NAME, COALESCE(PARMNAME, ROWTYPE || CAST(ORDINAL AS CHAR(3))) AS COL_NAME, ORDINAL AS ORDINAL, CASE WHEN CAST(ROWTYPE AS CHAR(1)) = 'R' THEN 0 WHEN CAST(ROWTYPE AS CHAR(1)) = 'C' THEN 3 ELSE 1 END AS COL_TYPE, TYPENAME AS DATA_TYPE, TYPENAME AS TYPE_NAME, TYPENAME AS COL_SIZE, LENGTH AS BUFFER_LENGTH, SCALE AS DEC_DIGIT, TYPENAME AS RADIX,'N' AS NULLABLE FROM SYSCAT.FUNCPARMS WHERE FUNCSCHEMA <> 'SYSFUN' AND FUNCSCHEMA ?2 AND FUNCNAME ?3 UNION ALL SELECT PROCSCHEMA AS SCHEMA, PROCNAME || ';' || SPECIFICNAME AS PROC_NAME, PARMNAME AS COL_NAME, ORDINAL AS ORDINAL, CASE WHEN CAST(PARM_MODE AS CHAR(3)) = 'OUT' THEN 4 WHEN CAST(PARM_MODE AS CHAR(2)) = 'IN' THEN 1 WHEN CAST(PARM_MODE AS CHAR(5)) = 'INOUT' THEN 2 ELSE 0 END AS COL_TYPE, TYPENAME AS DATA_TYPE, TYPENAME AS TYPE_NAME, TYPENAME AS COL_SIZE, LENGTH AS BUFFER_LENGTH, SCALE AS DEC_DIGIT, TYPENAME AS RADIX, NULLS AS NULLABLE FROM SYSCAT.PROCPARMS WHERE PROCSCHEMA ?2 AND PROCNAME ?3 ) AS T ORDER BY SCHEMA, PROC_NAME, ORDINAL"
  1616. [DRIVER:CWBODBC.DLL]
  1617. ;Problems with SQLExtendedFetch (trakker 431202)
  1618. SQL_API_SQLEXTENDEDFETCH="FALSE"
  1619. [DRIVER:LIBCWBODBC.SO]
  1620. ;Problems with SQLExtendedFetch (trakker 431202)
  1621. SQL_API_SQLEXTENDEDFETCH="FALSE"
  1622. [DRIVER:DB2CLI.DLL]
  1623. Optimize For="0"
  1624. Select For Fetch Only="T"
  1625. Procedure Cursors="T"
  1626. ;DB2 allows cancellation from different thread
  1627. Threaded Open="T"
  1628. ;
  1629. ;Table types
  1630. ;
  1631. User Tables="'TABLE','MATERIALIZED QUERY TABLE','TYPED TABLE'"
  1632. User Views="'VIEW','TYPED VIEW'"
  1633. User Synonyms="'SYNONYM','ALIAS','NICKNAME'"
  1634. System Views="'SYSTEM VIEW'"
  1635. System Synonyms="'SYSTEM SYNONYM','SYSTEM ALIAS'"
  1636. [DRIVER:DB2CLIW.DLL]
  1637. Optimize For="0"
  1638. Select For Fetch Only="T"
  1639. [DRIVER:DCSYB30.DLL]
  1640. ;Sybase DC returns incorrect getInfo about SQL_COLUMN_ALIAS.
  1641. SQL_COLUMN_ALIAS="Y"
  1642. ;Sybase DC returns incorrect getInfo about SQL_CONVERT_FUNCTIONS
  1643. SQL_CONVERT_FUNCTIONS="0"
  1644. ;Sybase DC desn't support most string functions returned from getInfo.
  1645. ;For those supported, they are put in database function section.
  1646. SQL_STRING_FUNCTIONS="0"
  1647. [DRIVER:DCSYB30.DLL DATABASE:DSN]
  1648. SQL_DBMS_VER="05.01"
  1649. [DRIVER:LIBDB2.A]
  1650. Optimize For="0"
  1651. Select For Fetch Only="T"
  1652. Procedure Cursors="T"
  1653. ;DB2 allows cancellation from different thread
  1654. Threaded Open="T"
  1655. ;
  1656. ;Table types
  1657. ;
  1658. User Tables="'TABLE','MATERIALIZED QUERY TABLE','TYPED TABLE'"
  1659. User Views="'VIEW','TYPED VIEW'"
  1660. User Synonyms="'SYNONYM','ALIAS','NICKNAME'"
  1661. System Views="'SYSTEM VIEW'"
  1662. System Synonyms="'SYSTEM SYNONYM','SYSTEM ALIAS'"
  1663. ;
  1664. ; Cast Operator Overides
  1665. ;
  1666. ; This tables specifies the standard SQL casts that are NOT supported. This
  1667. ; table is only consulted if Cast=T.
  1668. ;
  1669. [Operator Cast]
  1670. AD=AD,AD
  1671. SM=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
  1672. IT=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
  1673. QD=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
  1674. DM=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
  1675. NU=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
  1676. FL=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
  1677. DB=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
  1678. TM=TS,NA
  1679. [Operator Cast DATABASE:SQL]
  1680. [Operator Cast DATABASE:SQL VERSION:06]
  1681. AD=AD,NA
  1682. NA=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1683. CH=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1684. VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
  1685. LC=CH,CH:VC,VC:LC,LC
  1686. SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1687. IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1688. QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1689. DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1690. NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1691. FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1692. DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1693. DT=CH,CH:VC,VC:DT,DT
  1694. TM=CH,CH:VC,VC:TM,TM
  1695. TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
  1696. TX=AD,AD
  1697. BL=AD,AD
  1698. [Operator Cast DATABASE:SQL VERSION:07]
  1699. AD=AD,NA
  1700. NA=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1701. CH=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1702. VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
  1703. LC=CH,CH:VC,VC:LC,LC
  1704. SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1705. IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1706. QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1707. DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1708. NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1709. FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1710. DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1711. DT=CH,CH:VC,VC:DT,DT
  1712. TM=CH,CH:VC,VC:TM,TM
  1713. TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
  1714. TX=AD,AD
  1715. BL=AD,AD
  1716. [Operator Cast DATABASE:SQL VERSION:08]
  1717. AD=AD,NA
  1718. NA=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1719. CH=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1720. VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
  1721. LC=CH,CH:VC,VC:LC,LC
  1722. SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1723. IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1724. QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1725. DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1726. NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1727. FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1728. DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1729. DT=CH,CH:VC,VC:DT,DT
  1730. TM=CH,CH:VC,VC:TM,TM
  1731. TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
  1732. TX=AD,AD
  1733. BL=AD,AD
  1734. [Operator Cast DATABASE:SQL VERSION:09.01]
  1735. AD=AD,NA
  1736. NA=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1737. CH=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1738. VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
  1739. LC=CH,CH:VC,VC:LC,LC
  1740. SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1741. IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1742. QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1743. DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1744. NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1745. FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1746. DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1747. DT=CH,CH:VC,VC:DT,DT
  1748. TM=CH,CH:VC,VC:TM,TM
  1749. TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
  1750. TX=AD,AD
  1751. BL=AD,AD
  1752. [Operator Cast DATABASE:SQL VERSION:09.05]
  1753. AD=AD,NA
  1754. NA=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1755. CH=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS
  1756. VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
  1757. LC=CH,CH:VC,VC:LC,LC
  1758. SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1759. IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1760. QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1761. DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1762. NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1763. FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1764. DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
  1765. DT=CH,CH:VC,VC:DT,DT
  1766. TM=CH,CH:VC,VC:TM,TM
  1767. TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
  1768. TX=AD,AD
  1769. BL=AD,AD
  1770. [Operator Cast DATABASE:DSN]
  1771. SM=NC,NA:NV,NA
  1772. IT=NC,NA:NV,NA
  1773. QD=NC,NA:NV,NA
  1774. DM=NC,NA:NV,NA
  1775. NU=NC,NA:NV,NA
  1776. FL=NC,NA:NV,NA
  1777. DB=NC,NA:NV,NA
  1778. DT=NC,NA:NV,NA
  1779. TM=NC,NA:NV,NA
  1780. TS=NC,NA:NV,NA
  1781. TT=NC,NA:NV,NA
  1782. TZ=NC,NA:NV,NA
  1783. AD=TZ,TZ
  1784. [Operator Cast DATABASE:DSN VERSION:09]
  1785. CH=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS:TZ,NA
  1786. VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS:TZ,NA
  1787. TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS:TZ,NA
  1788. TZ=AD,NA
  1789. [Operator Cast DATABASE:DSN VERSION:08]
  1790. CH=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS:TZ,NA
  1791. VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS:TZ,NA
  1792. TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS:TZ,NA
  1793. TZ=AD,NA
  1794. [Operator Cast DATABASE:DSN VERSION:07]
  1795. CH=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS:TZ,NA
  1796. VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:FL,FL:DB,DB:DT,DT:TM,TM:TS,TS:TZ,NA
  1797. TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS:TZ,NA
  1798. TZ=AD,NA
  1799. [Operator Cast DATABASE:QSQ]
  1800. [Operator Cast DATABASE:QSQ VERSION:07.01]
  1801. DT=NC,NA:NV,NA
  1802. TM=NC,NA:NV,NA
  1803. TS=NC,NA:NV,NA
  1804. [Operator Comparison]
  1805. NV=CH,OK:NC,OK:VC,OK:DT,OK:TS,OK
  1806. NC=NV,OK:CH,OK:VC,OK:DT,OK:TS,OK
  1807. VC=NV,OK:NC,OK:DT,OK:TS,OK
  1808. CH=NV,OK:NC,OK:DT,OK:TS,OK
  1809. DT=CH,OK:NC,OK:VC,OK:NV,OK
  1810. TS=CH,OK:NC,OK:VC,OK:NV,OK
  1811. [Operator Comparison DATABASE:SQL]
  1812. DT=TS,OK
  1813. TS=DT,OK
  1814. [Operator Comparison DATABASE:SQL VERSION:09.05]
  1815. DT=TS,NA
  1816. TS=DT,NA
  1817. [Operator Comparison DATABASE:SQL VERSION:09.01]
  1818. DT=TS,NA
  1819. TS=DT,NA
  1820. [DATABASE:SQL]
  1821. ; This entry is used to specify whether the prepared statement will be closed
  1822. ; when reaching the end of data, the connection occupied can be used by other
  1823. ; statement.
  1824. CLOSE_HSTMT_AT_EOD="T"
  1825. COLLATION_SEQ_SQL1="select rtrim( cast( CODEPAGE as CHAR(20) ) ) || '_' || COLLATIONNAME from SYSCAT.DATATYPES where TYPENAME='VARCHAR'"
  1826. COLLATION_SEQ_SQL2="select T1.VALUE || '_' || T2.VALUE from ( select VALUE from SYSIBMADM.DBCFG WHERE NAME = 'codepage' ) T1, ( select VALUE from SYSIBMADM.DBCFG where NAME = 'db_collname') T2"
  1827. [DATABASE:QSQ]
  1828. ; This entry is used to specify whether the prepared statement will be closed
  1829. ; when reaching the end of data, the connection occupied can be used by other
  1830. ; statement.
  1831. CLOSE_HSTMT_AT_EOD="T"
  1832. [DATABASE:DSN]
  1833. ; This entry is used to specify whether the prepared statement will be closed
  1834. ; when reaching the end of data, the connection occupied can be used by other
  1835. ; statement.
  1836. CLOSE_HSTMT_AT_EOD="T"