123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082 |
- ;***********************************************************************
- ;Licensed Materials - Property of IBM
- ;
- ;BI and PM: UDA
- ;
- ;(C) Copyright IBM Corp. 2005, 2020
- ;
- ;U.S. Government Users Restricted Rights - Use, duplication, or disclosure
- ;by GSA ADP Schedule Contract with IBM Corp.
- ;
- ;Unless specifically authorized by IBM, you may not modify any part of this
- ;file. Where modification is authorized, you must reproduce any copyright
- ;notices contained in this file and specifically identify which
- ;modifications have been made by your organization. YOU ARE SOLELY
- ;RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF ANY MODIFICATIONS TO
- ;THIS FILE AND ASSUME ALL RISKS ASSOCIATED WITH THE USE AND DISTRIBUTION
- ;OF THE MODIFIED FILE. IBM will not provide support relating to
- ;unauthorized changes you make to this file.
- ;***********************************************************************
- ; $Header: //uda/main/prod/dmd/sgi/odbc35/db2/cogdmd2.ini#9 $
- ;
- ; Module:
- ; cogdmd2.ini
- ;
- ; Purpose:
- ; This module contains the DB2 gateway information.
- ;
- ; Notes:
- ; Do NOT modify this file. Doing so could result in unknown behavior
- ; by the DB2 gateway, possibly resulting in application aborts.
- ;
- ; Entries:
- ; Entries are put under sections and subsections. Subsection name is a
- ; combination of the section name, the database name and/or the database
- ; version, driver name and/or driver version. The format is:
- ; [section name DATABASE:database name VERSION:database version
- ; DRIVER:driver name VERSION:driver version]
- ; Entries under sections are the default and will affect all databases.
- ; Entrise under subsections without specifing the database/driver version
- ; will affect all databases with the same database/driver name.
- ; Entries under subsections without specifing the driver name and version
- ; will affect all databases with the same database name and version through
- ; any driver.
- ; For this reason overwrites should be added to the appropriate
- ; subsections only.
- ; An example of section name is [Database Functions]
- ; An example of subsection name is
- ; [Database Functions DATABASE:SQL VERSION:05.02]
- ;
- ; SQL_DBMS_NAME:
- ; SQL -- common server, UDB
- ; QSQ -- DB2/400
- ; DSN -- DB2/MVS
- ;
- ; SQL_DRIVER_NAME:
- ; DB2CLI.DLL -- common server, UDB, DB2/MVS, DB2/400
- ; DCSYB30.DLL -- sybase direct connect to DB2/MVS, DB2/400
- ; LIBDB2.A (unix) -- UDB, DB2/MVS, DB2/400
- ;
- ; The sections and subsections are alphabetical, ordered ascending by
- ; section name, database name, and databse version, driver name,
- ; driver version.
- ;
- ; ************************************************************************
- ; To enable tracing of CLI routines called, uncomment the following two lines
- ; and specify a vaild trace file name.
- ;[TRACE]
- ;output=<my trace file specification>
- ;
- ; To enable tracing of data in the bound buffers, uncomment the following line
- ;Data=yes
- ;
- ; To enable printing the elapsed times for CLI function calls, uncomment the following line:
- ;Timer=yes
- [Database Functions]
- t:localtime({%1n})=CURRENT_TIME;
- s:localtimestamp({%1n})=CURRENT_TIMESTAMP;
- ;DB2/ZOS
- [DRIVER:DSNAOCLI DATABASE:DSN]
- SQL_DRIVER_ODBC_VER="03.10"
- SQL_ODBC_VER="03.10"
- SQL_COLUMN_ALIAS="Y"
- SQL_MAX_CONCURRENT_ACTIVITIES="1"
- [DRIVER:DSNAOCLI VERSION:10]
- Bulk Fetch uses SQLFetchScroll="Y"
- [DRIVER:DSNAOCLI VERSION:09]
- Bulk Fetch uses SQLFetchScroll="Y"
- [DRIVER:DSNAOCLI VERSION:08]
- Bulk Fetch uses SQLExtendedFetch="Y"
- [Database Functions DRIVER:DSNAOCLI DATABASE:DSN]
- cx:trim_trailing_spaces(%1cx)=RTRIM(%1);
- ;DB2/MVS/ZOS
- [Database Functions DATABASE:DSN]
- c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3}, CODEUNITS32);
- n:char_length(%1cx)=CHARACTER_LENGTH(%1, CODEUNITS32);
- n:position(%1cx, %2cx)=POSITION(%1, %2, CODEUNITS32);
- bcxdnst:coalesce(%1bcxdnst *{, %2bcxdnst})=COALESCE(%1 *{, %2});
- bcxdnst:nullif(%1bcxdnst, %2bcxdnst)=IFNULL(%1, %2);
- c:lower(%1c)=LCASE(%1);
- c:translate(%1c{, %2c{, %3c{, %4c}}})=TRANSLATE(%1{, %2{, %3{, %4}}});
- c:upper(%1c)=UCASE(%1);
- c:cast_char(%1cxdnts)=CHAR(%1);
- c:cast_char(%1cxdnts, %2cn)=CHAR(CHAR(%1), %2);
- d:cast_date(%1cds)=DATE(%1);
- n:cast_decimal(%1cn {, %2n, %3n})=CAST(%1 AS DECIMAL{(%2, %3)});
- n:cast_double_precision(%1cn)=CAST(%1 AS DOUBLE);
- n:cast_float(%1cn)=CAST(%1 AS FLOAT);
- n:cast_integer(%1cn)=CAST(%1 AS INTEGER);
- n:cast_numeric(%1cn {, %2n, %3n})=CAST(%1 AS NUMERIC{(%2, %3)});
- n:cast_real(%1cn)=CAST(%1 AS REAL);
- n:cast_smallint(%1cn)=CAST(%1 AS SMALLINT);
- t:cast_time(%1cst)=TIME(%1);
- s:cast_timestamp(%1cs)=TIMESTAMP(%1);
- c:cast_varchar(%1cxdst, %2n)=CAST(%1 AS VARCHAR (%2));
- n:absolute(%1n)=ABS(%1);
- c:d2_d2_char(%1cdnst {, %2cn})=CHAR(%1 {, %2});
- n:d2_day(%1cdns)=DAY(%1);
- n:d2_days(%1cds)=DAYS(%1);
- n:dayofmonth(%1cds)=DAYOFMONTH(%1);
- n:dayofweek(%1cds)=DAYOFWEEK(%1);
- n:dayofyear(%1cds)=DAYOFYEAR(%1);
- n:degrees(%1n)=DEGREES(%1);
- n:d2_double(%1cn)=DOUBLE(%1);
- c:downshift(%1c)=LCASE(%1);
- n:d2_float(%1cn)=FLOAT(%1);
- n:d2_hour(%1cnst)=HOUR(%1);
- bcdnst:ifnull(%1bcdnst, %2bcdnst)=IFNULL(%1, %2);
- n:index(%1c, %2c)=LOCATE(%2,%1);
- c:d2_insert(%1c, %2n, %3n, %4c)=INSERT(%1, %2, %3, %4);
- n:d2_integer(%1cn)=INTEGER(%1);
- c:d2_left(%1c, %2n)=LEFT(%1, %2);
- n:d2_minute(%1cnst)=MINUTE(%1);
- n:d2_month(%1cdns)=MONTH(%1);
- n:nconvert(%1c)=DOUBLE(%1);
- n:d2_random({%1n})=RAND({%1});
- n:d2_real(%1cn)=REAL(%1);
- c:d2_right(%1c, %2n)=RIGHT(%1, %2);
- n:d2_round(%1n, %2n)=ROUND(%1,%2);
- n:d2_second(%1cnst)=SECOND(%1);
- n:d2_smallint(%1cn)=SMALLINT(%1);
- n:d2_stddev(%1n)=STDDEV(%1);
- n:d2_truncate(%1n, %2n)=TRUNCATE(%1,%2);
- c:upshift(%1c)=UCASE(%1);
- c:d2_varchar(%1cdnst {, %2cn})=VARCHAR(%1 {, %2});
- n:d2_variance(%1n)=VARIANCE(%1);
- n:d2_year(%1cdns)=YEAR(%1);
- c:truncate(%1c)=RTRIM(%1);
- n:truncate(%1n,%2n)=TRUNCATE(%1,%2);
- n:round(%1n, %2n)=round(%1, %2);
- cx:trim(%1cx,%2c,%3c)=STRIP(%3,%1,%2);
- n:days(%1cds)=DAYS(%1);
- d:date(%1cdns)=DATE(%1);
- ;added to fix the COGCQ869926
- cx:trim_both_spaces(%1cx)=LTRIM(RTRIM(%1));
- cx:trim_leading_spaces(%1cx)=LTRIM(%1);
- cx:trim_trailing_spaces(%1cx)=RTRIM(%1);
- ;following mapping order to pick correct entry for source of null, specific types, and all other types
- c:coguda#cast_char(%1c,%2n)=cast(%1 as CHAR(%2));
- c:coguda#cast_char(%1t,%2n)=cast(char(%1,JIS) as CHAR(%2));
- c:coguda#cast_char(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as CHAR(%2));
- c:coguda#cast_char(%1z,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM') as CHAR(%2));
- c:coguda#cast_char(%1,%2n)=cast(%1 as CHAR(%2));
- c:coguda#cast_varchar(%1c,%2n)=cast(%1 as VARCHAR(%2));
- c:coguda#cast_varchar(%1t,%2n)=cast(char(%1,JIS) as VARCHAR(%2));
- c:coguda#cast_varchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as VARCHAR(%2));
- c:coguda#cast_varchar(%1z,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM') as VARCHAR(%2));
- c:coguda#cast_varchar(%1,%2n)=cast(%1 as VARCHAR(%2));
- ;support of cast to national character is enabled for Unicode database
- c:coguda#cast_nchar(%1c,%2n)=cast(%1 as GRAPHIC(%2));
- c:coguda#cast_nchar(%1t,%2n)=cast(char(%1,JIS) as GRAPHIC(%2));
- c:coguda#cast_nchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as GRAPHIC(%2));
- c:coguda#cast_nchar(%1z,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM') as GRAPHIC(%2));
- c:coguda#cast_nchar(%1,%2n)=cast(%1 as GRAPHIC(%2));
- c:coguda#cast_nvarchar(%1c,%2n)=cast(%1 as VARGRAPHIC(%2));
- c:coguda#cast_nvarchar(%1t,%2n)=cast(char(%1,JIS) as VARGRAPHIC(%2));
- c:coguda#cast_nvarchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as VARGRAPHIC(%2));
- c:coguda#cast_nvarchar(%1z,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6TZH:TZM') as VARGRAPHIC(%2));
- c:coguda#cast_nvarchar(%1,%2n)=cast(%1 as VARGRAPHIC(%2));
- ;DB2/400
- [Database Functions DATABASE:QSQ]
- c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3});
- n:char_length(%1cx)=CHAR_LENGTH(%1);
- bcxdnst:coalesce(%1bcxdnst *{, %2bcxdnst})=COALESCE(%1 *{, %2});
- bcxdnst:nullif(%1bcxdnst, %2bcxdnst)=IFNULL(%1, %2);
- c:translate(%1c{, %2c{, %3c{, %4c}}})=TRANSLATE(%1{, %2{, %3{, %4}}});
- cx:upper(%1cx)=UCASE(%1);
- n:absolute(%1n)=ABS(%1);
- c:d2_d2_char(%1dst {, %2c})=CHAR(%1 {, %2});
- d:d2_date(%1cdns)=DATE(%1);
- n:d2_day(%1dns)=DAY(%1);
- n:d2_days(%1cds)=DAYS(%1);
- n:d2_decimal(%1n {, %2n {, %3n}})=DECIMAL(%1 {, %2 {, %3}});
- n:d2_double(%1n)=DOUBLE(%1);
- n:d2_float(%1n)=FLOAT(%1);
- n:d2_hour(%1nst)=HOUR(%1);
- n:d2_integer(%1n)=INTEGER(%1);
- c:d2_left(%1c, %2n)=LEFT(%1, %2);
- cdnst:d2_max(%1cdnst, %2cdnst *{, %3cdnst})=MAX(%1, %2 *{, %3});
- cdnst:d2_min(%1cdnst, %2cdnst *{, %3cdnst})=MIN(%1, %2 *{, %3});
- n:d2_minute(%1nst)=MINUTE(%1);
- n:d2_month(%1dns)=MONTH(%1);
- c:d2_right(%1c, %2n)=SUBSTR(%1, LENGTH(%1)+1-%2, %2);
- n:d2_second(%1nst)=SECOND(%1);
- n:d2_stddev(%1n)=STDDEV(%1);
- t:d2_time(%1cst)=TIME(%1);
- s:d2_timestamp(%1cds {, %2ct})=TIMESTAMP(%1 {, %2});
- c:upshift(%1c)=UCASE(%1);
- c:d2400_varchar(%1cn {, %2cn {, %3n} })=VARCHAR(%1 {, %2 {, %3}});
- n:d2_variance(%1n)=VARIANCE(%1);
- n:d2_year(%1dns)=YEAR(%1);
- n:nconvert(%1c)=DOUBLE(%1);
- n:round(%1n, %2n)=round(%1, %2);
- n:d2_truncate(%1n, %2n)=TRUNCATE(%1,%2);
- n:truncate(%1n,%2n)=TRUNCATE(%1,%2);
- c:truncate(%1c)=RTRIM(%1);
- cx:lower(%1cx)=LOWER(%1);
- c:d2_d2_char(%1cdnst {, %2cn})=CHAR(%1 {, %2});
- n:d2_decimal(%1cn {, %2n {, %3n {, %4c}}})=DECIMAL(%1 {, %2 {, %3 {, %4}}});
- n:d2_double(%1cn)=DOUBLE(%1);
- c:downshift(%1c)=LCASE(%1);
- n:d2_float(%1cn)=FLOAT(%1);
- n:index(%1c, %2c)=LOCATE(%2,%1);
- n:d2_integer(%1cn)=INTEGER(%1);
- n:d2_real(%1cn)=REAL(%1);
- n:d2_round(%1n, %2n)=ROUND(%1,%2);
- n:d2_smallint(%1cn)=SMALLINT(%1);
- c:cast_char(%1cxdnts)=CHAR(%1);
- c:cast_char(%1cxdnts, %2cn)=CHAR(CHAR(%1), %2);
- c:cast_varchar(%1cxdst, %2n)=CAST(%1 AS VARCHAR (%2));
- d:cast_date(%1cds)=CAST(%1 AS DATE);
- n:cast_decimal(%1cn {, %2n, %3n})=CAST(%1 AS DECIMAL {(%2, %3)});
- n:cast_double_precision(%1cn)=CAST(%1 AS DOUBLE);
- n:cast_float(%1cn)=CAST(%1 AS FLOAT);
- n:cast_integer(%1cn)=CAST(%1 AS INTEGER);
- n:cast_smallint(%1cn)=CAST(%1 AS SMALLINT);
- s:cast_timestamp(%1cs)=CAST(%1 AS TIMESTAMP);
- n:days(%1cds)=DAYS(%1);
- d:date(%1cdns)=DATE(%1);
- ;following mapping order to pick correct entry for source of null, specific types, and all other types
- c:coguda#cast_char(%1c,%2n)=cast(%1 as CHAR(%2));
- c:coguda#cast_char(%1t,%2n)=cast(char(%1,JIS) as CHAR(%2));
- c:coguda#cast_char(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as CHAR(%2));
- c:coguda#cast_char(%1,%2n)=cast(%1 as CHAR(%2));
- c:coguda#cast_varchar(%1c,%2n)=cast(%1 as VARCHAR(%2));
- c:coguda#cast_varchar(%1t,%2n)=cast(char(%1,JIS) as VARCHAR(%2));
- c:coguda#cast_varchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as VARCHAR(%2));
- c:coguda#cast_varchar(%1,%2n)=cast(%1 as VARCHAR(%2));
- ;support of cast to national character is enabled for Unicode database
- c:coguda#cast_nchar(%1c,%2n)=cast(%1 as NCHAR(%2));
- c:coguda#cast_nchar(%1t,%2n)=cast(char(%1,JIS) as NCHAR(%2));
- c:coguda#cast_nchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as NCHAR(%2));
- c:coguda#cast_nchar(%1,%2n)=cast(%1 as NCHAR(%2));
- c:coguda#cast_nvarchar(%1c,%2n)=cast(%1 as NVARCHAR(%2));
- c:coguda#cast_nvarchar(%1t,%2n)=cast(char(%1,JIS) as NVARCHAR(%2));
- c:coguda#cast_nvarchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as NVARCHAR(%2));
- c:coguda#cast_nvarchar(%1,%2n)=cast(%1 as NVARCHAR(%2));
- ;DB2 Common Server and UDB
- [Database Functions DATABASE:SQL]
- c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3});
- n:char_length(%1cx)=CHARACTER_LENGTH(%1);
- n:position(%1cx, %2cx)=POSITION(%1, %2);
- bcxdnst:coalesce(%1bcxdnst *{, %2bcdnst})=COALESCE(%1 *{, %2});
- cx:lower(%1cx)=LCASE(%1);
- cx:upper(%1cx)=UCASE(%1);
- c:cast_char(%1cxdnts)=CHAR(%1);
- c:cast_char(%1cxdnts, %2cn)=CHAR(CHAR(%1), %2);
- d:cast_date(%1cds)=CAST(%1 AS DATE);
- n:cast_decimal(%1cn {, %2n, %3n})=CAST(%1 AS DECIMAL{(%2, %3)});
- n:cast_double_precision(%1cn)=CAST(%1 AS DOUBLE);
- n:cast_float(%1n)=CAST(%1 AS FLOAT);
- n:cast_integer(%1cn)=CAST(%1 AS INTEGER);
- c:cast_longvarchar(%1cx)=CAST(%1 AS LONG VARCHAR);
- n:cast_numeric(%1cn, %2n , %3n)=CAST(%1 AS NUMERIC (%2, %3));
- n:cast_smallint(%1cn)=CAST(%1 AS SMALLINT);
- t:cast_time(%1ct)=CAST(%1 AS TIME);
- s:cast_timestamp(%1cs)=CAST(%1 AS TIMESTAMP);
- c:cast_varchar(%1cxdts, %2n)=CAST(%1 AS VARCHAR (%2));
- n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
- n:_week_of_year(%1ds)=WEEK_ISO( %1 );
- n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
- n:absolute(%1n)=ABS(%1);
- n:d2_ascii(%1c)=ASCII(%1);
- c:d2_char(%1n)=CHR(%1);
- c:d2_d2_char(%1cdnst {, %2cn})=CHAR(%1 {, %2});
- d:d2_date(%1cdns)=DATE(%1);
- n:d2_day(%1cdns)=DAY(%1);
- n:d2_days(%1cds)=DAYS(%1);
- n:d2_decimal(%1cn {, %2n {, %3n {, %4c}}})=DECIMAL(%1 {, %2 {, %3 {, %4}}});
- n:d2_double(%1cn)=DOUBLE(%1);
- c:downshift(%1c)=LCASE(%1);
- n:d2_float(%1n)=FLOAT(%1);
- n:d2_hour(%1cnst)=HOUR(%1);
- n:index(%1c, %2c)=LOCATE(%2,%1);
- c:d2_insert(%1c, %2n, %3n, %4c)=INSERT(%1, %2, %3, %4);
- n:d2_integer(%1cn)=INTEGER(%1);
- c:d2_left(%1c, %2n)=LEFT(%1, %2);
- n:d2_minute(%1cnst)=MINUTE(%1);
- n:d2_month(%1cdns)=MONTH(%1);
- n:nconvert(%1c)=DOUBLE(%1);
- n:d2_random({%1n})=RAND({%1});
- c:d2_right(%1c, %2n)=RIGHT(%1, %2);
- n:d2_round(%1n, %2n)=ROUND(%1,%2);
- n:d2_second(%1cnst)=SECOND(%1);
- n:d2_smallint(%1cn)=SMALLINT(%1);
- c:d2_soundex(%1c)=SOUNDEX(%1);
- n:d2_stddev(%1n)=STDDEV(%1);
- t:d2_time(%1cst)=TIME(%1);
- s:d2_timestamp(%1cds {, %2ct})=TIMESTAMP(%1 {, %2});
- n:timestampdiff2(%1n, %2c)=TIMESTAMPDIFF(%1, %2);
- n:d2_truncate(%1n, %2n)=TRUNCATE(%1,%2);
- n:truncate(%1n,%2n)=TRUNCATE(%1,%2);
- c:truncate(%1c)=RTRIM(%1);
- c:upshift(%1c)=UCASE(%1);
- n:d2_variance(%1n)=VARIANCE(%1);
- c:d2_varchar(%1cdst {, %2n})=VARCHAR(%1 {, %2});
- n:d2_year(%1cdns)=YEAR(%1);
- n:d2_real(%1n)=REAL(%1);
- s:timestampadd_day(%1n,%2cdst)=TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))+(%1) DAYS;
- s:timestampadd_month(%1n,%2cdst)=TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))+(%1) MONTHS;
- s:timestampadd_year(%1n,%2cdst)=TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))+(%1) YEARS;
- s:timestampdiff_day(%1cdst,%2cdst)=SYSFUN.TIMESTAMPDIFF(16, CHAR((TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))-TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%1)))));
- s:timestampdiff_month(%1cdst,%2cdst)=SYSFUN.TIMESTAMPDIFF(64, CHAR((TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))-TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%1)))));
- s:timestampdiff_year(%1cdst,%2cdst)=SYSFUN.TIMESTAMPDIFF(256, CHAR((TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%2))-TIMESTAMP(SYSFUN.TIMESTAMP_ISO(%1)))));
- n:round(%1n, %2n)=round(%1, %2);
- n:ascii(%1c)=ASCII(%1);
- cx:trim_both_spaces(%1cx)=LTRIM(RTRIM(%1));
- cx:trim_leading_spaces(%1cx)=LTRIM(%1);
- cx:trim_trailing_spaces(%1cx)=RTRIM(%1);
- n:days(%1cds)=DAYS(%1);
- d:date(%1cdns)=DATE(%1);
- x:long_varchar(%1)=LONG_VARCHAR(%1);
- s:coguda#cast_timestamp(%1s)=cast(%1 as TIMESTAMP);
- s:coguda#cast_timestamp(%1d)=timestamp(%1,'00:00:00');
- s:coguda#cast_timestamp(%1t)=timestamp(CURRENT_DATE,%1);
- s:coguda#cast_timestamp(%1)=cast(%1 as TIMESTAMP);
- ;following mapping order to pick correct entry for source of null, specific types, and all other types
- c:coguda#cast_char(%1c,%2n)=cast(%1 as CHAR(%2));
- c:coguda#cast_char(%1t,%2n)=cast(char(%1,JIS) as CHAR(%2));
- c:coguda#cast_char(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as CHAR(%2));
- c:coguda#cast_char(%1,%2n)=cast(%1 as CHAR(%2));
- c:coguda#cast_varchar(%1c,%2n)=cast(%1 as VARCHAR(%2));
- c:coguda#cast_varchar(%1t,%2n)=cast(char(%1,JIS) as VARCHAR(%2));
- c:coguda#cast_varchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as VARCHAR(%2));
- c:coguda#cast_varchar(%1,%2n)=cast(%1 as VARCHAR(%2));
- ;support of cast to national character is enabled for Unicode database
- c:coguda#cast_nchar(%1c,%2n)=cast(%1 as NCHAR(%2));
- c:coguda#cast_nchar(%1t,%2n)=cast(char(%1,JIS) as NCHAR(%2));
- c:coguda#cast_nchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as NCHAR(%2));
- c:coguda#cast_nchar(%1,%2n)=cast(%1 as NCHAR(%2));
- c:coguda#cast_nvarchar(%1c,%2n)=cast(%1 as NVARCHAR(%2));
- c:coguda#cast_nvarchar(%1t,%2n)=cast(char(%1,JIS) as NVARCHAR(%2));
- c:coguda#cast_nvarchar(%1s,%2n)=cast(TO_CHAR(%1,'YYYY-MM-DD HH24:MI:SS.FF6') as NVARCHAR(%2));
- c:coguda#cast_nvarchar(%1,%2n)=cast(%1 as NVARCHAR(%2));
- d:truncate(%1d {,%2c {,%3c} })=truncate(%1 {,%2 {,%3} });
- t:truncate(%1t {,%2c {,%3c} })=truncate(%1 {,%2 {,%3} });
- s:truncate(%1s {,%2c {,%3c} })=truncate(%1 {,%2 {,%3} });
- d:round(%1d {,%2c {,%3c} })=round(%1 {,%2 {,%3} });
- t:round(%1t {,%2c {,%3c} })=round(%1 {,%2 {,%3} });
- s:round(%1s {,%2c {,%3c} })=round(%1 {,%2 {,%3} });
- s:round(%1c {,%2c {,%3c} })=round_timestamp(%1 {,%2 {,%3} });
- [Database Functions DATABASE:SQL VERSION:10]
- c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3}, CODEUNITS32);
- n:char_length(%1cx)=CHARACTER_LENGTH(%1, CODEUNITS32);
- n:position(%1cx, %2cx)=POSITION(%1, %2, CODEUNITS32);
- [Database Functions DATABASE:SQL VERSION:09]
- c:substring(%1cx, %2n {, %3n})=SUBSTRING(%1, %2 {, %3}, CODEUNITS32);
- n:char_length(%1cx)=CHARACTER_LENGTH(%1, CODEUNITS32);
- n:position(%1cx, %2cx)=POSITION(%1, %2, CODEUNITS32);
- [Database Functions DATABASE:SQL VERSION:09.01]
- d:truncate(%1d {,%2c {,%3c} })=;
- t:truncate(%1t {,%2c {,%3c} })=;
- s:truncate(%1s {,%2c {,%3c} })=;
- d:round(%1d {,%2c {,%3c} })=;
- t:round(%1t {,%2c {,%3c} })=;
- s:round(%1s {,%2c {,%3c} })=;
- s:round(%1c {,%2c {,%3c} })=;
- [Database Functions DATABASE:SQL VERSION:09.05]
- d:truncate(%1d {,%2c {,%3c} })=;
- t:truncate(%1t {,%2c {,%3c} })=;
- s:truncate(%1s {,%2c {,%3c} })=;
- d:round(%1d {,%2c {,%3c} })=;
- t:round(%1t {,%2c {,%3c} })=;
- s:round(%1s {,%2c {,%3c} })=;
- s:round(%1c {,%2c {,%3c} })=;
- [Builtin Functions]
- ;
- ; Business Functions for Date Calculations
- ;
- d:_add_days(%1d,%2n)=((%1) + (%2) DAY);
- s:_add_days(%1s,%2n)=((%1) + (%2) DAY);
- d:_add_months(%1d,%2n)=((%1) + (%2) MONTH);
- s:_add_months(%1s,%2n)=((%1) + (%2) MONTH);
- d:_add_years(%1d,%2n)=((%1) + (%2) YEAR);
- s:_add_years(%1s,%2n)=((%1) + (%2) YEAR);
- n:_days_between(%1ds,%2ds)=( DAYS( %1 ) - DAYS( %2 ) );
- ; Trakker 581732, UDB LUW TIMESTAMPDIFF returned invalid result for "_months_between".
- ; Enable _months_between local process, since DB2 consider it just documentation issue.
- ; PMR 35709,756,000.
- n:_months_between(%1ds,%2ds)=;
- n:_years_between(%1s,%2s)=TIMESTAMPDIFF( 256, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_years_between(%1s,%2d)=TIMESTAMPDIFF( 256, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_years_between(%1d,%2s)=TIMESTAMPDIFF( 256, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_years_between(%1d,%2d)=TIMESTAMPDIFF( 256, CAST( ( TIMESTAMP( %1, '00:00:00' ) - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_days_to_end_of_month(%1ds)=( DAYS( ( %1 - DAY( %1 ) DAY + 1 DAY ) + 1 MONTH - 1 DAY ) - DAYS( %1 ) );
- n:_age(%1d)=(CURRENT DATE - %1);
- n:_age(%1s)=(CURRENT DATE - DATE( %1 ));
- d:_first_of_month(%1d)=(%1 - DAY(%1) DAY + 1 DAY);
- s:_first_of_month(%1s)=(%1 - DAY(%1) DAY + 1 DAY);
- d:_last_of_month(%1d)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
- s:_last_of_month(%1s)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
- s:_make_timestamp(%1n,%2n,%3n)=TIMESTAMP_ISO( DATE( CHAR( RIGHT( DIGITS( %1 ), 4 ) || '-' || RIGHT( DIGITS( %2 ), 2 ) || '-' || RIGHT( DIGITS( %3 ), 2 ) ) ) );
- n:_ymdint_between(%1ds,%2ds)=;
- n:_round(%1n,%2n)=ROUND(%1, %2);
- ;
- ; Additional Business Functions for Date Calculations
- ;
- s:_add_hours(%1s,%2n)=(%1 + %2 HOUR);
- t:_add_hours(%1t,%2n)=(%1 + %2 HOUR);
- s:_add_minutes(%1s,%2n)=(%1 + %2 MINUTE);
- t:_add_minutes(%1t,%2n)=(%1 + %2 MINUTE);
- s:_add_seconds(%1s,%2n)=(%1 + %2 SECOND);
- t:_add_seconds(%1t,%2n)=(%1 + %2 SECOND);
- n:_hours_between(%1s,%2s)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_hours_between(%1s,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_hours_between(%1d,%2s)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_hours_between(%1d,%2d)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1s,%2s)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1s,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1d,%2s)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1d,%2d)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1s,%2s)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1s,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1d,%2s)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1d,%2d)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- ;
- ; Functions required for the EXTRACT function
- ;
- n:coguda#extract_year(%1ds)=YEAR(%1);
- n:coguda#extract_month(%1ds)=MONTH(%1);
- n:coguda#extract_day(%1ds)=DAY(%1);
- n:coguda#extract_hour(%1st)=HOUR(%1);
- n:coguda#extract_minute(%1st)=MINUTE(%1);
- n:coguda#extract_second(%1s)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
- n:coguda#extract_second(%1t)=SECOND(%1);
- [Builtin Functions DATABASE:QSQ]
- n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
- n:_week_of_year(%1ds)=WEEK_ISO( %1 );
- n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
- n:_months_between(%1ds,%2ds)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
- n:_years_between(%1ds,%2ds)=YEAR( %1 - %2 );
- s:_make_timestamp(%1n,%2n,%3n)=TIMESTAMP( RTRIM(CHAR(%1)) || '-' || RTRIM(CHAR(%2)) || '-' || RTRIM(CHAR(%3)) || ' 00:00:00' );
- n:ceiling(%1n)=ceiling(%1);
- n:bit_length(%1cx)=bit_length(%1);
- n:octet_length(%1cx)=octet_length(%1);
- [Builtin Functions DATABASE:QSQ VERSION:05.01]
- n:ceiling(%1n)=;
- n:bit_length(%1cx)=;
- n:octet_length(%1cx)=;
- [Builtin Functions DATABASE:QSQ VERSION:05.02]
- n:ceiling(%1n)=;
- n:bit_length(%1cx)=;
- n:octet_length(%1cx)=;
- [Builtin Functions DATABASE:QSQ VERSION:05.03]
- s:_make_timestamp(%1n,%2n,%3n)=;
- [Builtin Functions DATABASE:DSN]
- s:_make_timestamp(%1n,%2n,%3n)=TIMESTAMP( RTRIM(CHAR(%1)) || '-' || RTRIM(CHAR(%2)) || '-' || RTRIM(CHAR(%3)) || ' 00:00:00' );
- n:_day_of_year(%1dsz)=DAYOFYEAR( %1 );
- n:_week_of_year(%1dsz)=WEEK_ISO( %1 );
- n:_day_of_week(%1dsz, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
- z:_add_seconds(%1z,%2n)=((%1) + (%2) SECOND);
- z:_add_minutes(%1z,%2n)=((%1) + (%2) MINUTE);
- z:_add_hours(%1z,%2n)=((%1) + (%2) HOUR);
- z:_add_days(%1z,%2n)=((%1) + (%2) DAY);
- z:_add_months(%1z,%2n)=((%1) + (%2) MONTH);
- z:_add_years(%1z,%2n)=((%1) + (%2) YEAR);
- n:_years_between(%1dsz,%2dsz)=YEAR( %1 - %2 );
- n:_months_between(%1dsz,%2dsz)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
- n:_days_between(%1dsz,%2dsz)=( DAYS( %1 ) - DAYS( %2 ) );
- n:_hours_between(%1sz,%2sz)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_hours_between(%1sz,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_hours_between(%1d,%2sz)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1sz,%2sz)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1sz,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1d,%2zs)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1sz,%2zs)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1sz,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1d,%2sz)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- z:_first_of_month(%1sz)=(%1 - DAY(%1) DAY + 1 DAY);
- z:_last_of_month(%1sz)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
- n:coguda#extract_year(%1dsz)=YEAR(%1);
- n:coguda#extract_month(%1dsz)=MONTH(%1);
- n:coguda#extract_day(%1dsz)=DAY(%1);
- n:coguda#extract_hour(%1st)=HOUR(%1);
- n:coguda#extract_minute(%1st)=MINUTE(%1);
- n:coguda#extract_second(%1sz)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
- [Builtin Functions DATABASE:DSN VERSION:09]
- n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
- n:_week_of_year(%1ds)=WEEK_ISO( %1 );
- n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
- z:_add_seconds(%1z,%2n)=;
- z:_add_minutes(%1z,%2n)=;
- z:_add_hours(%1z,%2n)=;
- z:_add_days(%1z,%2n)=;
- z:_add_months(%1z,%2n)=;
- z:_add_years(%1z,%2n)=;
- n:_years_between(%1ds,%2ds)=YEAR( %1 - %2 );
- n:_months_between(%1ds,%2ds)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
- n:_days_between(%1ds,%2ds)=( DAYS( %1 ) - DAYS( %2 ) );
- n:_hours_between(%1s,%2s)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_hours_between(%1s,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_hours_between(%1d,%2s)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1s,%2s)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1s,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1d,%2s)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1s,%2s)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1s,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1d,%2s)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- s:_first_of_month(%1s)=(%1 - DAY(%1) DAY + 1 DAY);
- s:_last_of_month(%1s)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
- n:coguda#extract_year(%1ds)=YEAR(%1);
- n:coguda#extract_month(%1ds)=MONTH(%1);
- n:coguda#extract_day(%1ds)=DAY(%1);
- n:coguda#extract_hour(%1st)=HOUR(%1);
- n:coguda#extract_minute(%1st)=MINUTE(%1);
- n:coguda#extract_second(%1s)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
- n:coguda#extract_second(%1t)=SECOND(%1);
- [Builtin Functions DATABASE:DSN VERSION:08]
- n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
- n:_week_of_year(%1ds)=WEEK_ISO( %1 );
- n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
- z:_add_seconds(%1z,%2n)=;
- z:_add_minutes(%1z,%2n)=;
- z:_add_hours(%1z,%2n)=;
- z:_add_days(%1z,%2n)=;
- z:_add_months(%1z,%2n)=;
- z:_add_years(%1z,%2n)=;
- n:_years_between(%1ds,%2ds)=YEAR( %1 - %2 );
- n:_months_between(%1ds,%2ds)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
- n:_days_between(%1ds,%2ds)=( DAYS( %1 ) - DAYS( %2 ) );
- n:_hours_between(%1s,%2s)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_hours_between(%1s,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_hours_between(%1d,%2s)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1s,%2s)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1s,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1d,%2s)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1s,%2s)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1s,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1d,%2s)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- s:_first_of_month(%1s)=(%1 - DAY(%1) DAY + 1 DAY);
- s:_last_of_month(%1s)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
- n:coguda#extract_year(%1ds)=YEAR(%1);
- n:coguda#extract_month(%1ds)=MONTH(%1);
- n:coguda#extract_day(%1ds)=DAY(%1);
- n:coguda#extract_hour(%1st)=HOUR(%1);
- n:coguda#extract_minute(%1st)=MINUTE(%1);
- n:coguda#extract_second(%1s)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
- n:coguda#extract_second(%1t)=SECOND(%1);
- [Builtin Functions DATABASE:DSN VERSION:07]
- n:_day_of_year(%1ds)=DAYOFYEAR( %1 );
- n:_week_of_year(%1ds)=WEEK_ISO( %1 );
- n:_day_of_week(%1ds, %2n)=(MOD( DAYOFWEEK( %1 ) - 1 + 7 - %2, 7 ) + 1);
- z:_add_seconds(%1z,%2n)=;
- z:_add_minutes(%1z,%2n)=;
- z:_add_hours(%1z,%2n)=;
- z:_add_days(%1z,%2n)=;
- z:_add_months(%1z,%2n)=;
- z:_add_years(%1z,%2n)=;
- n:_years_between(%1ds,%2ds)=YEAR( %1 - %2 );
- n:_months_between(%1ds,%2ds)=(YEAR( %1 - %2 ) * 12 + MONTH( %1 - %2 ));
- n:_days_between(%1ds,%2ds)=( DAYS( %1 ) - DAYS( %2 ) );
- n:_hours_between(%1s,%2s)=TIMESTAMPDIFF( 8, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_hours_between(%1s,%2d)=TIMESTAMPDIFF( 8, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_hours_between(%1d,%2s)=TIMESTAMPDIFF( 8, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1s,%2s)=TIMESTAMPDIFF( 4, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1s,%2d)=TIMESTAMPDIFF( 4, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_minutes_between(%1d,%2s)=TIMESTAMPDIFF( 4, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1s,%2s)=TIMESTAMPDIFF( 2, CAST( ( %1 - %2 ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1s,%2d)=TIMESTAMPDIFF( 2, CAST( ( %1 - TIMESTAMP( %2, '00:00:00' ) ) AS CHAR( 22 ) ) );
- n:_seconds_between(%1d,%2s)=TIMESTAMPDIFF( 2, CAST( ( TIMESTAMP( %1, '00:00:00' ) - %2 ) AS CHAR( 22 ) ) );
- s:_first_of_month(%1s)=(%1 - DAY(%1) DAY + 1 DAY);
- s:_last_of_month(%1s)=((%1 - DAY(%1) DAY + 1 DAY) + 1 MONTH - 1 DAY);
- n:coguda#extract_year(%1ds)=YEAR(%1);
- n:coguda#extract_month(%1ds)=MONTH(%1);
- n:coguda#extract_day(%1ds)=DAY(%1);
- n:coguda#extract_hour(%1st)=HOUR(%1);
- n:coguda#extract_minute(%1st)=MINUTE(%1);
- n:coguda#extract_second(%1s)=SECOND(%1) + ( MICROSECOND(%1) / 1000000.0 );
- n:coguda#extract_second(%1t)=SECOND(%1);
- ;Optimization directives are supported by DB2 UDB
- ;Entries for statement level directives, which will be used by sqltosql.
- ;SQL_ATTRIB_DB_OPTIMIZER_GOAL = First_Row_Text
- ;SQL_ATTRIB_DB_JOIN_ORDER = Ordered_Text or Star_Text
- ;SQL_ATTRIB_DB_DOP = Dop_Text
- ; All QSQ, SQL and DSN, all supported versions, support
- ; OPTIMIZE FOR 1 ROWS clause.
- ; Row Limit in DB2 is achieved by adding the following line
- ; FETCH FIRST n ROWS ONLY to the end of sql statement
- ;
- ; Added Row Limit for DB2 AS400 (V5R2) native (Trakker #399902)
- ; Added Row Limit for DB2 MVS 390 (Trakker #418642)
- ;
- ; Append_Pre_Text and Append_Post_Text are entries to add
- ; special text for directive session, which will be used by sqltosql
- [Directives Session]
- First_Row_Pos=Append_End
- ; First row optimization has been disabled due to performance issues.
- ; (Trakker 493725). To enable first row optimization, set the
- ; First_Row_Text entry to " OPTIMIZE FOR 1 ROWS"
- First_Row_Text=
- Append_Pre_Text=" "
- Append_Post_Text=" "
- Query_Row_Limit_Pos=Append_End
- Query_Row_Limit_Text=" FETCH FIRST %d ROWS ONLY "
- [Exceptions Aggregates]
- ; The Stddev function for DB2 uses the biased method.
- ; The Stddev flag indicates if the unbased method is available.
- ; If you really want to use the DB2 stddev funciton use d2_stddev.
- ;
- ; The Variance function for DB2 uses the biased method.
- ; The Variance flag indicates if the unbased method is available.
- ; If you really want to use the DB2 variance funciton use d2_variance.
- ; DB2 on MVS doesn't support STDDEV and VARIANCE
- Max="max"
- Min="min"
- Sum="sum"
- Avg="avg"
- Count="count"
- Count_Star="count(*)"
- Grouping="grouping"
- [Exceptions Aggregates DATABASE:SQL]
- Stddev_Samp="stddev_samp"
- Var_Samp="var_samp"
- Percent_Rank="percent_rank"
- Percentile_Cont="percentile_cont"
- Percentile_Disc="percentile_disc"
- [Exceptions Aggregates DATABASE:SQL VERSION:10]
- Stddev_Samp=
- Var_Samp=
- Percent_Rank=
- Percentile_Cont=
- Percentile_Disc=
- [Exceptions Aggregates DATABASE:SQL VERSION:09]
- Stddev_Samp=
- Var_Samp=
- Percent_Rank=
- Percentile_Cont=
- Percentile_Disc=
- [Exceptions Aggregates DATABASE:DSN]
- ; DB2 MVS UDB 7.1 supports the following functions
- ; (uda function mapping is given in the brackets):
- ; stddev_samp (stddev, stddev_samp)
- ; stddev_pop (stddev_pop)
- ; stddev (stddev_pop)
- ; variance_samp (variance, var_samp)
- ; var_samp (variance, var_samp)
- ; var_pop (var_pop)
- ; variance (var_pop)
- ; var (var_pop)
- ; The following mapping has been selected:
- Max="max"
- Min="min"
- Sum="sum"
- Avg="avg"
- Count="count"
- Count_Star="count(*)"
- Grouping="grouping"
- Stddev="stddev_samp"
- Stddev_pop="stddev_pop"
- Stddev_samp="stddev_samp"
- Variance="var_samp"
- Var_pop="var_pop"
- Var_samp="var_samp"
- [Exceptions Aggregates DATABASE:DSN VERSION:06]
- Grouping=
- Stddev=
- Stddev_pop=
- Stddev_samp=
- Variance=
- Var_pop=
- Var_samp=
- [Exceptions Aggregates DATABASE:SQL VERSION:06.01]
- Grouping=
- [Exceptions Aggregates DATABASE:SQL VERSION:07.01]
- Grouping=
- [Exceptions OLAP Functions]
- Olap_Max="max"
- Olap_Min="min"
- Olap_Sum="sum"
- Olap_Avg="avg"
- Olap_Count="count"
- Olap_Count_Star="count(*)"
- Olap_Stddev_Pop="stddev_pop"
- Olap_Var_Pop="var_pop"
- Olap_Stddev_Samp="stddev_samp"
- Olap_Var_Samp="var_samp"
- Olap_Rank="rank"
- Olap_Dense_Rank="dense_rank"
- Olap_Percent_Rank="percent_rank"
- Olap_Cume_Dist="cume_dist"
- Olap_Row_Number="row_number"
- Olap_Ratio_To_Report="ratio_to_report"
- Olap_Ntile="ntile"
- Olap_First_Value="first_value"
- Olap_Last_Value="last_value"
- ;COGCQ00674367
- Olap_Last_Value_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
- [Exceptions OLAP Functions DATABASE:SQL]
- Olap_Stddev_Pop=
- Olap_Var_Pop=
- Olap_Ratio_To_Report=
- Olap_Ntile=
- Olap_Percentile_Cont="percentile_cont"
- Olap_Percentile_Disc="percentile_disc"
- [Exceptions OLAP Functions DATABASE:SQL VERSION:10]
- Olap_Stddev_Samp=
- Olap_Var_Samp=
- Olap_Percent_Rank=
- Olap_Cume_Dist=
- Olap_Percentile_Cont=
- Olap_Percentile_Disc=
- [Exceptions OLAP Functions DATABASE:SQL VERSION:09]
- Olap_Stddev_Samp=
- Olap_Var_Samp=
- Olap_Percent_Rank=
- Olap_Cume_Dist=
- Olap_Percentile_Cont=
- Olap_Percentile_Disc=
- [Exceptions OLAP Functions DATABASE:DSN]
- Olap_Max=
- Olap_Min=
- Olap_Var_Pop="VARIANCE"
- Olap_Stddev_Samp=
- Olap_Var_Samp=
- Olap_Percent_Rank=
- Olap_Cume_Dist=
- Olap_Ratio_To_Report=
- Olap_Ntile=
- Olap_First_Value=
- Olap_Last_Value=
- [Exceptions OLAP Functions DATABASE:DSN VERSION:09]
- Olap_Sum=
- Olap_Avg=
- Olap_Count=
- Olap_Count_Star=
- Olap_Stddev_Pop=
- Olap_Var_Pop=
- [Exceptions OLAP Functions DATABASE:DSN VERSION:08]
- Olap_Rank=
- Olap_Dense_Rank=
- Olap_Row_Number=
- Olap_Sum=
- Olap_Avg=
- Olap_Count=
- Olap_Count_Star=
- Olap_Stddev_Pop=
- Olap_Var_Pop=
- [Exceptions OLAP Functions DATABASE:DSN VERSION:07]
- Olap_Rank=
- Olap_Dense_Rank=
- Olap_Row_Number=
- Olap_Sum=
- Olap_Avg=
- Olap_Count=
- Olap_Count_Star=
- Olap_Stddev_Pop=
- Olap_Var_Pop=
- [Exceptions OLAP Functions DATABASE:QSQ]
- Olap_Percent_Rank=
- [Exceptions OLAP Functions DATABASE:QSQ VERSION:07.02]
- Olap_Max=
- Olap_Min=
- Olap_Sum=
- Olap_Avg=
- Olap_Count=
- Olap_Count_Star=
- Olap_Stddev_Pop=
- Olap_Var_Pop=
- Olap_Stddev_Samp=
- Olap_Var_Samp=
- Olap_Percent_Rank=
- Olap_Cume_Dist=
- Olap_Ratio_To_Report=
- Olap_Ntile=
- Olap_First_Value=
- Olap_Last_Value=
- [Exceptions OLAP Functions DATABASE:QSQ VERSION:07.01]
- Olap_Max=
- Olap_Min=
- Olap_Sum=
- Olap_Avg=
- Olap_Count=
- Olap_Count_Star=
- Olap_Stddev_Pop=
- Olap_Var_Pop=
- Olap_Stddev_Samp=
- Olap_Var_Samp=
- Olap_Percent_Rank=
- Olap_Cume_Dist=
- Olap_Ratio_To_Report=
- Olap_Ntile=
- Olap_First_Value=
- Olap_Last_Value=
- [Exceptions Clauses]
- From="from"
- Group_By="group by"
- Having="having"
- Where="where"
- ;Both DB2 UDB 7 and 8, DB2 AS/400 V4R5 to V5R2 support use of WITH clause
- ;DB2 MVS 8.1 supports With-clause
- With="with "
- With_Recursive="with "
- [Exceptions Clauses DATABASE:DSN VERSION:06]
- With=
- With_Recursive=
- [Exceptions Clauses DATABASE:DSN VERSION:07]
- With=
- With_Recursive=
- [Exceptions Commands]
- Delete="delete "
- Insert="insert "
- Select="select "
- Update="update "
- Call="call "
- Max_Stmt_Len="2097152"
- Max_Decimal_Precision="31"
- [Exceptions Commands DATABASE:SQL VERSION:08.01]
- ;Longest SQL statment of UDB version 8.01 is 65K bytes
- Max_Stmt_Len="65535"
- [Exceptions Commands DATABASE:SQL VERSION:07]
- ;Longest SQL statment of UDB version 7.02 and 7.01 is 65K bytes
- Max_Stmt_Len="65535"
- [Exceptions Commands DATABASE:SQL VERSION:06]
- ;Longest SQL statment of UDB version 6 is 65K bytes
- Max_Stmt_Len="65535"
- [Exceptions Commands DATABASE:QSQ VERSION:05.03]
- ;Longest SQL statment of iSeries V5R3 is 65K bytes
- Max_Stmt_Len="65535"
- [Exceptions Commands DATABASE:QSQ VERSION:05.02]
- ;Longest SQL statment of iSeries V5R2 is 65K bytes
- Max_Stmt_Len="65535"
- [Exceptions Commands DATABASE:DSN VERSION:07]
- ;Longest SQL statment of OS/390 version 7 is 32K bytes
- Max_Stmt_Len="32765"
- [Exceptions Commands DATABASE:DSN VERSION:06]
- ;Longest SQL statment of OS/390 version 6 is 32K bytes
- Max_Stmt_Len="32765"
- [Exceptions Delimiters]
- Catalog_Delimiter="\""
- Schema_Delimiter="\""
- Table_Delimiter="\""
- Column_Delimiter="\""
- Procedure_Delimiter="\""
- Comment_Begin="/* "
- Comment_End=" */ "
- [Exceptions Delimiters DATABASE:DSN]
- Procedure_Delimiter=
- [Exceptions Delimiters DRIVER:DSNAOCLI DATABASE:DSN]
- Schema_Delimiter=
- [Exceptions General]
- Count_Blob=T
- Count_Non_Distinct=T
- Count_Value_Expr=T
- Count_Literal=T
- Group_By_Expr=T
- Is_Null_Value_Expr=T
- Is_Null_Value_Parm=F
- Like_Value_Expr=T
- Like_With_Escape=T
- Multiple_Distinct=T
- Subquery_In_Case=F
- Olap_Distinct=F
- Null_Order=F
- Olap_Null_Order=T
- Order_By_In_Derived_Table=T
- With_In_Derived_Table=F
- With_Column_List=T
- Boolean_Comparison=F
- Comments=T
- ;When setting to "PT", the native SQL in common table expression of a With clause
- ;is considered as a pass-through SQL only which is pushed to database.
- ;When setting to "DT", the native SQL is re-written as a derived table (10.1 and prior behaviour)
- ;Native_SQL_In_CTE="KEEP"
- [Exceptions General DRIVER:DB2CLI.DLL VERSION:08]
- Comments=F
- [Exceptions General DRIVER:LIBDB2.SO VERSION:08]
- Comments=F
- [Exceptions General DRIVER:LIBDB2.SL VERSION:08]
- Comments=F
- [Exceptions General DRIVER:LIBDB2.A VERSION:08]
- Comments=F
- [Exceptions General DRIVER:DB2CLI.DLL VERSION:07]
- Comments=F
- [Exceptions General DRIVER:LIBDB2.SO VERSION:07]
- Comments=F
- [Exceptions General DRIVER:LIBDB2.SL VERSION:07]
- Comments=F
- [Exceptions General DRIVER:LIBDB2.A VERSION:07]
- Comments=F
- [Exceptions General DRIVER:CWBODBC.DLL VERSION:05.02]
- Comments=F
- [Exceptions General DATABASE:DSN]
- ; the settings in this section reflect the behavior of the latest DSN version
- Aggregate_Literal=F
- Count_Blob=F
- Count_Non_Distinct=T
- Count_Value_Expr=T
- Group_By_Expr=T
- Like_Value_Expr=T
- Multiple_Distinct=T
- Nested_Case=T
- Subquery_Column_Alias=F
- [Exceptions General DATABASE:DSN VERSION:06]
- Count_Non_Distinct=F
- Count_Value_Expr=F
- Multiple_Distinct=F
- Group_By_Expr=F
- Olap_Null_Order=F
- Order_By_In_Derived_Table=F
- [Exceptions General DATABASE:DSN VERSION:07]
- ; DB2 UDB 7.1 OS/390 supports non-distinct
- ; Count() as well as Count( expr )
- Multiple_Distinct=F
- Group_By_Expr=F
- Olap_Null_Order=F
- Order_By_In_Derived_Table=F
- [Exceptions General DATABASE:DSN VERSION:08]
- ; Due to Trakker 451348, Count_Literal was turned off as
- ; it caused the following error:
- ; [IBM][CLI Driver] SQL1034C The database is damaged. All applications
- ; processing the database have been stopped. SQLSTATE=5803
- ; Applying APAR AK07792 to the server will resolve this issue.
- Count_Literal=T
- Olap_Null_Order=F
- Order_By_In_Derived_Table=F
- Comments=F
- [Exceptions General DATABASE:QSQ]
- ;trakker 588935
- Olap_Null_Order=F
- Order_By_In_Derived_Table=F
- Subquery_In_Case=T
- [Exceptions General DATABASE:QSQ VERSION:05.03]
- Olap_Null_Order=F
- [Exceptions General DATABASE:QSQ VERSION:05.02]
- Olap_Null_Order=F
- [Exceptions General DATABASE:QSQ VERSION:05.01]
- Olap_Null_Order=F
- Subquery_In_Case=F
- [Exceptions General DATABASE:SQL]
- Subquery_Column_Alias=T
- Subquery_In_Case=T
- Subquery_In_Group_By=F
- Nested_Olap_Functions=T
- [Exceptions General DATABASE:SQL VERSION:07]
- Order_By_In_Derived_Table=F
- [Exceptions Joins]
- Cross=F
- Inner_Tbl_Restrict=F
- Outer_Syntax=T
- Optnl_Tbl_Restrict=T
- One_Outer=T
- Left_Eql=" LEFT OUTER JOIN "
- Right_Eql=" RIGHT OUTER JOIN "
- [Exceptions Joins DATABASE:DSN]
- Full_Non_Equi_Join=T
- Full_Outer=T
- Inner=T
- Inner_Tbl_Restrict=F
- Left_Nested=T
- Left_Outer=T
- Nested_Outer=T
- Non_Equi_Joins=T
- Non_Join_Expr=T
- On_Condition_Functions=T
- On_Condition_Between_Predicate=T
- On_Condition_In_Predicate=T
- On_Condition_IsNull_Predicate=T
- On_Condition_Like_Predicate=F
- On_Condition_Not_Predicate=T
- On_Condition_Or_Predicate=T
- On_Condition_Set_Functions=F
- On_Condition_Subqueries=F
- One_Outer=F
- Optnl_Tbl_Filter=T
- Optnl_Tbl_Restrict=F
- Optnl_Tbl_Join_Filter=T
- Right_Nested=T
- Right_Outer=T
- [Exceptions Joins DATABASE:DSN VERSION:06]
- Non_Join_Expr=F
- On_Condition_Functions=F
- [Exceptions Joins DATABASE:QSQ]
- Full_Outer=T
- Full_Non_Equi_Join=T
- Optnl_Tbl_Filter=T
- Inner_Tbl_Restrict=F
- Left_Nested=T
- Left_Outer=T
- Left_Post=""
- Left_Pre=""
- Non_Equi_Joins=T
- Non_Join_Expr=T
- One_Outer=F
- On_Condition_IsNull_Predicate=T
- On_Condition_Not_Predicate=T
- On_Condition_Subqueries=T
- On_Condition_Or_Predicate=T
- On_Condition_Between_Predicate=T
- On_Condition_Like_Predicate=T
- Prsrv_Tbl_Join_Filter=F
- Right_Nested=T
- ;THE FOLLOWING ENTRIES WHERE ADDED TO FIX THE PROBLEM 319725
- Inner=T
- Nested_Outer=T
- Optnl_Tbl_Join_Filter=T
- Optnl_Tbl_Restrict=F
- Prsrv_Tbl_Join_Filter=T
- ; The following entry is turnded off for Trakker 496752
- On_Condition_In_Predicate=F
- [Exceptions Joins DATABASE:QSQ VERSION:05.01]
- Cross=T
- [Exceptions Joins DATABASE:QSQ VERSION:05.02]
- Cross=T
- [Exceptions Joins DATABASE:SQL]
- Full_Outer=T
- Full_Non_Equi_Join=T
- Inner=T
- Inner_Tbl_Restrict=F
- Left_Nested=T
- Left_Pre=""
- Left_Post=""
- Non_Equi_Joins=T
- Nested_Outer=T
- One_Outer=F
- Optnl_Tbl_Restrict=F
- Optnl_Tbl_Join_Filter=T
- Optnl_Tbl_Filter=T
- On_Condition_Not_Predicate=T
- On_Condition_In_Predicate=T
- On_Condition_Between_Predicate=T
- On_Condition_Like_Predicate=T
- On_Condition_IsNull_Predicate=T
- On_Condition_Or_Predicate=T
- Right_Nested=T
- [Exceptions Literals]
- ;
- ; IBM's CLI uses conversion functions to convert date, time, timestamp
- ; literals into DATE, TIME and TIMESTAMP datatype when using the
- ; ODBC/CLI escape sequence for the literals (ie {d 'xx-xx-xxxx'} ).
- ; This can cause DB/2 to use a table scan instead of the index,
- ; impacting the performance of the query.
- ;
- ; The DB2 gateway has already provided a KLUDGE for it, which is using
- ; the alternate date/time literal strings specified in the [ <driver> ]
- ; section for translation of date/time literals so that date/time
- ; literals are translated into character strings instead of the default,
- ; which is DB2 CLI date/time literals.
- ;
- ; But now, a better solutions is provided. Similar to the KLUDGE, alternate
- ; date/time literal strings can be specified in this section, which will be
- ; used for translation of date/time literals. But they are used only in the
- ; specified situations:
- ;
- ; Alt_Date_Lit_Assignment - UPDATE .. SET <column> =<value_expr>
- ; Alt_Date_Lit_Between - <value_expr> BETWEEN <value_expr> AND <value_expr>
- ; Alt_Date_Lit_Comparison - <value_expr> op <value_expr>
- ; where op is >, <, =, <>, >=, or <=
- ; Alt_Date_Lit_In - <value_expr> IN ( <value_expr>, ... )
- ; Alt_Date_Lit_Insert_Val - INSERT .. VALUES ( <value_expr>, ... )
- ;
- ; The KLUDGE provided by DB2 gateway overrides this new solution.
- ; If you want to use the new solution, remove the date/time literal strings in
- ; the [Special DLL Information] section and remove the ';' in the following
- ; entries that you find appropiate.
- ;
- ; DB2/400 and DB2/MVS returns result of datatype varChar when selecting
- ; a datetime literal, but user expects the datatype to be datetime.
- ; e.g. select DATE 'xxxx-xx-xx' from parts. To fix this problem, we have
- ; the entries which converts the datatime literal to datatime before we
- ; send it to the database.
- ; These entries for DB2/MVS are removed as required by IMP because DB2
- ; doesn't accept such syntax in some certain cases, such as in IN clause.
- ; This means that IMP QC will get a varChar when they do a select datetime
- ; literal.
- ;
- ; Those entries for DB2CLI/400 are comment out as required by IMP QC for
- ; the same reason.
- ;
- ; The entries below show the defaults.
- ; If the data source supports the call SQLGetTypeInfo
- ; then all the following flags will be over written by
- ; information retrieved from the data source.
- Alt_Date_Literal_Assignment=F
- Alt_Date_Literal_Between=F
- Alt_Date_Literal_Comparison=F
- Alt_Date_Literal_In=F
- Alt_Date_Literal_Insert_Value=F
- Alt_Date_Literal_Str=
- Alt_Interval_Literal_Str=
- Alt_Time_Literal_Str=
- Alt_Timestamp_Literal_Str=
- Boolean_Literal=F
- Date_Add_Function_Str=
- Date_Format_Str="YYYY MM DD"
- Date_Literal=C
- Date_Literal_Str="{d '%s-%s-%s'}"
- Date_Sub_Function_Str=
- False_Literal_Str=
- Interval_Format_Str=
- Interval_Literal=F
- Interval_Literal_Str=
- IntervalYM_Format_Str=
- IntervalYM_Literal=F
- IntervalYM_Literal_Str=
- NChar_Literal=T
- Apostrophe_In_NChar_Literal=F
- Time_Format_Str="HH MM SS"
- Time_Literal=C
- Time_Literal_Str="{t '%s:%s:%s'}"
- TimeTZ_Format_Str=
- TimeTZ_Literal=F
- TimeTZ_Literal_Str=
- Timestamp_Format_Str="YYYY MM DD HH MM SS"
- Timestamp_Literal=C
- Timestamp_Literal_Str="{ts '%s-%s-%s %s:%s:%s'}"
- TimestampTZ_Format_Str=
- TimestampTZ_Literal=F
- TimestampTZ_Literal_Str=
- True_Literal_Str=
- Unknown_Literal_Str=
- Zero_Date_Literal_Str=
- Zero_Timestamp_Literal_Str=
- [Exceptions Literals DATABASE:DSN]
- Alt_Date_Literal_Assignment=T
- Alt_Date_Literal_Between=T
- Alt_Date_Literal_Comparison=T
- Alt_Date_Literal_In=T
- Alt_Date_Literal_Insert_Value=T
- Alt_Date_Literal_Str="{d '%s-%s-%s'}"
- Alt_Interval_Literal_Str=
- Alt_Time_Literal_Str="{t '%s.%s.%s'}"
- Alt_Timestamp_Literal_Str="{ts '%s-%s-%s-%s.%s.%s.%s'}"
- Date_Add_Function_Str=
- Date_Format_Str="YYYY MM DD"
- Date_Literal=C
- Date_Literal_Str="date({d '%s-%s-%s'})"
- Date_Sub_Function_Str=
- Interval_Format_Str=
- Interval_Literal=F
- Interval_Literal_Str=
- Time_Format_Str="HH MM SS"
- Time_Literal=C
- Time_Literal_Str="time({t '%s:%s:%s'})"
- Timestamp_Format_Str="YYYY MM DD HH MM SS FFFFFF"
- Timestamp_Literal=C
- Timestamp_Literal_Str="timestamp({ts '%s-%s-%s %s:%s:%s.%s'})"
- TimestampTZ_Literal=F
- TimestampTZ_Format_Str="YYYY MM DD HH MM SS FFFFFFFFF HHMM"
- TimestampTZ_Literal_Str="timestamp_tz('%s-%s-%s %s:%s:%s.%s %s:%s')"
- Zero_Date_Literal_Str=
- Zero_Timestamp_Literal_Str=
- [Exceptions Literals DATABASE:DSN VERSION:09]
- TimestampTZ_Format_Str=
- TimestampTZ_Literal_Str=
- [Exceptions Literals DATABASE:DSN VERSION:08]
- TimestampTZ_Format_Str=
- TimestampTZ_Literal_Str=
- [Exceptions Literals DATABASE:DSN VERSION:07]
- TimestampTZ_Format_Str=
- TimestampTZ_Literal_Str=
- [Exceptions Literals DATABASE:QSQ]
- Alt_Date_Literal_Assignment=T
- Alt_Date_Literal_Between=T
- Alt_Date_Literal_Comparison=T
- Alt_Date_Literal_In=T
- Alt_Date_Literal_Insert_Value=T
- Alt_Date_Literal_Str="'%s-%s-%s'"
- Alt_Interval_Literal_Str=
- Alt_Time_Literal_Str="'%s.%s.%s'"
- Alt_Timestamp_Literal_Str="'%s-%s-%s-%s.%s.%s.%s'"
- Date_Add_Function_Str=
- Date_Format_Str="YYYY MM DD"
- Date_Literal=C
- Date_Literal_Str="date('%s-%s-%s')"
- Date_Sub_Function_Str=
- Interval_Format_Str=
- Interval_Literal=F
- Interval_Literal_Str=
- Time_Format_Str="HH MM SS"
- Time_Literal=C
- Time_Literal_Str="time('%s.%s.%s')"
- Timestamp_Format_Str="YYYY MM DD HH MM SS FFFFFF"
- Timestamp_Literal=C
- Timestamp_Literal_Str="timestamp('%s-%s-%s-%s.%s.%s.%s')"
- Zero_Date_Literal_Str=
- Zero_Timestamp_Literal_Str=
- [Exceptions Literals DATABASE:SQL]
- Date_Literal=C
- Date_Literal_Str="date('%s-%s-%s')"
- Time_Literal=C
- Time_Literal_Str="time('%s:%s:%s')"
- Timestamp_Literal=C
- Timestamp_Literal_Str="timestamp('%s-%s-%s %s:%s:%s.%s')"
- [Exceptions Operators]
- Add="+"
- And="and"
- Div="/"
- Eql="="
- Geq=">="
- Grt=">"
- Leq="<="
- Les="<"
- Mul="*"
- Neq="<>"
- Not="not"
- Or="or"
- Sub="-"
- [Exceptions Operators DATABASE:DSN]
- Neq=" <> "
- Varchar_Compare_Limit="4000"
- [Exceptions Operators DATABASE:SQL]
- [Exceptions Predicates]
- All="all "
- Exists="exists "
- [Exceptions Predicates DATABASE:QSQ]
- All="all"
- Any="any"
- [Exceptions Set Operators]
- Distinct="distinct"
- Except_All=T
- Except=" except "
- Intersect_All=T
- Intersect="intersect"
- Union_All=T
- Union="union"
- [Exceptions Set Operators DATABASE:DSN VERSION:08]
- Intersect=""
- Intersect_All=F
- Except=""
- Except_All=F
- [Exceptions Set Operators DATABASE:DSN VERSION:07]
- Intersect=""
- Intersect_All=F
- Except=""
- Except_All=F
- [Exceptions Set Operators DATABASE:QSQ]
- Except_All=F
- Intersect_All=F
- Union=
- Union_All=F
- [Exceptions Set Operators DATABASE:QSQ VERSION:05.01]
- Except=
- Intersect=
- [Exceptions Set Operators DATABASE:QSQ VERSION:05.02]
- Except=
- Intersect=
- [Exceptions Tables]
- Joined=T
- Derived=T
- Table_Constructor=T
- UniqueName_Prefix="coguda"
- [Exceptions Tables DATABASE:SQL]
- Tbl_Ref_Limit="256"
- [Exceptions Tables DATABASE:DSN]
- Table_Constructor=F
- Tbl_Ref_Limit="256"
- [Exceptions Tables DATABASE:QSQ]
- Joined=F
- Derived=T
- Tbl_Ref_Limit="1000"
- SubSelect_Limit="256"
- Table_Constructor=F
- [Exceptions Tables DATABASE:QSQ VERSION:05.03]
- Joined=F
- Derived=T
- Tbl_Ref_Limit="256"
- SubSelect_Limit="31"
- [Exceptions Tables DATABASE:QSQ VERSION:05.02]
- Joined=F
- Derived=T
- Tbl_Ref_Limit="256"
- SubSelect_Limit="31"
- [Exceptions Value Expressions]
- Bit_Length=F
- Case=T
- Cast=T
- Char_Length=C
- Coalesce=T
- Extract=C
- Extract_Year=coguda#extract_year
- Extract_Month=coguda#extract_month
- Extract_Day=coguda#extract_day
- Extract_Hours=coguda#extract_hour
- Extract_Minutes=coguda#extract_minute
- Extract_Seconds=coguda#extract_second
- Lower=F
- Nullif=T
- Octet_Length=F
- Position=F
- StrCat=T
- Substring=C
- Upper=F
- Cube=T
- Rollup=T
- Grouping_Sets=T
- Current_Date=T
- Current_Time=F
- Current_Timestamp=F
- Localtime=C
- Localtimestamp=C
- Abs=T
- Ceiling=T
- Exp=T
- Floor=T
- Ln=T
- Mod=T
- Power=T
- Sqrt=T
- Trim=F
- Row_Value_Constructors=T
- [Exceptions Value Expression DATABASE:DSN]
- Case=F
- Case_Simple=T
- Case_Searched=T
- Cast=T
- Cube=F
- Grouping_Sets=F
- Lower=T
- Nullif=T
- Position=C
- Rollup=F
- StrCat=T
- Trim=C
- Upper=T
- [Exceptions Value Expression DATABASE:DSN VERSION:06]
- Trim=F
- Case_Simple=F
- [Exceptions Value Expressions DATABASE:QSQ]
- Case=T
- Cast=T
- Char_Length=T
- Nullif=T
- Lower=T
- Upper=T
- Position=T
- Cube=F
- Rollup=F
- Grouping_Sets=F
- Trim=T
- Extract=T
- Bit_Length=T
- Octet_Length=T
- [Exceptions Value Expressions DATABASE:QSQ VERSION:05.01]
- Ceiling=F
- Extract=C
- Bit_Length=F
- Octet_Length=F
- Substring=F
- [Exceptions Value Expressions DATABASE:QSQ VERSION:05.02]
- Ceiling=F
- Extract=C
- Bit_Length=F
- Octet_Length=F
- Substring=F
- [Exceptions Value Expressions DATABASE:SQL]
- Lower=T
- Upper=T
- Cube=T
- Rollup=T
- Grouping_Sets=T
- Trim_Both_Spaces=C
- Trim_Leading_Spaces=C
- Trim_Trailing_Spaces=C
- Extract=T
- [Exceptions Value Expressions DATABASE:SQL VERSION:06.01]
- Cube=F
- Rollup=F
- Grouping_Sets=F
- [Exceptions Value Expressions DATABASE:SQL VERSION:08]
- Extract=C
- [Exceptions Value Expressions DATABASE:SQL VERSION:09.01]
- Extract=C
- [Exceptions Value Expressions DATABASE:SQL VERSION:09.05]
- Extract=C
- [Exceptions Blob Expressions]
- Blob_In_Substring=T
- Blob_In_StrCat=T
- Blob_In_Trim=T
- [Exceptions Misc DATABASE:SQL]
- Session_Sort_Order=T
- [I18N Encoding Mapping]
- 1252=cp1252
- 1250=cp1250
- 1208=utf-8
- 1200=ucs-2
- 943=Shift_JIS
- 954=EUC_JP
- 874=cp874
- 5488=gb18030
- [Misc]
- ; Specifies which conversion mechanism to use
- Numeric_binding=B
- ;
- ; Default processing mode.
- Processing Mode=Database Only
- [Misc DATABASE:QSQ]
- Numeric_binding=C
- ; From this point on this ini file contains entries pertaining
- ; to the operation of DB2 through the DB2 driver being used.
- ; The format for these entries is a section name in the format
- ; [<drivername>] containing entries indicating a special DB2
- ; exception for the driver. The possible exceptions, listed
- ; alphabetical for easy lookup, that can be set are...
- ; Alternate Metadata Retrieval=[T|F]
- ; If set to T, the primary meta data retrieval method, performing
- ; a select and describing the results, is replace with calls to
- ; SQLColumns. Drivers that do not support 'select *' will use the
- ; alternate metadata retrieval method.
- ; Keyword Ascending=<literal>
- ; If given, the default ascending keyword, "asc" will be replaced
- ; with this literal. For some drivers this keyword is optional or
- ; invalid, an blank entry will remove the keyword.
- ; Columns Are Nullable=[T|F]
- ; If set to T, the column descriptions returned by the driver will
- ; allow NULL values. If set to F, the column descriptions returned
- ; by the driver will disallow NULL values. If set to neither T or F
- ; the normal driver description will be used.
- ; Convert To Blob Limit=<number>
- ; The number will indicate the size limit for LongVarChar and
- ; LongVarBinary data. If the data size is greater then the
- ; specified size the data type will be treated as blob data.
- ; By default the size limit is 32K.
- ; Date format=<date format>
- ; If given, the default date format, YYYY MM DD, will be
- ; replaced with <date format>. The DB2 driver or underlying
- ; database must understand the date format.
- ; Date literal=<double quoted single quoted string>
- ; If given, the default DB2 date conversion, "{d '%s-%s-%s'}",
- ; will be replaced with a literal date string. For some drivers,
- ; ODBC date literals are converted into function calls and may
- ; cause the database optimizer to use table scan instead of index scan,
- ; impacting performance. So alternate literal date string can be
- ; used if the default ODBC date conversion is not desired.
- ; Disable Transaction Support=[T|F]
- ; If set to T, transaction support is disabled and the drivers
- ; auotcommit option will be in effect. This option sets the
- ; transaction isolation level to SQL_TXN_SERIALIZABLE, meaning
- ; dirty reads, nonrepeatable reads and phantom reads will not
- ; be possible.
- ; Optimize For=<numeric value>
- ; If a numeric value greater then zero is given, "OPTIMIZE FOR n ROWS" clause will
- ; be appended to the select statements ( n being equal to the numeric value and the
- ; number of rows to optimize for ). This option can improve performance based on the
- ; assumption that <n> rows will be retrieved and causes a suitable communication
- ; buffer size to be chosen for blocked cursors.
- ; Multiple Active Statements Support=[1|0]
- ; If set to 1, indicates that the DB2 driver does support multiple active statements
- ; within a transaction. If set to 0 would indicate otherwise. This option can work
- ; around situations where the driver returns incorrect information regarding this
- ; support.
- ; Qualified Synonyms are not supported=[T|F]
- ; If set to T, the database doesn't supported qualified synonyms.
- ; Replace Count Non-Distinct=[T|F]
- ; If set to T, the count(value) expression will be replaced by count(*).
- ; Note, that this is NOT semantically equivalent: count(*) may count NULL
- ; values whereas count(value) does not.
- ; Select For Fetch Only=[T|F]
- ; If set to T, "FOR FETCH ONLY" will be appended to select statements.
- ; This option can work around quirks on the server by turning on
- ; journalling or improve performance by affecting the locking strategy.
- ; Select For Update Disabled=[T|F]
- ; If set to T, "FOR UPDATE" will not be allowed in SELECT statements.
- ; Time literal=<double quoted string>
- ; If given, the default ODBC time conversion, "{t '%s:%s:%s'}",
- ; will be replaced with a literal time string. For some drivers,
- ; ODBC time literals are converted into function calls and may
- ; cause the database optimizer to use table scan instead of index scan,
- ; impacting performance. So alternate literal time string can
- ; be used if the default ODBC time conversion is not desired.
- ; Timestamp format=<timestamp format>
- ; If given, the default timestamp format, YYYY MM DD HH MM SS FFF,
- ; will be replaced with <timestamp format>. The DB2 driver or
- ; underlying database must understand the timestamp format.
- ; Timestamp literal=<double quoted string>
- ; If given, the default ODBC timestamp conversion, "{ts '%s-%s-%s %s:%s:%s'}",
- ; will be replaced with a literal timestamp string. For some drivers
- ; ODBC timestamp literals are converted into function calls and may
- ; cause the database optimizer to use table scan instead of index scan,
- ; impacting performance. So alternate literal timestamp string can
- ; be used if the default ODBC timestamp conversion is not desired.
- ; Treat Integers as Signed=[T|F]
- ; If set to T, all integers will be treated as signed integers.
- [UDA Misc]
- ; Set this entry to one of the following values to force the type of
- ; transformation performed on queries containing aggregates computed
- ; at different levels of granularity. A value other than 0 will cause
- ; a query to generated that is more materialized view friendly.
- ;
- ; 0 = default
- ; 1 = derived tables
- ; 2 = union
- ;
- Multigrain_Query_XForm_Strategy=0
- [UDA Misc DATABASE:QSQ]
- ;Trakker 518105
- ; Set this entry to F to avoid generation of predicates of the form
- ; T1.C1 = T2.C1 OR ( T1.C1 IS NULL AND T2.C1 IS NULL ). Care must be
- ; taken, however, since doing so may cause data integrity problems if
- ; data contains null values.
- Generate_Equal_Or_Null=T
- [DATABASE:DSN]
- Trim Trailing Identifier Spaces="T"
- State Overwrite 0="CCLMSG_UDA_SQL_GENERAL SQL_API_ALL_FUNCTIONS 40003 08S01"
- Qualified Synonyms Are Not Supported="T"
- SQL_IDENTIFIER_CASE="3"
- 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"
- ;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
- ;as there is no info in ROUTINEPARMS catalog view about nullness, so we'll default to NULLS OK
- ;sometimes function parameters do not have names, in this case we'll concate the corresponding rowtype and ordinal to form a unique name
- ;we also concate the ROUTINENAME with SPECIFICNAME so we can group all the parameters into parmSet where parm of same group are sorted together
- 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"
- Bulk Insert Supported="T"
- ;Use GET_CURRENT_SCHEMA to retrieve the current schema within the connection and use the returned schema to qualify table
- ;This is set only if the Schema defined in the package is blank
- ;To switch to the other behavior, which will replace a blank schema with
- ; the current user name, uncomment the following line:
- ;Set User As Default Schema="T"
- Get_Current_Schema="TRUE:SELECT DISTINCT RTRIM(CURRENT_SCHEMA) FROM SYSIBM.SYSENVIRONMENT"
- [DATABASE:DSN VERSION:10]
- ; This entry is intended for mapping a new database which is in compatibility mode
- ; to its previous version. This mapping indicates how the DB is acting (whether new features
- ; have been enabled or not.
- ; Mapping is "<previous_major_ver>_<previous_minor_ver>"
- ; Changing these mappings may cause UDA to no longer honour compatibility mode
- Compatibility mode mapping="9.1"
- [DATABASE:DSN VERSION:09]
- Compatibility mode mapping="8.1"
- [DATABASE:DSN VERSION:08]
- Compatibility mode mapping="7.1"
- [DRIVER:CWBODBC.DLL]
- Set User As Default Schema="F"
- [DRIVER:LIBCWBODBC.SO]
- Set User As Default Schema="F"
- [DATABASE:QSQ]
- Set User As Default Schema="T"
- 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"
- ;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
- ;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
- 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"
- ;
- ;Table types.
- ;
- User Tables="'TABLE','MATERIALIZED QUERY TABLE'"
- User Synonyms="'ALIAS'"
- Bulk Insert Supported="T"
- [DRIVER:DB2CLI.DLL DATABASE:QSQ]
- SQL_MAX_CATALOG_NAME_LEN="128"
- [DRIVER:LIBDB2.A DATABASE:QSQ]
- SQL_MAX_CATALOG_NAME_LEN="128"
- [DATABASE:QSQ VERSION:05.01]
- SQL_IDENTIFIER_CASE="3"
- User Tables="'TABLE'"
- [DATABASE:QSQ VERSION:05.02]
- SQL_IDENTIFIER_CASE="3"
- User Tables="'TABLE'"
- [DATABASE:SQL]
- ;Use GET_CURRENT_SCHEMA to retrieve the current schema within the connection and use the returned schema to qualify table
- ;To back to the old behavior, comment out the following line
- ;Set User As Default Schema="T"
- Get_Current_Schema="TRUE:SELECT DISTINCT RTRIM(CURRENT_SCHEMA) FROM SYSIBM.SYSTABLES"
- ;According to DB2:
- ;An expression resulting in a string data type with a maximum length greater
- ;than 255 bytes is not permitted in:
- ;A SELECT DISTINCT statement
- ;A GROUP BY clause
- ;An ORDER BY clause
- ;A column function with DISTINCT
- ;A SELECT or VALUES statement of a set operator other than UNION ALL.
- ;Therefore, we set Convert To Blob Limit to 255.
- Convert To Blob Limit="255"
- Bulk Insert Supported="T"
- ;Entries for session level directives,
- ;which will be executed within gateway.
- ;SQL_ATTRIB_DB_OPTIMIZER_GOAL = Exec_OptimizerGoal_FirstRow or
- ;Exec_OptimizerGoal_AllRows
- ;SQL_ATTRIB_DB_JOIN_ORDER = Exec_JoinOrder_NoJoinOrder or
- ;Exec_JoinOrder_OrderedJoin or Exec_JoinOrder_StarJoin
- ;SQL_ATTRIB_DB_DOP = Exec_DegreeOfParallelism
- ;SQL_ATTRIB_DB_OPTIMIZER_LEVEL = Exec_OptimizerLevel
- Exec_DegreeOfParallelism="SET CURRENT DEGREE = '%d'"
- Exec_OptimizerLevel="SET CURRENT QUERY OPTIMIZATION %d"
- OptimizerLevel_Low_Range="0"
- OptimizerLevel_High_Range="9"
- ;trakker 304150 - the database is lying about the sensitivity
- SQL_IDENTIFIER_CASE="3"
- 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"
- ;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
- ;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
- ;as there is no info in ROUTINEPARMS catalog view about nullness, so we'll default to NULLS OK
- ;sometimes function parameters do not have names, in this case we'll concate the corresponding rowtype and ordinal to form a unique name
- ;we also concate the ROUTINENAME with SPECIFICNAME so we can group all the parameters into parmSet where parm of same group are sorted together
- 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"
- [DATABASE:SQL VERSION:07.01]
- 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"
- ;possible COL_TYPE are 1 for INPUT, 2 for INOUT, 3 for RESULT_COL and 4 for OUTPUT
- ;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
- ;sometimes function parameters do not have names, in this case we'll concate the corresponding rowtype and ordinal to form a unique name
- ;we also concate the FUNCNAME with SPECIFICNAME so we can group all the parameters into parmSet where parm of same group are sorted together
- 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"
- [DATABASE:SQL VERSION:07.02]
- 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"
- ;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
- ;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
- ;sometimes function parameters do not have names, in this case we'll concate the corresponding rowtype and ordinal to form a unique name
- ;we also concate the FUNCNAME with SPECIFICNAME so we can group all the parameters into parmSet where parm of same group are sorted together
- 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"
- [DRIVER:CWBODBC.DLL]
- ;Problems with SQLExtendedFetch (trakker 431202)
- SQL_API_SQLEXTENDEDFETCH="FALSE"
- [DRIVER:LIBCWBODBC.SO]
- ;Problems with SQLExtendedFetch (trakker 431202)
- SQL_API_SQLEXTENDEDFETCH="FALSE"
- [DRIVER:DB2CLI.DLL]
- Optimize For="0"
- Select For Fetch Only="T"
- Procedure Cursors="T"
- ;DB2 allows cancellation from different thread
- Threaded Open="T"
- ;
- ;Table types
- ;
- User Tables="'TABLE','MATERIALIZED QUERY TABLE','TYPED TABLE'"
- User Views="'VIEW','TYPED VIEW'"
- User Synonyms="'SYNONYM','ALIAS','NICKNAME'"
- System Views="'SYSTEM VIEW'"
- System Synonyms="'SYSTEM SYNONYM','SYSTEM ALIAS'"
- [DRIVER:DB2CLIW.DLL]
- Optimize For="0"
- Select For Fetch Only="T"
- [DRIVER:DCSYB30.DLL]
- ;Sybase DC returns incorrect getInfo about SQL_COLUMN_ALIAS.
- SQL_COLUMN_ALIAS="Y"
- ;Sybase DC returns incorrect getInfo about SQL_CONVERT_FUNCTIONS
- SQL_CONVERT_FUNCTIONS="0"
- ;Sybase DC desn't support most string functions returned from getInfo.
- ;For those supported, they are put in database function section.
- SQL_STRING_FUNCTIONS="0"
- [DRIVER:DCSYB30.DLL DATABASE:DSN]
- SQL_DBMS_VER="05.01"
- [DRIVER:LIBDB2.A]
- Optimize For="0"
- Select For Fetch Only="T"
- Procedure Cursors="T"
- ;DB2 allows cancellation from different thread
- Threaded Open="T"
- ;
- ;Table types
- ;
- User Tables="'TABLE','MATERIALIZED QUERY TABLE','TYPED TABLE'"
- User Views="'VIEW','TYPED VIEW'"
- User Synonyms="'SYNONYM','ALIAS','NICKNAME'"
- System Views="'SYSTEM VIEW'"
- System Synonyms="'SYSTEM SYNONYM','SYSTEM ALIAS'"
- ;
- ; Cast Operator Overides
- ;
- ; This tables specifies the standard SQL casts that are NOT supported. This
- ; table is only consulted if Cast=T.
- ;
- [Operator Cast]
- AD=AD,AD
- SM=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
- IT=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
- QD=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
- DM=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
- NU=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
- FL=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
- DB=DT,NA:TM,NA:TS,NA:TT,NA:TZ,NA
- TM=TS,NA
- [Operator Cast DATABASE:SQL]
- [Operator Cast DATABASE:SQL VERSION:06]
- AD=AD,NA
- 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
- 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
- VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
- LC=CH,CH:VC,VC:LC,LC
- SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DT=CH,CH:VC,VC:DT,DT
- TM=CH,CH:VC,VC:TM,TM
- TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
- TX=AD,AD
- BL=AD,AD
- [Operator Cast DATABASE:SQL VERSION:07]
- AD=AD,NA
- 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
- 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
- VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
- LC=CH,CH:VC,VC:LC,LC
- SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DT=CH,CH:VC,VC:DT,DT
- TM=CH,CH:VC,VC:TM,TM
- TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
- TX=AD,AD
- BL=AD,AD
- [Operator Cast DATABASE:SQL VERSION:08]
- AD=AD,NA
- 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
- 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
- VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
- LC=CH,CH:VC,VC:LC,LC
- SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DT=CH,CH:VC,VC:DT,DT
- TM=CH,CH:VC,VC:TM,TM
- TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
- TX=AD,AD
- BL=AD,AD
- [Operator Cast DATABASE:SQL VERSION:09.01]
- AD=AD,NA
- 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
- 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
- VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
- LC=CH,CH:VC,VC:LC,LC
- SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DT=CH,CH:VC,VC:DT,DT
- TM=CH,CH:VC,VC:TM,TM
- TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
- TX=AD,AD
- BL=AD,AD
- [Operator Cast DATABASE:SQL VERSION:09.05]
- AD=AD,NA
- 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
- 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
- VC=CH,CH:VC,VC:LC,LC:SM,SM:IT,IT:DM,DM:NU,NU:DT,DT:TM,TM:TS,TS
- LC=CH,CH:VC,VC:LC,LC
- SM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- IT=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- QD=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DM=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- NU=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- FL=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DB=CH,CH:SM,SM:IT,IT:QD,QD:DM,DM:NU,NU:FL,FL:DB,DB
- DT=CH,CH:VC,VC:DT,DT
- TM=CH,CH:VC,VC:TM,TM
- TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS
- TX=AD,AD
- BL=AD,AD
- [Operator Cast DATABASE:DSN]
- SM=NC,NA:NV,NA
- IT=NC,NA:NV,NA
- QD=NC,NA:NV,NA
- DM=NC,NA:NV,NA
- NU=NC,NA:NV,NA
- FL=NC,NA:NV,NA
- DB=NC,NA:NV,NA
- DT=NC,NA:NV,NA
- TM=NC,NA:NV,NA
- TS=NC,NA:NV,NA
- TT=NC,NA:NV,NA
- TZ=NC,NA:NV,NA
- AD=TZ,TZ
- [Operator Cast DATABASE:DSN VERSION:09]
- 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
- 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
- TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS:TZ,NA
- TZ=AD,NA
- [Operator Cast DATABASE:DSN VERSION:08]
- 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
- 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
- TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS:TZ,NA
- TZ=AD,NA
- [Operator Cast DATABASE:DSN VERSION:07]
- 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
- 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
- TS=CH,CH:VC,VC:DT,DT:TM,TM:TS,TS:TZ,NA
- TZ=AD,NA
- [Operator Cast DATABASE:QSQ]
- [Operator Cast DATABASE:QSQ VERSION:07.01]
- DT=NC,NA:NV,NA
- TM=NC,NA:NV,NA
- TS=NC,NA:NV,NA
- [Operator Comparison]
- NV=CH,OK:NC,OK:VC,OK:DT,OK:TS,OK
- NC=NV,OK:CH,OK:VC,OK:DT,OK:TS,OK
- VC=NV,OK:NC,OK:DT,OK:TS,OK
- CH=NV,OK:NC,OK:DT,OK:TS,OK
- DT=CH,OK:NC,OK:VC,OK:NV,OK
- TS=CH,OK:NC,OK:VC,OK:NV,OK
- [Operator Comparison DATABASE:SQL]
- DT=TS,OK
- TS=DT,OK
- [Operator Comparison DATABASE:SQL VERSION:09.05]
- DT=TS,NA
- TS=DT,NA
- [Operator Comparison DATABASE:SQL VERSION:09.01]
- DT=TS,NA
- TS=DT,NA
- [DATABASE:SQL]
- ; This entry is used to specify whether the prepared statement will be closed
- ; when reaching the end of data, the connection occupied can be used by other
- ; statement.
- CLOSE_HSTMT_AT_EOD="T"
- COLLATION_SEQ_SQL1="select rtrim( cast( CODEPAGE as CHAR(20) ) ) || '_' || COLLATIONNAME from SYSCAT.DATATYPES where TYPENAME='VARCHAR'"
- 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"
- [DATABASE:QSQ]
- ; This entry is used to specify whether the prepared statement will be closed
- ; when reaching the end of data, the connection occupied can be used by other
- ; statement.
- CLOSE_HSTMT_AT_EOD="T"
- [DATABASE:DSN]
- ; This entry is used to specify whether the prepared statement will be closed
- ; when reaching the end of data, the connection occupied can be used by other
- ; statement.
- CLOSE_HSTMT_AT_EOD="T"
|