1868
IBM i DB2 for i SQL 解説書 7.1

IBM i PROCEDURE (SQL) .....716 ALTER SEQUENCE 726 ALTER TABLE 732 ASSOCIATE LOCATORS .....770 BEGIN DECLARE SECTION .....776 CALL 778 CLOSE 787 COMMENT 789 COMMIT 800 CONNECT (タイプ

Embed Size (px)

Citation preview

  • IBM i

    DB2 for i SQL 7.1

  • IBM i

    DB2 for i SQL 7.1

  • ! 1805 K.

    IBM i 7.1 ( 5770-SS1) RISC CISC

    IBM iDB2 for i SQL Reference

    7.1

    1 2010.4

    Copyright IBM Corporation 1998, 2010.

  • (DB2 for i SQL ) xiSQL . . . . . . . . . . . xi . . . . . . . . . . . . . xiSQL . . . xii . . . . . . . . . . . . . xii . . . . . . . . . . . . . xvSQL . . . . . . . . . xv

    SQL PDF . . . . . . . xviIBM i 7.1 . . . . . . . . . . . xvii

    1 . . . . . . . . . . . . . 1 . . . . . . . . 1 (SQL) . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . 6 . . . . . . . . . . . . . . . . . . 7 . . . . . . . . . . . . . . . . 8 . . . . . . . . . . . . . . . . 8 . . . . . . . . . . . . . . . . 12 . . . . . . . . . . . . . . 13

    . . . . . . . . . . . . . . . . 15 . . . . . . . . . . . 16 . . . . . . . . . . . . . . . . . 16 . . . . . . . . 17 . . . . . . . . . . . . . . . 18 . . . . . . . . . . . . . . 20 . . . . . 21 . . . . . . . . . . . . . . . 23 . . . . . . . . . . . . . . . . 23 . . . . 25 . . . . . . . . . . . . . . 26 . . . . . . . . . . 27 . . . . . . . . . . . . . . 29

    . . . . . . . . . . . . . . 30 . . . . . . . . . . . 33 . . . . . . . . . . . . . 33 . . . . . . . . . . . . . 34 . . . . . . . . . . 34 . . . . . . . . . . . . . 34 . . . . . . . . . . . 35

    . . . . . . . . . . . . . . . 36 . . . . . . . . . . . . . . . 37 . . . . . . . 39 CCSID . . . . . . . 41 CCSID . . . . . . . . . . 41

    . . . . . . . . . . . . . . . 42 . . . . . . 45 . . . . . . . 46CONNECT ( 1) CONNECT (2). . . . . . . . . . . . . . . . . 48 . . . . . . . . . . . 48

    . . . . 50 . . . . . . . 52

    2 . . . . . . . . 55 . . . . . . . . . . . . . . . . . 55 . . . . . . . . . . . . . . . 56ID . . . . . . . . . . . . . . . . . 58

    SQL ID . . . . . . . . . . . . . . . 58 ID . . . . . . . . . . . . . 59 ID . . . . . . . . . . . . . . 59

    . . . . . . . . . . . . . . . 60SQL . . . . . . . . . . . . . . 69 . . . . . . . 69SQL : . . . . 72

    . . . . . . . . . . . . . . . . . 73 ID . . . . . . . . . . . . 75 . . . . . . . . . . . . . 76

    NULL . . . . . . . . . . . . . . . 78 . . . . . . . . . . . . . . . . 78 . . . . . . . . . . . . 81 . . . . . . . . . . 82 . . . . . . . . 83 . . . . . . 842 . . . . . . . . . . . . 85 . . . . . . . . . . 86/ . . . . . . . . . . . . 88XML . . . . . . . . . . . . . . 95 . . . . . . . . . . . 96 ID . . . . . . . . . . . . . . 97 . . . . . . . . . . 98

    . . . . . . . 100 . . . . . . . . 102 . . . . . . . . . . . 106 . . . . . . . . . . . . 107 . . . . . . . . . . 110 . . . . . . . . . . . . 113XML . . . . . . . . . . . 114 . . . . . . . . 115 ID . . . . . . . . . . . 117 . . . . . . . . . 117 . . . . . . . . . 119LOB . . . . . . . 119 . . . . . . . . . . . . . . 119 . . . . . . . . . . . 120/ . . . . . . . . . . . 123XML . . . . . . . . . . . . . 123 . . . . . . . . . 123 ID . . . . . . . . . . . . 124 . . . . . . . . . . . 124

    . . . . . . 125 130

    Copyright IBM Corp. 1998, 2010 iii

    ||

    ||

    ||

    ||

    ||

  • . . . . . . . . . . . . . . . . 132 . . . . . . . . . . . . . . 13210 . . . . . . . . . . . . . 132 . . . . . . . . . . . . 13210 . . . . . . . . . . 133 . . . . . . . . . . 133 . . . . . . 1342 . . . . . . . . . . 136/ . . . . . . . . . . . . 136 . . . . . . . . . . . . . . . 137 . . . . . . . . . . . . . 138

    . . . . . . . . . . . . . 140CURRENT CLIENT_ACCTNG . . . . . . . 140CURRENT CLIENT_APPLNAME . . . . . . 141CURRENT CLIENT_PROGRAMID . . . . . 141CURRENT CLIENT_USERID . . . . . . . 142CURRENT CLIENT_WRKSTNNAME. . . . . 142CURRENT DATE . . . . . . . . . . . 143CURRENT DEBUG MODE . . . . . . . . 143CURRENT DECFLOAT ROUNDING MODE . . 144CURRENT DEGREE . . . . . . . . . . 145CURRENT IMPLICIT XMLPARSE OPTION . . 146CURRENT PATH . . . . . . . . . . . 147CURRENT SCHEMA . . . . . . . . . . 148CURRENT SERVER . . . . . . . . . . 148CURRENT TIME . . . . . . . . . . . 149CURRENT TIMESTAMP . . . . . . . . . 149CURRENT TIMEZONE . . . . . . . . . 150SESSION_USER . . . . . . . . . . . 150SYSTEM_USER. . . . . . . . . . . . 150USER . . . . . . . . . . . . . . . 150

    . . . . . . . . . . . . . . . . 152 . . . . . . . . . . . . . . 152 . . . . . . . . . . . . . . . 152 . . . . 155 . . . . . . . . . 157 . . . 158

    . . . . . . . . . . . . 159 . . . . . . . . . . . . 159 . . . . . . . . . 161 SQL . . . . . . . . . . 165LOB XML . . . . . . . 165XML . . . . . . . . . . . 167 . . . . . . . . . . . . . 168 . . . . . . . . . . . . 169

    . . . . . . . . . . . . . . . . 171 . . . . . . . . . . . . 171 . . . . . . . . . . . . 172 . . . . . . . . . . . . . . 173 . . . . . . . . . . . . . 175 . . . . . . . . . 177

    . . . . . . . . . . . . . . . . . 179 . . . . . . . . . 180 . . . . . . . . . 180 . . . . . . . . . . . . . 185 . . . . . . . . . . . . 188

    / . . . . . . . 188SQL / . . . . . 189 . . . . . . . . . . . . 194ARRAY . . . . . . . . 195ARRAY . . . . . . . . 196CASE . . . . . . . . . . . . . . 197CAST . . . . . . . . . . . . 200OLAP . . . . . . . . . . . . 205ROW CHANGE . . . . . . . . . . 209 . . . . . . . . . . . . 210XMLCAST . . . . . . . . . . . 215

    . . . . . . . . . . . . . . . . 217 . . . . . . . . . . . . . . 218 . . . . . . . . . . . . 220BETWEEN . . . . . . . . . . . 223DISTINCT . . . . . . . . . . . . 224EXISTS . . . . . . . . . . . . 226IN . . . . . . . . . . . . . . 227LIKE . . . . . . . . . . . . . 229NULL . . . . . . . . . . . . . 234

    . . . . . . . . . . . . . . . 235

    3 . . . . . . . . 237 . . . . . . . . . . . . . . . 247

    ARRAY_AGG . . . . . . . . . . . . 248AVG . . . . . . . . . . . . . . . 250COUNT . . . . . . . . . . . . . . 252COUNT_BIG. . . . . . . . . . . . . 253GROUPING . . . . . . . . . . . . . 254MAX . . . . . . . . . . . . . . . 256MIN . . . . . . . . . . . . . . . 258STDDEV_POP STDDEV . . . . . . 260STDDEV_SAMP . . . . . . . . . . . 261SUM . . . . . . . . . . . . . . . 262VAR_POP VARIANCE VAR . . 263VARIANCE_SAMP VAR_SAMP. . . . 264XMLAGG. . . . . . . . . . . . . . 265XMLGROUP . . . . . . . . . . . . . 267

    . . . . . . . . . . . . . 270ABS . . . . . . . . . . . . . . . 271ACOS . . . . . . . . . . . . . . . 272ADD_MONTHS . . . . . . . . . . . . 273ANTILOG . . . . . . . . . . . . . 275ASCII . . . . . . . . . . . . . . . 276ASIN . . . . . . . . . . . . . . . 277ATAN . . . . . . . . . . . . . . . 278ATANH . . . . . . . . . . . . . . 279ATAN2 . . . . . . . . . . . . . . 280BIGINT . . . . . . . . . . . . . . 281BINARY . . . . . . . . . . . . . . 283BITANDBITANDNOTBITORBITXOR BITNOT . . . . . . . . . . . . 284BIT_LENGTH . . . . . . . . . . . . 286BLOB . . . . . . . . . . . . . . . 287CARDINALITY . . . . . . . . . . . . 289CEILING . . . . . . . . . . . . . . 290

    iv IBM i: DB2 for i SQL

    ||

    ||

    ||

    ||||

    ||

    ||

    ||||

    |||

    ||

  • CHAR . . . . . . . . . . . . . . . 292CHARACTER_LENGTH . . . . . . . . . 298CHR . . . . . . . . . . . . . . . 299CLOB . . . . . . . . . . . . . . . 300COALESCE . . . . . . . . . . . . . 305COMPARE_DECFLOAT . . . . . . . . . 306CONCAT . . . . . . . . . . . . . . 308CONTAINS . . . . . . . . . . . . . 309COS . . . . . . . . . . . . . . . 312COSH . . . . . . . . . . . . . . . 313COT . . . . . . . . . . . . . . . 314CURDATE . . . . . . . . . . . . . 315CURTIME . . . . . . . . . . . . . 316DATABASE . . . . . . . . . . . . . 317DATAPARTITIONNAME. . . . . . . . . 318DATAPARTITIONNUM . . . . . . . . . 319DATE . . . . . . . . . . . . . . . 320DAY . . . . . . . . . . . . . . . 322DAYNAME . . . . . . . . . . . . . 323DAYOFMONTH . . . . . . . . . . . 324DAYOFWEEK . . . . . . . . . . . . 325DAYOFWEEK_ISO . . . . . . . . . . 326DAYOFYEAR . . . . . . . . . . . . 327DAYS . . . . . . . . . . . . . . . 328DBCLOB . . . . . . . . . . . . . . 329DBPARTITIONNAME . . . . . . . . . . 335DBPARTITIONNUM . . . . . . . . . . 336DECFLOAT . . . . . . . . . . . . . 337DECFLOAT_SORTKEY . . . . . . . . . 339DECIMAL DEC . . . . . . . . . 340DECRYPT_BITDECRYPT_BINARYDECRYPT_CHAR DECRYPT_DB . . . 343DEGREES . . . . . . . . . . . . . 347DIFFERENCE . . . . . . . . . . . . 348DIGITS . . . . . . . . . . . . . . 349DLCOMMENT . . . . . . . . . . . . 350DLLINKTYPE . . . . . . . . . . . . 351DLURLCOMPLETE . . . . . . . . . . 352DLURLPATH . . . . . . . . . . . . 353DLURLPATHONLY . . . . . . . . . . 354DLURLSCHEME . . . . . . . . . . . 355DLURLSERVER . . . . . . . . . . . 356DLVALUE . . . . . . . . . . . . . 357DOUBLE_PRECISION DOUBLE . . . 359ENCRYPT_AES . . . . . . . . . . . . 361ENCRYPT_RC2 . . . . . . . . . . . . 364ENCRYPT_TDES . . . . . . . . . . . 367EXP . . . . . . . . . . . . . . . 370EXTRACT . . . . . . . . . . . . . 371FLOAT . . . . . . . . . . . . . . 374FLOOR . . . . . . . . . . . . . . 375GENERATE_UNIQUE . . . . . . . . . . 376GET_BLOB_FROM_FILE. . . . . . . . . 378GET_CLOB_FROM_FILE. . . . . . . . . 379GET_DBCLOB_FROM_FILE . . . . . . . 380GET_XML_FILE . . . . . . . . . . . 381

    GETHINT. . . . . . . . . . . . . . 382GRAPHIC. . . . . . . . . . . . . . 383HASH . . . . . . . . . . . . . . . 388HASHED_VALUE . . . . . . . . . . . 389HEX . . . . . . . . . . . . . . . 390HOUR . . . . . . . . . . . . . . . 392IDENTITY_VAL_LOCAL. . . . . . . . . 393IFNULL . . . . . . . . . . . . . . 398INSERT . . . . . . . . . . . . . . 399INTEGER INT . . . . . . . . . 402JULIAN_DAY . . . . . . . . . . . . 404LAND . . . . . . . . . . . . . . . 405LAST_DAY . . . . . . . . . . . . . 406LCASE . . . . . . . . . . . . . . 407LEFT . . . . . . . . . . . . . . . 408LENGTH . . . . . . . . . . . . . . 410LN . . . . . . . . . . . . . . . . 412LNOT . . . . . . . . . . . . . . . 413LOCATE . . . . . . . . . . . . . . 414LOG10. . . . . . . . . . . . . . . 416LOR . . . . . . . . . . . . . . . 417LOWER . . . . . . . . . . . . . . 418LTRIM . . . . . . . . . . . . . . 419MAX . . . . . . . . . . . . . . . 420MAX_CARDINALITY. . . . . . . . . . 421MICROSECOND . . . . . . . . . . . 422MIDNIGHT_SECONDS . . . . . . . . . 423MIN . . . . . . . . . . . . . . . 424MINUTE . . . . . . . . . . . . . . 425MOD . . . . . . . . . . . . . . . 426MONTH . . . . . . . . . . . . . . 428MONTHNAME . . . . . . . . . . . . 429MONTHS_BETWEEN . . . . . . . . . . 430MQREAD. . . . . . . . . . . . . . 432MQREADCLOB. . . . . . . . . . . . 434MQRECEIVE . . . . . . . . . . . . 436MQRECEIVECLOB . . . . . . . . . . 438MQSEND . . . . . . . . . . . . . . 440MULTIPLY_ALT . . . . . . . . . . . 442NEXT_DAY . . . . . . . . . . . . . 444NORMALIZE_DECFLOAT . . . . . . . . 446NOW . . . . . . . . . . . . . . . 447NULLIF . . . . . . . . . . . . . . 448OCTET_LENGTH . . . . . . . . . . . 449PI . . . . . . . . . . . . . . . . 450POSITION . . . . . . . . . . . . . 451POSSTR . . . . . . . . . . . . . . 453POWER . . . . . . . . . . . . . . 455QUANTIZE . . . . . . . . . . . . . 456QUARTER . . . . . . . . . . . . . 458RADIANS . . . . . . . . . . . . . 459RAISE_ERROR . . . . . . . . . . . . 460RAND . . . . . . . . . . . . . . . 461REAL . . . . . . . . . . . . . . . 462REPEAT . . . . . . . . . . . . . . 464REPLACE . . . . . . . . . . . . . 466

    v

    ||||||||

    ||

    ||||||||||

  • RID. . . . . . . . . . . . . . . . 468RIGHT. . . . . . . . . . . . . . . 469ROUND . . . . . . . . . . . . . . 471ROUND_TIMESTAMP . . . . . . . . . 473ROWID . . . . . . . . . . . . . . 476RRN . . . . . . . . . . . . . . . 477RTRIM . . . . . . . . . . . . . . 478SCORE . . . . . . . . . . . . . . 480SECOND . . . . . . . . . . . . . . 483SIGN . . . . . . . . . . . . . . . 484SIN . . . . . . . . . . . . . . . . 485SINH . . . . . . . . . . . . . . . 486SMALLINT . . . . . . . . . . . . . 487SOUNDEX . . . . . . . . . . . . . 489SPACE . . . . . . . . . . . . . . 490SQRT . . . . . . . . . . . . . . . 491STRIP . . . . . . . . . . . . . . . 492SUBSTR . . . . . . . . . . . . . . 493SUBSTRING . . . . . . . . . . . . . 496TAN . . . . . . . . . . . . . . . 498TANH . . . . . . . . . . . . . . . 499TIME . . . . . . . . . . . . . . . 500TIMESTAMP . . . . . . . . . . . . 501TIMESTAMP_FORMAT . . . . . . . . . 503TIMESTAMP_ISO . . . . . . . . . . . 506TIMESTAMPDIFF . . . . . . . . . . . 507TOTALORDER . . . . . . . . . . . . 510TRANSLATE . . . . . . . . . . . . 511TRIM . . . . . . . . . . . . . . . 514TRIM_ARRAY . . . . . . . . . . . . 516TRUNCATE TRUNC . . . . . . . 517TRUNC_TIMESTAMP. . . . . . . . . . 519UCASE . . . . . . . . . . . . . . 520UPPER . . . . . . . . . . . . . . 521VALUE . . . . . . . . . . . . . . 522VARBINARY . . . . . . . . . . . . 523VARCHAR . . . . . . . . . . . . . 524VARCHAR_FORMAT . . . . . . . . . . 530VARGRAPHIC . . . . . . . . . . . . 533WEEK . . . . . . . . . . . . . . . 539WEEK_ISO . . . . . . . . . . . . . 540XMLATTRIBUTES. . . . . . . . . . . 541XMLCOMMENT . . . . . . . . . . . 543XMLCONCAT . . . . . . . . . . . . 544XMLDOCUMENT . . . . . . . . . . . 546XMLELEMENT . . . . . . . . . . . . 547XMLFOREST . . . . . . . . . . . . 551XMLNAMESPACES . . . . . . . . . . 554XMLPARSE . . . . . . . . . . . . . 557XMLPI . . . . . . . . . . . . . . 559XMLROW . . . . . . . . . . . . . 560XMLSERIALIZE . . . . . . . . . . . 562XMLTEXT . . . . . . . . . . . . . 565XMLVALIDATE . . . . . . . . . . . 566XOR . . . . . . . . . . . . . . . 571XSLTRANSFORM . . . . . . . . . . . 572

    YEAR . . . . . . . . . . . . . . . 576ZONED . . . . . . . . . . . . . . 577

    . . . . . . . . . . . . . . . . 580MQREADALL . . . . . . . . . . . . 581MQREADALLCLOB . . . . . . . . . . 583MQRECEIVEALL . . . . . . . . . . . 585MQRECEIVEALLCLOB . . . . . . . . . 588

    4 . . . . . . . 591XDBDECOMPXML . . . . . . . . . . . 592XSR_ADDSCHEMADOC . . . . . . . . . . 594XSR_COMPLETE . . . . . . . . . . . . 596XSR_REGISTER . . . . . . . . . . . . 598XSR_REMOVE . . . . . . . . . . . . . 600

    5 . . . . . . . . . . . . 603 . . . . . . . . . . . . . . . . 603 . . . . . . . . . . . . . . . . 604

    SELECT . . . . . . . . . . . . 605FROM . . . . . . . . . . . . . 609WHERE . . . . . . . . . . . . 619GROUP-BY . . . . . . . . . . . 620HAVING . . . . . . . . . . . . 634ORDER BY . . . . . . . . . . . 635FETCH FIRST . . . . . . . . . . 638 . . . . . . . . . . . . . 639

    . . . . . . . . . . . . . . . . 641 . . . . . . . . . . . . . 645

    . . . . . . . . . . . 647 . . . . . . . . . . . . . . 648UPDATE . . . . . . . . . . . . 656READ-ONLY . . . . . . . . . . . 657OPTIMIZE . . . . . . . . . . . 658ISOLATION . . . . . . . . . . . 659concurrent-access-resolution-clause . . . . . . 661SELECT . . . . . . . 662

    6 . . . . . . . 665SQL . . . . . . 672 . . . . . . . . . . . . 673 . . . . . . . . . . . 674select . . . . 674select . . . . 675 . . . . . . . . . . . . 675

    SQL . . . . . . . . . . . . . 675 . . . . . . . . . . 676SQL . . . . . . . . . . . . 677ALLOCATE CURSOR . . . . . . . . . . 679ALLOCATE DESCRIPTOR . . . . . . . . . 681ALTER FUNCTION () . . . . . . 683ALTER FUNCTION () . . . . . . . . 689ALTER FUNCTION (SQL ). . . . . . 695ALTER FUNCTION (SQL ) . . . . . . . . 702ALTER PROCEDURE () . . . . . . . . 710

    vi IBM i: DB2 for i SQL

    ||

    ||||||||||||||||||||||||||

    ||

    ||||||||||

    ||||||||||||

    ||

    ||

  • ALTER PROCEDURE (SQL) . . . . . . . . 716ALTER SEQUENCE . . . . . . . . . . . 726ALTER TABLE . . . . . . . . . . . . . 732ASSOCIATE LOCATORS . . . . . . . . . 770BEGIN DECLARE SECTION . . . . . . . . 776CALL . . . . . . . . . . . . . . . . 778CLOSE . . . . . . . . . . . . . . . 787COMMENT . . . . . . . . . . . . . . 789COMMIT . . . . . . . . . . . . . . . 800CONNECT ( 1) . . . . . . . . . . 804CONNECT ( 2) . . . . . . . . . . 810CREATE ALIAS . . . . . . . . . . . . 816CREATE FUNCTION . . . . . . . . . . . 821CREATE FUNCTION () . . . . . 825CREATE FUNCTION () . . . . . . . . 847CREATE FUNCTION () . . . . . . . 867CREATE FUNCTION (SQL ) . . . . . 878CREATE FUNCTION (SQL ) . . . . . . . 890CREATE INDEX . . . . . . . . . . . . 902CREATE PROCEDURE . . . . . . . . . . 910CREATE PROCEDURE () . . . . . . . . 912CREATE PROCEDURE (SQL) . . . . . . . . 930CREATE SCHEMA . . . . . . . . . . . 944CREATE SEQUENCE . . . . . . . . . . . 950CREATE TABLE . . . . . . . . . . . . 958CREATE TRIGGER . . . . . . . . . . . 1010CREATE TYPE () . . . . . . . . . . 1027CREATE TYPE () . . . . . . . . . . 1032CREATE VARIABLE . . . . . . . . . . 1040CREATE VIEW . . . . . . . . . . . . 1046DEALLOCATE DESCRIPTOR. . . . . . . . 1056DECLARE CURSOR . . . . . . . . . . . 1057DECLARE GLOBAL TEMPORARY TABLE . . . 1068DECLARE PROCEDURE . . . . . . . . . 1085DECLARE STATEMENT . . . . . . . . . 1096DECLARE VARIABLE . . . . . . . . . . 1098DELETE . . . . . . . . . . . . . . . 1101DESCRIBE . . . . . . . . . . . . . . 1108DESCRIBE CURSOR . . . . . . . . . . 1114DESCRIBE INPUT . . . . . . . . . . . 1117DESCRIBE PROCEDURE . . . . . . . . . 1121DESCRIBE TABLE . . . . . . . . . . . 1128DISCONNECT . . . . . . . . . . . . . 1133DROP . . . . . . . . . . . . . . . 1136END DECLARE SECTION. . . . . . . . . 1149EXECUTE . . . . . . . . . . . . . . 1150EXECUTE IMMEDIATE . . . . . . . . . 1155FETCH . . . . . . . . . . . . . . . 1158FREE LOCATOR . . . . . . . . . . . . 1166GET DESCRIPTOR . . . . . . . . . . . 1167GET DIAGNOSTICS . . . . . . . . . . . 1180GRANT () . . . 1206GRANT () . . . . . . . 1215GRANT () . . . . . . . . . 1218GRANT () . . . . . . . . . 1221GRANT () . . . . . . . 1224

    GRANT () . . . . . . . . . . 1230GRANT (XML ) . . . . . . . 1233HOLD LOCATOR . . . . . . . . . . . 1236INCLUDE . . . . . . . . . . . . . . 1238INSERT . . . . . . . . . . . . . . . 1240LABEL . . . . . . . . . . . . . . . 1252LOCK TABLE . . . . . . . . . . . . . 1262MERGE . . . . . . . . . . . . . . . 1264OPEN . . . . . . . . . . . . . . . 1277PREPARE . . . . . . . . . . . . . . 1284REFRESH TABLE . . . . . . . . . . . 1301RELEASE () . . . . . . . . . . . . 1303RELEASE SAVEPOINT . . . . . . . . . . 1306RENAME . . . . . . . . . . . . . . 1307REVOKE () . . . 1310REVOKE () . . . . . . . 1318REVOKE () . . . . . . . . 1320REVOKE () . . . . . . . . 1322REVOKE () . . . . . . . 1324REVOKE () . . . . . . . . . . 1328REVOKE (XML ) . . . . . . . 1330ROLLBACK . . . . . . . . . . . . . 1332SAVEPOINT . . . . . . . . . . . . . 1337SELECT . . . . . . . . . . . . . . . 1340SELECT INTO. . . . . . . . . . . . . 1341SET CONNECTION . . . . . . . . . . . 1344SET CURRENT DEBUG MODE . . . . . . . 1348SET CURRENT DECFLOAT ROUNDING MODE 1350SET CURRENT DEGREE . . . . . . . . . 1353SET CURRENT IMPLICIT XMLPARSE OPTION 1356SET DESCRIPTOR . . . . . . . . . . . 1358SET ENCRYPTION PASSWORD. . . . . . . 1363SET OPTION . . . . . . . . . . . . . 1366SET PATH . . . . . . . . . . . . . . 1387SET RESULT SETS . . . . . . . . . . . 1390SET SCHEMA . . . . . . . . . . . . . 1393SET SESSION AUTHORIZATION . . . . . . 1396SET TRANSACTION . . . . . . . . . . 1399SET . . . . . . . . . . . . . 1403SET . . . . . . . . . . . . . . 1405SIGNAL . . . . . . . . . . . . . . . 1408UPDATE . . . . . . . . . . . . . . 1412VALUES . . . . . . . . . . . . . . 1422VALUES INTO . . . . . . . . . . . . 1424WHENEVER . . . . . . . . . . . . . 1427

    7 SQL 1429SQL . . . . . 1431SQL . . . . . . . . . . . 1433SQL . . . . . . . . . . 1434SQL . . . . . . . . . . . 1435 . . . . . . . . 1436SQL . . . . 1437 . . . . . . . . . 1441CALL . . . . . . . . . . 1444

    vii

    ||

    ||

    ||

    ||

    ||

    ||

    ||

    ||

    ||

    ||

    ||

  • (CASE) . . . . . . . 1446 (compound) . . . . . . 1448FOR . . . . . . . . . . 1458GET DIAGNOSTICS . . . . . 1460GOTO . . . . . . . . . . 1468IF . . . . . . . . . . . 1470ITERATE . . . . . . . . . 1472 (LEAVE) . . . . . . . 1474 (LOOP) . . . . . . . 1476 (REPEAT) . . . . . . . 1478 (RESIGNAL) . . . . . 1480 (RETURN) . . . . . . 1485 (SIGNAL) . . . . . . . 1488WHILE . . . . . . . . . 1493

    A. SQL . . . . . . . . 1495

    B. SQL 1503SQL . . . 1504 SQL . . . . . . . . . . . 1507 . . . . . . . . . . . . . . 1510

    CONNECT ( 1) CONNECT (2) . . . . . . . . . . . . 1513

    C. SQLCA (SQL ) . . . . 1515 . . . . . . . . . . . 1515INCLUDE SQLCA . . . . . . . . . 1521

    D. SQLDA (SQL ) 1525SQLDA . . . . . 1527SQLVAR . . . 1530SQLTYPE SQLLEN . . . . . . . . . . 1534SQLDATA SQLNAME CCSID 1537 SQLTYPES . . . . 1537INCLUDE SQLDA . . . . . . . . . 1538

    E. CCSID . . . . . . . . 1543

    F. DB2 for i . . . . . . . . . . . . . . . . 1561IBM i . . . . . . 1565

    SYSCATALOGS . . . . . . . . . . . 1567SYSCHKCST . . . . . . . . . . . . 1568SYSCOLUMNS . . . . . . . . . . . 1569SYSCOLUMNSTAT . . . . . . . . . . 1577SYSCST . . . . . . . . . . . . . . 1580SYSCSTCOL . . . . . . . . . . . . 1582SYSCSTDEP . . . . . . . . . . . . 1583SYSFIELDS. . . . . . . . . . . . . 1584SYSFUNCS . . . . . . . . . . . . . 1589SYSINDEXES . . . . . . . . . . . . 1594SYSINDEXSTAT . . . . . . . . . . . 1596SYSJARCONTENTS . . . . . . . . . . 1602SYSJAROBJECTS. . . . . . . . . . . 1603

    SYSKEYCST . . . . . . . . . . . . 1604SYSKEYS . . . . . . . . . . . . . 1605SYSMQTSTAT. . . . . . . . . . . . 1606SYSPACKAGE. . . . . . . . . . . . 1610SYSPACKAGESTAT . . . . . . . . . . 1612SYSPARMS. . . . . . . . . . . . . 1617SYSPARTITIONINDEXES . . . . . . . . 1621SYSPARTITIONINDEXSTAT . . . . . . . 1628SYSPARTITIONMQTS . . . . . . . . . 1633SYSPARTITIONSTAT . . . . . . . . . 1637SYSPROCS . . . . . . . . . . . . . 1640SYSPROGRAMSTAT . . . . . . . . . 1644SYSREFCST . . . . . . . . . . . . 1652SYSROUTINEDEP . . . . . . . . . . 1653SYSROUTINES . . . . . . . . . . . 1655SYSSCHEMAS. . . . . . . . . . . . 1661SYSSEQUENCES . . . . . . . . . . . 1662SYSTABLEDEP . . . . . . . . . . . 1664SYSTABLEINDEXSTAT . . . . . . . . 1665SYSTABLES . . . . . . . . . . . . 1671SYSTABLESTAT . . . . . . . . . . . 1674SYSTRIGCOL . . . . . . . . . . . . 1677SYSTRIGDEP . . . . . . . . . . . . 1678SYSTRIGGERS . . . . . . . . . . . 1679SYSTRIGUPD . . . . . . . . . . . . 1683SYSTYPES . . . . . . . . . . . . . 1684SYSVARIABLEDEP . . . . . . . . . . 1690SYSVARIABLES . . . . . . . . . . . 1691SYSVIEWDEP . . . . . . . . . . . . 1697SYSVIEWS . . . . . . . . . . . . . 1699XSRANNOTATIONINFO . . . . . . . . 1701XSROBJECTCOMPONENTS . . . . . . . 1702XSROBJECTHIERARCHIES . . . . . . . 1703XSROBJECTS . . . . . . . . . . . . 1704

    ODBC JDBC . . . 1705SQLCOLPRIVILEGES . . . . . . . . . 1706SQLCOLUMNS . . . . . . . . . . . 1707SQLFOREIGNKEYS . . . . . . . . . . 1713SQLFUNCTIONCOLS . . . . . . . . . 1714SQLFUNCTIONS . . . . . . . . . . . 1721SQLPRIMARYKEYS . . . . . . . . . . 1722SQLPROCEDURECOLS . . . . . . . . . 1723SQLPROCEDURES . . . . . . . . . . 1730SQLSCHEMAS . . . . . . . . . . . 1731SQLSPECIALCOLUMNS . . . . . . . . 1732SQLSTATISTICS . . . . . . . . . . . 1735SQLTABLEPRIVILEGES . . . . . . . . 1736SQLTABLES . . . . . . . . . . . . 1737SQLTYPEINFO . . . . . . . . . . . 1738SQLUDTS . . . . . . . . . . . . . 1745

    ANS ISO . . . . . 1748 . . . . . . . . . . . . . . . 1749CHARACTER_SETS . . . . . . . . . . 1750CHECK_CONSTRAINTS . . . . . . . . 1751COLUMNS . . . . . . . . . . . . . 1752INFORMATION_SCHEMA_CATALOG_NAME 1756

    viii IBM i: DB2 for i SQL

    ||

    ||||

    ||||||||

  • PARAMETERS . . . . . . . . . . . 1757REFERENTIAL_CONSTRAINTS . . . . . . 1761ROUTINES . . . . . . . . . . . . . 1762SCHEMATA . . . . . . . . . . . . 1771SQL_FEATURES . . . . . . . . . . . 1772SQL_LANGUAGES . . . . . . . . . . 1773SQL_SIZING . . . . . . . . . . . . 1774TABLE_CONSTRAINTS . . . . . . . . 1775TABLES . . . . . . . . . . . . . . 1776USER_DEFINED_TYPES . . . . . . . . 1777VIEWS . . . . . . . . . . . . . . 1781

    G. . . . 1783: . . . . . . . . . 1785 . . . . . . . . . 1786: CONTAINS SCORE . . . 1787XML . . . . . . . . . . . 1789

    XML . . . . . . . . 1789

    : XPath . . . . . . . . 1791 . . . . . . . 1793

    H. . . . . . . . . 1795

    I. 1797 . . . . . . . . . . . 1797 . . . . . . . . . . . . . . . 1798

    J. . . . . . . . . . . 1801

    K. . . . . . . . . . 1805 . . . . 1807 . . . . . . . . . . . . . . . . 1807 . . . . . . . . . . . . . . 1807

    . . . . . . . . . . . . . . . 1809

    ix

    ||

  • x IBM i: DB2 for i SQL

  • (DB2 for i SQL )

    SQL DB2 for IBM i (SQL) SQL

    DB2 for i 7.1 IBM SQL

    v ISO () 9075: 2003 SQL - v ISO () 9075-3: 2003 SQL - 3 : (SQL/CLI)

    v ISO () 9075-4: 2003 SQL - 4 : (SQL/PSM)

    v ISO () 9075-14: 2006 SQL - 14 : XML (SQL/XML)

    v ANSI () X3.135-2003 SQL - v ANSI () X3.1353: 2003 SQL - 3 : (SQL/CLI)

    v ANSI () X3.1354: 2003 SQL - 4 : (SQL/PSM)

    v XML (http://www.w3.org/XML/Schema)

    1.

    SQL

    SQL SQL (CRTSQLxxx) SQLCURRULE(*STD) SET OPTIONSQLCURRULE (CRTSQLxxx SQL )

    SQL SQL (RUNSQLSTM) SQLCURRULE(*STD) (RUNSQLSTM SQL )

    Copyright IBM Corp. 1998, 2010 xi

    |

    |

    |

    |

  • 1. ()

    SQL

    (CLI)

    SQL_ATTR_HEX_LITERALS (CLI SQL (ODBC))

    IBM Developer Kit for Java JDBC SQLJ

    16 (JDBC SQLJ IBMDeveloper Kit for Java)

    IBM i Access Family ODBC ODBC

    ODBC 16 (ODBC System i Access)

    IBM i Access Family OLE DB

    Provider OLE DB

    16 (OLE DB System i Access )

    IBM i Access FamilyADO .NET ADO .NET

    HexParserOption(ADO .NET System i Access )

    IBM Toolbox for Java JDBC

    JDBC SQL 16 (JDBC System i Access)(IBM Toolbox for Java IBMToolbox for Java)

    SQL SQL

    v SQL v SQL SQL 1

    CALL QSYS.CREATE_SQL_SAMPLE ('')

    v SQL v COBOL (COBOL ) APOST APOSTSQL SQL (')

    v *HEX

    (DB2 for i SQL )

    xii IBM i: DB2 for i SQL

  • v

    | |

    v ()

    v

    v

    1 1

    (DB2 for i SQL )

    (DB2 for i SQL ) xiii

  • v

    ,

    v (: FROM)()

    v

    v

    v 1 parameter-block parameter-block

    parameter-block

    parameter-block:

    parameter1parameter2 parameter3

    parameter4

    (DB2 for i SQL )

    xiv IBM i: DB2 for i SQL

  • SQL

    v v v

    X' 0E' X' 0F' sbcs-string 1 dbcs-string 2 EBCDIC X' 427D DBCS EBCDIC X' 42C7 DBCS G

    Unicode

    Unicode UTF-16 U+n (n 4 6 16 ) 16 4 UTF-16

    U+00001 U+0012 U+0123 U+1234 U+12345 U+123456

    SQL IBM

    (DB2 for i SQL )

    (DB2 for i SQL ) xv

    |

  • IBM

    http://www.ibm.com/able

    Accessibility Center SQL 2

    v System i NavigatorIBM i DB2 for i Windows Windows

    v SQL Windows (IBM ) IBM Accessibility Center

    IBM SQLInformation Center SQL SQL 2

    v SQL Query Manager

    SQL Query Manager SQL IBMDB2 Query Manager and SQL Development Kit for i SQL Query Manager SQL

    Query

    v SQL

    SQL SQL System i 1 System i NavigatorInformation Center

    SQL PDF PDF

    PDF SQL

    PDF

    PDF

    1. PDF ()

    SQL

    xvi IBM i: DB2 for i SQL

    http://www.ibm.com/ablehttp://www.ibm.com/ablehttp://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/topic/rzatc/sc415212.pdf

  • 2. PDF

    3. PDF

    4.

    Adobe Reader

    PDF Adobe Reader Adobe Web

    (http://get.adobe.com/reader/)

    IBM i 7.1 IBM i 7.1

    v 3 v XML v v SQL v XML v MQ Series v BITANDBITANDNOTBITORBITXOR BITNOT v v SQL v CALL v CREATE REPLACE v ALTER TABLE ADD COLUMN BEFOREv v ID v INCLUDEv MERGE v SQL v

    Information Center

    v v

    SQL

    (DB2 for i SQL ) xvii

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    http://get.adobe.com/reader/http://get.adobe.com/reader/

  • SQL

    xviii IBM i: DB2 for i SQL

  • 1

    (SQL)

    System i 3

    System i 1 System i System i i5/OS Information Center

    System i ADDRDBDIRE (RDB ) System i

    System i 1 1 System i 1

    Copyright IBM Corp. 1998, 2010 1

    |

    |

    |

    |

    |

    |

  • v QTEMP

    v

    v

    v 1

    v

    System i 1 System i System i System i i5/OS Information Center

    ADDRDBDIRE (RDB ) System i Navigator

    System i System i ADDRDBDIRE (RDB ) System i

    System i DB2 for i

    2 IBM i: DB2 for i SQL

  • (SQL) (SQL) 1

    SQL SQL

    SQL SQL SQL SQL SQL SQL

    SQL

    SQL () (COBOLC Java )

    SQL () SQL SQL

    SQL SQL

    SQL

    SQL SQL SQL SQL SQL SQL PREPARE EXECUTE IMMEDIATE PREPAREDECLARECURSORDESCRIBE EXECUTE SQL

    (SQL)

    1 3

  • REXX SQL SQL SQL (CLI) SQL SQL

    SQL

    SQL QSQPRCED API SQL SQL API SQL API SQL i5/OS Information Center API

    SQL

    SQL SQL SQL SQL

    DB2 for i STRSQL STRQM Systemi Navigator SQL SQL SQL Query Manager

    SQL Open DatabaseConnectivity

    DB2 (CLI) SQL DB2 CLI ILEDB2 for i SQL CLI Microsoft ODBC Open Database Connectivity (ODBC) SQL SQL

    DB2 CLI SQL

    v CLI DB2

    (SQL)

    4 IBM i: DB2 for i SQL

    http://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/topic/rzatc/sc415212.pdfhttp://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/topic/rzatc/sc415212.pdf

  • v CLI

    DB2 UDB for iSeries SQL (ODBC)

    Java DataBase Connectivity (JDBC) SQL forJava (SQLJ)

    DB2 for i 2 Java APIJavaDatabase Connectivity (JDBC) embedded SQL for Java (SQLJ) DB2 Java

    JDBC Java DB2 CLI DB2 for i 2 JDBC IBM Developer Kit for Java IBM Toolbox for Java JDBCIBM Toolbox for Java JDBC IBM Toolbox for Java

    JDBC SQL SQLJ SQL JDBC SQLJ SQL SQLJ SQLJ Java

    JDBC SQLJ Developer Kit forJava

    OLE DB and ADO (ActiveX Data Object)

    IBM i Access for Windows Windows PC DB2 /Programmer's Toolkit OLE DB Provider i5/OS Information Center IBM i Access for Windows OLE DB Provider

    .NET

    IBM i Access for Windows Windows PC Windows /.NET Provider i5/OS Information Center System i Access for Windows .NET Provider

    (SQL)

    1 5

  • SQL ()

    IBM i SQL

    XML XMLXML

    SESSION 'SYS' 'Q'

    SESSION SESSION 'SYS' 'Q'

    CREATE SCHEMA 1 944CREATE SCHEMA

    () ()

    C

    CREATE SCHEMA C

    C X

    CREATE TABLE C.X (COL1 INT)

    1. CRTLIB CL CREATE SCHEMA CRTLIB

    6 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

  • n n

    3

    v CREATE TABLE 958CREATETABLE

    IBM i SQL

    IBM i SQL 958CREATE TABLE

    CREATE TABLE ()

    SQL 958CREATE TABLE

    1 () 2 1

    1

    1 7

  • DB2 UDB for iSeries

    v 603 5

    v DECLARE GLOBAL TEMPORARY TABLE

    1

    3

    v 1 1 1 2

    v 1 1 ID ID ID

    v / $20 000

    INSERT UPDATE

    8 IBM i: DB2 for i SQL

  • 2

    v CREATE TABLE ALTER TABLE 1 NULL

    v CREATE TABLE ALTER TABLE UNIQUE 1

    UNIQUE

    CREATE UNIQUE INDEX

    732ALTER TABLE 958CREATE TABLE

    v v NULL

    CREATE TABLE ALTER TABLEINSERTUPDATE DELETE RESTRICT

    RESTRICT 1 SQL

    v CASCADE

    v SET NULL SET DEFAULT 1

    v CASCADE

    1 9

  • 1

    1

    1

    T T T

    1

    p p p

    NULL NULL NULL

    NO ACTION RESTRICT NULL NULL NULL

    RESTRICTNO ACTIONCASCADE SET NULL SET DEFAULT SET NULL NULL

    ()P D p

    v RESTRICT NO ACTION

    v CASCADE D p

    10 IBM i: DB2 for i SQL

  • v SET NULL D p NULL NULL

    v SET DEFAULT D p

    RESTRICT NO ACTION RESTRICT NO ACTION

    P

    v D P RESTRICT NO ACTION D

    v D P SET NULL D D

    v D P SET DEFAULT D D

    v D P CASCADE D D

    D P D D D

    P P P P P

    732ALTER TABLE958CREATE TABLE

    FALSE

    T T 235

    1

    v v

    1 11

  • FALSE

    732ALTER TABLE958CREATE TABLE

    1

    IBM i SQL 902CREATE INDEX

    2

    v 2

    2

    v

    12 4

    CREATE INDEX 902CREATE INDEX

    Indexing and statistics strategies for DB2 for i

    12 IBM i: DB2 for i SQL

    http://www.ibm.com/servers/enable/site/education/abstracts/indxng_abs.html

  • SQL

    v ()

    v CONNECTSET CONNECTIONDISCONNECT RELEASE

    v SET SESSION AUTHORIZATION

    1010CREATE TRIGGER

    (10 % ) 1

    ()

    1010CREATE TRIGGER2

    CREATE TRIGGER (ADDPFTRG) CL DROP TRIGGER (RMVPFTRG) CL CREATE TRIGGER

    2. ADDPFTRG CL

    1 13

  • 1010CREATE TRIGGER SQL

    v v SQL

    v

    1 SQL SQL

    () () SET 1 1

    1

    SQL

    NC ()

    14 IBM i: DB2 for i SQL

  • v

    v (RESTRICT )

    SQL

    v ALWREPCHG(*YES) 1 SQL

    SQL SQL

    v ALWREPCHG(*NO) 1 SQL

    SQL NC () SQL

    SQL NC () SQL

    CREATE TRIGGER ALWREPCHG(*YES)

    1

    SQL SELECT

    1 15

  • INSERT UPDATE DELETE DELETE

    IBM i SQL

    IBM i SQL

    CREATE VIEW 1046CREATE VIEW

    CREATE

    2

    v v

    ()SQLCREATE TYPE () 1032CREATE TYPE () 98

    1 SQL CREATE TYPE () SQL 1027CREATETYPE () 98

    16 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • 3 SQL

    IBM i SQL

    CREATE ALIAS 816CREATE ALIAS

    SQL

    SQL 4 SQL

    SQL DROP ( 1136DROP)

    SQL SELECT INTO SELECT INTO

    Process Extended Dynamic SQL (QSQPRCED) API Process Extended Dynamic SQL (QSQPRCED) API Process Extended Dynamic SQL (QSQPRCED) API DRDA

    3. SQL 816CREATE ALIAS

    4. SQL SQL SQL SQL

    1 17

  • i5/OS Information Center API

    QSQPRCED API IBM i Access for WindowsSQLODBCJDBCSQLJOLD DB .NET SQL

    SQL

    2

    SQL 171

    SQL SQL SQL SQL SQL

    CREATE FUNCTION 821CREATE FUNCTION

    ( ) SQL

    SQL SQL SQL SQLSQL

    CREATE PROCEDURE 910CREATEPROCEDURE

    SQL SQL SQL SQL

    18 IBM i: DB2 for i SQL

  • SQL 2 SQL 2 SQL

    SQL CALL CALL

    2 1

    1.

    1 19

  • () 10

    1

    v

    v v 1 ( 1)

    v

    ()

    2 2

    2.

    20 IBM i: DB2 for i SQL

  • CREATE SEQUENCE 210950CREATE SEQUENCE

    ID ID 1 ID

    ( ID ) SQL

    2

    *ALLOBJ

    GRANT

    PUBLIC PUBLIC ( ID) () SELECT PUBLIC UPDATE HERNANDZ HERNANDZ SELECT

    REVOKE 1 ID ID ID

    1 21

  • ID ID ID

    ID ID

    v v *OBJOPR*EXECUTE*ADD

    1 ID ()

    v SQL

    v

    SQL *PUBLIC *SYS *PUBLIC ((CRTAUT)) *SQL *PUBLIC *EXCLUDE

    *READ *READ *READ

    22 IBM i: DB2 for i SQL

    |

  • SELECT

    IBM SQL ANSI ISO ( )

    CREATE SCHEMA

    1561 F. DB2 for i

    SQL IBM i ODBCJDBCOLE DB.NET DRDA

    1 1 ILE LANGUAGE JAVA

    ILE

    1 1

    1 23

  • (STRCMTCTL) COMMIT(*NONE) SQL 1

    3 A B C

    25 4 A B A B C C

    3.

    24 IBM i: DB2 for i SQL

  • 2

    v

    4.

    1 25

  • v

    v

    LOCK TABLE COMMIT HOLD ROLLBACK HOLD

    v v DELETE UPDATE

    ( )1 1 1

    COMMIT(*CS)COMMIT(*RS)COMMIT(*RR)

    1 2 2

    26 IBM i: DB2 for i SQL

  • 1

    TO SAVEPOINT SQL ROLLBACK

    5. COMMIT ()

    1 27

  • (savepoint) 1 SQL SQL SAVEPOINT TO SAVEPOINT SQL ROLLBACK RELEASE SAVEPOINT

    6. ROLLBACK ()

    7. ROLLBACK () SAVEPOINT

    28 IBM i: DB2 for i SQL

  • IBM i 1 1

    SQL

    v (ACTGRP(*NEW) )

    v SQL SQL SQL

    ODBC APISQLSetEnvAttr() SQL_ATTR_SERVER_MODE SQL_TRUE

    Change Job APIQWTCHGJB() 'Server mode for Structured Query Language (SQL )'

    JAVA JDBC JDBC JDBC

    SQL SQL SQL

    v SQL ()

    v ODBC/CLIJDBCOLE DB .NET

    SQL (ODBC)

    SQL

    v DRDA v ALTER FUNCTION

    1 29

  • v ALTER PROCEDUREv ALTER SEQUENCEv ALTER TABLEv COMMENTv CREATE ALIASv CREATE FUNCTIONv CREATE INDEXv CREATE PROCEDUREv CREATE SCHEMAv CREATE SEQUENCEv CREATE TABLEv CREATE TRIGGERv CREATE TYPEv CREATE VARIABLEv CREATE VIEWv DECLARE GLOBAL TEMPORARY TABLEv DROPv GRANTv LABELv REFRESH TABLEv RENAMEv REVOKE

    i5/OS Information Center

    SQL

    P SQL

    v P P

    v P

    DELETEINSERTSELECT INTOUPDATESQL

    30 IBM i: DB2 for i SQL

    |

  • DB2 for i

    2.

    SQL

    SQL SQL (CRTSQLxxx) COMMIT SET OPTION COMMIT (CRTSQLxxx SQL )

    SQL SQL SQL SQL SQL SQL SQLSET OPTION (COMMIT)

    SQL SQL (RUNSQLSTM) COMMIT (RUNSQLSTM SQL )

    SET TRANSACTION SQL

    SQL(SET TRANSACTION 1399SET TRANSACTION)

    isolation-clause SELECTSELECT INTOINSERTUPDATEDELETE DECLARE CURSOR isolation-clause isolation-clause (isolation-clause 659ISOLATION )

    (CLI)

    SQL_ATTR_COMMIT SQL_TXN_ISOLATION(CLI SQL (ODBC))

    IBM Developer Kit for Java JDBC SQLJ

    (JDBC SQLJ IBMDeveloper Kit for Java)

    IBM i Access Family ODBC ODBC

    ODBC (ODBC System i Access)

    1 31

  • 2. ()

    SQL

    IBM Toolbox for Java JDBC

    JDBC (JDBC System i Access)(IBM Toolbox for Java IBMToolbox for Java)

    IBM i Access Family OLE DB

    Provider OLE DB

    IsolationLevel (OLE DB System i Access )

    IBM i Access FamilyADO .NET ADO .NET

    IsolationLevel(ADO .NET System i Access )

    2

    COMMIT(*RS)COMMIT(*CS) COMMIT(*RR) COMMIT(*UR) COMMIT(*NC)

    SQL

    DB2 for i 5

    32 IBM i: DB2 for i SQL

  • (RR)

    v

    v ( UPDATE )

    RR

    SQL 2003

    DB2 for i COMMIT(*RR)

    RR (RS)

    v

    v ( UPDATE )

    RR RS RS

    1. P1 n

    2. P2 1

    3. P1 P2

    5. WITH HOLD WITH HOLD

    6. WITH HOLD WITH HOLD

    1 33

  • RS

    SQL 2003

    DB2 for i COMMIT(*ALL) COMMIT(*RS)

    RR RS (CS) (UPDATE ) RR RS CS CS

    SQL 2003

    DB2 for i COMMIT(*CS)

    SELECT INTO FETCH INSERT (UR)

    v

    v ( UPDATE )

    CS

    SQL 2003

    DB2 for i COMMIT(*CHG) COMMIT(*UR)

    UR (NC)

    34 IBM i: DB2 for i SQL

  • v SQL LOCK TABLE

    v

    DB2 for i COMMIT(*NONE) COMMIT(*NC)

    : () RS RR

    NC UR CS RS RR

    P3 ()

    UR NC

    UR NC

    RS RR P2 ()

    1 35

  • NC UR CS RS RR

    P1 ()

    :

    v

    v UR NC

    CS

    :

    P1 UW1 UW2 UW1 COMMIT UW1 ROLLBACKUW2

    P2 UW1 UW2 COMMIT UW1

    P3 UW1 n UW2 1 UW1

    System i DB2 for i () IBM i ()

    1 System i DB2 UDB for iSeries

    DataLink DataLink

    36 IBM i: DB2 for i SQL

  • DB2 DB2

    v DB2

    v DataLink SQL

    DataLinker 2

    DataLink DB2

    DataLink

    1

    SQL 7 2

    v v

    SQL

    v A Z (26 )v a z (26 )v 0 9

    7.

    1 37

  • v . , : ; ? ( ) ' " / - _ & + = < >

    EBCDIC A X'C1' B X'C2' 1 1

    1 1

    v 1 EBCDICv 1 ASCIIv 2 EBCDICv 1 ASCII 2 ASCII 8

    v Unicode (UTF-8UCS-2 UTF-16 )

    Unicode Unicode 16 65,000 100 UTF-16 Unicode 3

    v UTF-8: Unicode Transformation Format8 ASCII UTF-8 UTF-8 CCSID 1208

    UTF-8 123 4 UTF-8 SBCS DBCS

    8. UTF-8 Unicode 1 2

    38 IBM i: DB2 for i SQL

  • v UCS-2: 2 1 16 UCS-2 UCS-2 CCSID 13488

    UCS-2 UTF-16 UTF-16 UCS-2 UTF-16 UCS-2 UTF-16 UTF-16 UCS-2 9

    v UTF-16: Unicode Transformation Format16 100 UTF-16 UTF-16 CCSID 1200

    UTF-8 UTF-16 1 1 1 () UTF-16 X'00E9' () X'00650301' ()

    1 UTF-16 X'00650301' ( ) X'00E9' ( ) 10

    UTF-8

    UTF-8 UTF-16 4 2 100 4

    2

    9. UCS-2 16 1

    10. (CPU 2.5 25 % )NOT NORMALIZED

    1 39

  • 1 1 (SBCS) 1 (1 2 ) () 2 (DBCS) (UCS-2 UTF-16)

    ID (CCSID) 1 CCSID 1 DB2 for i EBCDIC CCSID ASCII

    (Unicode ) CCSID

    40 IBM i: DB2 for i SQL

  • CCSID CCSID CCSID CCSID

    v 113v 122:v 130v 52

    CCSIDIBM Character Data Representation Architecture (CDRA) ID (CCSID) CCSID 2 () 2 1

    CCSID 1 CCSID

    CCSID CCSID

    CCSID CCSID CCSID IBM (CDRA)

    CCSID CCSID 1 (DBCS CCSID )

    CCSID

    11. CCSID 65535 CCSID DFTCCSID ( DFTCCSID CCSID) CCSID

    v FOR MIXED DATA CCSID 65535 v GRAPHIC VARGRAPHIC CCSID 65535 v DBCLOB CCSID 1200

    1 41

  • v CCSID (/)

    v (USER CURRENT SERVER )v CAST v CHARDATAPARTITIONNAMEDAYNAMEDBPARTITIONNAME

    DIGITSHEXMONTHNAMESOUNDEXSPACE VARCHAR_FORMAT

    v CCSID DECRYPT_CHARDECRYPT_DBCHARGRAPHICVARCHAR VARGRAPHIC

    v CCSID CLOB DBCLOB 11

    v CREATE TABLE ALTER TABLE CCSID 11

    v CCSID DECLARE GLOBALTEMPORARY TABLE 11

    v

    v CREATE FUNCTION CREATE PROCEDURE CCSID 11

    1 CREATE VIEW CCSID

    CCSID CCSID IBM i CCSID CCSID CCSID CCSID

    ()

    (a A)

    v SBCS ()v SBCS v Unicode (UTF-8UCS-2 UTF-16)

    42 IBM i: DB2 for i SQL

  • SBCS 256 1 SBCS CCSID a A

    UCS-2 UCS-2 1 UCS-2 1 () UCS-2

    (UCS-2 ) (UCS-2 ) (CRTTBL)

    UTF-8 UTF-16 ICU (International Components forUnicode) ICU Unicode API API IBM i ICU 2.3.1ICU 3.4 ICU 4.0 ICU 3.4 ICU 4.0 ICU I34en_us () I34fr_FR ()

    ICU LIKE LOCATEPOSITIONPOSSTRPOSITION

    ICU 2.3.1

    v EXCEPT INTERSECT v VALUESv OLAP v v ORDER OFv ()v v GROUP BY LOBv v ORDER BY FETCH FIRST n ROWS

    1 43

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • v CONTAINS SCORE v XMLAGGXMLATTRIBUTESXMLCOMMENTXMLCONCAT

    XMLDOCUMENTXMLELEMENTXMLFORESTXMLGROUPXMLNAMESPACESXMLPIXMLROW XMLTEXT

    v v

    ICU

    v ICU SQL SBCS UCS-2 ICU ICU ICU

    v ICU SBCS UCS-2 SBCS 3 DBCS 6

    SQL CRTSQLxxxSTRSQL RUNSQLSTM SETOPTION SQL SQL 16 SRTSEQ(*HEX) 2 3 *HEX

    FOR BIT DATA

    3.

    SQL

    SQL SQL (CRTSQLxxx) SRTSEQ SRTSEQ SETOPTION (CRTSQLxxx SQL )

    44 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

    |

    |

  • 3. ()

    SQL

    SQL SQL (RUNSQLSTM) SRTSEQ (RUNSQLSTM SQL )

    (CLI)

    SQL_ATTR_JOB_SORT_SEQUENCE (CLI SQL (ODBC))

    IBM Developer Kit for Java JDBC SQLJ

    job.sort.sequence (JDBC SQLJ IBMDeveloper Kit for Java)

    IBM i Access Family ODBC ODBC

    ODBC (ODBC System i Access)

    IBM Toolbox for Java JDBC

    JDBC (JDBC System i Access)(IBM Toolbox for Java IBMToolbox for Java)

    IBM i Access Family OLE DB

    Provider OLE DB

    (OLE DB System i Access )

    IBM i Access FamilyADO .NET ADO .NET

    SortSequence(ADO .NET System i Access )

    CCSID i5/OS Information Center CCSID i5/OS Information CenterDB2 SQL

    () SQL

    ()

    1 45

  • 12 8

    Distributed Relational Database Architecture (DRDA) Open Group Publications: DRDA Vol. 1: Distributed Relational Database

    Architecture (DRDA)

    SQL

    SQL CONNECT

    CONNECT

    v STRSQL CONNECT CRTSQLxxx STRSQL RDB

    CONNECT CONNECT 1

    12.

    8.

    46 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    http://www.opengroup.org/dbiophttp://www.opengroup.org/dbiop

  • v 3 3 CONNECT

    CONNECT SQL

    CONNECT

    () CONNECT System i Navigator i5/OS Information Center (ADDRDBDIRECHGRDBDIREDSPRDBDIRERMVRDBDIREWRKRDBDIRE)

    v SQL v v CL

    SQL

    v CRTSQLxxx SQLPKG CRTSQLxxx SQL

    v ()

    DB2 DB2

    1503 B. SQL

    1 47

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • CONNECT ( 1) CONNECT ( 2)CONNECT 2 CONNECT ( 1) CONNECT ( 2)

    1513CONNECT ( 1) CONNECT ( 2)

    SQL A B 1 B SQL B C ()

    SQL

    v SQL

    v SQL

    3

    v /v /v /

    48 IBM i: DB2 for i SQL

  • /

    /

    CONNECT / CONNECT /

    /

    CONNECTCONNECTCOMMIT ROLLBACK SQL /

    /

    SQL CONNECT

    v COMMIT v SQL DISCONNECT v CONNECT

    CONNECT CONNECT CONNECT CONNECT CONNECT COMMIT DISCONNECT SET CONNECTION RELEASE ROLLBACK (COMMIT(*NC) ) SQL

    9.

    1 49

    |

  • CONNECT CONNECT

    SQL A B B SQL SQL

    APPC TCP/IP

    v

    v SQL /

    /

    /

    /

    :

    1 /

    50 IBM i: DB2 for i SQL

  • CONNECT :

    v /v /

    SET CONNECTION ()

    RELEASE

    CONNECT

    10.

    1 51

  • v 1

    v SET CONNECTION

    v CONNECT

    CURRENT SERVER SQL

    CONNECT SET CONNECTION

    CURRENT SERVER SQL CONNECTDISCONNECTSETCONNECTIONRELEASECOMMIT ROLLBACK

    SQL DISCONNECT

    P X X P

    DRDA

    52 IBM i: DB2 for i SQL

  • z/OS DB2for i IEEE System/370* (/370)

    IBM (CDRA) Character Data Representation Architecture Reference and Registry(SC09-2190)

    1 53

  • 54 IBM i: DB2 for i SQL

  • 2

    SQL SQL

    SQL IBM 1

    13

    26 (A Z) 26 (a z) 14

    0 9

    - " . % / ()& : ' ; ( < ) = * > + ? , _ | 16 ^ ! 15 [ { ] } 15

    13. SQL Unicode 1 1 UTF-16

    14. 3 (#@ $) 3 CCSID

    15. () (!) IBM = != > !> =

    16. (|) IBM (||)CONCAT

    Copyright IBM Corp. 1998, 2010 55

  • 1 1 ID ()

    v ID ID

    1 .1 +2 SELECT E 3

    v ID (?) 1284PREPARE

    , 'Myst Island' "fld1" = .

    :

    1

    :

    4.

    EBCDIC 16 Unicode 16

    05 U+0009

    0C U+000C

    0D U+000D

    15 U+0085

    () 25 U+000A

    DBCS U+3000

    ID

    56 IBM i: DB2 for i SQL

  • 1.1 .1+2 SELECTE .1E E3 SELECT1

    1. .3

    (.)

    137

    1,2 ,1 1, 1,e1

    '1,2' '1,e1' 2 (1) (,) (1) (,)

    :

    SQL SQL SQL SQL EXEC SQL Java Java SQL SQL 2

    2 (--) 677SQL

    /* */ 677SQL

    :

    SQL (ID / C Java )

    2 57

  • select * from EMP where lastname = 'Smith';

    SELECT * FROM EMP WHERE LASTNAME = 'Smith';

    IDID SQL ID SQL ID ID ID

    : $@# CCSID ID DB2 and SQL sortsequence

    SQL IDSQL ID ID ID 2

    v ID ID ID 1797 I. SQL ID ID

    v ID 1 SQL 1 2 SQL ID ID (") (')

    SQL SQL COBOL

    COBOL SQL CRTSQLCBL CRTSQLCBLI OPTION(*QUOTESQL) (")

    COBOL CRTSQLCBL CRTSQLCBLI OPTION(*QUOTESQL) (")

    ID

    X'00' X'3F' X'FF'

    58 IBM i: DB2 for i SQL

  • IDIBM i ID 2 ID ID ID

    v ID SQL ID

    v ID SQL ID

    ID

    - (X'40')

    - (X'5C')

    - (X'7D')

    - (X'6F')

    - (X'7F')

    ID ID

    PRIVILEGES ID 10 privileges ID 12

    WKLYSAL WKLY_SAL "WKLY_SAL" "UNION" "wkly_sal"

    ID 60

    ID ID

    ID ID DBCS COBOL IDCOBOL 'SQ''SQL''sql''RDI' 'DSN' Java '__sJT_'

    DB2 for i ID 685

    17. 'SQ' CCOBOL PL/I RPG

    ID

    2 59

  • (*SQL *SYS) CRTSQLxxxRUNSQLSTM STRSQL SETOPTION SQL

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    SQL SQL SQL

    ID ID ID 75 ID

    SQL ID SQL ID

    COMMENT LABEL /.

    60 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    SQL ID

    SQL SQL ID

    SQL (SQLDA) SQL :: 161

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    SQL SQL SQL SQL

    SQL (.) ID (/) ID

    ID 69

    2 61

    |

    |

    |

  • SQL system-schema-name (.) ID IBM i (library-name.service-program-name(entry-point-name)) system-schema-name (/) ID IBM i (library-name/service-program-name(entry-point-name))

    ID IBM i 69

    v IBM i (/)v IBM i IBM i (/ ())REXX

    v IBM i IBM i (/ ())

    v Java jar ID ID ( ID! ID ID. ID)

    jar-name :

    class-id ! method-id.

    jar jar jar () ID ID 'myJar' 'myCollection.myJar'

    ID

    ID Java ID Java ID Java ID 'myPackage.StoredProcs' Java StoredProcs

    '/QIBM/UserData/OS400/SQLLib/Function/myPackage/StoredProcs/'

    ID

    62 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • ID Java

    Java Java

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    CREATECOMMENTDROPGRANTREVOKE /

    161 1 1 ID

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    ID

    System i DB2

    SQL (.) ID (/) ID

    2 63

  • ID 69

    SQL (.) ID (/) ID

    ID 69

    SQL ID ID

    ID

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    ID

    SQL ID

    SQL SQL (.) ID

    SQL (/) SQL ID

    server-name server-name

    64 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

  • : CREATE SCHEMA IBM i

    SQL (.) SQL ID (/) SQL ID NEXT VALUE PREVIOUS VALUE ( SQL )

    SQL ID 69

    SQL ID ID

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    SQL-condition-nameSQL SQL SQL ID

    SQL ALLOCATE DESCRIPTOR SQL

    SQL :

    v CLOB DBCLOB v Unicode

    v SQL

    v ::

    v /

    2 65

  • 161

    SQL SQL

    SQL SQL SQL SQL SQL ID

    SQL SQL SQL SQL ID (.) SQL ID

    SQL SQL SQL SQL ID SQL (.) SQL ID

    SQL SQL ID

    IBM i ID ID

    IBM i ID

    ID

    IBM i ID

    ID

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    66 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • SQL (.) ID (/) SQLID

    SQL ID 69

    ID 1 64 ID ID DB2 for i

    SQL (.) SQL ID (/) SQL ID ( SQL )

    SQL ID 69

    SQL (.) SQL ID (/) SQL ID

    SQL ID 69

    XSR XML xsrobject-name SQL (.) SQL ID (/) SQL ID

    xsrobject-name SQL ID 69

    2 67

    ||

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • 5. ID ()

    ID

    18 10

    128

    128

    () 279

    ()19 10

    ID 64

    10

    128

    128

    18

    SQL 128

    SQL 128

    SQL 128

    128

    128

    128

    128

    128

    128

    128

    128

    10

    10

    ID 64

    128

    128

    128

    SQL 128

    SQL 128

    10

    10

    10

    128

    128

    128

    XSR 128

    18. 255

    68 IBM i: DB2 for i SQL

    ||

    ||

    ||

    ||

    ||

  • SQL SQL ALTERCREATEDROPCOMMENTLABELGRANT REVOKE ()

    SQL SMITHXGRAPHICQSYSQSYS2 MYTYPE MYTYPE SMITH XGRAPHIC QSYS QSYS2

    SQL SQL

    v SQL (CALL ) CRTSQLxxx SQLPATH SQLPATH SET OPTION

    system-schema-name system-schema-name SQL

    v SQL ( CALL ) CURRENT PATH CURRENTPATH 147CURRENT PATH

    SQL SQL ID

    SQL SQL 147CURRENT PATH

    XSR

    XSR

    19. REXX 33

    2 69

    |

    |

    |

    |

    |

    |

    |

    |

  • v SQL CRTSQLxxx ( SET OPTION )

    DFTRDBCOL

    - SQL ID

    - (*LIBL)

    v SQL SQL

    - SQL ID

    - (*LIBL)

    6.

    SQL

    SQL SQL (CRTSQLxxx) SQL (CRTSQLPKG) DFTRDBCOL DYNDFTCOL(*YES) DFTRDBCOL DYNDFTCOL SET OPTION (CRTSQLxxx SQL )

    SQL SQL (RUNSQLSTM) DFTRDBCOL (RUNSQLSTM SQL )

    (CLI)

    SQL_ATTR_DEFAULT_LIB SQL_ATTR_DBC_DEFAULT_LIB (CLI SQL (ODBC))

    IBM Developer Kit for Java JDBC SQLJ

    (JDBC SQLJ IBMDeveloper Kit for Java)

    70 IBM i: DB2 for i SQL

  • 6. ()

    SQL

    IBM i Access Family ODBC ODBC

    ODBC SQL (ODBC System i Access)

    IBM Toolbox for Java JDBC

    JDBC SQL (JDBC System i Access)(IBM Toolbox for Java IBMToolbox for Java)

    IBM i Access Family OLE DB

    Provider OLE DB

    DefaultCollection

    (OLE DB System i Access )

    IBM i Access FamilyADO .NET ADO .NET

    DefaultCollection

    (ADO .NET System i Access )

    SET SCHEMA QSQCHGDC () API(QSQCHGDC API )

    ()SQL

    v CREATECOMMENTLABELDROPGRANT REVOKE ( 69 XSR )

    v SQL

    SQL

    SQL

    2 71

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • 173 SQL

    867CREATEFUNCTION ()

    SQL : CL (OVRDBF) SQL SQL SQL SQL

    72 IBM i: DB2 for i SQL

  • SQL

    v CREATE TABLE CREATE VIEW PERSONNEL CREATE TABLE PERSONNEL

    v CREATEINDEXDELETEINSERTMERGESELECT INTOSET UPDATE VALUES INTO

    3 DRDA DRDA 3 3

    SQL

    SQL SQL PBIRD.SALES DSPN014.DIST4_SALES_148

    2 73

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • SELECT * FROM PBIRD.SALES

    SELECT * FROM DSPN014.DIST4_SALES_148

    v SQL SQL

    v v

    DB2 for z/OS CREATEALIAS DROP ALIAS ALIAS SYNONYM

    74 IBM i: DB2 for i SQL

  • ID ID ID ID ID

    SET SESSION AUTHORIZATION ID

    ID SQL

    ID SQL SQL ID USRPRF

    v USRPRF(*OWNER) USRPRF(*NAMING) SQL ID SQL SQL SQL

    v USRPRF(*USER) USRPRF(*NAMING) ID SQL ID SQL ID

    SQL ID

    v USRPRF *USER DYNUSRPRF *USER ID ID ID

    USRPRF *OWNER DYNUSRPRF *USER ID ID

    USRPRF *OWNER DYNUSRPRF *OWNER ID ID

    v SQL USRPRF *USER DYNUSRPRF

    *USER ID SQL ID ID ID

    SQL USRPRF *OWNER DYNUSRPRF *USER ID SQL ID

    ID

    2 75

  • SQL USRPRF *OWNER DYNUSRPRF *OWNER ID SQL ID

    v SQL (STRSQL) ID ID

    v RUNSQLSTM RUNSQLSTM ID ID

    v REXX ID STRREXPRC ID

    IBM i ID

    SQL ID GRANT REVOKE IDX X ID SQL

    SMITH ID SMITH ID

    GRANT SELECT ON TDEPT TO KEENE

    SMITH ID SMITH

    KEENE KEENE SMITH.TDEPT SELECT

    SQL

    (CCSID )

    v v v v v v (SQL )

    ID

    76 IBM i: DB2 for i SQL

    |

    |

    |

  • DB2 98

    DB2 for i

    958CREATETABLE

    2 77

  • NULL NULL NULL NULL NULL (NULL )

    NULL NULL NULL NULL NOT NULL NULL COUNT COUNT_BIG NULL ROWID NULL ROWID NULL

    2 10 10

    v : 2 10 v 10 v :

    2 64 2 10 2 10

    10 16 34 10

    10 10 10 (0.00.000.0E51.01.001.0000)

    5 2 2 -32 768 +32 767

    10 COBOLRPG IBM i 2 DDS

    78 IBM i: DB2 for i SQL

    |

  • 10 4 2 -2 147 483 648 +2 147 483 647

    10 COBOLRPG IBM i 2 DDS

    64

    64 19 8 2 64 -9 223 372 036 854 775 808 +9 223 372 036 854 775807

    10

    10 10 10 () 63

    1 10 10 10 -n +n n

    -1063 +1 1063 -1

    32 1.17549436 10-38 3.40282356 1038

    IEEE 64 2.2250738585072014 10-308 1.7976931348623158 10308

    7 15

    10

    10 IEEE 754R 10 34 10 16 34 10-383 10384 10-6143 106144

    DECFLOAT Emin DECFLOAT(16) -383DECFLOAT(34) -6143 DECFLOAT Emax DECFLOAT(16) 384DECFLOAT(34) 6144

    10 3 ( 13310 )

    2 79

  • v - v NaN - v NaN - 20

    ()NaN

    1498 100

    2 2 64 CC++ILE COBOL ILE RPG RPG/400 COBOL/400 10 10 C

    10 10 (CAST ) (CAST) 10 10

    10 10 1

    Emin (DECFLOAT(34) -6143DECFLOAT(16) -383) 21

    Emin- (precision - 1) Etinyprecision 10 Etiny -6176 (DECFLOAT(34) ) -398(DECFLOAT(16) ) Etiny precision - (- Etiny+ Emin)

    20.SQL_DECFLOAT_WARNINGS *YES

    21.SQL_DECFLOAT_WARNINGS *YES

    80 IBM i: DB2 for i SQL

  • Etiny 21

    Etiny

    10

    NULL

    1 32766 1495 A. SQL

    v VARCHARv CLOB

    (CLOB) ()

    1 32 740 CLOB 1 2 147 483 647 1495 A. SQL

    87

    v REXX Java (C C++ 1 )

    v VARCHAR CC++COBOLPL/IREXX RPG

    2 81

  • PL/IREXX ILE RPG

    COBOLC C++

    C C++ NUL

    RPG/400 VARCHAR

    v CLOB REXXRPG/400 COBOL/400

    ILE RPG CLOB SQLTYPE

    SQL TYPE IS CLOB

    4

    () CCSID 65535

    : 2 X'00' 2

    SBCS SBCS CCSID SBCS CCSID

    MIXED () 1 (SBCS) 2 (DBCS) CCSID CCSID DBCS SBCS

    Unicode 1 Unicode UTF-8 UTF-8 CCSID 1208

    2 2 2 1 EBCDIC

    82 IBM i: DB2 for i SQL

  • v X'0E' () 2

    v X'0F' () 2

    2

    v 2

    X'0E' X'0F' X'0E' 2 X'0F' 2 X'0F'

    (2 ) 1 2

    2 2 1

    CCSID DBCS FOR BITDATAFOR SBCS DATA SBCS CCSID CREATE TABLE DBCS SQL DBCS DBCS

    2

    1 16 383 1495 A. SQL

    GRAPHIC v v VARGRAPHIC

    2 83

  • v DBCLOB

    2 (DBCLOB) 2 (2 )

    1 16 370 DBCLOB 1 1 073 741 823 1495 A. SQL

    87

    v CC++ILE COBOL ILE

    RPG (C C++ 1 )

    PL/ICOBOL/400 RPG/400GRAPHIC

    v VARGRAPHIC CC++ILECOBOLREXX ILE RPG

    REXX ILE RPG

    CC++ ILE COBOL

    C C++ NUL

    PL/ICOBOL/400RPG/400 VARGRAPHIC

    v DBCLOB REXXRPG/400 COBOL/400

    ILE RPG DBCLOB SQLTYPE

    SQL TYPE IS DBCLOB

    2

    84 IBM i: DB2 for i SQL

  • DBCS 2 (DBCS)

    DBCS 2 CCSID DBCS DBCS CCSID DBCS

    Unicode 2 Unicode UCS-2 UTF-16 UCS-2 UTF-16 UCS-2 CCSID 13488 UTF-16 CCSID 1200

    NCHARNVARCHAR NCLOB CCSID 1200 Unicode

    CCSID CCSID DBCS CCSID DBCS CCSID 65535 UTF-16 UCS-2 CCSID CCSID DECLARE VARIABLE

    2 2 2 2 2 65535 CCSID 2 FOR BIT DATA

    2

    1 32 766 1495 A. SQL

    2

    2

    v VARBINARYv BLOB

    (BLOB) () 1

    2 85

  • 1 32 740 BLOB 1 2 147 483 647 1495 A. SQL

    2

    2 REXXRPG/400 COBOL/400

    v BINARY 2 REXXRPG/400 COBOL/400

    ILE RPG BINARY 2 SQLTYPE

    SQL TYPE IS BINARY

    v VARBINARY 2 REXXRPG/400COBOL/400

    ILE RPG VARBINARY 2 SQLTYPE

    SQL TYPE IS VARBINARY

    v BLOB 2 REXXRPG/400 COBOL/400

    ILE RPG BLOB 2 SQLTYPE

    SQL TYPE IS BLOB

    LOB CLOBDBCLOBBLOB

    LOB LOB LOB 1 (LOB ) LOB 22

    LOB LOB LOB

    22. Java LOB CLOB BLOB CLOB BLOB

    86 IBM i: DB2 for i SQL

  • LOB

    LOB LOB ( LOB ) LOB LOB LOB LOB LOB

    LOB LOB LOB

    SUBSTR(lob_value_1 CONCAT lob_value_2 CONCAT lob_value_3, 42, 6000000)

    NULL -1 NULL LOB LOB NULL LOB LOB NULL NULL LOB NULL

    LOB LOB LOB LOB LOB

    LOB LOB LOB LOB FETCHOPENCALL EXECUTE SQLDA LOB SQLTYPE

    LOB

    2 87

  • v CLOB v DBCLOB v 2 BLOB

    7.

    LOB (CLOBDBCLOB BLOB)

    CREATE INDEX

    CLOB DBCLOB 237 3

    //

    89/

    1 3 () 1

    0001 9999 23 *JUL*MDY*DMY *YMD 1940 2039 1 12 1 x x 282930 31

    1 4 ()

    (DATE) 68 10 (SQLDA )

    23.1582-10-04 1582-10-15

    88 IBM i: DB2 for i SQL

    ||

    |

    |

  • 3 () 24

    0 24 0 59 24

    3 2 10 2 3

    (TIME) 8 (SQLDA )

    7 ()

    10 4 3 3 ( 3 6 )

    (TIMESTAMP) 26 (SQLDA )

    ILE RPG ILE COBOL

    Java java.sql.Datejava.sql.Timejava.sql.Timestamp

    / DATE ()TIME () TIMESTAMP () SQL Unicode

    / (DATFMT) (DATSEP)(TIMFMT) (TIMSEP)

    2 89

    |

    |

    |

    |

    |

    |

    |

    |

  • // CCSID (ASCII)/ CCSID

    /

    :

    Unicode 6 IBM SQL IBM SQL (CHAR ) CHAR 2 (DATSEP)

    8

    v v IBM SQL v

    8.

    (*ISO) ISO 'yyyy-mm-dd' '1987-10-12'

    IBM USA (*USA) 'mm/dd/yyyy' '10/12/1987'

    IBM (*EUR) EUR 'dd.mm.yyyy' '12.10.1987'

    (*JIS) JIS 'yyyy-mm-dd' '1987-10-12'

    'yyyyddd' '1987285'

    (*JUL) 'yy/ddd' '87/285'

    (*MDY) 'mm/dd/yy' '10/12/87'

    (*DMY) 'dd/mm/yy' '12/10/87'

    (*YMD) 'yy/mm/dd' '87/12/10'

    90 IBM i: DB2 for i SQL

  • 9.

    SQL

    SQL DATFMT DATSEP SQL (CRTSQLxxx) SQL DATFMT DATSEP SET OPTION (CRTSQLxxx SQL )

    SQL SQL

    SQL (STRSQL) DATFMT DATSEP SQL (RUNSQLSTM) DATFMT DATSEP (STRSQL RUNSQLSTM SQL )

    (CLI)

    SQL_ATTR_DATE_FMT SQL_ATTR_DATE_SEP (CLI SQL (ODBC))

    IBM Developer Kit for Java JDBC SQLJ

    (Date Format)(Date Separator)(JDBC SQLJ IBMDeveloper Kit for Java)

    IBM i Access Family ODBC ODBC

    ODBC (Advanced Server Options) (Date Format) (DateSeparator)(ODBC System i Access)

    IBM Toolbox for Java JDBC

    JDBC (Format)(JDBC System i Access)(IBM Toolbox for Java IBMToolbox for Java)

    :

    Unicode 4 13.30 13.30.00

    92 10 IBM SQL (CHAR

    2 91

  • ) (*HMS) CHAR *HMS (TIMSEP)

    v v IBM SQL

    10.

    (*ISO) ISO 'hh.mm.ss' 24 '13.30.05'

    IBM USA (*USA) 'hh:mm AM' (or PM) '1:30 PM'

    IBM (*EUR) EUR 'hh.mm.ss' '13.30.05'

    (*JIS) JIS 'hh:mm:ss' '13:30:05'

    (*HMS) 'hh:mm:ss' '13:30:05'

    USA

    v 12 00:00 AM 0

    v AM PM 1 v

    USA 24 ISO USA 24

    11. USA USA 24

    12:01 AM 12:59 AM 00.01.00 00.59.0001:00 AM 11:59 AM 01:00.00 11:59.0012:00 PM () 11:59 PM 12:00.00 23.59.0012:00 AM () 24.00.0000:00 AM () 00.00.00

    24. ISO JIS ISO

    92 IBM i: DB2 for i SQL

  • 12.

    SQL

    SQL SQL (CRTSQLxxx) TIMFMT TIMSEP SQL TIMFMT TIMSEP SETOPTION (CRTSQLxxx SQL )

    SQL SQL

    SQL (STRSQL) TIMFMT TIMSEP SQL (RUNSQLSTM) TIMFMT TIMSEP (STRSQL RUNSQLSTM SQL )

    (CLI)

    SQL_ATTR_TIME_FMT SQL_ATTR_TIME_SEP(CLI SQL (ODBC))

    IBM Developer Kit for Java JDBC SQLJ

    (Time Format)(Time Separator)(JDBC SQLJ IBMDeveloper Kit for Java)

    IBM i Access Family ODBC ODBC

    ODBC (Advanced Server Options) (Time Format) (TimeSeparator)(ODBC IBM i Access Family)

    IBM Toolbox for Java JDBC

    JDBC (Format)(IBM Toolbox for Java IBMToolbox for Java)

    :

    Unicode 16

    13.

    ISO

    'yyyy-mm-dd hh:mm:ss.nnnnnn' '1990-03-02 08:30:00.010000'

    IBM SQL 'yyyy-mm-dd-hh.mm.ss.nnnnnn' '1990-03-02-08.30.00.010000'

    2 93

  • 13. ()

    14

    'yyyymmddhhmmss' '19900302083000'

    0 1990-3-2-8.30.00.10 1990-03-02-08.30.00.100000

    24.00.00.000000

    94 IBM i: DB2 for i SQL

  • XML XML XML XML XML XML

    XML XML XML XML XML XML IS NULL

    XML XML XMLSERIALIZE XML XML XMLPARSE XML

    XML XML LOB LOB XML XML

    XML : XML XML

    v XML NULL XML CASTv XML NULL XML XMLCASTv IS NULL v COUNT COUNT_BIG v COALESCEIFNULLHEXLENGTHCONTAINS SCORE

    v XML v DISTINCT SELECT v INSERT VALUES UPDATE SET MERGEv SET VALUES INTOv v v v

    XML XMLSERIALIZE XML

    v DISTINCT SELECT v GROUP BY v ORDER BY v UNION ALL v BETWEENDISTINCTIN LIKE

    2 95

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • v DISTINCT v v v

    XML

    XML CCSID

    XML 1 EBCDIC CCSID UnicodeCCSID 1208120013488 XML CCSID 65535 CCSID XML SQL_XML_DATA_CCSIDQAQQINI CCSID 1208 (UTF-8)

    SQL XML CCSID

    CCSID DECLARE VARIABLE XML CCSID

    v XML AS DBCLOB CCSID 1200 v XML AS CLOB SQL_XML_DATA_CCSID QSQQINI 1200

    13488 CCSID 1208

    v SQL_XML_DATA_CCSID QSQQINI CCSID

    XMLPARSE UTF-8 (1208) CCSID UTF-8

    URL (Uniform ResourceLocator)

    URL HTTP FILE

    96 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • 254

    URL (A Z) (a z) (0 9) ($-_@. &+!*"'()= ; /# ? :)

    4

    166LOB XML LOB

    v

    v

    (DLVALUE) (DLCOMMENTDLLINKTYPEDLURLCOMPLETEDLURLPATHDLURLPATHONLY DLURLSCHEMEDLURLSERVER)

    ID ID ID ROWID

    ROWID ROWID DB2 for z/OS DB2 for i ID

    2 97

  • ID BIT CCSID ROWID 40

    CREATE 2

    () BLOB 1032CREATE TYPE ()

    AUDIO

    CREATE TYPE AUDIO AS BLOB (1M)

    AUDIO BLOB BLOB AUDIO AUDIO()

    v CREATE TYPE DROPCOMMENTLABELGRANT REVOKE ID 71

    v SQL SQL 69SQL

    (AUDIO LENGTH )

    98 IBM i: DB2 for i SQL

  • SQL DECIMAL(9,2) MONEY +

    CREATE TYPE MONEY AS DECIMAL(9,2) WITH COMPARISONSCREATE FUNCTION "+"(MONEY,MONEY)

    RETURNS MONEYSOURCE "+"(DECIMAL(9,2),DECIMAL(9,2))

    CREATE TABLE SALARY_TABLE(SALARY MONEY,COMMISSION MONEY)

    SELECT "+"(SALARY, COMMISSION) FROM SALARY_TABLE

    1 ROWID 1 ROWID ID

    AUDIO

    schema-name.BLOB schema-name.AUDIO BLOBschema-name.AUDIO BLOB schema-name.AUDIO

    () N 1 N

    1 CREATE TYPE () A M A 0 M C SQL

    2 99

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • 1 CHAR VARCHAR INTEGER DOUBLE PRECISION CLOB VARCHAR

    v ( 173)v ( 102)

    v ( 124)

    14 CHARACTER GRAPHIC

    14.

    ()

    SMALLINT SMALLINTINTEGERBIGINTdecimalrealdoubleDECFLOAT

    INTEGER INTEGERBIGINTdecimalrealdoubleDECFLOAT

    BIGINT BIGINTdecimalrealdoubleDECFLOAT

    10 decimalrealdoubleDECFLOAT

    real realdoubleDECFLOAT

    double doubleDECFLOAT

    DECFLOAT DECFLOAT

    CHAR GRAPHIC

    CHAR GRAPHICVARCHAR VARGRAPHICCLOB DBCLOB

    VARCHAR VARGRAPHIC

    VARCHAR VARGRAPHICCLOB DBCLOB

    CLOB DBCLOB

    CLOB DBCLOB

    CHAR FOR BIT

    DATA

    CHARVARCHARCLOBBINARYVARBINARYBLOB

    VARCHAR FOR

    BIT DATA

    VARCHARCLOBVARBINARYBLOB

    100 IBM i: DB2 for i SQL

  • 14. ()

    ()

    BINARY BINARYVARBINARYBLOBCHAR FOR BIT DATAVARCHARFOR BIT DATA

    VARBINARY VARBINARYBLOBVARCHAR FOR BIT DATA

    BLOB BLOB

    DATE DATE

    TIME TIME

    TIMESTAMP TIMESTAMP

    DATALINK DATALINK

    ROWID ROWID

    XML XML

    udt udt

    :

    10 = DECIMAL(p,s) NUMERIC(p,s)

    real = REAL FLOAT(n) n

    double = DOUBLEDOUBLE PRECISIONFLOAT FLOAT(n) n

    udt =

    Unicode

    2 101

    ||

  • ()

    100

    CAST ( 200CAST ) ( 117) ( 867CREATE FUNCTION ())

    ( 112:)

    ( 111)

    15 103 16

    15.

    ... ...

    DT DT

    DT DT

    DT DT

    A DT (A DT ) ( 100)

    INTEGER DT (DT SMALLINT )

    DOUBLE DT (DT REAL )

    VARCHAR

    DT (DT CHAR GRAPHIC)

    102 IBM i: DB2 for i SQL

  • 15. ()

    ... ...

    VARGRAPHIC

    DT (DT GRAPHIC CHAR)

    VARBINARY DT (DT BINARY )

    Unicode

    CAST 173 200CAST CAST

    16.

    SMA

    LL

    INT

    INT

    EG

    ER

    BIG

    INT

    DE

    CIM

    AL

    NU

    ME

    RIC

    RE

    AL

    DO

    UB

    LE

    DE

    CF

    LO

    AT

    CH

    AR

    VA

    RC

    HA

    R

    CL

    OB

    GR

    AP

    HIC

    VA

    RG

    RA

    PH

    IC

    DB

    CL

    OB

    BIN

    AR

    Y

    VA

    RB

    INA

    RY

    BL

    OB

    DA

    TE

    TIM

    E

    TIM

    EST

    AM

    P

    RO

    WID

    DA

    TA

    LIN

    K

    XM

    L

    SMALLINT Y Y Y Y Y Y1

    INTEGER Y Y Y Y Y Y1

    BIGINT Y Y Y Y Y Y1

    DECIMAL Y Y Y Y Y Y1

    NUMERIC Y Y Y Y Y Y1

    REAL Y Y Y Y Y Y1

    DOUBLE Y Y Y Y Y Y1

    DECFLOAT Y Y Y Y Y Y1

    CHAR Y Y Y Y Y Y1 Y2 Y Y Y Y

    VARCHAR Y Y Y Y Y Y1 Y2 Y Y Y Y

    CLOB Y Y Y Y Y Y1 Y2 Y

    GRAPHIC Y1 Y1 Y1 Y1 Y1 Y Y Y1 Y1 Y1

    VARGRAPHIC Y1 Y1 Y1 Y1 Y1 Y Y Y1 Y1 Y1

    DBCLOB Y1 Y1 Y1 Y1 Y1 Y Y

    BINARY Y2 Y

    2 103

    |

  • 16. ()

    SMA

    LL

    INT

    INT

    EG

    ER

    BIG

    INT

    DE

    CIM

    AL

    NU

    ME

    RIC

    RE

    AL

    DO

    UB

    LE

    DE

    CF

    LO

    AT

    CH

    AR

    VA

    RC

    HA

    R

    CL

    OB

    GR

    AP

    HIC

    VA

    RG

    RA

    PH

    IC

    DB

    CL

    OB

    BIN

    AR

    Y

    VA

    RB

    INA

    RY

    BL

    OB

    DA

    TE

    TIM

    E

    TIM

    EST

    AM

    P

    RO

    WID

    DA

    TA

    LIN

    K

    XM

    L

    VARBINARY Y2 Y

    BLOB Y2 Y

    DATE Y Y Y

    TIME Y Y Y

    TIMESTAMP Y Y Y Y

    ROWID Y Y Y

    DATALINK Y

    XML Y

    :

    1 FOR BIT DATA

    2 2 FOR BIT DATA

    17.

    SMALLINT 487SMALLINT

    INTEGER 402INTEGER INT

    BIGINT 281BIGINT

    DECIMAL 340DECIMAL DEC

    NUMERIC 577ZONED

    REAL 462REAL

    DOUBLE 359DOUBLE_PRECISION DOUBLE

    DECFLOAT 337DECFLOAT

    CHAR 292CHAR

    VARCHAR 524VARCHAR

    CLOB 300CLOB

    GRAPHIC 106

    383GRAPHIC

    104 IBM i: DB2 for i SQL

    |

  • 17. ()

    VARGRAPHIC 106

    533VARGRAPHIC

    DBCLOB 329DBCLOB

    BINARY 283BINARY

    VARBINARY 523VARBINARY

    BLOB 287BLOB

    DATE 320DATE

    TIME 500TIME

    TIMESTAMP 501TIMESTAMP 1

    DATE 00:00:00

    TIME CURRENT_DATE

    DATALINK

    106

    ROWID 476ROWID

    XML

    106 XML

    2 105

    |||

  • SQL CALLINSERTUPDATEFETCHSELECTSET VALUE INTO (MAXMINDISTINCTGROUP BYORDER BY )

    UNIONEXCEPTINTERSECTCASE CONCATVALUECOALESCEIFNULLMINMAX

    18.

    2

    10

    10

    ID

    XM

    L8

    2 Y Y Y Y Y 1 4

    10 5 Y Y Y Y Y 1 4

    Y Y Y Y Y 1 4

    10

    Y Y Y Y Y 1 4

    Y Y Y Y Y 1 2 3 3 3 4

    1 1 1 1 1 Y 1 3 1 3 1 3 4

    2

    2 Y 4

    3 1 3 Y 4

    3 1 3 Y 4

    3 1 3 Y 4

    6 4

    ID 7 4

    XML 8 Y 4

    4 4 4 4 4 4 4 4 4 4 4 4 4 4

    106 IBM i: DB2 for i SQL

  • 18. ()

    2

    10

    10

    ID

    XM

    L8

    :

    1. Unicode Unicode FOR BIT DATA

    2. FOR BIT DATA 2 FOR BITDATA 2 FOR BIT DATA 2 X'00'

    3. CONCAT /

    4. 117

    5. 10 10 10

    6.

    7. ROWID ROWID

    8. XML XML IS NULL XML

    NULL

    v NULL v v Java

    161

    NULL NULL

    v

    2 107

  • v 10 10 10 10

    10 SQL_DECFLOAT_WARNINGS *YES

    1 -1 10 SQL_DECFLOAT_WARNINGS *YES

    10 144CURRENTDECFLOAT ROUNDING MODE

    -2

    10 10 2 1 -1 0

    10

    10 10 10 10 5,0 11,0 64 19,0

    10 10 10

    10 63 63 - (p-s) 10 (p s 10 )10 10 1 -1 0

    108 IBM i: DB2 for i SQL

  • 10 10 10 10 1 -1 0 10

    : 10 10 10 2 10

    : 10 SQL CREATE TABLE 10 SQL CREATETABLE 10

    10 10

    10

    10 10 10 10 5,0 11,0 64 19,0 BIGINT DECFLOAT(16)

    10 10 (16 34) 10

    10 10

    DECFLOAT(16) DECFLOAT(34) DECFLOAT(16)

    DECFLOAT(34) DECFLOAT(16) DECFLOAT(34) 10 144CURRENT DECFLOAT ROUNDING MODE

    2 109

  • COBOL RPG

    COBOL RPG COBOL RPG

    :

    v COBOL COL1 12345 SQL A 4 A 12345

    01 A PIC S9999 BINARY.EXEC SQL SELECT COL1

    INTO :AFROM TABLEX

    END-EXEC.

    v COBOL (12345 ) 2345 A

    MOVE 12345 TO A.

    CAST 200CAST

    2

    v

    v 25

    2

    16 (X'00') 16

    25. SQL SQL xi

    110 IBM i: DB2 for i SQL

  • 2 16

    SQL RETURNED_SQLSTATE '01004' SQLSTATE (SQLCA SQLWARN1 'W' )

    2 16

    n n n

    / 113 () 117

    :

    CAST 200CAST

    :

    1 2 UTF-16 UCS-2 26

    26. UTF-16 UCS-2 X'0020' X'3000' X'0020' X'20' UTF-8

    2 111

  • :

    SQL RETURNED_SQLSTATE '01004' SQLSTATE (SQLCA SQLWARN1 'W' ) C NUL NUL *NOCNULRQD CRTSQLCI CRTSQLCPPI (SET OPTION CNULRQD(*NO)) SQL RETURNED_SQLSTATE '01004' SQLSTATE ( 'N' SQLCA SQLWARN1 ) NUL

    1 2 UTF-16 UCS-2 26

    n n n

    2 2

    C NUL

    n n+1 C NUL

    v *CNULRQD CRTSQLCI CRTSQLCPPI (SET OPTION CNULRQD(*YES)) x-n-1 xNUL

    v *NOCNULRQD CRTSQLCI CRTSQLCPPI (SET OPTION CNULRQD(*NO)) NUL

    112 IBM i: DB2 for i SQL

  • v CCSID v CCSID 65535 v NULL v 2 CCSID 41

    CCSID

    v CCSID 41 CCSID

    v 2 (DBCS) 1 (SBCS) CCSID

    v v DBCS SBCS CCSID -2

    DATE DATE DATE DATE DATE TIMETIME TIME TIME TIME TIMESTAMPTIMESTAMP TIMESTAMP TIMESTAMP TIMESTAMP

    //

    v

    2 113

  • DATE

    *ISOUSA*EUR *JIS 10 *YMD*MDY *DMY 8 *JUL 6

    TIME

    8

    TIMESTAMP

    26

    v

    DATE

    *ISO*USA*EUR *JIS 10 *YMD*MDY *DMY 8 *JUL 6

    TIME

    *USA 8

    *ISO*EUR*JIS *HMS 5 56 7 SQLWARN1 'W' 6 7

    TIMESTAMP

    19 19 25 1 20

    XML XML

    XML XML XML XML

    v XML : XML SQL XML XML CURRENT IMPLICIT XMLPARSE OPTION

    114 IBM i: DB2 for i SQL

    |

    |

    |

    |

    |

    |

    |

    |

  • XMLVALIDATE

    v XML : XML XML CURRENT IMPLICIT XMLPARSE OPTION XMLVALIDATE

    v XML : XML XMLPARSE (DOCUMENT expressionSTRIP WHITESPACE) XMLPARSE XML SQL

    v XML : SQL FETCH SELECT INTO XML CLOBDBCLOB BLOB XML CCSID (CLIJDBC .NET ) XML XML 95XML QAQQINI CCSID

    FETCHSELECT INTOSET VALUES INTO XML INSERTUPDATEMERGESETVALUES INTO CALL XML SQL SQL

    NO LINK CONTROL NULL

    2 115

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • 2

    v v

    DLVALUE DLVALUE URL

    v (URL) v v v URL

    URL URL URL

    v v v v

    v v DB2 UDB

    (DLLINKTYPE DLURLPATH )

    116 IBM i: DB2 for i SQL

  • 27

    ID ID ID ROWID GENERATED BY DEFAULT OVERRIDING SYSTEMVALUE ROWID ROWID DB2 for z/OS DB2 for i ID

    :

    AGE SQL

    CREATE TYPE AGE AS SMALLINT WITH COMPARISONS

    AGE (SMALLINT) RETURNS AGEAGE (INTEGER) RETURNS AGESMALLINT (AGE) RETURNS SMALLINT

    STUDENTS STU_AGE AGE INTEGER HV_AGE

    SELECT STU_AGE INTO :HV_AGE FROM STUDENTS WHERE STU_NUMBER = 200

    (SMALLINT) (INTEGER) HV_AGE AGE CHAR(5)

    27.

    2 117

  • 102

    v v

    v v

    :

    AGE SMALLINT

    CREATE TYPE AGE AS SMALLINT WITH COMPARISONS

    2 TABLE1 TABLE2 4

    AGECOL AGESMINTCOL SMALLINTINTCOL INTEGERDECCOL DEC(6,2)

    SQL X Y TABLE1 TABLE2 19

    INSERT INTO TABLE1 (Y) SELECT X FROM TABLE2

    19. (INSERT )

    TABLE2.X TABLE1.Y

    AGECOL AGECOL

    SMINTCOL AGECOL SMALLINT AGE (AGE SMALLINT )

    INTCOL AGECOL INTEGER AGE (AGE SMALLINT )

    DECCOL AGECOL DECIMAL AGE

    118 IBM i: DB2 for i SQL

  • 19. (INSERT ) ()

    TABLE2.X TABLE1.Y

    AGECOL SMINTCOL AGE SMALLINT

    AGECOL INTCOL AGE INTEGER

    AGECOL DECCOL AGE DECIMAL

    SQL

    v SQL TRIM_ARRAY CAST SQL

    v ARRAY_AGG SQL

    LOB LOB LOB LOB *NOOPTLOB

    2 +1

    10 10

    10 2 ()

    10 2

    2

    2 119

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • DECFLOAT 10 2 DECFLOAT

    DECFLOAT(16) DECFLOAT(34) DECFLOAT(16) DECFLOAT(34)

    DECFLOAT 2 (=)

    DECFLOAT 2.00 2.0 2 = () 2.0 = 2.00 2.0 = 2.00 2.0 < 2.00 DECFLOAT (UNIONSELECT DISTINCTCOUNTDISTINCTIN MINMAX )

    SELECT 2.0 FROM SYSIBM.SYSDUMMYUNIONSELECT 2.00 FROM SYSIBM.SYSDUMMY

    1 (2.0 2.00)

    2 COMPARE_DECFLOAT TOTALORDER 2.02.00 10 -NaN< -sNaN < -Infinity < -0.10

  • 2

    2 *HEX 2 2 2 2 16 2 2

    Unicode SBCS *HEX

    DBCS DBCS (x'4040') Unicode UTF-16 28

    2

    v v *HEX v *HEX

    2

    (CCSID ) EBCDICASCIIDB2 LUW ()

    28. UTF-16 X'0020' X'3000' X'0020'

    2 121

  • 20. ASCII Unicode EBCDIC DB2 LUW

    0000 @@@@ 00009999 co-op 9999@@@@ coop @@@@COOP piano forte co-opPIANO-FORTE piano-forte COOPco-op COOP coopcoop PIANO-FORTE piano fortepiano forte 0000 PIANO-FORTEpiano-forte 9999 piano-forte

    2 1 DISTINCTMAXMINUNION EXCEPTINTERSECT 620GROUP-BY

    :

    2

    v 2 CCSID v CCSID 65535 v NULL v 2 CCSID 41

    CCSID

    2

    21.

    1

    2

    SBCS DBCS

    Unicode

    SBCS 2 2 2

    DBCS 1 2 2

    1 1 2

    Unicode

    1 1 1

    122 IBM i: DB2 for i SQL

  • 22.

    1

    2

    2 2 2 2 2

    1 2 2 2 2

    1 1 2 2 2

    1 1 1 2 2

    1 1 1 1 2

    CCSID 41CCSID

    / (DATE) (TIME) (TIMESTAMP) 0001 1 1 ()

    TIME 24:00:00 00:00:00

    TIMESTAMP

    TIMESTAMP('1990-02-23-00.00.00') > '1990-02-22-24.00.00'

    XML XML XML

    DATALINK DLCOMMENTDLLINKTYPEDLURLCOMPLETEDLURLPATHDLURLPATHONLY DLURLSCHEME DLURLSERVER

    2 123

    |

    |

    |

    |

  • ID ROWID ROWID ROWID

    YOUTH CAMP_DB2_ROSTER SQL

    CREATE TYPE YOUTH AS INTEGER WITH COMPARISONS

    CREATE TABLE CAMP_DB2_ROSTER( NAME VARCHAR(20),

    ATTENDEE_NUMBER INTEGER NOT NULL,AGE YOUTH,HIGH_SCHOOL_LEVEL YOUTH)

    AGE HIGH_SCHOOL_LEVEL

    SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > HIGH_SCHOOL_LEVEL

    SELECT * FROM CAMP_DB2_ROSTER ***INCORRECT***WHERE AGE > ATTENDEE_NUMBER

    AGE ATTENDEE_NUMBER CAST

    SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > YOUTH(ATTENDEE_NUMBER)

    SELECT * FROM CAMP_DB2_ROSTERWHERE AGE > CAST( ATTENDEE_NUMBER AS YOUTH)

    SELECT * FROM CAMP_DB2_ROSTERWHERE INTEGER(AGE) > ATTENDEE_NUMBER

    SELECT * FROM CAMP_DB2_ROSTERWHERE CAST(AGE AS INTEGER) > ATTENDEE_NUMBER

    124 IBM i: DB2 for i SQL

  • v UNIONUNION ALLEXCEPTINTERSECT v CASE v COALESCEIFNULLMAXMIN VALUE v IN IN

    /*+ - 180CONCAT 185

    2

    NULL NULL NULL

    v CHAR(10) CHAR(5) CHAR(10) CHAR(5) 5

    v

    SMALLINT SMALLINT

    SMALLINT

    INTEGER SMALLINTINTEGER

    INTEGER

    BIGINT SMALLINTINTEGERBIGINT

    BIGINT

    2 125

  • DECIMAL(w,x) SMALLINT DECIMAL(p,x) (p = min(mp, x+max(w-x,5))

    mp = 31 63) ( 1 )

    DECIMAL(w,x) INTEGER DECIMAL(p,x) (p = min(mp, x+max(w-x,11))

    mp = 31 63) ( 1 )

    DECIMAL(w,x) BIGINT DECIMAL(p,x) (p = min(mp, x+max(w-x,19))

    mp = 31 63) ( 1 )

    DECIMAL(w,x) DECIMAL(y,z) NUMERIC(y,z,)

    DECIMAL(p,s) (p = min(mp, max(x,z)+max(w-x,y-z))

    s = max(x,z)

    mp = 31 63) ( 1 )

    DECIMAL(w,x) DECIMAL(w,x)

    NUMERIC(w,x) SMALLINT NUMERIC(p,x) (p = min(mp, x + max(w-x,5))

    mp = 31 63) ( 1 )

    NUMERIC(w,x) INTEGER NUMERIC(p,x) (p = min(mp, x + max(w-x,11))

    mp = 31 63) ( 1 )

    NUMERIC(w,x) BIGINT NUMERIC(p,x) (p = min(mp, x + max(w-x,19))

    mp = 31 63) ( 1 )

    NUMERIC(w,x) NUMERIC(y,z) NUMERIC(p,s) (p = min(mp, max(x,z) + max(w-x, y-z))

    s = max(x,z)

    mp = 31 63) ( 1 )

    NUMERIC(w,x) NUMERIC(w,x)

    NONZERO SCALE BINARY NONZERO SCALE BINARY NONZERO SCALE BINARY

    (2 2 )

    REAL REAL REAL

    REAL SMALLINTINTEGERBIGINTDECIMALNUMERIC

    DOUBLE

    DOUBLE SMALLINTINTEGERBIGINTDECIMALNUMERICREALDOUBLE

    DOUBLE

    DECFLOAT(n) REALDOUBLEINTEGERSMALLINT

    DECFLOAT(n)

    126 IBM i: DB2 for i SQL

  • DECFLOAT(n) DECIMAL(p16,s)

    DECFLOAT(34)

    DECFLOAT(n) DECFLOAT(m) DECFLOAT(max(n,m))

    :

    1. mp 63

    v w y 31 v CRTSQLxxx RUNSQLSTM SET OPTION DECRESULT 63

    mp 31

    CCSID Unicode

    CHAR(x) CHAR(y) CHAR(z) (z = max(x,y))

    GRAPHIC(x) CHAR(y) GRAPHIC(y)

    GRAPHIC(z) (z = max(x,y))

    VARCHAR(x) CHAR(y) VARCHAR(y)

    VARCHAR(z) (z = max(x,y))

    VARCHAR(x) GRAPHIC(y) VARGRAPHIC(z) (z = max(x,y))

    VARGRAPHIC(x) CHAR(y)VARCHAR(y)GRAPHIC(y) VARGRAPHIC(y)

    VARGRAPHIC(z) (z = max(x,y))

    CLOB(x) CHAR(y)VARCHAR(y) CLOB(y)

    CLOB(z) (z = max(x,y))

    CLOB(x) GRAPHIC(y) VARGRAPHIC(y)

    DBCLOB(z) (z = max(x,y))

    DBCLOB(x) CHAR(y)VARCHAR(y)CLOB(y)GRAPHIC(y)VARGRAPHIC(y) DBCLOB(y)

    DBCLOB(z) (z = max(x,y))

    CCSID 130

    2 127

  • 2

    2 2 FOR BIT DATABINARYVARBINARYBLOB 2 2

    BINARY(x) BINARY(y) CHAR(y) FOR BIT

    DATA

    BINARY(z) (z = max(x,y))

    VARBINARY(x) BINARY(y)VARBINARY(y)CHAR(y) FOR BIT

    DATAVARCHAR(y) FOR

    BIT DATA

    VARBINARY(z) (z = max(x,y))

    VARCHAR(x) FOR

    BIT DATA

    BINARY(y) VARBINARY(z) (z = max(x,y))

    BLOB(x) BINARY(y)VARBINARY(y)BLOB(y)CHAR(y)FOR BIT DATA VARCHAR(y)FOR BIT DATA

    BLOB(z) (z = max(x,y))

    /

    DATE DATE Unicode CLOB DATE

    TIME TIME Unicode CLOB TIME

    TIMESTAMP TIMESTAMP Unicode CLOB TIMESTAMP

    DATE DATECHAR(y)VARCHAR(y)GRAPHIC(y) VARGRAPHIC(y)

    DATE

    128 IBM i: DB2 for i SQL

  • TIME TIMECHAR(y)VARCHAR(y)GRAPHIC(y) VARGRAPHIC(y)

    TIME

    TIMESTAMP TIMESTAMPCHAR(y)VARCHAR(y)GRAPHIC(y)VARGRAPHIC(y)

    TIMESTAMP

    NO LINKCONTROL NO LINK CONTROL FILE LINK CONTROL READ PERMISSION FS FILE LINK CONTROL READ PERMISSION FS FILE LINK CONTROL READPERMISSION DB FILE LINK CONTROL READPERMISSION DB DATALINK DATALINK

    DATALINK(x) DATALINK(y) DATALINK(z) (z = max(x,y))

    ROWID

    ROWID ROWID ROWID

    XML

    XML XML XML

    CCSID 95XML SQL_XML_DATA_CCSID QAQQINI

    2 129

    |

    |

    |

    |

    |

  • UNIONUNION ALLEXCEPTINTERSECT (MAXMINVALUECOALESCEIFNULL CONCAT CASE ) CCSID CCSID

    CCSID CCSID 2 CCSID CCSID CCSID CCSID CCSID CCSID CCSID CCSID 1 CCSID CCSID CCSID CCSID

    v CCSID CCSID v CCSID 65535 CCSID 65535 29

    v CCSID CCSID

    23.

    1

    2

    SBCS DBCS Unicode

    SBCS 2 2 2

    DBCS 1 2 2

    1 1 2

    Unicode

    1 1 1

    v CCSID

    24. CCSID

    1

    2

    1 1 1 1 1

    2 1 1 1 1

    2 2 1 1 1

    29. CLOB DBCLOB CCSID CCSID

    130 IBM i: DB2 for i SQL

  • 24. CCSID ()

    1

    2

    2 2 1 1 1

    2 2 2 2 1

    COLA COLB COLC CCSID 37278 500 COLA CONCAT COLB CONCAT COLC CCSID

    1. COLA CONCAT COLB CCSID 37 1 CCSID

    2. CONCAT COLC CCSID 500 1 2 2 CCSID

    CASE IN MAX MINVALUECOALESCEIFNULL CONCAT UNIONUNION ALLEXCEPT INTERSECT

    v CCSID v CCSID 65535 v NULL v 2 CCSID 41

    CCSID

    CCSID 41CCSID

    2 131

  • ( ) 1 10

    NOT NULL

    19 64 64 64 10

    64 -15 +100 32767 720176 12345678901

    10 10 2 63 10

    () () 10 10 10 10

    25.5 1000. -15. +37589.3333333333

    E 2 2 2 10 24 17 2 3

    15E1 2.E5 2.2E-1 +5.E+2

    132 IBM i: DB2 for i SQL

  • 10 10 10 E 2 2 2 10 DECFLOAT(34) 42 34 2 4

    E 2 10

    v 17 () v (-308 308 )

    10 INFINITYNAN SNAN INFINITY INFINITY INFINITY INFNAN Not a Number (NaN) NaN SNAN NaN (sNaN) NAN SNAN SNAN INSERT VALUES

    (INFINITYNANSNAN) 10

    CAST('SNAN' AS DECFLOAT(34))

    1.8E308 -1.23456789012345678E-2 SNAN -INFINITY

    2

    v 2 32740 2 1 2

    v X 16

    2 133

    |

    |

    |

    |

    |

    |

  • 16 32762 16 A F () 16 1 16 1

    CCSID DBCS SBCS

    CCSID (ASCII ) CCSID CCSID CCSID CCSID

    CCSID CCSID

    v STRSQL CCSIDv RUNSQLSTM STRREXPRC CCSID

    v CRTSQLxxx SQL CCSID CRTSQLxxx CCSID

    SQL CCSID PREPARE CCSID PREPARE CCSID

    / 89/

    'Peggy' '14.12.1990' '32' 'DON''T CHANGE' '' X'FFFF'

    2 (DBCS UTF-16 )

    DBCS

    16370 DBCS 3

    134 IBM i: DB2 for i SQL

  • SQL G SBCS SBCS ' EBCDIC (X'7D')

    PL/I G DBCS 1 2 DBCS PL/I PL/I

    16 DBCS 16 DBCS

    GX'ssss' ssss 0 32760 16 4 4 1 DBCS 16 ('0E'X '0F'X)

    CCSID (ASCII ) CCSID DBCS CCSID CCSID SQL CCSID DBCSCCSID CCSID DBCS CCSID CCSID 65535

    DBCS CCSID i5/OS Information Center Use DBCS CCSIDs CCSID

    Unicode

    Unicode 2 (N UX) Unicode

    N'ssss'

    2 135

    ../nls/rbagsuseccsiddesign.htm

  • ssss 16370 CCSID Unicode CCSID

    16 Unicode

    UX'ssss'

    ssss 0 32760 16 4 4 1 Unicode

    Unicode CCSID 13488 (UCS-2) CCSID 1200 (UTF-16) xi

    2 2 2

    2 2

    v BX 16 16 32740 16 A F ()

    v X 16 16 32740 16 A F ()

    CCSID 65535

    2 2 2 2 xi

    BX'FFFF'X'FFFF'

    //

    / 89/ANSI/ISO SQL

    136 IBM i: DB2 for i SQL

  • ANSI/ISO SQL 3

    v DATE 'yyyy-mm-dd'

    DATE

    v TIME 'hh:mm:ss'

    TIME

    v TIMESTAMP 'yyyy-mm-dd hh:mm:ss.nnnnnn'

    TIMESTAMP

    0 1990-03-02 08:30:00.10 1990-03-02 08:30:00.100000

    DATE '2003-09-03'

    v v

    (DECFLOATDECIMAL DOUBLE_PRECISIONFLOATREAL CAST )

    v (CHARVARCHARCLOBGRAPHICVARGRAPHIC CAST )

    25.

    SQL

    SQL SQL (CRTSQLxxx) OPTION *JOB *PERIOD*COMMA *SYSVAL SQL DECMPT SETOPTION (CRTSQLxxx SQL )

    2 137

  • 25. ()

    SQL

    SQL SQL

    SQL (STRSQL) DECPNT SQL (RUNSQLSTM) DECMPT (STRSQL RUNSQLSTM SQL )

    (CLI)

    SQL_ATTR_DATE_FMT SQL_ATTR_DATE_SEP (CLI SQL (ODBC))

    IBM Developer Kit for Java JDBC SQLJ

    (Decimal Separator)(JDBC SQLJ IBMDeveloper Kit for Java)

    IBM i Access Family ODBC ODBC

    ODBC (Advanced Server Options) (Decimal Separator)(ODBC System i Access)

    IBM Toolbox for Java JDBC

    JDBC (Format)(ODBC System i Access)(IBM Toolbox for Java IBMToolbox for Java)

    v v 1

    v

    10

    VALUES(9999999999,, 111)

    *APOST *QUOTE COBOL COBOL *APOST (') *QUOTE (") *APOST *QUOTE COBOL SQL *APOST (') SQL (") SQL *QUOTE SQL

    138 IBM i: DB2 for i SQL

  • SQL *APOST *QUOTE *APOST *QUOTE

    COBOL SQL (') SQL (")

    2 139

  • SQL CCSID CCSID

    CURRENT CLIENT_ACCTNGCLIENT ACCTNGCURRENT CLIENT_APPLNAMECLIENT APPLNAMECURRENT CLIENT_PROGRAMIDCLIENT PROGRAMIDCURRENT CLIENT_USERIDCLIENT USERIDCURRENT CLIENT_WRKSTNNAMECLIENT WRKSTNNAMECURRENT DATE

    (1)CURRENT_DATECURRENT DEBUG MODECURRENT DECFLOAT ROUNDING MODECURRENT DEGREECURRENT IMPLICIT XMLPARSE OPTIONCURRENT PATHCURRENT FUNCTION PATH

    (1)CURRENT_PATHCURRENT SCHEMACURRENT_SCHEMACURRENT SERVERCURRENT_SERVERCURRENT TIME

    (1)CURRENT_TIMECURRENT TIMESTAMP

    (1)CURRENT_TIMESTAMPCURRENT TIMEZONECURRENT_TIMEZONESESSION_USERUSERSYSTEM_USER

    :

    1 SQL 2003 Core

    NULL

    CURRENT CLIENT_ACCTNGCURRENT CLIENT_ACCTNG VARCHAR(255)

    140 IBM i: DB2 for i SQL

    |

    |

  • 3

    v Set Client Information (SQLESETI) API

    v CLI SQLSetConnectAttr() SQL_ATTR_INFO_ACCTSTR

    v ODBC SQLSetConnectAttr() ODBC_ATTR_INFO_ACCTSTR

    v JDBC setClientInfo ClientAccounting

    VALUES CURRENT CLIENT_ACCTNGINTO :ACCT_STRING

    CURRENT CLIENT_APPLNAMECURRENT CLIENT_APPLNAME VARCHAR(255)

    3

    v Set Client Information (SQLESETI) API

    v CLI SQLSetConnectAttr() SQL_ATTR_INFO_APPLNAME

    v ODBC SQLSetConnectAttr() ODBC_ATTR_INFO_APPLNAME

    v JDBC setClient