iseries¿ë db2 udb sql ÂüÁ¶¼ v5r2
TRANSCRIPT
iSeries
iSeries� DB2 Universal Database SQL ���
�� 5
ERserver
���
iSeries
iSeries� DB2 Universal Database SQL ���
�� 5
ERserver
���
© Copyright International Business Machines Corporation 1998, 2002. All rights reserved.
��
iSeries� DB2 UDB SQL ��� �� �� . . . xv
�� �� . . . . . . . . . . . . . . . xv
SQL ���� ��� � ��. . . . . . . . xvi
SQL� �� ��� �� . . . . . . . . xvii
�� �� �� �� . . . . . . . . . xviii
�� �� � �� �� . . . . . . . . . . xix
SQL ��� ��� . . . . . . . . . . . xix
SQL ����� V5R2� ��� �� . . . . . xx
� 1 � �� . . . . . . . . . . . . . . 1
��� ������(RDB). . . . . . . . . . 1
SQL . . . . . . . . . . . . . . . . . 3
�� SQL . . . . . . . . . . . . . . 4
�� SQL . . . . . . . . . . . . . . 4
��(Extanded) �� SQL. . . . . . . . . 4
��� SQL . . . . . . . . . . . . . 4
SQL �� �� �����(CLI) � ODBC(Open
Database Connectivity) . . . . . . . . . 5
JDBC(Java Database Connectivity) � �
SQLJ(Java� SQL) ���� . . . . . . . . 5
��� . . . . . . . . . . . . . . . . 6
� . . . . . . . . . . . . . . . . . . 6
� . . . . . . . . . . . . . . . . . . 7
1� � � � � . . . . . . . . . . . . 7
�� ��� . . . . . . . . . . . . . . . 8
�� ���� . . . . . . . . . . . . . 10
�� . . . . . . . . . . . . . . . . 11
�� . . . . . . . . . . . . . . . . . 13
� . . . . . . . . . . . . . . . . . 14
�� . . . . . . . . . . . . . . . . . 15
��� � ��� ��. . . . . . . . . . . 15
�����. . . . . . . . . . . . . . . 16
���� . . . . . . . . . . . . . . . 17
������ ����, ��� � �� . . . . . 18
��, ��, ��. . . . . . . . . . . . 20
�� � . . . . . . . . . . . . . . 21
�� �� . . . . . . . . . . . . . . 21
�� ��� �� . . . . . . . . . . . 22
���� ��� ��� ��� ��. . . . 22
��� . . . . . . . . . . . . . . . . 23
�� �� . . . . . . . . . . . . . . . 24
�� ��� ������. . . . . . . . . . 28
������ �� . . . . . . . . . . . 29
CONNECT(� 1) � CONNECT(� 2) . . 29
��� �� � . . . . . . . . . . . 30
������ �� �� �� � . . . . . . 31
�� �� ���� . . . . . . . . . . . 34
�� �� . . . . . . . . . . . . . . . 34
�� �� � �� ��� . . . . . . . . 35
��� �� �� � CCSID . . . . . . . 37
��� CCSID . . . . . . . . . . . . 37
�� �� . . . . . . . . . . . . . . . 38
���� � �� . . . . . . . . . . . . 39
���� �� . . . . . . . . . . . . . 40
� 2 � �� �� . . . . . . . . . . . . 41
�� . . . . . . . . . . . . . . . . . 42
�� . . . . . . . . . . . . . . . . . 42
ID . . . . . . . . . . . . . . . . . 45
SQL ID . . . . . . . . . . . . . . 45
��� ID . . . . . . . . . . . . . . 45
��� ID . . . . . . . . . . . . . . 46
�� �� . . . . . . . . . . . . . . . 47
��� �� ����� ��� . . . . . 54
SQL ��� ����: �� ���� . . . . 56
��� � SQL � . . . . . . . . . . . 56
�� . . . . . . . . . . . . . . . . . 57
���� ID � ����� . . . . . . . . . 58
� . . . . . . . . . . . . . . . . 59
�� � . . . . . . . . . . . . . . . 60
2� ��� . . . . . . . . . . . . . 62
�� ��� . . . . . . . . . . . . . 62
�� �� . . . . . . . . . . . . 63
� ��� . . . . . . . . . . . . 64
� �� . . . . . . . . . . . . 65
� ���(LOB) . . . . . . . . . . . 66
� . . . . . . . . . . . . . . . . 67
Datetime � . . . . . . . . . . . . . 68
DataLink � . . . . . . . . . . . . . 74
� ID � . . . . . . . . . . . . . . 75
��� �� � . . . . . . . . . . . 75
�� �� �� . . . . . . . . . . . . 76
�� � ��� ��� . . . . . . . . . . 77
��� � . . . . . . . . . . . . . . 80
© Copyright IBM Corp. 1998, 2002 iii
||
||
||
||
||
||
||
||
� �� . . . . . . . . . . . . . . 82
��� �� . . . . . . . . . . . . . 83
Datetime �� . . . . . . . . . . . . 86
DataLink �� . . . . . . . . . . . . 87
� ID �� . . . . . . . . . . . . . 88
�� � �� . . . . . . . . . . . 88
� � . . . . . . . . . . . . . . 90
��� � . . . . . . . . . . . . . 90
Datetime � . . . . . . . . . . . . 92
�� � � . . . . . . . . . . . 92
�� �� �� �� �� . . . . . . . . . 93
2� ��� ���� . . . . . . . . . . 94
��� � ��� ���� . . . . . . . 95
� ���� . . . . . . . . . . . . 95
Datetime ���� . . . . . . . . . . . 96
DATALINK ����. . . . . . . . . . 97
DISTINCT � ���� . . . . . . . . 97
��� �� ��� � �� �� . . . . . . 97
�� . . . . . . . . . . . . . . . . . 99
�� �� . . . . . . . . . . . . . . 99
�� ��� �� . . . . . . . . . . . 99
�� �� . . . . . . . . . . . . . . 99
2� ��� �� . . . . . . . . . . . 100
�� ��� �� . . . . . . . . . . . 100
� ��� �� . . . . . . . . . . 101
���. . . . . . . . . . . . . . . 102
�� �� . . . . . . . . . . . . . 104
�� ���� . . . . . . . . . . . . . 104
CURRENT DATE �� CURRENT_DATE 104
CURRENT PATH, CURRENT_PATH ��
CURRENT FUNCTION PATH. . . . . . 105
CURRENT SCHEMA . . . . . . . . . 105
CURRENT SERVER ��
CURRENT_SERVER . . . . . . . . . 106
CURRENT TIME �� CURRENT_TIME 106
CURRENT TIMESTAMP ��
CURRENT_TIMESTAMP. . . . . . . . 107
CURRENT TIMEZONE ��
CURRENT_TIMEZONE . . . . . . . . 107
USER . . . . . . . . . . . . . . 107
�� . . . . . . . . . . . . . . . 108
��� �� . . . . . . . . . . . . 108
���. . . . . . . . . . . . . . . 108
�� � �� � �� ��� . . . . 111
��� ��� �� ��� . . . . . . . 112
��� �� �� . . . . . . . . . 113
�� �� . . . . . . . . . . . . . . 114
��� ��� �� �� . . . . . . . . 114
C, C++, COBOL PL/I � RPG� ��� �� 119
C, C++, COBOL, PL/I � RPG� ��� ��
� . . . . . . . . . . . . . . . . 120
� . . . . . . . . . . . . . . . . 121
� � . . . . . . . . . . . . . 121
� �� . . . . . . . . . . . . . 123
�� ��� �� �� ��. . . . . . . 125
� �� . . . . . . . . . . . . . 127
���. . . . . . . . . . . . . . . . 127
���� �� . . . . . . . . . . 129
�� ���� ��� . . . . . . . 129
���� �� . . . . . . . . . . 131
� �� ���� . . . . . . . . . 131
��� �� ���� . . . . . . . . . 131
� �� ���� . . . . . . . . . 132
SQL� �� �� . . . . . . . . . . . 132
�� ��� ����. . . . . . . . . . 132
�� �� ���� . . . . . . . . . 133
��� � �� . . . . . . . . . . . 133
Datetime ����� �� . . . . . . . . 133
SQL� Datetime � . . . . . . . . . 134
�� �� . . . . . . . . . . . . . 139
CASE ��� . . . . . . . . . . . . 139
CAST �� . . . . . . . . . . . . . 141
� . . . . . . . . . . . . . . . . 144
�� � . . . . . . . . . . . . . 144
��� � � . . . . . . . . . . . 145
BETWEEN � . . . . . . . . . . . 147
EXISTS � . . . . . . . . . . . . 148
IN � . . . . . . . . . . . . . . 148
LIKE � . . . . . . . . . . . . . 152
NULL � . . . . . . . . . . . . . 154
�� �� . . . . . . . . . . . . . . 154
� . . . . . . . . . . . . . . . . 156
� 3 � �� �� . . . . . . . . . . . 157
� . . . . . . . . . . . . . . . 162
AVG . . . . . . . . . . . . . . . 163
COUNT . . . . . . . . . . . . . . 165
COUNT_BIG . . . . . . . . . . . . 167
MAX . . . . . . . . . . . . . . . 169
MIN . . . . . . . . . . . . . . . 170
STDDEV �� STDDEV_POP . . . . . . 171
SUM . . . . . . . . . . . . . . . 172
VAR_POP �� VARIANCE �� VAR . . 173
iv iSeries� DB2 UDB SQL ��� V5R2
||
||
||
||
��� � . . . . . . . . . . . . . . 174
� . . . . . . . . . . . . . . . . 174
ABS . . . . . . . . . . . . . . . 175
ACOS . . . . . . . . . . . . . . 176
ANTILOG . . . . . . . . . . . . . 177
ASIN . . . . . . . . . . . . . . . 178
ATAN . . . . . . . . . . . . . . 179
ATANH . . . . . . . . . . . . . . 180
ATAN2 . . . . . . . . . . . . . . 181
BIGINT . . . . . . . . . . . . . . 182
BLOB . . . . . . . . . . . . . . 184
CEILING . . . . . . . . . . . . . 186
CHAR . . . . . . . . . . . . . . 187
CHARACTER_LENGTH . . . . . . . . 192
CLOB . . . . . . . . . . . . . . 193
COALESCE . . . . . . . . . . . . 197
CONCAT . . . . . . . . . . . . . 198
COS . . . . . . . . . . . . . . . 199
COSH . . . . . . . . . . . . . . 200
COT . . . . . . . . . . . . . . . 201
CURDATE . . . . . . . . . . . . . 202
CURTIME . . . . . . . . . . . . . 203
DATE . . . . . . . . . . . . . . 204
DAY . . . . . . . . . . . . . . . 206
DAYOFMONTH . . . . . . . . . . . 207
DAYOFWEEK . . . . . . . . . . . 208
DAYOFWEEK_ISO. . . . . . . . . . 209
DAYOFYEAR . . . . . . . . . . . 210
DAYS . . . . . . . . . . . . . . 211
DBCLOB . . . . . . . . . . . . . 213
DECIMAL �� DEC . . . . . . . . . 215
DEGREES . . . . . . . . . . . . . 218
DIFFERENCE. . . . . . . . . . . . 219
DIGITS . . . . . . . . . . . . . . 220
DLCOMMENT . . . . . . . . . . . 221
DLLINKTYPE . . . . . . . . . . . 222
DLURLCOMPLETE . . . . . . . . . 223
DLURLPATH . . . . . . . . . . . . 224
DLURLPATHONLY . . . . . . . . . 225
DLURLSCHEME . . . . . . . . . . 226
DLURLSERVER . . . . . . . . . . . 227
DLVALUE . . . . . . . . . . . . . 229
DOUBLE_PRECISION �� DOUBLE . . . 230
EXP . . . . . . . . . . . . . . . 232
FLOAT . . . . . . . . . . . . . . 233
FLOOR . . . . . . . . . . . . . . 234
GRAPHIC . . . . . . . . . . . . . 236
HASH . . . . . . . . . . . . . . 238
HEX . . . . . . . . . . . . . . . 239
HOUR . . . . . . . . . . . . . . 240
IDENTITY_VAL_LOCAL . . . . . . . 241
IFNULL . . . . . . . . . . . . . . 245
INTEGER �� INT . . . . . . . . . 246
JULIAN_DAY . . . . . . . . . . . 248
LAND . . . . . . . . . . . . . . 249
LCASE . . . . . . . . . . . . . . 250
LEFT . . . . . . . . . . . . . . . 251
LENGTH . . . . . . . . . . . . . 253
LN. . . . . . . . . . . . . . . . 255
LNOT . . . . . . . . . . . . . . 256
LOCATE . . . . . . . . . . . . . 257
LOG10 . . . . . . . . . . . . . . 258
LOR . . . . . . . . . . . . . . . 259
LOWER . . . . . . . . . . . . . . 260
LTRIM . . . . . . . . . . . . . . 261
MAX . . . . . . . . . . . . . . . 262
MICROSECOND. . . . . . . . . . . 264
MIDNIGHT_SECONDS . . . . . . . . 265
MIN . . . . . . . . . . . . . . . 266
MINUTE . . . . . . . . . . . . . 268
MOD . . . . . . . . . . . . . . . 269
MONTH. . . . . . . . . . . . . . 271
NODENAME . . . . . . . . . . . . 272
NODENUMBER . . . . . . . . . . . 273
NOW . . . . . . . . . . . . . . . 274
NULLIF . . . . . . . . . . . . . . 275
PARTITION . . . . . . . . . . . . 276
PI . . . . . . . . . . . . . . . . 277
POSITION �� POSSTR. . . . . . . . 278
POWER . . . . . . . . . . . . . . 280
QUARTER . . . . . . . . . . . . . 281
RADIANS . . . . . . . . . . . . . 282
RAND . . . . . . . . . . . . . . 283
REAL . . . . . . . . . . . . . . 284
ROUND . . . . . . . . . . . . . . 285
ROWID . . . . . . . . . . . . . . 287
RRN . . . . . . . . . . . . . . . 288
RTRIM . . . . . . . . . . . . . . 289
SECOND . . . . . . . . . . . . . 290
SIGN . . . . . . . . . . . . . . . 291
SIN . . . . . . . . . . . . . . . 292
SINH . . . . . . . . . . . . . . . 293
�� v
||
||
||
SMALLINT . . . . . . . . . . . . 294
SOUNDEX . . . . . . . . . . . . . 296
SPACE . . . . . . . . . . . . . . 297
SQRT . . . . . . . . . . . . . . 298
STRIP . . . . . . . . . . . . . . 299
SUBSTRING �� SUBSTR. . . . . . . 301
TAN . . . . . . . . . . . . . . . 303
TANH . . . . . . . . . . . . . . 304
TIME. . . . . . . . . . . . . . . 305
TIMESTAMP . . . . . . . . . . . . 306
TIMESTAMPDIFF . . . . . . . . . . 308
TRANSLATE . . . . . . . . . . . . 310
TRIM. . . . . . . . . . . . . . . 313
TRUNCATE �� TRUNC . . . . . . . 315
UCASE . . . . . . . . . . . . . . 317
UPPER . . . . . . . . . . . . . . 318
VALUE . . . . . . . . . . . . . . 319
VARCHAR. . . . . . . . . . . . . 320
VARGRAPHIC . . . . . . . . . . . 325
WEEK . . . . . . . . . . . . . . 327
WEEK_ISO . . . . . . . . . . . . 328
XOR . . . . . . . . . . . . . . . 329
YEAR . . . . . . . . . . . . . . 330
ZONED . . . . . . . . . . . . . . 331
� 4 � �� . . . . . . . . . . . . . 335
���� . . . . . . . . . . . . . . . 335
subselect. . . . . . . . . . . . . . . 336
select� . . . . . . . . . . . . . . 337
from� . . . . . . . . . . . . . . 340
where� . . . . . . . . . . . . . . 345
group-by� . . . . . . . . . . . . . 346
having� . . . . . . . . . . . . . . 347
subselect� � . . . . . . . . . . . . 348
fullselect. . . . . . . . . . . . . . . 350
fullselect� � . . . . . . . . . . . . 351
select� . . . . . . . . . . . . . . . 352
common-table ��� . . . . . . . . . 353
order-by� . . . . . . . . . . . . . 354
fetch-first� . . . . . . . . . . . . . 355
update� . . . . . . . . . . . . . . 356
read-only� . . . . . . . . . . . . . 357
optimize� . . . . . . . . . . . . . 357
isolation� . . . . . . . . . . . . . 358
select� � . . . . . . . . . . . . . 358
� 5 � ��� . . . . . . . . . . . . 361
SQL�� ��� �� . . . . . . . . . . 365
������ ����� �� � . . . . 366
�� � � ��. . . . . . . . . . . 367
select�� �� �� . . . . . . . . . . 367
select�� �� �� . . . . . . . . . . 368
��� �� . . . . . . . . . . . . . 368
SQL � �� . . . . . . . . . . . . 368
SQLCODE . . . . . . . . . . . . . 369
SQLSTATE . . . . . . . . . . . . 369
SQL � . . . . . . . . . . . . . . 370
� . . . . . . . . . . . . . . . . 370
ALTER TABLE . . . . . . . . . . . . 371
�� . . . . . . . . . . . . . . . 371
���� . . . . . . . . . . . . . . 371
�� . . . . . . . . . . . . . . . 373
�� . . . . . . . . . . . . . . . 378
ADD COLUMN . . . . . . . . . . . 381
ALTER COLUMN . . . . . . . . . . 386
DROP COLUMN . . . . . . . . . . 388
ADD unique-constraint. . . . . . . . . 388
ADD referential-constraint . . . . . . . 389
ADD check-constraint . . . . . . . . . 391
DROP . . . . . . . . . . . . . . 392
. . . . . . . . . . . . . . . . 393
� �� . . . . . . . . . . . . . 394
� . . . . . . . . . . . . . . . . 396
BEGIN DECLARE SECTION . . . . . . . 398
�� . . . . . . . . . . . . . . . 398
���� . . . . . . . . . . . . . . 398
�� . . . . . . . . . . . . . . . 398
�� . . . . . . . . . . . . . . . 398
� . . . . . . . . . . . . . . . . 399
CALL . . . . . . . . . . . . . . . 400
�� . . . . . . . . . . . . . . . 400
���� . . . . . . . . . . . . . . 400
�� . . . . . . . . . . . . . . . 400
�� . . . . . . . . . . . . . . . 402
. . . . . . . . . . . . . . . . 403
� . . . . . . . . . . . . . . . . 405
CLOSE . . . . . . . . . . . . . . . 406
�� . . . . . . . . . . . . . . . 406
���� . . . . . . . . . . . . . . 406
�� . . . . . . . . . . . . . . . 406
�� . . . . . . . . . . . . . . . 406
. . . . . . . . . . . . . . . . 406
� . . . . . . . . . . . . . . . . 407
vi iSeries� DB2 UDB SQL ��� V5R2
||
||
||
||
COMMENT . . . . . . . . . . . . . 408
�� . . . . . . . . . . . . . . . 408
���� . . . . . . . . . . . . . . 408
�� . . . . . . . . . . . . . . . 410
�� . . . . . . . . . . . . . . . 413
� . . . . . . . . . . . . . . . . 417
COMMIT . . . . . . . . . . . . . . 418
�� . . . . . . . . . . . . . . . 418
���� . . . . . . . . . . . . . . 418
�� . . . . . . . . . . . . . . . 418
�� . . . . . . . . . . . . . . . 418
. . . . . . . . . . . . . . . . 419
� . . . . . . . . . . . . . . . . 420
CONNECT(� 1) . . . . . . . . . . . 421
�� . . . . . . . . . . . . . . . 421
���� . . . . . . . . . . . . . . 421
�� . . . . . . . . . . . . . . . 421
�� . . . . . . . . . . . . . . . 422
. . . . . . . . . . . . . . . . 423
� . . . . . . . . . . . . . . . . 426
CONNECT(� 2) . . . . . . . . . . . 427
�� . . . . . . . . . . . . . . . 427
���� . . . . . . . . . . . . . . 427
�� . . . . . . . . . . . . . . . 427
�� . . . . . . . . . . . . . . . 428
. . . . . . . . . . . . . . . . 429
� . . . . . . . . . . . . . . . . 430
CREATE ALIAS. . . . . . . . . . . . 432
�� . . . . . . . . . . . . . . . 432
���� . . . . . . . . . . . . . . 432
�� . . . . . . . . . . . . . . . 432
�� . . . . . . . . . . . . . . . 432
. . . . . . . . . . . . . . . . 433
� . . . . . . . . . . . . . . . . 434
CREATE DISTINCT TYPE . . . . . . . . 435
�� . . . . . . . . . . . . . . . 435
���� . . . . . . . . . . . . . . 435
�� . . . . . . . . . . . . . . . 436
�� . . . . . . . . . . . . . . . 437
. . . . . . . . . . . . . . . . 438
� . . . . . . . . . . . . . . . . 442
CREATE FUNCTION . . . . . . . . . . 443
. . . . . . . . . . . . . . . . 443
CREATE FUNCTION(�� ���) . . . . . 447
�� . . . . . . . . . . . . . . . 447
���� . . . . . . . . . . . . . . 447
�� . . . . . . . . . . . . . . . 448
�� . . . . . . . . . . . . . . . 451
. . . . . . . . . . . . . . . . 462
� 1 . . . . . . . . . . . . . . . 463
� 2 . . . . . . . . . . . . . . . 464
CREATE FUNCTION(�� ���) . . . . . 465
�� . . . . . . . . . . . . . . . 465
���� . . . . . . . . . . . . . . 465
�� . . . . . . . . . . . . . . . 466
�� . . . . . . . . . . . . . . . 469
. . . . . . . . . . . . . . . . 478
� 1 . . . . . . . . . . . . . . . 479
CREATE FUNCTION(���(sourced)) . . . . 480
�� . . . . . . . . . . . . . . . 480
���� . . . . . . . . . . . . . . 480
�� . . . . . . . . . . . . . . . 482
�� . . . . . . . . . . . . . . . 483
. . . . . . . . . . . . . . . . 487
� 1 . . . . . . . . . . . . . . . 487
� 2 . . . . . . . . . . . . . . . 487
CREATE FUNCTION(SQL ���) . . . . . 488
�� . . . . . . . . . . . . . . . 488
���� . . . . . . . . . . . . . . 488
�� . . . . . . . . . . . . . . . 489
�� . . . . . . . . . . . . . . . 491
. . . . . . . . . . . . . . . . 494
� 1 . . . . . . . . . . . . . . . 496
CREATE FUNCTION(SQL �). . . . . . . 497
�� . . . . . . . . . . . . . . . 497
���� . . . . . . . . . . . . . . 497
�� . . . . . . . . . . . . . . . 498
�� . . . . . . . . . . . . . . . 500
. . . . . . . . . . . . . . . . 503
� . . . . . . . . . . . . . . . . 505
CREATE INDEX . . . . . . . . . . . 506
�� . . . . . . . . . . . . . . . 506
���� . . . . . . . . . . . . . . 506
�� . . . . . . . . . . . . . . . 506
�� . . . . . . . . . . . . . . . 507
. . . . . . . . . . . . . . . . 508
� . . . . . . . . . . . . . . . . 509
CREATE PROCEDURE . . . . . . . . . 510
. . . . . . . . . . . . . . . . 510
CREATE PROCEDURE(��) . . . . . . . 512
�� . . . . . . . . . . . . . . . 512
���� . . . . . . . . . . . . . . 512
�� vii
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
�� . . . . . . . . . . . . . . . 513
�� . . . . . . . . . . . . . . . 516
. . . . . . . . . . . . . . . . 523
� . . . . . . . . . . . . . . . . 524
CREATE PROCEDURE(SQL) . . . . . . . 526
�� . . . . . . . . . . . . . . . 526
���� . . . . . . . . . . . . . . 526
�� . . . . . . . . . . . . . . . 527
�� . . . . . . . . . . . . . . . 530
. . . . . . . . . . . . . . . . 533
� . . . . . . . . . . . . . . . . 535
CREATE SCHEMA . . . . . . . . . . 536
�� . . . . . . . . . . . . . . . 536
���� . . . . . . . . . . . . . . 536
�� . . . . . . . . . . . . . . . 536
�� . . . . . . . . . . . . . . . 537
. . . . . . . . . . . . . . . . 538
� . . . . . . . . . . . . . . . . 540
CREATE TABLE . . . . . . . . . . . 541
�� . . . . . . . . . . . . . . . 541
���� . . . . . . . . . . . . . . 541
�� . . . . . . . . . . . . . . . 543
�� . . . . . . . . . . . . . . . 548
column-definition . . . . . . . . . . . 555
LIKE . . . . . . . . . . . . . . . 561
as-subquery-clause . . . . . . . . . . 562
copy-options . . . . . . . . . . . . 564
unique-constraint . . . . . . . . . . . 564
referential-constraint . . . . . . . . . . 565
check-constraint . . . . . . . . . . . 567
nodegroup� . . . . . . . . . . . . 568
. . . . . . . . . . . . . . . . 569
���� �� �� . . . . . . . . . . 572
� . . . . . . . . . . . . . . . . 573
CREATE TRIGGER . . . . . . . . . . 575
�� . . . . . . . . . . . . . . . 575
���� . . . . . . . . . . . . . . 575
�� . . . . . . . . . . . . . . . 577
�� . . . . . . . . . . . . . . . 581
. . . . . . . . . . . . . . . . 583
� . . . . . . . . . . . . . . . . 588
CREATE VIEW . . . . . . . . . . . . 590
�� . . . . . . . . . . . . . . . 590
���� . . . . . . . . . . . . . . 590
�� . . . . . . . . . . . . . . . 591
�� . . . . . . . . . . . . . . . 591
. . . . . . . . . . . . . . . . 594
� . . . . . . . . . . . . . . . . 596
DECLARE CURSOR . . . . . . . . . . 598
�� . . . . . . . . . . . . . . . 598
���� . . . . . . . . . . . . . . 598
�� . . . . . . . . . . . . . . . 599
�� . . . . . . . . . . . . . . . 599
. . . . . . . . . . . . . . . . 601
� . . . . . . . . . . . . . . . . 604
DECLARE GLOBAL TEMPORARY TABLE 606
�� . . . . . . . . . . . . . . . 606
���� . . . . . . . . . . . . . . 606
�� . . . . . . . . . . . . . . . 607
�� . . . . . . . . . . . . . . . 611
column-definition . . . . . . . . . . . 614
LIKE . . . . . . . . . . . . . . . 617
as-subquery-clause . . . . . . . . . . 618
copy-options . . . . . . . . . . . . 620
. . . . . . . . . . . . . . . . 621
� . . . . . . . . . . . . . . . . 622
DECLARE PROCEDURE . . . . . . . . 624
�� . . . . . . . . . . . . . . . 624
���� . . . . . . . . . . . . . . 624
�� . . . . . . . . . . . . . . . 624
�� . . . . . . . . . . . . . . . 627
. . . . . . . . . . . . . . . . 632
� . . . . . . . . . . . . . . . . 633
DECLARE STATEMENT . . . . . . . . 634
�� . . . . . . . . . . . . . . . 634
���� . . . . . . . . . . . . . . 634
�� . . . . . . . . . . . . . . . 634
�� . . . . . . . . . . . . . . . 634
� . . . . . . . . . . . . . . . . 634
DECLARE VARIABLE . . . . . . . . . 636
�� . . . . . . . . . . . . . . . 636
���� . . . . . . . . . . . . . . 636
�� . . . . . . . . . . . . . . . 636
�� . . . . . . . . . . . . . . . 636
. . . . . . . . . . . . . . . . 637
� . . . . . . . . . . . . . . . . 638
DELETE . . . . . . . . . . . . . . 639
�� . . . . . . . . . . . . . . . 639
���� . . . . . . . . . . . . . . 639
�� . . . . . . . . . . . . . . . 640
�� . . . . . . . . . . . . . . . 641
DELETE �� . . . . . . . . . . . . 642
viii iSeries� DB2 UDB SQL ��� V5R2
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
. . . . . . . . . . . . . . . . 643
� . . . . . . . . . . . . . . . . 644
DESCRIBE. . . . . . . . . . . . . . 645
�� . . . . . . . . . . . . . . . 645
���� . . . . . . . . . . . . . . 645
�� . . . . . . . . . . . . . . . 645
�� . . . . . . . . . . . . . . . 645
. . . . . . . . . . . . . . . . 647
� . . . . . . . . . . . . . . . . 648
DESCRIBE TABLE . . . . . . . . . . 650
�� . . . . . . . . . . . . . . . 650
���� . . . . . . . . . . . . . . 650
�� . . . . . . . . . . . . . . . 650
�� . . . . . . . . . . . . . . . 650
. . . . . . . . . . . . . . . . 652
� . . . . . . . . . . . . . . . . 653
DISCONNECT . . . . . . . . . . . . 653
�� . . . . . . . . . . . . . . . 653
���� . . . . . . . . . . . . . . 653
�� . . . . . . . . . . . . . . . 654
�� . . . . . . . . . . . . . . . 654
. . . . . . . . . . . . . . . . 654
� . . . . . . . . . . . . . . . . 655
DROP . . . . . . . . . . . . . . . 656
�� . . . . . . . . . . . . . . . 656
���� . . . . . . . . . . . . . . 656
�� . . . . . . . . . . . . . . . 658
�� . . . . . . . . . . . . . . . 660
. . . . . . . . . . . . . . . . 666
� . . . . . . . . . . . . . . . . 666
END DECLARE SECTION . . . . . . . . 668
�� . . . . . . . . . . . . . . . 668
���� . . . . . . . . . . . . . . 668
�� . . . . . . . . . . . . . . . 668
�� . . . . . . . . . . . . . . . 668
� . . . . . . . . . . . . . . . . 669
EXECUTE . . . . . . . . . . . . . . 670
�� . . . . . . . . . . . . . . . 670
���� . . . . . . . . . . . . . . 670
�� . . . . . . . . . . . . . . . 670
�� . . . . . . . . . . . . . . . 670
. . . . . . . . . . . . . . . . 671
� . . . . . . . . . . . . . . . . 672
EXECUTE IMMEDIATE . . . . . . . . . 673
�� . . . . . . . . . . . . . . . 673
���� . . . . . . . . . . . . . . 673
�� . . . . . . . . . . . . . . . 673
�� . . . . . . . . . . . . . . . 674
. . . . . . . . . . . . . . . . 674
� . . . . . . . . . . . . . . . . 674
FETCH . . . . . . . . . . . . . . . 675
�� . . . . . . . . . . . . . . . 675
���� . . . . . . . . . . . . . . 675
�� . . . . . . . . . . . . . . . 675
�� . . . . . . . . . . . . . . . 676
single-fetch . . . . . . . . . . . . . 677
multiple-row-fetch . . . . . . . . . . 678
. . . . . . . . . . . . . . . . 680
� . . . . . . . . . . . . . . . . 681
FREE LOCATOR . . . . . . . . . . . 683
�� . . . . . . . . . . . . . . . 683
���� . . . . . . . . . . . . . . 683
�� . . . . . . . . . . . . . . . 683
�� . . . . . . . . . . . . . . . 683
� . . . . . . . . . . . . . . . . 683
GRANT(�� � ��) . . . . . . . . 684
�� . . . . . . . . . . . . . . . 684
���� . . . . . . . . . . . . . . 684
�� . . . . . . . . . . . . . . . 684
�� . . . . . . . . . . . . . . . 685
. . . . . . . . . . . . . . . . 685
� . . . . . . . . . . . . . . . . 686
GRANT( � �� ����� ��) . . . . . 687
�� . . . . . . . . . . . . . . . 687
���� . . . . . . . . . . . . . . 687
�� . . . . . . . . . . . . . . . 688
�� . . . . . . . . . . . . . . . 690
. . . . . . . . . . . . . . . . 693
� . . . . . . . . . . . . . . . . 694
GRANT(��� ��) . . . . . . . . . . 695
�� . . . . . . . . . . . . . . . 695
���� . . . . . . . . . . . . . . 695
�� . . . . . . . . . . . . . . . 695
�� . . . . . . . . . . . . . . . 695
. . . . . . . . . . . . . . . . 696
� . . . . . . . . . . . . . . . . 697
GRANT(� ��) . . . . . . . . . . . . 698
�� . . . . . . . . . . . . . . . 698
���� . . . . . . . . . . . . . . 698
�� . . . . . . . . . . . . . . . 698
�� . . . . . . . . . . . . . . . 699
. . . . . . . . . . . . . . . . 701
�� ix
||
� . . . . . . . . . . . . . . . . 702
HOLD LOCATOR . . . . . . . . . . . 704
�� . . . . . . . . . . . . . . . 704
���� . . . . . . . . . . . . . . 704
�� . . . . . . . . . . . . . . . 704
�� . . . . . . . . . . . . . . . 704
. . . . . . . . . . . . . . . . 704
� . . . . . . . . . . . . . . . . 705
INCLUDE . . . . . . . . . . . . . . 706
�� . . . . . . . . . . . . . . . 706
���� . . . . . . . . . . . . . . 706
�� . . . . . . . . . . . . . . . 706
�� . . . . . . . . . . . . . . . 706
. . . . . . . . . . . . . . . . 707
� . . . . . . . . . . . . . . . . 707
INSERT . . . . . . . . . . . . . . . 708
�� . . . . . . . . . . . . . . . 708
���� . . . . . . . . . . . . . . 708
�� . . . . . . . . . . . . . . . 710
�� . . . . . . . . . . . . . . . 710
insert-multiple-rows . . . . . . . . . . 713
INSERT �� . . . . . . . . . . . . 713
. . . . . . . . . . . . . . . . 714
� . . . . . . . . . . . . . . . . 715
LABEL . . . . . . . . . . . . . . . 717
�� . . . . . . . . . . . . . . . 717
���� . . . . . . . . . . . . . . 717
�� . . . . . . . . . . . . . . . 718
�� . . . . . . . . . . . . . . . 718
. . . . . . . . . . . . . . . . 719
� . . . . . . . . . . . . . . . . 720
LOCK TABLE . . . . . . . . . . . . 721
�� . . . . . . . . . . . . . . . 721
���� . . . . . . . . . . . . . . 721
�� . . . . . . . . . . . . . . . 721
�� . . . . . . . . . . . . . . . 721
� . . . . . . . . . . . . . . . . 722
OPEN . . . . . . . . . . . . . . . 723
�� . . . . . . . . . . . . . . . 723
���� . . . . . . . . . . . . . . 723
�� . . . . . . . . . . . . . . . 723
�� . . . . . . . . . . . . . . . 723
�� �� �� . . . . . . . . . . 724
. . . . . . . . . . . . . . . . 725
� . . . . . . . . . . . . . . . . 727
PREPARE . . . . . . . . . . . . . . 728
�� . . . . . . . . . . . . . . . 728
���� . . . . . . . . . . . . . . 728
�� . . . . . . . . . . . . . . . 728
�� . . . . . . . . . . . . . . . 731
�� �� . . . . . . . . . . . . 731
. . . . . . . . . . . . . . . . 735
� . . . . . . . . . . . . . . . . 736
RELEASE . . . . . . . . . . . . . . 738
�� . . . . . . . . . . . . . . . 738
���� . . . . . . . . . . . . . . 738
�� . . . . . . . . . . . . . . . 738
�� . . . . . . . . . . . . . . . 738
. . . . . . . . . . . . . . . . 739
� . . . . . . . . . . . . . . . . 739
RELEASE SAVEPOINT . . . . . . . . . 740
�� . . . . . . . . . . . . . . . 740
���� . . . . . . . . . . . . . . 740
�� . . . . . . . . . . . . . . . 740
�� . . . . . . . . . . . . . . . 740
. . . . . . . . . . . . . . . . 740
� . . . . . . . . . . . . . . . . 740
RENAME . . . . . . . . . . . . . . 741
�� . . . . . . . . . . . . . . . 741
���� . . . . . . . . . . . . . . 741
�� . . . . . . . . . . . . . . . 741
�� . . . . . . . . . . . . . . . 741
. . . . . . . . . . . . . . . . 742
� . . . . . . . . . . . . . . . . 743
REVOKE(�� � ��) . . . . . . . . 744
�� . . . . . . . . . . . . . . . 744
���� . . . . . . . . . . . . . . 744
�� . . . . . . . . . . . . . . . 744
�� . . . . . . . . . . . . . . . 744
. . . . . . . . . . . . . . . . 745
� . . . . . . . . . . . . . . . . 745
REVOKE( � �� ����� ��) . . . . . 746
�� . . . . . . . . . . . . . . . 746
���� . . . . . . . . . . . . . . 746
�� . . . . . . . . . . . . . . . 747
�� . . . . . . . . . . . . . . . 749
. . . . . . . . . . . . . . . . 752
� . . . . . . . . . . . . . . . . 752
REVOKE(��� ��) . . . . . . . . . . 753
�� . . . . . . . . . . . . . . . 753
���� . . . . . . . . . . . . . . 753
�� . . . . . . . . . . . . . . . 753
x iSeries� DB2 UDB SQL ��� V5R2
||
||
||
||
||
||
||
||
||
||
||
||
||
||
�� . . . . . . . . . . . . . . . 753
. . . . . . . . . . . . . . . . 754
� . . . . . . . . . . . . . . . . 754
REVOKE(� ��) . . . . . . . . . . . 755
�� . . . . . . . . . . . . . . . 755
���� . . . . . . . . . . . . . . 755
�� . . . . . . . . . . . . . . . 755
�� . . . . . . . . . . . . . . . 755
. . . . . . . . . . . . . . . . 757
� . . . . . . . . . . . . . . . . 757
ROLLBACK . . . . . . . . . . . . . 759
�� . . . . . . . . . . . . . . . 759
���� . . . . . . . . . . . . . . 759
�� . . . . . . . . . . . . . . . 759
�� . . . . . . . . . . . . . . . 759
. . . . . . . . . . . . . . . . 761
� . . . . . . . . . . . . . . . . 762
SAVEPOINT . . . . . . . . . . . . . 763
�� . . . . . . . . . . . . . . . 763
���� . . . . . . . . . . . . . . 763
�� . . . . . . . . . . . . . . . 763
�� . . . . . . . . . . . . . . . 763
. . . . . . . . . . . . . . . . 764
� . . . . . . . . . . . . . . . . 764
SELECT. . . . . . . . . . . . . . . 765
SELECT INTO . . . . . . . . . . . . 766
�� . . . . . . . . . . . . . . . 766
���� . . . . . . . . . . . . . . 766
�� . . . . . . . . . . . . . . . 766
�� . . . . . . . . . . . . . . . 767
� . . . . . . . . . . . . . . . . 768
SET CONNECTION . . . . . . . . . . 769
�� . . . . . . . . . . . . . . . 769
���� . . . . . . . . . . . . . . 769
�� . . . . . . . . . . . . . . . 769
�� . . . . . . . . . . . . . . . 769
. . . . . . . . . . . . . . . . 771
� . . . . . . . . . . . . . . . . 771
SET OPTION . . . . . . . . . . . . . 772
�� . . . . . . . . . . . . . . . 772
���� . . . . . . . . . . . . . . 772
�� . . . . . . . . . . . . . . . 772
�� . . . . . . . . . . . . . . . 776
. . . . . . . . . . . . . . . . 787
� . . . . . . . . . . . . . . . . 787
SET PATH. . . . . . . . . . . . . . 788
�� . . . . . . . . . . . . . . . 788
���� . . . . . . . . . . . . . . 788
�� . . . . . . . . . . . . . . . 788
�� . . . . . . . . . . . . . . . 788
. . . . . . . . . . . . . . . . 789
� . . . . . . . . . . . . . . . . 789
SET RESULT SETS . . . . . . . . . . 790
�� . . . . . . . . . . . . . . . 790
���� . . . . . . . . . . . . . . 790
�� . . . . . . . . . . . . . . . 790
�� . . . . . . . . . . . . . . . 790
. . . . . . . . . . . . . . . . 791
� . . . . . . . . . . . . . . . . 792
SET SCHEMA . . . . . . . . . . . . 793
�� . . . . . . . . . . . . . . . 793
���� . . . . . . . . . . . . . . 793
�� . . . . . . . . . . . . . . . 793
�� . . . . . . . . . . . . . . . 793
. . . . . . . . . . . . . . . . 794
� . . . . . . . . . . . . . . . . 794
SET TRANSACTION . . . . . . . . . . 795
�� . . . . . . . . . . . . . . . 795
���� . . . . . . . . . . . . . . 795
�� . . . . . . . . . . . . . . . 795
�� . . . . . . . . . . . . . . . 795
. . . . . . . . . . . . . . . . 796
� . . . . . . . . . . . . . . . . 797
SET �� ��. . . . . . . . . . . . . 798
�� . . . . . . . . . . . . . . . 798
���� . . . . . . . . . . . . . . 798
�� . . . . . . . . . . . . . . . 798
�� . . . . . . . . . . . . . . . 798
. . . . . . . . . . . . . . . . 799
� . . . . . . . . . . . . . . . . 799
SET �� . . . . . . . . . . . . . . 801
�� . . . . . . . . . . . . . . . 801
���� . . . . . . . . . . . . . . 801
�� . . . . . . . . . . . . . . . 801
�� . . . . . . . . . . . . . . . 801
. . . . . . . . . . . . . . . . 802
� . . . . . . . . . . . . . . . . 803
UPDATE . . . . . . . . . . . . . . 804
�� . . . . . . . . . . . . . . . 804
���� . . . . . . . . . . . . . . 804
�� . . . . . . . . . . . . . . . 806
�� . . . . . . . . . . . . . . . 807
�� xi
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
UPDATE ��. . . . . . . . . . . . 810
. . . . . . . . . . . . . . . . 811
� . . . . . . . . . . . . . . . . 812
VALUES . . . . . . . . . . . . . . 814
�� . . . . . . . . . . . . . . . 814
���� . . . . . . . . . . . . . . 814
�� . . . . . . . . . . . . . . . 814
�� . . . . . . . . . . . . . . . 814
. . . . . . . . . . . . . . . . 814
� . . . . . . . . . . . . . . . . 815
VALUES INTO . . . . . . . . . . . . 816
�� . . . . . . . . . . . . . . . 816
���� . . . . . . . . . . . . . . 816
�� . . . . . . . . . . . . . . . 816
�� . . . . . . . . . . . . . . . 816
. . . . . . . . . . . . . . . . 817
� . . . . . . . . . . . . . . . . 818
WHENEVER . . . . . . . . . . . . . 819
�� . . . . . . . . . . . . . . . 819
���� . . . . . . . . . . . . . . 819
�� . . . . . . . . . . . . . . . 819
�� . . . . . . . . . . . . . . . 819
. . . . . . . . . . . . . . . . 820
� . . . . . . . . . . . . . . . . 820
� 6 � SQL ��� . . . . . . . . . . 821
�� . . . . . . . . . . . . . . . . 821
SQL �� � ��� �� �� . . . . . . 824
SQL ����� �� . . . . . . . . . . 825
�� . . . . . . . . . . . . . . . 825
assignment� . . . . . . . . . . . . . 826
�� . . . . . . . . . . . . . . . 826
�� . . . . . . . . . . . . . . . 826
. . . . . . . . . . . . . . . . 827
� . . . . . . . . . . . . . . . . 827
CALL� . . . . . . . . . . . . . . . 828
�� . . . . . . . . . . . . . . . 828
�� . . . . . . . . . . . . . . . 828
. . . . . . . . . . . . . . . . 828
� . . . . . . . . . . . . . . . . 828
CASE� . . . . . . . . . . . . . . . 829
�� . . . . . . . . . . . . . . . 829
�� . . . . . . . . . . . . . . . 829
. . . . . . . . . . . . . . . . 830
� . . . . . . . . . . . . . . . . 830
compound� . . . . . . . . . . . . . 831
�� . . . . . . . . . . . . . . . 831
�� . . . . . . . . . . . . . . . 833
. . . . . . . . . . . . . . . . 836
� . . . . . . . . . . . . . . . . 837
FOR� . . . . . . . . . . . . . . . 838
�� . . . . . . . . . . . . . . . 838
�� . . . . . . . . . . . . . . . 838
. . . . . . . . . . . . . . . . 839
� . . . . . . . . . . . . . . . . 839
GET DIAGNOSTICS� . . . . . . . . . 840
�� . . . . . . . . . . . . . . . 840
�� . . . . . . . . . . . . . . . 840
. . . . . . . . . . . . . . . . 841
� . . . . . . . . . . . . . . . . 841
GOTO� . . . . . . . . . . . . . . . 843
�� . . . . . . . . . . . . . . . 843
�� . . . . . . . . . . . . . . . 843
. . . . . . . . . . . . . . . . 843
� . . . . . . . . . . . . . . . . 844
IF� . . . . . . . . . . . . . . . . 845
�� . . . . . . . . . . . . . . . 845
�� . . . . . . . . . . . . . . . 845
� . . . . . . . . . . . . . . . . 845
ITERATE� . . . . . . . . . . . . . 847
�� . . . . . . . . . . . . . . . 847
�� . . . . . . . . . . . . . . . 847
� . . . . . . . . . . . . . . . . 847
LEAVE� . . . . . . . . . . . . . . 849
�� . . . . . . . . . . . . . . . 849
�� . . . . . . . . . . . . . . . 849
. . . . . . . . . . . . . . . . 849
� . . . . . . . . . . . . . . . . 849
LOOP� . . . . . . . . . . . . . . . 851
�� . . . . . . . . . . . . . . . 851
�� . . . . . . . . . . . . . . . 851
� . . . . . . . . . . . . . . . . 851
REPEAT� . . . . . . . . . . . . . . 853
�� . . . . . . . . . . . . . . . 853
�� . . . . . . . . . . . . . . . 853
� . . . . . . . . . . . . . . . . 853
RESIGNAL� . . . . . . . . . . . . . 855
�� . . . . . . . . . . . . . . . 855
�� . . . . . . . . . . . . . . . 855
. . . . . . . . . . . . . . . . 856
� . . . . . . . . . . . . . . . . 857
RETURN� . . . . . . . . . . . . . . 858
�� . . . . . . . . . . . . . . . 858
xii iSeries� DB2 UDB SQL ��� V5R2
||
||
�� . . . . . . . . . . . . . . . 858
. . . . . . . . . . . . . . . . 859
� . . . . . . . . . . . . . . . . 859
SIGNAL� . . . . . . . . . . . . . . 861
�� . . . . . . . . . . . . . . . 861
�� . . . . . . . . . . . . . . . 861
. . . . . . . . . . . . . . . . 862
� . . . . . . . . . . . . . . . . 863
WHILE� . . . . . . . . . . . . . . 864
�� . . . . . . . . . . . . . . . 864
�� . . . . . . . . . . . . . . . 864
� . . . . . . . . . . . . . . . . 864
�� A. SQL �� . . . . . . . . . . . 867
�� B. SQL �� �� . . . . . . . . . 871
�� �� . . . . . . . . . . . . . . 871
INCLUDE SQLCA � . . . . . . . . . 876
�� C. SQLDA(SQL ��� ��) . . . . . 881
�� �� . . . . . . . . . . . . . . 881
SQLVAR ���� �� �� . . . . . . . 882
SQLVAR �� � � �� . . . . . . . 884
SQLTYPE � SQLLEN . . . . . . . . . 887
SQLDATA �� SQLNAME . . . . . . . 889
��� �� ��� �� SQLTYPES . . . 889
INCLUDE SQLDA � . . . . . . . . . 890
C � C++� . . . . . . . . . . . 890
COBOL� . . . . . . . . . . . 892
ILE COBOL� . . . . . . . . . . 893
PL/I� . . . . . . . . . . . . . 893
ILE(Integrated Language Environment)
RPG/400� . . . . . . . . . . . 894
�� D. ��� . . . . . . . . . . . . 897
�� E. ��� �� �� ID(CCSID) � . . . 899
�� F. SQL�� �� . . . . . . . . . . 913
SQL�� ��� �� . . . . . . . . . . 913
���� SQL� �� ��� �� . . . . . . 915
�� ��� ������(DRDB) ��� ���� 917
CONNECT(� 1) � CONNECT(� 2) �
�� . . . . . . . . . . . . . . . 925
�� G. iSeries� DB2 UDB ���� � . . . 927
. . . . . . . . . . . . . . . . . 930
iSeries ���� � � � . . . . . . . . . 931
SYSCATALOGS . . . . . . . . . . . 932
SYSCHKCST . . . . . . . . . . . . 934
SYSCOLUMNS . . . . . . . . . . . 935
SYSCST. . . . . . . . . . . . . . 944
SYSCSTCOL . . . . . . . . . . . . 945
SYSCSTDEP . . . . . . . . . . . . 946
SYSFUNCS . . . . . . . . . . . . 947
SYSINDEXES. . . . . . . . . . . . 953
SYSJARCONTENTS . . . . . . . . . 954
SYSJAROBJECTS . . . . . . . . . . 955
SYSKEYCST . . . . . . . . . . . . 956
SYSKEYS . . . . . . . . . . . . . 957
SYSPACKAGE . . . . . . . . . . . 958
SYSPARMS . . . . . . . . . . . . 960
SYSPROCS . . . . . . . . . . . . 964
SYSREFCST . . . . . . . . . . . . 969
SYSROUTINEDEP . . . . . . . . . . 970
SYSROUTINES . . . . . . . . . . . 971
SYSTABLES . . . . . . . . . . . . 979
SYSTRIGCOL . . . . . . . . . . . 981
SYSTRIGDEP. . . . . . . . . . . . 982
SYSTRIGGERS . . . . . . . . . . . 983
SYSTRIGUPD . . . . . . . . . . . 987
SYSTYPES. . . . . . . . . . . . . 988
SYSVIEWDEP . . . . . . . . . . . 994
SYSVIEWS . . . . . . . . . . . . 996
ODBC � JDBC ���� � . . . . . . . 997
SQLCOLPRIVILEGES . . . . . . . . . 998
SQLCOLUMNS . . . . . . . . . . . 999
SQLFOREIGNKEYS . . . . . . . . . 1004
SQLPRIMARYKEYS . . . . . . . . . 1005
SQLPROCEDURECOLS. . . . . . . . 1006
SQLPROCEDURES . . . . . . . . . 1012
SQLSCHEMAS . . . . . . . . . . . 1013
SQLSPECIALCOLUMNS . . . . . . . 1014
SQLSTATISTICS . . . . . . . . . . 1016
SQLTABLEPRIVILEGES . . . . . . . 1017
SQLTABLES . . . . . . . . . . . 1018
SQLTYPEINFO . . . . . . . . . . . 1019
SQLUDTS . . . . . . . . . . . . 1024
ANS � ISO ���� � . . . . . . . . 1026
CHARACTER_SETS . . . . . . . . . 1027
CHECK_CONSTRAINTS . . . . . . . 1028
COLUMNS . . . . . . . . . . . . 1029
INFORMATION_SCHEMA_CATALOG_NAME1033
PARAMETERS . . . . . . . . . . . 1034
REFERENTIAL_CONSTRAINTS . . . . 1038
�� xiii
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
ROUTINES . . . . . . . . . . . . 1039
SCHEMATA . . . . . . . . . . . . 1047
SQL_FEATURES . . . . . . . . . . 1048
SQL_LANGUAGES . . . . . . . . . 1049
SQL_SIZING . . . . . . . . . . . 1051
TABLE_CONSTRAINTS . . . . . . . 1052
TABLES . . . . . . . . . . . . . 1053
USER_DEFINED_TYPES . . . . . . . 1054
VIEWS. . . . . . . . . . . . . . 1058
�� �� . . . . . . . . . . . . . . 1059
�� . . . . . . . . . . . . . . . . 1061
xiv iSeries� DB2 UDB SQL ��� V5R2
||
||
||
||
||
||
||
||
||
iSeries� DB2 UDB SQL ��� �� ��
� �� DB2 �� ��� � SQL � ��� SQL(Structured Query
Language)� �����. � ��� ��� ��, ������ ��, ������ �
�� � ��� �� ���� � �� ��� ��� ����. �� ���
�� ��� � SQL�� �� ��, �� , � � � �� ��� ����.
���� �� ��� ��� �� ��� �����.
v ��� ���
v xvi ���� �SQL ���� ��� � ���
v xvii ���� �SQL� �� ��� ���
v xviii ���� ��� �� �� ���
v xix ���� ��� �� � �� ���
v xix ���� �SQL ��� ����
v xx ���� �SQL ����� V5R2� ��� ���
�� ��
iSeries� DB2 UDB �� 5 �� 1� ��� �� IBM � �� SQL ��� �
����.
v ISO(�� ��� ��) 9075: 1992, ������ � SQL - �� ��
v ISO(�� ��� ��) 9075-4: 1996, ������ � SQL - � 4 �: ��
�� ��(SQL/PSM)
v ISO(�� ��� ��) 9075: 1999 ������ � SQL - ��
v ANSI(�� �� ��) X3.135-1992, ������ � SQL - �� ��
v �� �� ��(ANSI) X3.135-4: 1996, ������ � SQL - � 4 �: �
� �� ��(SQL/PSM)
v ANSI(�� �� ��) 3.1355-1999 ������ � SQL - ��
v IBM SQL �� �� 2, SC26-8416.
��� �� ���� �� ��� �����. ��� ��� 772 ���� �SET
OPTION� � SQL ��� �� SQLCURRULE� �����.
© Copyright IBM Corp. 1998, 2002 xv
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SQL ���� ��� � ��
� �� iSeries ������� ���� � SQL� ��� ������� �
��� � ����� ���� ���.
� ���� ���� SQL ��� ��� ��� ��� ��, ������
�� � iSeries ��� ������ ���� �� ��� �� , �� ��
� �� �� �� ��� ��� ��� �����.
v COBOL for iSeries
v ILE C �
v ILE C++ �
v ILE COBOL �
v Toolbox for Java �� Developer Kit for Java
v ILE RPG �
v iSeries PL/I
v REXX
v RPG III(RPG for iSeries� ��)
v SQL(Structured Query Language)
� ��� � RPG � COBOL� ���� RPG� COBOL �� ����
�. COBOL for iSeries, ILE COBOL for iSeries, RPG for iSeries �� RPG
III(RPG for iSeries� ��)� ��� �� ��� �� � ��� �� ��� �
����.
� �� ������� �����. ���� �� SQL ���� ���� �
�� ��� ���. �� � ���� iSeries �� �� ������� ��� �
�� �����.
SQL�, �� �� � ��� �� ��� ��� SQL ��� � ��
�����.
�� �� IBM �� ����� ������� ��� ����, � � �(IBM
SQL �� �� 2 SC26-8416� ��) ��� �� �� �� ��� ��� �
����.
��� ��� �� ��� �����.
v xvii ���� �SQL� �� ��� ���
v xviii ���� ��� �� �� ���
xvi iSeries� DB2 UDB SQL ��� V5R2
|
SQL� �� ��� ��
� �� ��� SQL�� ��� SQL ��� �� �� A� �� �� ��
�� ��� �����.
v ��� SQL ��� ��� COBOL� ��� ����. EXEC SQL �
END-EXEC� COBOL ������ SQL�� ��� � �� ��. COBOL
������ SQL� �� ��� ��� SQL Programming with Host Languages
��� �� ��.
v � SQL �� � �� �� ��� � �� �� ��� � ��� �� �
����.
v SQL � �� ����� � ����.
v ��� ��� � ��� SQL ��� � �� �� A�� ��� �� ��
CORPDATA ���� �����. � ��� �� �� �� � ��� ��
�� ��� ���� ���� ���. �� SQL�� ��� ���� ���
����� �� �� ��� � ����.
CALL QSYS.CREATE_SQL_SAMPLE (’your-schema-name’)
v ��� � ��()� �� ����.
v SQL �� ��� �� ��.
v APOST � APOSTSQL ��� ��� �� ��(� COBOL �� ��
�� ����). SQL � ��� � �� �� �� ��� ��� ����
�(’)� �� ��.
v *HEX� �� ��� �� ��.
� ����� �� �� ��� �� ��.
�� ��� �� ���� �����.
�� �� ��
� ���� ��� ��� �� ����.
IBM� �� �� ��� � �� ��� �� ��� ��� � ���
�� ��� �� ��� ��� � �� ���� ��� ���� �����.
�� �� ��� IBM� �� �� ����� �� ��. � � ��� �� ��
�� �� ���� �� ����. ��� IBM� �� ����� ��, ��
� �� ��� �� �� � ����.
��� � �� ����� ��� � �� ���� ���� �� ��� ��
� ��� ��� � �� ″�����″ �� ��.
iSeries� DB2 UDB SQL ��� �� �� xvii
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� �� �� ��
� ���� ��� �� ��� ��� ��� ��� �����.
v �� ��� ���� ���, �� �, �� �� �� ����.
��─── ��� ��� ��� �����.
───� ��� �� ��� �� ��� ���� �����.
�─── ��� ��� ��� ���� �����.
───�� ��� ��� �� �����.
�� ����� |─── ��� ��� ───| ��� ����.
v �� ��� �� �(�� �)� ����.�� required_item ��
v ��� ��� �� � �� ����.�� required_item
optional_item��
�� ��� ��� �� � � ��� � ��� �� ��� ��� ��
��� �� ����� �� ��.
�� required_itemoptional_item
��
v � ��� ��� ��� �� �� � �� � �� ����.
�� � �� ��� ���� � ��� � ��� �� � � ���
�.�� required_item required_choice1
required_choice2��
�� �� � �� ����� �� ��� �� � �� ����.�� required_item
optional_choice1optional_choice2
��
�� �� � �� ����� � ��� �� � � �� ��� ���
��� �� ����.
�� required_itemdefault_choice
optional_choiceoptional_choice
��
v �� � � �� �� ��� ���� � �� ��� �����.
�� required_item repeatable_item ��
�� ��� �� ��� �� ��� �� ���� ���.
xviii iSeries� DB2 UDB SQL ��� V5R2
|
�� required_item
,
repeatable_item ��
�� � �� ��� ���� ��� ���� � ��� �����.
v � �� ���� ����(�� ��, FROM). ��� ��� ��� ��� �
��. ��� � ���� ����(�� ��, column-name). ���� ����
��� ���� �� �����.
v ��� ��, ��, ��� �� �� ���� ��� ��� ��� ���� �
���.
v �� ������� � � � �� �� � �� �� ����. �� � �
�� ��� � ��� ��� , �� ������ � � ��� �
��. ���� ��� �, � � � � �� � �� ��� � ���
�.
�� �� � �� ��
�� �� �� �� �� �, �� ��� �� ��.
SQL ��� ���
IBM� ��� ����� �� ���� � �� ����� � ��� ��� ��
�����. IBM� ��� ��� ��� �� �� ��� http://www.ibm.com/
able� Accessibility Center� �����.
SQL ��� ��� ��� �� �� �� �� �����.
v iSeries Navigator� iSeries � DB2 UDB�� � ��� �������.
Windows � ��� ������� ��� ��� ��� ��� �� ��
� Windows Help ��� ‘�� ��� ��’� �����.
iSeries� DB2 UDB SQL ��� �� �� xix
|
|
|
|
|
|
|
|
|
|
|
|
v IBM Home Page Reader� �� Windows Reader ������ ��� ��, �
�� ���, ���� SQL ������ ���� � ����. IBM Home Page
Reader � �� ��� �� ��� Accessibility Center � �����.
IBM Home Page Reader� ��� � �� �� ���, SQL Information Center
� �� ��, �� SQL ���� ���� � ����. � �, SQL �� ���
��� ��� ��� ��� �� ������ ��� ���. �� ��� �
��� ��� �� �� ��� �� ��.
v ��� SQL � �� ���
��� SQL � Query Manager� SQL�� �� ���� ��� �� �
�������. ��� DB2 UDB �� ��� � SQL ����. �
�� SQL � Query Manager� �� ��� ��� SQL Programming Concepts
� Query Manager Use �� �����.
v SQL Assist
SQL Assist� SQL��� ���� ������ ��� � ��� ��
�����. ��� iSeries Navigator ����. ��� ��� iSeries Navigator
��� ���� Information Center� �����.
SQL ����� V5R2� ��� ��
� ��� ��� ��� � �� ��� ����.
v ROWID �� �� ROWID ��� �
v IDENTITY �
v CREATE TABLE AS(� ��)
v DECLARE GLOBAL TEMPORARY �
v ��� �� � �
v COMMIT ON RETURN �����
v ��� UNION
v ��� � �� �� ��
v SET TRANSACTION�� READ ONLY � READ WRITE
v SQL �����, SQL �, SQL ��� ITERATE � � ���
v ��� � � �� � ���� Fullselect
v �� � ���� �� ��
v ���
v SET SCHEMA � SET SQLID
v HOLD LOCATOR
xx iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v �� ���� ��� �� ORDER BY ���
v ��� � � �� � ���� ORDER BY � FETCH FIRST n ROWS ONLY
v SQL� ��� 64� � ��.
v ��� �� ID� ��� � ��.
v SUBSTRING �� ��
v VARCHAR �� �
v SQL �����, SQL �, SQL ��� �� �� �� ���
v iSeries� �� ��� ������
v ��� ODBC � JDBC ���� �
v C �� ��
iSeries� DB2 UDB SQL ��� �� �� xxi
|
|
|
|
|
|
|
|
|
|
xxii iSeries� DB2 UDB SQL ��� V5R2
� 1 � ��
DB2 UDB for iSeries SQL ������ ��� �� �� �� ��.
v ���� ������(RDB)�
v 3 ���� �SQL�
v 6 ���� �����
v 6 ���� ���
v 7 ���� ���
v 7 ���� �1� � � � ��
v 8 ���� ��� ����
v 10 ���� ��� �����
v 11 ���� ����
v 13 ���� ����
v 14 ���� ���
v 15 ���� ����
v 15 ���� ���� � ��� ���
v 16 ���� �������
v 17 ���� ������
v 18 ���� ������� ����, ��� � ���
v 23 ���� �����
v 24 ���� ��� ���
v 28 ���� ��� ��� �������
v 34 ���� ��� ���
v 38 ���� ��� ���
v 39 ���� ����� � ���
v 40 ���� ����� ���
��� ������(RDB)��� ������(RDB)� � ��� ��� � �� ������� ��� ��
��� �� ��� � ����. ��� ������(RDB)�� ��� ��, ���
� ��� � ��� ��� ��� �� ����. ��� ��� �, �, �
�, ��, �� �, �, ����� � ���� ���.
© Copyright IBM Corp. 1998, 2002 1
|
|
|
|
���� iSeries ����� ���� � �� ��� �������� � �� �
� ����.
��� ��� ������
iSeries ���� �� ��� ��� ������(RDB)� ����. ��
� ��� ������� �� �� iSeries ���� ��� �����. �
������� ��� �� ���� �� ��� �� iSeries ���� �
� ���� ��� �� ������ ���� �� ��. ��� �
� ���� �� �� ��� ��� iSeries Information Center� ���
�� �� �����.
��� ��� ������� ��� ��� iSeries ��� ��� ����.
�� ��� ADDRDBDIRE(RDB ���� � ��) � �� iSeries
Navigator� ��� ��� � ����.
��� ��� ������
���� ���� ��� �� ���� �� ��� iSeries ���� �
� ��� ������� ��� � ����. � 1� �� �� ���� �
� ��� ��������. �� �� ���� �� ��� �� ��
���� ���� �� ��. ��, ��� �� ���� �� ��� �
� iSeries ���� �� ��� ��� ������� �� ������ �
��� ��� ��� ������� ���� � ����. ���,
��� ��� �������� ��� ���� ��� �� ��� ���
������ �� �� ��� ��� ������� �� ��� �� �
��� ���.
��� ��� ������� ���� ��� ��� ������� �
��� ��, ��� ��� ������� ��� ��� ������
� �� � ��� ��� ����.
v �� ��� �, � �� �� ��� ��� ������� ��� �
��� ���� ���.
v ��� ��� �� ��� ��� ������� ��� ���� ��
�� ���.
v ��� ����� �� �� ��� ��� ������� ��� �
��� ���� ���.
v �� ����� � � � � �� �� ��� ��� �������
���� ���.
v �� ��� �� �� ��� ��� ������� ��� ���
� ���� ���.
v �� ����� � � � � �� �� ��� ��� �������
���� ���.
2 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��� ��� ������� ���� ��� ��� ������� �
���� �� � ��� ��� ����. �� ��, ��� ��� �
������ ���� � ������ ��� ��� ������� ��
�� ��� � ����. � �, �� ��� ������� �� ���
��� �� ���� �� ��� ��� � ����. �� ��, ���
��� ������� ������� �� ����� ����� �
�.
��� ��� ������� iSeries ���� ��� ��� ��� ��
���� �� ���� ��. � iSeries ����� ��� �� ���� �
� ����� �� �� iSeries ���� ����� � ����. ���, �
�� ��� ������� �� ����� �� iSeries ���� ��� �
��� �� ����� ���� ��� � ����. ��� �� ���
� �� �� ��� ��� iSeries Information Center� ��� �� �
� �����.
��� ��� ������� ��� ��� ��� �� ���� �� ��
� ����. �� ��� ADDRDBDIRE(RDB ���� � ��) � �
� iSeries Navigator� ��� ��� � ����.
��� ��� ������
�� iSeries � iSeries ���� �� ��� ������� ���� �
�� � � ����. �� ��� �������� ADDRDBDIRE(RDB �
��� � ��) � �� iSeries Navigator� ��� ���� ��
�.
������ ���� iSeries ��� �� �� � ��� ������(RDB)� �
�� ��� iSeries� DB2 UDB ��� ��� � ����� ��� ��
��.
SQLSQL� ��� ������(RDB)�� ��� ��� ��� � ���� �
��. ��� �� ��� ��, ������� � ��� �� , �� �� ��
��� ���, ��� � ��� �� ��� �� � �� ���� �� �
�� �� ��.
SQL�� ������ ���� �� �� ��. ������ ���� � �
�� ��� ��� �� ��� ���� ��� �� ���� ��� ���.
�� ��� SQL�� �� � ����. �� ��� ����� ���.
� 1 � � 3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
����� �� SQL�� ��� �� ��� ��� ���. � ��� �
���� �� ��� �� ���. SQL�� �� ���� �� �
� ��� �� SQL� �� SQL� �����.
�� SQL
�� SQL�� �� �� COBOL� �� ��� �� ��� ������ ��
�� �� � ��. SQL�� ����� ��� �� � , SQL� ��
�� ���� ��� ���� � ��.
�� SQL�� �� �� �� ����� � � �� SQL ��� � �
� ��� ���. ��� � SQL�� ��� ��� ��� � ��
� �� ��� � ��� ��� ������ ���� �����.
SQL ������ ���� ��� ���, �� SQL� �, �� �� �
��� � �� ��.
�� SQL
�� SQL�� SQL ������ �� ��� � ��. ��� �� �� �
� SQL ����� �� ��� � ��� � ��. SQL� �� �� ��
SQL� PREPARE �� EXECUTE IMMEDIATE� ��� ����� �� �
����� ���� ��� �� �����.
REXX ������� � SQL�� �� SQL���. ��� SQL �� ��
� SQL�� �� SQL���.
��(Extanded) �� SQL
�� �� SQL�� �� ��� ��� �� ��� ����. QSQPRCED API
� ����� �� �� SQL �� �����. �� SQL�, � API� ��
� ��� �, ��, ��� � ����. �� SQL� ��, � API� �� ��
�� �� SQL�� ��� �� ��� ����� �� ��� � ��. �
�� ��� iSeries Information Center� ����� ��� OS/400 API� ��
���.
��� SQL
��� SQL �� �� ������ ���� �� ��. �����, �� ���
SQL �� ����� ��� �� �� ���� �� � ��� ���
�� ��� SQL ������ ������. �� SQL�� ����� �
��. iSeries� DB2 UDB� �� ��� �� STRSQL �, STRQM � �
4 iSeries� DB2 UDB SQL ��� V5R2
� iSeries Navigator� �� SQL ���� ���� �� ��. SQL� ��� �
�� �� ��� ��� SQL ��� � � �� ��� ��� �� �
����.
SQL �� �� �����(CLI) � ODBC(Open DatabaseConnectivity)
DB2 �� �� ������ �� SQL�� �� � ��� ������ ����
� �� ��� ��� �������. DB2 CLI� ��� ILE ��
��� ���� iSeries� DB2 UDB� ��� �� ����� �� ���
�� ��� �� � SQL �� ���� � ����. �� CLI ����� ODBC
�� ��� ���� � ��� �� ODBC(Open Database Connectivity) ��
��� � � ��� �� � ���, ODBC ����� � �
Microsoft� �� ��� �� �� � ����. � SQL� ��� �� �
� ���� ������. �� �� ������ ��� � ������
� �� ������ ��� �� �� ��� � ��� � ����.
�� �� ������ �� ������� ��� ����� ��� ��� ��
����� ���, SQL�� � , �� �� � �� ��� �� � ���
�.
DB2 CLI ������ � SQL�� ��� � �� �� �� �����. ��
��, ��� ����.
v CLI��� DB2 �� � ������ �� ��� ��� � ������ �
�� ���� ��� ��� ��� � ��� �� ��� ��� � �
�� �����. ��� ��� ������ ��� � ���� ��� ���
��� ����.
v CLI� ��� ��� ������ ������ ��� ��� ������ �
� ��� � ������ �� � ����.
��� � �� �� � � ��� �� ��� SQL �� �� ����� (ODBC)
�� �����.
JDBC(Java Database Connectivity) � �� SQLJ(Java� SQL) ��
��
iSeries� DB2 UDB��� JDBC(Java Database Connectivity) � � SQLJ(Java�
SQL)� �� ��� �� Java ��� API� �����. �� � Java
������ � DB2� ���� ���� ��� � ��� � ����.
JDBC ��� Java �� ���� �� DB2 CLI� �� ��� �� ��. �
� JDBC ����� IBM Developer Kit for Java ����� IBM Toolbox for
� 1 � � 5
Java JDBC ����� �� iSeries ������� ���� � ����. IBM
Toolbox for Java JDBC ����� �� ��� ��� IBM Toolbox for Java�
�����.
JDBC� �� SQL� ��� � ����. SQLJ ������� ������ ��
� SQL �� � �� ���� � ���� JDBC� ���� SQLJ ��
�� �� �� SQL�� � � ����. SQLJ �� �� �� Java ��
��� �� �� SQLJ �� ����� ��� ���� ���.
JDBC� SQLJ ������� �� ��� ��� Developer Kit for Java �� �
����.
���
���� ��� ���� ����. ���� ��� �������� ����
���� ��� ��� ���. ���� � � �� ����� �, �, �
�, �, �����, � � ���� ����. ���� ��� �� �� ��
�� ���.
�� ���� ��� ������� � ������ ���. ���� CREATE
SCHEMA�� ��� ����� �� ��.1
A ����� ���� ���� ����� � ���� �� ��. ���
� � ���� �� ���� ��� � � ���� �� ��. ����
��� ���� ������ �� ����� � ������ ��� ��
� �� ��� ������ �� ��.
�� �� C�� ���� �����.
CREATE SCHEMA C
��� C� X�� �� ���� �� ��� �� � ����.
CREATE TABLE C.X (COL1 INT)
�
�� ��� ��� ��� �����. �� ������ ���� �� �
��� � ����. �� � ��� �� ��. �� � �� � ���
��� ����. �� � �� ��� �� ���� �� �� ��� ���
�. � ��� � � ����. �� n�� �� �� n�� � �� � �
�� ���.
1. ���� CRTLIB CL �� ��� ��� � ���, CREATE SCHEMA�� ��� ��� ���� �� ��� CRTLIB� ���
��� � ����.
6 iSeries� DB2 UDB SQL ��� V5R2
�� �� CREATE TABLE��� �� ��� ��� ��� �� � �
� ��. ���� ������ ���� � ��� �� ��� ��� ��
� � ����.
�� �� �� ��� �� �� �� ����� �� � ����. ����
� OS/400� �� ��� ����. � ��� SQL�� ��� ��� �
� � �� ��� � ����. ��� ��� 541 ���� �CREATE TABLE�
� �����.
�� �� � �� ��� �� �� �� ��� ��� �� � ���
�. ��� ��� OS/400� �� ��� ����. ��� SQL�� ��
� ��� �� � �� ��� � ����. ��� ��� 541 ����
�CREATE TABLE�� �����.
�� �� ��� �� ���� ��� ���. �� ��� � ��� ����
� ���� �� �����. �� �� �� � ���� ��� � ��
� �� �� �� � ��� ����. ��� �� �� ��� ��� DB2
Multisystem �� �����.
�� �� �� DECLARE GLOBAL TEMPORARY TABLE��� �� �
� ������� �� �� ��� �� � �� ��. ������� �
�������� ��� � �� ����� � ��.
�
�� ��, �� ���� �� �� ����� ����� �� ��� ���
� ��� ��. ��� � � ��� �� ��� � � ����. � ��
� � ���� �� �� ��� ���.
�� �� ��� �� ���� ����. ��� � �� ��� �� ��
�� ����. �� �� ��� ��� � �� �� �� �� �����. ��
�, ��� � �� 1� � �� ���� ���� �� �� ��� �� � �� �
����� 1� � �� �� ����� ��� � �����.
1� � � �� �
� ����� � �� �� �� �� ����. �� �� ��� ���
�� � ��� CREATE UNIQUE INDEX�� ��� ��� � ���
�. �� � ��� INSERT � UPDATE�� ��� ��� �� � � �
�� � ������ ���� �� �� ��. �� � �� ��� �� �
���.
� 1 � � 7
|
|
|
v 1� ��� CREATE TABLE �� ALTER TABLE� ��. �� 1� �� �
�� � � ����. 1� �� ��� � ��� ��� ���� ��
� ��� � CHECK ����� ����� ��� ���. 1� �� �
��� 1� ����� ���.
v CREATE TABLE �� ALTER TABLE�� UNIQUE � ��. �� UNIQUE
�� ��� ��� �� � ����.
�� ����� �� �� �� ��� � �� � ��� ���. � �� 1
� � �� UNIQUE ���. �� ������ �� � � ��� � ��� �
�� 1� ���.
�� ���
�� ���� �� �� � �� � �� ������ ����. �� �� �
� ���� ��� ��� ���. �� ����� �� �� �� ��� �
� ��� ����.
v � � ��� ���
v �� �� �� ����� �(null)�
� �� �� �� �� �� ����� � ��� , �� �� �� �� �
� �� ��� �� ��� ���.
�� ����� ���� , CREATE TABLE �� � ALTER TABLE ��
�� ��� � ����. �� ����� INSERT, UPDATE � DELETE� ��
�� ������ ���� �� �� ��. �� �� � ��� RESTRICT�
� � � ��� ��� ��� �� ���� �� ��.
RESTRICT� � �� � ��� �� �� ����� �� �� �� ����
� � �� ��. �� �� ����� ��� ���� �� ��. �, ��� �
� ��� ��� ��� ����. SQL���� ��� ����.
v �� CASCADE� � ��� �� �� �� �� ����� �� � ���
� ����.
v �� SET NULL �� SET DEFAULT� � ��� �� �� �� ���
�� ���� �� � ����.
v �� ����� �� �� �� CASCADE� � ��� �� �� ��
����� �� � ��� � ����.
�� ��� ��� ��� �� � � ����� ������.
�� � �� ����� 1� � �� � �
�� � �� �� � �� �� �
8 iSeries� DB2 UDB SQL ��� V5R2
�� � �� �� �� ������ � � �. �� ��
�� �� ������ � � ��� � ����.
�� � �� �� �� ������ �� �. �� ��
�� �� ������ ��� ��� � ����.
� �� � �� � �� ����.
�� � �� � T� �� �� � T �� �
� T� ��.
�� � �� �� � �� �� �
�� � �� � p� �� �� � p �� �
� p� ��.
�� �� ��� � �� ��� � �� �� ��� ��.
�� �� � ��� � � �
�� �� � ��� �� ������ � �� �� �. �� �
���� �� �� ������� ���.
�� ����� � ��� �� �� �(null)� � � �� � �� � �
�� ���� ��� ������. � ����� ��� �� �� � �� �
��.
�� ����� � ��� �� ����� ��� � �� ��. NO ACTION�
RESTRICT� ��� � ����. � �� �� � �� � � ���
�� ��. � ��� �� �� �(null)� � � �� � �� � � ��
���� ��� ���. � ����� ��� �� �� � �� ���.
�� ����� � ��� �� ����� ��� � �� ��. NO ACTION,
RESTRICT, CASCADE, SET NULL �� SET DEFAULT� ��� � ����.
SET NULL� �� �� �� � ��� ��� �� ��� � ����.
�� ����� � ��� � � �� � �� ��. �� ��, � ��
� � �� � � �� � � ��(�� ��� ��)� �����
�� �� ����� � �� �� �� �� � �� ��. P� � �� �
���, D� � �� ��� p� � �� � � ��� ���� � �
� �����. � ��� ��� �� .
v RESTRICT �� NO ACTION, ��� �� �� �� ����.
v CASCADE, � ��� D�� p �� � ��.
v SET NULL, D�� p� � � �� � � �(null) �� � �� �� ��.
v SET DEFAL, D�� p� � � �� � � � ��� ��� �� ��.
� 1 � � 9
�� � � � �� ����� �� � ��� �� �� , �� �����
� ��� � �� ��� ��� � �� ��. ���, 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 ���� � ��� ����� �� �� ��
� ��� ���.
�� ���
�� ����� �� �� � � � ��� �� ��� �� ��� ��
��. �� ����� ���� , SQL� CREATE TABLE � ALTER TABLE�
��� ��� � ����. �� ����� �� ��� ��� �� �� �
��. ���� � �� � T�� �� ����� ��� T � ���� ��
� ���.
�� �� �� �� ����� �� � ����. ��� �� ������ �
� ����� �� �� ��.
v �� �� �� �
v �� �� �� �
�� ����� � �� �� �� � �� ��� �� ��� �� �
�. �� �� ��� ��� �� �� FALSE�� ��� ����.
10 iSeries� DB2 UDB SQL ��� V5R2
��
��� ��� ��� �, � �� � ��� �� ��� ���� ���
��� ��� �����. � SQL ��� ��� ��� ����� ���.2
����� ��� � �� � �� ��� ���� ��� ��� � �
����. � � ��� �� �� ��� ��� ����.
v ��(commit) �� ��(�� � � �� ���� ��� �� ��� ��
� )
v CONNECT, SET CONNECTION, DISCONNECT � RELEASE�
����� �� ���� ������ ��� �� �����.
��� �� ���� � �� ����� ��� �� ��� ��� �����.
��� �� �� �� ��� �� �� �� ���� �� �� �
�� DB2 �� � ���� ��� ��� �� ��� � ��� � ��
��� ������ � �����. �� �� � �� �� � ���
�� ��� � ��� �� ��� ��� ����� �� �� �
� �� ��� �� � ����.
��� �� �� �� ��� ���� � ��� ��� ��� ����
� (�� �� 10 ��� �� ��� � �� �� ) �� ���
���. � � ��� � ��� � ��� � �� ��� ���. � �
�� �� ��� �� ��� �� ��� �� ���� � �� �����
��� �� �������.
�� ��� ��� ��� ��� � ��� ������ �� ������
� ������� ������� � �� � � �� ���� � ��� �
���. �� �� �������� �� � �� � � ��� � ��
�� ��� DB2� ������� � � �� � ��� �����. �
� �� ��� ������ ����� �� ��� ����.
��� ���� CREATE TRIGGER��� ADDPFTRG(�� � �� �
�) CL �� ��� �����. �� DROP TRIGGER��� RMVPFTRG(�
� � �� �) CL �� ��� ����. �� ��� �� ��� �
�� CREATE TRIGGER�� �����. ��� ���� ��� �� ���
��� 575 ���� �CREATE TRIGGER���� SQL ��� � � ���
��� ��� �� �����.
2. �� ADDPFTRG CL �� �� �� ��� �� ��� ��� �����.
� 1 � � 11
��� �� ��� ��� ��� � ��� ��� ��� � ��
� � �� ��� ����.
v � �� ��� ��� �� �����.
v �� ���� � �� ��� �� SQL ��� �����. � ���
�, � �� �� � � ����.
v �� �� ��� ��� � �� �� �� ���� ��� �� �
�� ��� �� ��� ���� �����.
��� ����� ���� ��� �� � ��� ��. � ��
� �� �� � �� ���. �� �� �� ��� ��� �
� � � ��� ��� �� ��� �� � ��� � ��� �� � � ���
���� �����.
�� ��� ��� �� ��� ��� ��� ��� ��� SQL� ��
��. �� ��� �� �� � SQL�� �� ��.
��� ��� ��� �� � ��� �� ��� � ����. ��� �� ���
��� �� ��. �� ��� ��� �� �(� ��)� �� ��� � �
(� ��)� �� ���� ��� ��� ���� ��� � �� ���
�����. � �� � �� � �� �� SET �� �� ��� ��
� �� � ����. ��� �� � ��� �� ��� � �� ��� �� �
� ��� ���. �� � �� � �� ��� ��� � ��� ��
� ��� �� �� ��� ��� ��� �����. �� �� �� ��
�� ��� � ����. ��� �� �� �� � � � �� �� ��� �
����.
�, ��� �� �� ��� ��� � ��� ��� � ����. ���
��� ��� ��� ��� �����. ��� �� ��� ��� ��� �
� ���� �� ��.
�� ��� �� �� � � ����. ��� �� �� �� ���
��� �� ����� SQL�� ��� ��� ���� ����. ��
� ��� � ��� ��� �� �, ��� ���� �� ���
� � ����. �� �� ��� � �� �, � �� � ����
������� �� ��� �� ���� ��� ���� ��� � ���
�.
���� ��� �� �� ��� ��� ��� ��� � ��. ���,
�� ��� NC(�� ��)� � �� �� �� ���� ��� ��
��� ��� �� ��.
12 iSeries� DB2 UDB SQL ��� V5R2
v ������ ���� ��� ��� ��� �� � ��� � ��� �
��� ���. �� ��� � �� ��� ��� �� ����.
v ������ ���� �� � �� ��� ��� �� �� ��� �����
�����(RESTRICT � ��� �� ��� ��).
��� �� ��� ���� SQL� �� �� �� �� �� ��
� �� � �� ��� ��� �� �� ����.
v ��� ��� � ALWREPCHG(*YES)� ��� SQL� ��� ��� ��
��.
– ��� ��� SQL�� �� �� �� �� ��� �� � ��
��� ������. ��� SQL�� �� ��� �� �� �� ��
��� �� � �� �� �� �� ���.
v ��� ��� � ALWREPCHG(*NO)� ��� SQL� ��� ��� ��
��.
– ��� SQL�� �� �� �� �� �� �� ��� ��
�� ��� ����. ���, �� ��� NC(�� ��)� � ��
�� �� ���� ��� �� ��� ��� �� ��. ��� SQL
�� �� ��� ��� �� ����� �� � �� �� � ��
����.
– ��� SQL�� �� �� �� �� �� �� ��� ��
�� �� � ����. ���, �� ��� NC(�� ��)� � ��
�� �� ���� ��� �� ��� ��� �� ��. ��� SQL
�� �� ��� ��� �� ����� �� � �� �� � ��
����.
CREATE TRIGGER�� ��� ��� �� ��� �����
ALWREPCHG(*YES) �� ����.
��
��� �� �� �� �� �� ����. � ��� � ��� � � ��
�� �� ���� ���. ��� �� �� ����� ��� �����. �
�� ��� � ������ ���� � ��� ��� ���� ������.
��� �� ��� �� �� �� ����� �� � ����. �����
OS/400� �� ��� ����. ���� SQL�� ��� �� ���� �
� � ��� ��� � ����. ��� ��� 506 ���� �CREATE INDEX�
� �����.
������ �� ����� �� �� ��� �����.
v 2� �� �� ��
� 1 � � 13
2� �� �� ��� �� �� �� �� ��� �����. ������ ��
�� � ��� ��� �� ��� �����.
– �� ��� �. ���� ��� �� ��� �� ���� ����.
– �� ��� �. � ��� �� �� ��� �� �� �� �� � �
���.
v ��� �� ��
��� �� ��� �� �� �� ��� ��� ����. ������ ��
����� � ��� �� ���� �����.
��� �� ��� �� ��� �� �� ���� �� ��� , �� ��
��� ��� ��� � �� �� ��� ������ �� ���� ��
���. � ��� ���� � � � �� �� 1, 2 �� 4 �� ���
� � ����. � �� � �� ��� ��� ��� �� ��� �� ���
�� ��� � � � �� �� ��� �����.
SQL CREATE INDEX�� ��� ��� �� ��� �� �����. ��
� �� ���� �� �� � �� ��� ��� iSeries� DB2 UDB ��
��� �����.
�
�� � ��� ��� ��� �� �� ��� �����.
�� ���� �� ��� ����. ��� SQL��� �� ��� ��� ��
� SELECT���. ���, �� �� �� � �� �� ��� ��� �
����. ��� � �� �� �� �� ��� � ����. �� �, � �
� � ��� ��� � ��� ��� CREATE VIEW ��� ��� ��� �
� ����(��� ��� 590 ���� �CREATE VIEW�� �����).
��� �� �� ��� � ����. � �, �� ���� � �� �� ��� �
�� ��� �� ��� ���� � ����.
� � � �� � �� �� �� � �� �� � ��� ���
�� �����. �� ��, �� �� �� �� �� � �� �� ��
��� INSERT � UPDATE ��� �� ���� ��� �� ����� ��
��. �����, �� �� �� � �� �� �� ��� DELETE ��
� �� ���� ��� DELETE �� ��� ���� ��. �� �� �� �
� ��� ��� �����. �� ��, �� �� �� � ��� ��
��� ��� �� ��� � �� ��.
14 iSeries� DB2 UDB SQL ��� V5R2
�� �� ��� �� , �� �� ����� �� � ����. �����
OS/400� �� ��� ����. � ��� SQL�� ��� �� ���� �
� � ��� ��� � ����. ��� ��� 590 ���� �CREATE VIEW�
� �����.
� � �� ��� �� �� �� ����� �� � ����. ���
��� OS/400� �� ��� ����. ��� SQL�� ��� �� ��
�� � � � ��� ��� � ����. ��� ��� 590 ���� �CREATE
VIEW�� �����.
��
��� � �� �� �� �� ����. ��� ��� �� �� �� ���
� �� � �� �� ��� � ����.3 �� �� ��� ��, �� �
�� , ��� � �� �� � ����. ��� ��� � ��� �����
�. � �, ���� ��� �� �� ����� �� ��� �� ��� �
���� �����.
��� �� ��� �� � �� , �� �� ����� �� � ����. �
���� OS/400� �� ��� ����. �� ��� SQL�� ��� ��
���� � � � ��� ��� � ����. ��� ��� 432 ���� �CREATE
ALIAS�� �����.
��� � ��� ��
�� SQL ����� ���� SQL�� ��� � ��� �� ��� ��
�� �����. ���� ���� � �� �� ��. �� ��� SQL��
�� �� �� ��� ��� � ����. ���� �� �� �� ��� �
� �� ����� � SQL��� � ��.
���� QSQPRCED API� �� ��� �� ����. QSQPRCED API� ��
� ���� QSQPRCED API�� ��� � ����. DRDA ����� �� �
���� ��� � ����. ��� ��� iSeries Information Center� ����
� ��� OS/400 API� �����.
QSQPRCED API� ODBC, JDBC � SQLJ ������ �� ��� SQL�� �
� � ���� ��� � Windows� iSeries Access� �� �� ��.
�� SQL ����� SQL�� ��� � ��� �� ��� �� SQL
����� �� ��� �� ��.
3.�� ���� ��� ��� �� ����. �� ��, ������ �� � ��� ��� ��� DDL(data definition language)���
��� � ����.
� 1 � � 15
��� ����� ��� ����� SQL�� ��� � ��� SQL �����
� SQL ��� �� ��� �� �� ��� ��� � �� ��.
�����
�����(� ��� ������� )� ��� ��� ��� � ��� �
�� ��� ����. ���� ��� � �� � SQL�� �� ���
�.
������ ����� SQL ������ �� ������ �� ��. SQL �
����� SQL�� ���. �� ������ SQL�� �� �� �� �� �
� �� ��� � ����(�� REXX� �� � ��)� �����.
iSeries� DB2 UDB��� �� ������ SQL ����� � �� ��.
SQL ������ ��� � ������ ��� ��� �����. �, ��� �
� ��� ��� � �� ���� � � � ������ ��� � �
���. ��� �� SQL � �� ���� �� ������ ��� � ���
�. � �, SQL� ��� ���� �� ������ ��� � ����. ��, SQL
������ � ��� �� ������� �� ��� ����� � ��� �
��� ���.
� � SQL�� ��� ����� ���� ��� �����. � �� SQL�
� ��� ������ ����� ��� ��� � ��� ��� ����.
�� �� ��� ����� ���� ��� ��� ����� ��� �
� ��� �����. �� � ��� � SQL�� ��� � ������ �
���� �� ��� �� �� ��� �����. ��� ������ ���
SQL�� ��� �� ������ ��� CALL�� ��� � ����.
CALL�� ��� � ������ ����� ����� ��� � �� ���
�� ��� ����. �� �� ������ ����� ���� ��� ��
� ����� ��� �� �� ��� �����.
�� ��� �� �������� ��� ������ ��� ��� ���
�� � �� ��� �����.
16 iSeries� DB2 UDB SQL ��� V5R2
����
������ �� ����� �������� ��� �� ��� �� �� � �
�� ������. � ��� ����� ������ ���. ���� ��� �
�� �� �, ��, �����, ���, �, �� � ����� �� ��� �
� ����.
������ ���� ���� �� �� �� �����. �� �� IBM SQL �
�� �� ������ ���� �� , ANSI � ISO ��(���� �� ���
(schema)�� )� �� ���� ��� ���� �����. QSYS2� ����
�� 1. ��� ������ �� ������
�� 2. ��� ������ �� ������
� 1 � � 17
��� ��� �� �� �, ���, �, �� � ����� �� ��� ��.
�� SQL ����� �� ���� �, ���, �, �� � ����� �� ���
� �� �� �� ��.
���� � � �� �� ������ � � �� ����. ��� ��� SQL�
� ��� ���� �� ��� ��� ��� �� �� ���� ��� � �
����. ������ �� ����� ����� ��� ������ ����
�� ��� ��� �� ��� ���.
���� � � �� �� ��� ��� 927 ���� �� G �iSeries� DB2 UDB
���� ��� �����.
������ ����, ��� � ��
�� SQL ����� ������ ����� ���� �� ��. OS/400�� �
����� ����� ����� ���. ODBC, JDBC, DRDA� , ��� �
�� ������ ����� ���� � �� ���� ��� ��� �
� ���� � ����. ������ ����� � ��� � ���� ���
���. � � ��� � ��� ���� ��� �����. ����� ���
� � � ���� ��� � ���� �� ��. ILE � � �� ��
� ����� ��� �� ����� ��� � ���� �� ��.
�� ��� �� ��� ���ILE � �� �����.
�� ��� ��� ������ ����� � ��� �� ��� ��� � �
���. �� ��� � �� �� �� �� ���� �� �� � � ���
��� �����. �� ��� ��� � ��� �� �� � ��� ��
��.
�� ��� STRCMTCTL(�� �� ��) �� ��� ����� ��� � �
���. � ��� �� �� ��� � �� SQL�� COMMIT(*NONE)
� � �� �� ���� ��� � ����� �� ��. � ��� � ��
� �� �� ��� �� � ����.
19 ���� �� 3� ������ ����, �� ������ ������ � �
� � �� ���� ��� �����. � �� A� B� � ���� � ��
� �� ��� �� ��. �� � ��� �� �� ��� ����. � �
� C� �� ��� ��� �� , �� ��� �� ����.
18 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
�� 4� ������ ����, �� ������ ������ � �� � ��
��� �����. �� � ��� �� �� ��� ��� ����. � ��
A� B� �� �� ���� ��� ����. � �� A�� B�� �� ��
�� ��� �� ��� ��� �� ��� � ��� ��� � ��� ���
�. � ��� � �� C� �� �� ��� ����. � � ���� ��� �
�(commit) � �� ��� C ��� ����� ���� ��� ����.
�� ��� �� ��� ��� �� �� �� �����.
�� 3. �� �� ��� �� � ��
�� 4. �� �� ��� �� � ��
� 1 � � 19
��, ��, ��
�� �� ��� ��� ������ ���� � � ��� ��� ��� �
�� ���� ��� � ����. ��� �� � �� �� ���(data integrity)
� ���� � �� ��. ��� � ������ ����� ��� ��
� �� � �� ��� ���.
������ ���� �� �� ��� ��� � ��� �� ��� �� �
� ��� ��� �� �� �� � ��� �����. ��� ��
� �� ��� � ��� �� ��. � ��� �� ��� �� ��.
��� � ��� � �� � ��� ����� ��� � ������ ���
� � ��� ��� �� ��� �����. ���� ���� ��� � ��
�� ����� ��� �� ����. � ��� ����� ���. �� ���
� ��� ��� ��� ��� ��� ����.
������ ���� �� �� �� ���� ��� �� �� ��� �
�� �����. ������ ���� ��� �� � �� ��� �� ��
����� ��� � ����.
v ������ ����� ��� � ��� � ��� ��� �� �� �� �
�� �� �� �� ��. ��� � ��� � �� � ��� ���
�� ��� � � ��� ��� �� ���� ��� �� �� �� �
�.
v �� �� � � ��� �� ��� ����� �� ���� ��� �
� ��� �� ��� ��� ��� �� ���� ��� �� �� �
� ��.
v �� �� � � ��� �� �� ����� ��� �� ��� ������
� �� ��� �� ��� ��� ��� �� ���� ��� �� �
� �� ��.
���� ������ �� ���� ����� ��� �� ����. � ��
� ����� ���.
� ��� �� ������ ���� �� ��� ��� �� � � ���
��� �� ��. LOCK TABLE�� �� ����� ��� ��� COMMIT
HOLD �� ROLLBACK HOLD� ��� �� � � ��� �� � ��
�� ��� � ����.
��� ��� �� �� ����� �� � ����. � ��� ��� �� �
� ���.
v �� �� ��� ��� �� ��� ��� �� ��� ��� ���.
20 iSeries� DB2 UDB SQL ��� V5R2
v �� �� ��� ��� DELETE �� UPDATE�� ��� �� ��� ��
� ���.
� �
�� � (�� �� �� � �� �� � ��� )� ����� ��� ��
��. � �� ��� � ��� �� � ��� �����. �� ��� ��
�� � � ����.
�� ��� ��� � �� �� �� � � ���� �� ���� ��� � �
� � � �� ��. �� � � �� ��, �� �� �� � �� ��� ��
��. ��(commit) �� �� ��� �� �� ��� ��� �� � ��
������ ��� ��� ����. �� ��� �� �� �� ��
COMMIT(*CS), COMMIT(*RS) � COMMIT(*RR)�� ��� �� �� ��
� ��� �� � ��� �� ��� � ����. �� ��� ��� ��
��. �� �� ��� �� �� ���� ��� �� � ��� ��
���� � �� , �� � �� ��� ����.
�� � �� � �� � �� ��� ���� �����. �� ��, �� ��
��� � ���� �� ��� ��� �����. �� ����� ��� � ��
���� ��� �� ��� � �� �����. �� �� � ��� ��
� ����. ��� �� ��� ��� ��� �� ���� �� ��. �
�� � ��� �� ��� ��� �� � � ��� � ����. �� �
� � �� �� ��� ��� � ��� �� ��� ��.
� ��
������ ���� �� � � �� ��� �� ��� ���� ��� �
����. �� ���� ����� ���� �� ��.
�� 5. �� ��� �� �� �
� 1 � � 21
|
|
�� ���� ��
SQL ROLLBACK�� TO SAVEPOINT� �� ��� �� �� ��� ��
��. �� �� ��� ����� ����� ������ ���� ��� �
� �� ��� �� � � ��� �� � �� �� ���� �����.
�, �� �������� ��, ������ ���� ��� �����.
���� ���� ��� ���� ��
���� �� � � �� ����� �� ��� �����. ������ ���
�� �� � �� ���� ��� ��, � � ��� �� ���� ��� �
�� ����� ��� � ����. �� ��, �� ����� ��� �� ��
� �� ��� ��� ��� � � ����. �� ��� ��� � ��� ��
��� ��� � �� , ������ ����� �� ��� ��� �� �
���� �� �� ������ ���� ��� �� �� �� ���� ��
�� � ���. SQL ����� SQL SAVEPOINT�� ��� ���� �
��, SQL ROLLBACK�� TO SAVEPOINT�� � ��� ��� �� �
�� �� �� ���� ���� ���, RELEASE SAVEPOINT�� ��
� ���� ����.
�� 6. �� ��� �� �� �
22 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
���
OS/400�� ������ ����� � ��� ���� ��� �� ����. �
��� �� ���� ��� �� ���� ��� �� �� � ��� ���
�. ���, � ���� ��� �� � �� ��� � �� �� ���� �
�� ��� � �� ���� �� ��� �� � ��� ��� � �
���. �� �� �� �� ���� ��� ��� �� ���� ���
����.
�� ���� ��� �� ������ ���� �� ��� � ����. �
� ���� �� �� � ��� ��� �� �� � ����. ���, ��
� �� ������ �� � ���� ��� �� �� ��� � SQL ��
��� ��� � ����. ���� �� ��� ��� �� ��� ��� ���.
�� �� �� ��� � � �� ��� ����.
v ����� ��� ����� �� � ��� ���� �����
(ACTGRP(*NEW)� ��� ��� ����).
v � �� SQL�� �� �� ��� SQL �� ��� ���� �����.
SQL �� ��� �� ���� �������� �� �� �� ��� �
�� ��� ��� �� ��� � ����.
– ODBC API, SQLSetEnvAttr()� ���, ��� �� ���� ��� �
� SQL_ATTR_SERVER_MODE �� SQL_TRUE� �����.
– Change Job API, QWTCHGJB()� ��� ��� �� ���� ��� �
� ‘SQL �� ��’ �� �����.
– JDBC� �� ������� ����� JAVA� �����. JDBC� �
��� �� ��� ��� JDBC� ��� ��� ����.
�� 7. Rollback� � Savepoint�� �� �� �
� 1 � � 23
SQL �� ��� ��� � �� SQL�� ��� �� ��� �� ��� ��
��. SQL� �� �� �� ��� ��� ���.
v � SQL� ��, ��� � ���� ����� ������� �� �� �
�(���, �� �� ����� ����� ����.)
v ODBC/CLI � JDBC� � ��� ������� �� ��� ��� ��
�� � � ��� ��� � ����.
��� ��� SQL �� �� �����(ODBC) �� �����.
�� SQL ��� ��� ��� ����.
v DRDA� �� ��� ���
v ALTER TABLE
v COMMENT
v CREATE ALIAS
v CREATE DISTINCT TYPE
v CREATE FUNCTION
v CREATE INDEX
v CREATE PROCEDURE
v CREATE SCHEMA
v CREATE TABLE
v CREATE TRIGGER
v CREATE VIEW
v DECLARE GLOBAL TEMPORARY TABLE
v DROP
v GRANT
v LABEL
v RENAME
v REVOKE
��� ��� iSeries Information Center� � ��� ������� �����.
�� ��
SQL� �� �� ��� �� ��� � ��� �� � �� ���� ���
��� �����. ���, � �� P� SQL�� ��� � �� ��� ��� �
����.
v P� �� ��� � � P� �� �� �� �� �� � ��� �� ��
��� ��.
24 iSeries� DB2 UDB SQL ��� V5R2
|
v ��� ��� � ��� �� ������ �� P� ��� �� � ��
��.
�� ��� SQL ����� � �� SQL ���� �� SQL ��� �� SQL
����� ��� � ��� �� ��. iSeries� DB2 UDB� �� ��� �
�� � �� ��� �����.
v CRTSQLxxx, STRSQL � RUNSQLSTM ��� COMMIT ��� ��
� ��� �� ��� �����.
v SET OPTION�� ��� � SQL� �� �� ���� ���� �� ��
� ��� �� ��� �����.
v SET TRANSACTION�� ��� �� � ��� ��� �� ��� ���
��. �� � � ��� � �� ��� �� � ���� �� ��� �
��.
v SELECT, SELECT INTO, INSERT, UPDATE, DELETE � DECLARE
CURSOR��� ���� ��� �� �� �� ��� �� ��� �� �
�� �����. �� ��� ���� �� �� �� ����� �� �
� �� � �� �� �� ��� ��� ��� ����.
�� �� ��� �� ��� ���� ����� �� ��. �� �� �� �
�� �� �� ��� ��� �� � ��� �� �� ���� ��� �
����. � ������ ���� �� �� �� ��� �����.
�� ��� �� �� �� ��� �� �� �� ��� ��� �� � �
�� �����.
��� �� �� ��� ��� ��� � ��� ��� �� �� �
�� ���. COMM(*RS), COMMIT(*CS) � COMMIT(*RR)� ��
� �� �� ��� ��� �� � ��� ��� �� ��� ��
�. COMMIT(*UR) � COMMIT(*NC)� ��� �� �� ��� ��
� �� � ��� ��� ��� �����.
�� �� ��� �� ��� � � � �� ��� �����. � ��� ��
� ��� � � �� ��(PU)�� ��� �� � ����. � �, ���� �
�� �� ��� �� �� � ��� ����. �����, ������ ���
� � ��� �� ��� � � ����. � ��� ��� �� ��� �� �
�� ������.
iSeries� DB2 UDB� 5 � �� ��� �����. No Commit� ��� �� �
� ��� �� ������ ���� �, � �� �� �� �� ��� �
�� ���. ��� �� � �� �� �� �� � � ��� ��� �� �
� ��� ��� �� � ��� �� �� ��� �����. �� ���
��� ����.
� 1 � � 25
v ����� ��(RR)
�� RR� ��� �����.
– �� � �� ��� �� �� � � ��� ��� �� �� ��� ��
� �� � ��� �� �� ����.4
– �� �� ��� ��� �� � ��� �� �� �(�� �� UPDATE
� ���� �� �)� ��� ��� �� � ����.
��� �� �� ���, �� RR�� ��� � ��� �� �� �� �
� ��� � ��� �����. ���, ��� � ��� �� �� ���
��� �� � ��� ���� �� ��� � ��� �� ��.
iSeries� DB2 UDB� COMMIT(*RR)� �� ����� ��� �����. �
���� �� ����� ���� �� �� �� �� �� ����� �
� ��. ANS � ISO ���� ����� ��� �������� ���.
v �� ���(RS)
�� RR� �� RS� ��� �����.
– �� � �� ��� �� �� � � ��� ��� �� �� ��� ��
� �� � ��� �� �� ��� �����.4
– �� �� ��� ��� �� � ��� �� �� �(�� �� UPDATE
� ���� �� �)� ��� ��� �� � ����.
RR� �� RS� �� �� ��� ��� �� � ��� ���� � ��
� �� ������ ����. �� RS�� ��� ��� � � �� �
� � ��� �� �� ��� � ����. �� �� �� �� ���� ��
�.
�� ��, �� �� �� � �� �� � ����.
1. � �� P1� �� �� ��� ��� � �� n� ����.
2. � �� P2� �� ��� ��� � ��� �� �� � �� �
����.
3. P1� �� ��� �� ��� �� � ��� �� �� �� P2� �� �
�� ����.
��� �� �� ���, �� RS�� ��� � ��� �� �� �� �
� ��� � ��� �����.
4. WITH HOLD ��� � ��� �� ��� ��� � �� ��. �� �� WITH HOLD ��� �� � �� � �� �
�� ��� � ����.
26 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
iSeries� DB2 UDB� COMMIT(*ALL) �� COMMIT(*RS)� �� �� �
��� �����. ANS � ISO ���� �� ���� ����� ���� �
��.
v �� ���(CS)
�� RR � RS� �� CS� �� �� ��� ��� �� � ��� ��
�� �(�� UPDATE � ���� �� �� �)� ��� ��� ��� � �
�� �����. RR � RS� �� �� CS� �� ���� ��� �� ��
�� �� ��� ��� �� � ��� �� �� ���� �� ���
��. ���, �� � �� ��� �� �� �� ��� ��� �� � �
�� �� �� � ����. ��� �� �� ��� �� CS�� ���
� ��� �� ��� �� �� �� � ��� ��� � ����.
iSeries� DB2 UDB� COMMIT(*CS)� �� �� ���� �����. ANS
� ISO ���� �� ���� ��� ���� ���.
v ��� �� ��(UR)
INSERT��� ��� �� �� ��, � �� �� subselect� �� SELECT
INTO, FETCH� �� UR� ��� �����.
– �� � �� ��� �� �� �� ���� ��� �� � ���
�� � ��.
– �� ��� ��� ��� ��� �� �� ���� ��� ��
� ��� �� �� �(�� UPDATE � ���� �� �� �)� ���
� ����.
�� ��� �� CS ��� �� ��.
iSeries� DB2 UDB� COMMIT(*CHG) �� COMMIT(*UR)� �� ���
�� ��� �����. ANS � ISO ���� ��� �� ��� �� ��
��� ���.
v �� ��(NC)
�� ��� ��, �� UR ��� �� ��.
– ��(commit) � ��� SQL�� ��� � ����. ��� �� ��
LOCK TABLE ��� ��� ����. � � �� �� ��� ��� �
� ��.
– �� ���� � �� �� �� , �� �� ��� ��� �� ��
���� ��� �� �� ���� �� � ����.
iSeries� DB2 UDB� COMMIT(*NONE) �� COMMIT(*NC)� �� �� �
�� �����.
� 1 � � 27
��� �� ���� �� ��� ��� SQL ��� � �� �� ��
�� �� �� �� �����.
�: (�� ������� ) ���� �� �� ��� ��� ��� �� �
�� ��� �� � �� ��� �����. �� �� ���� RS� ��
� ��� RR �� ��� �� ��.
�� ��� ������
�� ��� ������� � �� � ���� ����� �� ���� ��
�� �� �� ���� ������. � �� ���� ��� �� ���
��� ������(RDB) ���� �� ����. ������ ���� ����
�� ���� �� �� ����� SQL�� ��� � ��� � ���� �
� �� �����.
�� ��� ������� �� ����-�� ���� � ��� � ��. �
����� ����� ��� �� ������ ��� �����. ��������
��� ������ ��� �� ������ �� ��� ��� ��� � �
���� �����. � � ��� ��� �� � ��� ��� �� ��
� ��.5 ������ ����� ��� � � � � ����� �� �
������ � �������� ��� �� ������� ���� �� �
�� � ����. ��� �� ��� ������ �� �� 8�� �����.
�� ��� ������ ��(DRDA)� �� ��� ��� �� ��� ����
�� �� ��� � �����.
5.�� ������ �� �� ���.
�� 8. �� ��� ������ �
28 iSeries� DB2 UDB SQL ��� V5R2
������ ��
� ��� �� �� ��� SQL�� ��� �� ������ ���� ��
� ���� ���.
���� � ��� �� �� ��� �� �� ����. ��� �������
�� �� ��. CONNECT�� ���� ��� ��� � ��� � ��� �
� ��� ��� � ��� � ����.
��� � ��� ��� �� �� ��� �� �� ���� �� ����
(�� ��� ������� ��� ��� ��� �����). � ���
CONNECT��� ��� � �� ��� ��� �� ����� ��. ��
��� �� ��� ��� �� iSeries Information Center �� ���� �
(ADDRDBDIRE, CHGRDBDIRE, DSPRDBDIRE, RMVRDBDIRE �
WRKRDBDIRE)� �����.
v SQL ��� �
v �� ������ ���
v CL �
�� �� ��� �� SQL�� ��� � ��� ��� �� �� �
����. � �� �� ������ ���� �� ��� �� ��� ���
����� �����. �� ���� �� ���� �� ��.
v CRTSQLxxx ��� SQLPKG ��� �� ��� ����. CRTSQLxxx
�� ��� SQL Programming with Host Languages �� �����.
v ��� � ����� ��� ��� ���� ����� ��� �� ���
��.
�� IBM ��� ������(RDB) ��� IBM SQL� �� �� ��� ���
��. �� �� � ��� ��� ���� , ��� � ��� ��� �� �
��.
���� �� ��� �� ��� �� ������ ���� ������
����� �� ������� ��� ���� ������� �� ��� �
� ��� ������ ���� ��� ��� �� ��� � ����. ���
�� 913 ���� �� F �SQL�� ���� �� ����.
CONNECT( � 1) � CONNECT( � 2)
��� ��� ��� �� �� �� CONNECT�� ����.
v CONNECT(� 1)� ��� �� � � �� ��. 421 ���� �CONNECT(
� 1)�� �����.
� 1 � � 29
v CONNECT(� 2)� �� �� � � �� ��. 427 ���� �CONNECT(
� 2)�� �����.
��� ��� ��� 925 ���� �CONNECT(� 1) � CONNECT(� 2) �
���� �����.
��� � �
SQL� ��� � � ��� � ��� �� � �� �� ��. �� �
�� A� � ��� �� ��� B� ��� ��� � ����. � � � �
�� �� � ��� � � ��� B� ���� ��� �� �� �� SQL
�� ����� ��� � ����. B�� �� � � ��� � � ��� �
� ��� C� ��� ��� � �� �� ���� �� � ����.
���� SQL�� ���� �� ��� � ��� ��� �� ����� ��
��.
v �� SQL��� ��� ���� � ��� ��� ���� ���.
v � �� � �� SQL�� � ��� ��� �� ���� ���.
��� � � �� ��
� ��� �� � �� �� � ���.
���� � ���
�� ��� � ���
���� � ��� ��
�� ��� �� ��� �����.
�� 9. ��� �� � � �� �� �� ��
30 iSeries� DB2 UDB SQL ��� V5R2
� ��� �� ��� ���� � ��� ����. � ��� ��� ��
��� CRTSQLxxx � STRSQL �� RDB ��� �� �� ���
CONNECT ��� ��� � ����. ��� CONNECT ��� ��� �� �
�� CONNECT ��� �� ����� ��� ��� �� � ���
�. ��� � ��� � �� ��� ����� ��� � ����.
���� � ��� ��: � ��� ��� ��� �� CONNECT�� �
�� � ����. � ��� �� ��� � ��� ����� �� �� ����
��� ��� � �� CONNECT�� ���� � ��� �� ����� ��
��� ��� � � ��� �����.
����� � ��� ��: � ��� ��� ��� ��� ��� ��
� CONNECT�� ����� ��� � ����. � ��� CONNECT,
COMMIT �� ROLLBACK� � SQL�� ��� � ���� � ��� ��
��� � ��� �����.
���� � ���� �� ��: � ��� ��� ��� �� ����. �
� ��� � �� SQL�� CONNECT��.
� ��� ��� �� � ��� �����.
v ��� �� ���� ���� ��� ���
v SQL DISCONNECT�� ��� ��� ���
v ��� ����� ��� ��� CONNECT�� ���
CONNECT� ���� ���� � ��� �� �� ��� � CONNECT
��� ����� ��� � ����. � ��� �� ��� �� ����
CONNECT� �� CONNECT�� ����� �� ��. CONNECT, COMMIT,
DISCONNECT, SET CONNECTION, RELEASE �� ROLLBACK� � SQL
�� � � � CONNECT� ����� ��� � ����(COMMIT(*NC)� �
�� ��). ��� ��� CONNECT�� ��� �� ���� �� �
�� �����.
������ �� �� � �
������ �� �� �� � �� ��� �� � � ��� ���� SQL
� ��� � � ��� � �� ��. ��� ��� � ����� �� �
�� A� � ��� �� ��� B� ��� ��� � �� , �� � � ��
� �� B� ���� ��� �� �� �� SQL�� ��� ��� � ��
��. �� SQL��� ��� ���� � ��� ��� ���� ���. �
� ��� �� � �� �� ��� � �� ���� ��� �� � � ���
� ����. �� �� �� ��� �� � � �����.
�� �� � � APPC � TCP/IP ��� �� ��� �� ��.
� 1 � � 31
������ �� �� � � �� ��
�� ��� ����.
v � ��� �� ��� �� ��� �� ��� , 0 ��� ��� ���
� ��� ����. � ��� � ��� ��� ���� �� �� ��
��.
v SQL ��� �� �� �� � ���.
– �� � ��
– �� � �� �� �
– �� � ��
– �� � �� �� �
�� ��� �� ��: � ��� ��� ��� ��� , �� �� ���
����. �� �� ��� �� � ����.
�� ��� �� ��� �����.
�� 10. ������ �� �� �� � �� � � �� �� �� ��
32 iSeries� DB2 UDB SQL ��� V5R2
�� ��
������ ����� CONNECT�� ����� ��� ��� ����.
v �� ��� �� �� � �� ��� ���.
v ���� �� ��� ���, ��� ��� �� � �� ��� ����.
���� �� � �� �� �� ��� �� ��� ����.
�� ��� ��� SET CONNECTION�� �� �� ��� ���. ��� �
� ��� �� � �� ��� �� �� ��� ���. � ��� �� �
� ���� � ��� ��� ��� � � ����. �� ��� ���� ���
�� ���� ��� �� �� �� �� �� �� � ��� ��� ��� �
���.
��� RELEASE�� �� �� �� � ��� ����. � ��� �� ���
��� � �� �� �� � � �� ��� �� ��. �� ��� ���� �
� �� ��� �� �� �� �� �� ��� ��� ��� ����. ��
�, �� �� � ��� ��� �� �� ���� ��� � ����. �� ���
�� �� ��� ��� �� ��� ����.
�� �� �� ��
CONNECT�� ����� �� ����� �� ��� �� ��� ��� � �
���. �� ��� �� ��.
v � ��� ��� �� ��� �� � ��� ��� �� � ����.
v � ��� SET CONNECTION�� ��� � ��� ��� � �� ��
���� �� ����� ���.
v � ��� CONNECT�� ��� � ��� ���� � �� �� ����
�� ��� ���� ���.
�� ��� �� �� �, � ��� ��� ����. CURRENT
SERVER �� ������ �� ��� ���� �� ����. � ��� � �
�� �� ��� ���� ��� SQL�� ��� � ����.
CONNECT �� SET CONNECTION�� ����� ��� � ��� �� �
�� � ��� ��� ��� �����.
�� ��� �� �� �� �, � ��� ��� �� ����.
CURRENT SERVER �� ���� ��� ��� �����. ��� � �� SQL
�� CONNECT, DISCONNECT, SET CONNECTION, RELEASE, COMMIT �
ROLLBACK��.
�� ��� ����� ��� SQL� ��� �� ����� �� �� � �
� ��� ��� ��� �� ��� �� ��� ��� � ��� ��
� 1 � � 33
� �� ��� �����. � ��� ����� �� ��� ��� ���
�� �� � ���� �� ������ ����� DISCONNECT�� ����
� ��� � ��� ����� �� ��.
�� �� �
��� ��� � ��� �� � ��� �� ��� �� �� � ��� ��
� ��� � � ��� ��� � �� �� ��. �� ��, �����
� ���� P� ���� ��� �� �� � ��� �� �� �� ���
��� ��� � X�� P� �� ��� �� ���� ��.
� ��� ��� �� ��� ��� � � ��� ��� �� ��� �
�� �� ����. � ��� �� ��� � ��� ��� � �� ��.
�� �� ����
�� �� ���� �� �� ���� ��� �����. � ����� �� ��
��� ��� ��� � �� ��� ���� ���. DRDA� ��� ���
� ����� ��� ��� ���� �����.
� ��� �� ��� ��� ��� �� �� � ���� � �
��. �� �� iSeries� DB2 UDB ������ ����� �� ��� ���
OS/390 ���� �� � ��� � � �� IEEE ���� System/370* ��
�� �� ��.
�� � � ��� � ���� �� � � � �� ��� ���
�. �� � � ���� ��� � �� ��� �����. ��� ��� �
�� �� �� �� � �� ��� ��� ��� �� ����. ��� ��� IBM
�� �� �� ��(CDRA)� �� �� ��. �� ��� �� ��� ��� �
� �� �� �� �� 1 ���, SC09-1390� �����.
�� ��
���� ��� ��� � �� ��� ����. �� ��� ��� ���
� �� �� ��� �� ��. �� ��� �� �� ��� ���� � ���
�� � ����. ��� ����� �� ����� ���.6
�� ��� SQL�� ���� ��� � �� � ����. �� ��, �� �
� � �����.
v ������ ������� �� ��� �� ��� �� �
v �� ���� ������ ����� �� �� � �
6. ��� �� ��� ���� ���� , ��� � ������� �����. � �� �� ��� ��� ���� � �� ����
��� ��� �� ��� ��� ����. ���, � ���� �� ��� ��� ����.
34 iSeries� DB2 UDB SQL ��� V5R2
�� �� ���� � � � ����� �� �� ��� �� � ��
��. ��� ��� ����� ��� ���� �� �� ����.
�� ���� �� ��� ��� � ��� � �� ��� �����.
�� �� ��� �� ��. �� ��, �� �� ��� �
�� ���� �����.
v 26 � ���� �� �� A - Z
v 26 � ���� �� �� a - z
v � 0 - 9
v . , : ; ? ( ) ’ ″ / - _ (��) & + % * = < >
�� ��� ���� �� ��� �� �� �� ��, EBCDIC
�� "A"� ��� X'C1'� ��� "B"� ���
X'C2'� �� ��. � �� ��� ��� � ��
�� � �� �� ��� ����.
��� ��� ��� �� � �
��� �� �� �� �� � ��� ��� �� ���� ��� �
�� ��� ��� �� ��
��� �� �� ��� ��� � ��� �� ��. �� �
�, ��� ����.
v �� �� EBCDIC
v �� �� ASCII7
v �� 1 � 2 �� EBCDIC
v �� 1 � 2 �� ASCII
v UCS-2(�� ��� �� ��)
�� �� �� �� ���� ��� �� �� �� ���
�� ��� �� �� �� �� ��� � �
�.
�� �� � �� ���
�� �� ���� �� ��� � �� �� ���� �� ���� ��
��� �����.
7. ASCII� � ��� IBM-PC �� �� ISO 8 ��� �����.
� 1 � � 35
��� ��� ��� �� �� ��� �� ��� �� �� , ��� ���
� �� ��� �� ��� �� ��� ��� � ����. �� �� ����
��� 1 �� �� ��(SBCS)��� ��� ��� ��� ��� ����. ��
���� �� ��(1 �� �� � 2 �� ��� ��)� ���� �� , ��
�� ��(� ���� )� ��� �� ��� ���� �� ��. ��� �
���� ��� ����. ������ ���� �� � ���� ��
�� �� 2 �� �� ��(DBCS) �� �� ��� �� ��(UCS-2)��� �
�� ����� �����.
� ��� ���� ��� �� �� ID(CCSID)� ��� �� ���� ���
� �� ��� �� �� � ���. �� ��� ���� ��� �� ��
ID(CCSID)� ��� �� ���� ��� � �� ��� �� ����. �� �
�, iSeries� DB2 UDB� EBCDIC ��� ��� ��� �� �� ID(CCSID)�
��� ��� � ��� ASCII ��� ���� ��� � ����.
�� ��� ���� ��� �� �� ��� ��� ��� ��� � �� ��
����� ��� � � ��� ���� ��� �� �� ID(CCSID)� �� �
�. �� ��� ���� ��� �� �� ��� ��� � �� ���� ��
� ���� ��� � � ��� ���� ��� �� �� ID(CCSID)� ��
36 iSeries� DB2 UDB SQL ��� V5R2
��. � ��� ���� ��� �� ��� �� �� ID(CCSID)� ����
� �� ��� �� �� ID(CCSID) � ��� ��� �� �� ID(CCSID)� �
� ���.
��� �� �� � CCSID
IBM� �� �� �� ��(CDRA)��� ��� �� � ���� ���� ���
�. ��� �� �� ID(CCSID)� � ��� � ����. CCSID� ��� �
� � � � ��� �� �� � �� ���� �� ��� 2 ��(���
��) 2� ���.
CCSID� ��� �� , ��� ��� �� ����. ��� ��� �� �
��� CCSID� ����.
� ������ ����� �� ��� CCSID �� �� � ��� �����. �
� �� ��� �� �� � �� �� ���� �� ����. � CCSID ��
��, �� �� �� � ��� �� ���� �� ��� �� ��� ��� ��
� � ��� ��� ���. � ��� ��� ���� ��� �� ���
���(�� ��� ���� �� CCSID� �� �� ��� ��� ��
����).
��� CCSID
�� ��� ������ ����� �� ��� CCSID �� DBCS ��� �
�� ����� �� ��� CCSID� ����. �� ��� �� CCSID� �
� ���� �� ��.
v ��� CCSID� �� ��� ��� � �� ��� ��(��� �� �
�� ��� �� )
v ��� �� �� �� �� ����(�: USER � CURRENT SERVER)
v CAST, CHAR, DIGITS � HEX ��� �� ��8
v CCSID� ��� ��� �� � VARCHAR, GRAPHIC � VARGRAPHIC
��� �� ��
v CCSID� ���� ��� �� � CLOB � DBCLOB ��� �� ��
v ��� CCSID� � �� ��� �� � CREATE TABLE �� ALTER
TABLE�� �� ��� ��� 9
�� SQL ������ ��� ��� ��� CCSID� ������ ����� �
� �� ��. �� SQL ������ ��� ��� ��� CCSID� ��� �
8. ��� CCSID� 65535�� �� CLOB �� DBCLOB� �� CAST� ��� CCSID� DFTCCSID �� � �� ��.
9. ��� CCSID� 65535�� �� ��� � 65535� ��� ����. �, ��� CCSID� DFTCCSID �� � �� ��.
� 1 � � 37
� �� ��. OS/400�� ��� CCSID� CCSID �� �� �� �� ��.
CCSID� �� ��� ��� iSeries Information Center� ��� ��� CCSID
� �� �� �����.
�� ��
�� ��� �� ��� ��� �� ���� � �� �� ����� ��
���. �� �� �� ��� �� �� �� ��� ���� �� ����
� ����. �� ��, ���� �� �� �� ����� ��� �� ���
� ����. �� ��� �� ���� ��� �� � ��� �� ���, �
� �� a � A)��. �� ��� ��� � �� ��� �����.
v SBCS �� ��(� �� )
v ��� ��� SBCS ��
v UCS-2 � ��
SBCS �� �� ��� 256 �� �� ��� �� ��. ��� � ���
SBCS �� ���� ��� �� ��� �����. �� ��� �� ��� ��
��� ��� CCSID� �� ���� ���. �� �� �� ��� � ��
�� �� �� ���� �� ���� �� ��� �� �� ��. �� �
�, �� a � A� �� � ���� �� ���� �� �� �� �
� ��� ��� � �� ���� ���.
UCS-2 �� �� ��� �� �� �� ��� �� ��. � �� �� �
� UCS-2 �� ���� ��� �����. UCS-2�� �� ��� �����
����� �� �� ��. �!� �� ��(��� ��� �� �� ��)��
�� �� ��. �� �� �� ��� � ��� UCS-2� �� ��� ��
��� �� �� ��.
�� �� ��� 2 �� ��(�� UCS-2� �� �� �)� ��� �� ��
� �� ��� � ��� �� ��(shared-weight sort sequence)��. �� �
� ��� �� ��(�� UCS-2� �� �� �)� � �� �� � �� �
�� � ��� �� ��(unique-weight sort sequence)��. �� ��� �
� � ��� �� ��� ����� ���� ��� ���� ��� ��
��. �� �� �� �� ��� ��� CRTTBL(Creat Table) �� ��
� �� ��� �����.
�� ��� �� ��� �� �� ���� �� ���� ���. ��� ��
��� ��� �� �� �� ��. SQL�� CRTSQLxxx, STRSQL �
RUNSQLSTM ��� �� ��� �� ��. SET OPTION�� ��� �
SQL� �� �� ���� �� ��� �� ��� ��� � ����. �� ���
SQL��� ��� �� �� �� �� ��. ������ ��� �� ��� �
38 iSeries� DB2 UDB SQL ��� V5R2
�� 16�� ��� ��� � �� �� ����. ��� SRTSEQ(*HEX)�
��� � ��� � �� ����. �� 2 �� 3 ��� �� ��� ��
�� ����� �� ��� *HEX��.
�� ��� FOR BIT DATA �� BLOB � ��� ����.
CCSID� �� ��� ��� iSeries Information Center� ��� ��� CCSID
� �� �� �����. �� �� � �� ����� ��� ��� ��
��� ��� iSeries Information Center� �� �� � �� �����.
��� � ��
���� ��� �� ��� � ����� �� �� SQL�� ����� �
�� � ����. �� ���� ���� �� ��� � ��� �����
���. �� ��� ���� �� �� � ��� ����� ���.
�� ��� �� �� ���� ������ ���� ��� ���� �� ��
� � , �� ��� � ���� �� ��� ���. �� ��� �� ���� �
����� ���� �� ��� � �� ��� ��� � ���� �����.
�� ��� �� ���� �� ��� ������� ���� �� ���� �
� �� ��� ��� ��� ����. �� ��� � *ALLOBJ ��� �� ��
���� �� ��� ����.
��� �� ��� ���� ��� � ��� ��� ���. ��� ���� �
��� ��� ���� ��� � �� , �� ���� ���� � ��,
GRANT�� ��� �� ����� � ���� �� ��� ��� � ��
��. REVOKE�� ��� ���� ��� ��� � ��� � ����.
���� ��� � �� ���� ID� ���� �� ��� ������.
��� ����� ���� �� ��� � ���� �� ��� �
�� �����. ��� �� �� �� ���� �� ��� ��� ���
� ����. �� ��� �� ��� ��� � ��� ����� ��� �
� � ����. � �, �� ���� ��� �� ��� ��� �� ���
� ����.
SQL ����� *PUBLIC� ��� ��� ��� ���� ��� �� ���
�� ����. *SYS �� ��� ��� *PUBLIC� ���� ��� �
� �� �� �� ��(CRTAUT)� �����. *SQL �� ��� ���
*PUBLIC� *EXCLUDE ��� �����.
� �� ���� ���� ��� ��� ���� ��� ���� ��� �
� ������ ��� ��� �� ���� �����. ���� �� �
� ��� � �� ���� �� ����� �� �� � �� ���� �
� 1 � � 39
|
|
|
|
�� ��� �� *READ� �� ���� �����. ��� � ���� ���
�� � � �� �� ��� �� *READ� �� , �� ��� ���� �
�� �� � � �� �� ��� �� *READ� ����. ��� �� ��� �
�� iSeries �� ��� � �����.
���� ��
iSeries ���� ��� ��� �����. iSeries� DB2 UDB� �� ���
��� ���(�� ��, � � ��)� OS/400� �����. �� �� ��
�� ���� ������ ���� �� ����� ���� ������ �
� ���� ��(�� ��, � ��)� ������.
��� �� ��� �� ��� �� ������ ��� �� �� � ��� ��
�. � ��� �� ��� �� � ��� �� ��� �� �� ��. �
� ��� � ��� iSeries ��� ����. �� � � �� ��� ��
� ����. �� � ������ ���� �� ��� �� ���� �� �
� � ��� ���� ��� � �� ��. �� �� � �� ��� �� �
�� ��� DB2 Multisystem �� �����.
�� �� �� ��� ��� �� ��� ����� � ���. ��
�� ����� DataLink �� ���. �� �� ��� �� �� �� ��
� ��� ��� �� �����.
� ���� DB2 � ���� DB2� ��� �� ��� �� �����.
v DB2� �� ��� �� � �� ���� ��� � �� ���.
v DataLink � �� ��� SQL ��� �� ���� �� � ��� ��
�� � ��� � ��.
DataLinker� �� �� ������.
DataLinks �� ���
DB2� ��� �� � ��� �� �� �����.
DataLinks �
��� �� � �� ���� ��� � � � ��� �� �
�����. �����, ��� ��� ��� ��� ��� � �� �
�����.
40 iSeries� DB2 UDB SQL ��� V5R2
� 2 � �� ��
� �� �� SQL�� ��� SQL� �� ��� � ��� �����.
��� ��� ��� �����.
v 42 ���� ����
v 42 ���� ����
v 45 ���� �ID�
v 47 ���� ��� ���
v 56 ���� ���� � SQL ��
v 57 ���� ����
v 58 ���� ����� ID � ������
v 60 ���� ��� ��
v 76 ���� ��� �� ���
v 77 ���� ��� � ��� ����
v 80 ���� ���� ��
v 93 ���� ��� �� �� �� ���
v 97 ���� ���� �� ��� � �� ���
v 99 ���� ����
v 104 ���� ��� �����
v 114 ���� ��� ���
v 119 ���� �C, C++, COBOL PL/I � RPG� ��� ���
v 120 ���� �C, C++, COBOL, PL/I � RPG� ��� �� ��
v 121 ���� � ��
v 127 ���� �����
v 144 ���� � ��
© Copyright IBM Corp. 1998, 2002 41
��
SQL �� � � �� ���� �� ��� IBM ��� ������ ����
��� 1 �� ��10��. � ��� ��, � �� �� ��� �� ��.
��� ��� � 26�� ���(A - Z)� 26�� ���(a - z)��.11
�� 0 - 9� ����.
�� ��� �� �� �� ����.12
�� - � ��
″ �� �� �� � ��� . ���
% ��� / ��(/)& ����(&) : ��(:)’ �� ��� ; ����
( �� �� < �� ��
) ��� �� = ��
* ��(*) > �� �
+ �� �� ? ����
, � _ ��
| 13 ���
��
�� �� �� � � ����� ���. ��� ��, �� �� � ��� ��
� �� ID �� ��� ��� � ��� ��� �� ��(� ��� ���
�� ��).
��� �� �� �� �� ���� �� ��.
v �� ��� � ��, �� ID, ��� ID �� � ���.
v �� �� ��� ��� ��, �� ID, ��� �� �� �� ��� ���
�� ����. �� ��(?)� �� 728 ���� �PREPARE�� ��� ��
�� ��� ��� � �� �� ����.
�: ��� ��� �� ����.
10. SQL�� UCS-2�� ���� ��� ��� ��� ��� �� ��� �� �� 1 �� ��� �� ��. ��� ��� ���� �
�� 1 ��� ��� �� UCS-2 � ����� �� � ����.
11. ���� ���� �� ���� ��� � � ���� ��(����� #, @ � $). � � � ���� CCSID� �� �� ���
����� ��� �� �� ����.
12. �� ��(¬) � ���(!)� iSeries� DB2 UDB�� ��� �� ����. �� ��� �� ���� ��� ��� ��� ���.
13. ���(|) ��� ��� IBM ��� ������ �� ���� ��� ��� � ��� ���. �� ��� � CONCAT ���(||)� �
�� �� ����. ���� �� ����� ��� �� �� ����.
��
42 iSeries� DB2 UDB SQL ��� V5R2
�� ��: �� ��� ��� ��� ��� �� ����. �� ��� ���
��� ���� �� ��� �� ��� �� ����.
� 1. �� ��
�� �� EBCDIC 16� � UCS-2 16� �
� 05 0009
�� �� 0C 000C
��� � 0D 000D
� 15 0085
� �( �) 25 000A
��� ��� ��� �� ID� � ���� �� ��� ��� ��� ���.
�� �� �� ��� ��� � � ����. �� �� �� �� �� �� ��,
�� �� �� ��� ��� �� ���. ���� �� �� �� �� �� ��
� � � ��� � �� �� �� �� ��� ��� �� ���. �� �� �
��� ��� ��� �����.
�� ��� ���.
1 .1 +2 SELECT E 3
�� ��� �� � �� �� ��� ���.
1.1 .1+2 SELECTE .1E E3 SELECT1
�� �� �� �� ��� ��� �� � �� �����.
�� �� ��� ���.
, ’string’ "fld1" = .
�� ��� �� � �� ��� �� �� �� ��� ���.
1. .3
���(.)� �� ����� ���� ��� � �� �� ����. ��� ��
�� ��� � ��� ��� �� ��. �� �� ��� �� �� �� ��
�� ��� � � ����. �, �� �� �� ��� �� ���.
102 ���� ������� ��� �� ���� �� ��� �� � �
��� ����� �� ��. �� � ��� ���.
1,2 ,1 1, 1,e1
'1,2'� '1,e1'� ��� ��� �� ��(1)� �� �� ��(,) � � �� ��
� �� �� ����� ��� ����. �� �� �� ������ ��
��� ��� �� ����. ��� ��� �� ��(1) �� �� �� ��
(,)� � � ����. �, �� �� �� ��� �� ���.
��
� 2 � � �� 43
��: �� SQL�� ��� � ��� SQL�� � � ����. �� SQL
�� SQL �� � � ����. �� �� �� ��� � � EXEC� SQL
��� ��� ��� � � �� ��� � � �� ��� � ����. SQL
��� �� �� ����.
� ��
��� �� � � ��(--)�� �����. ��� �� � �
� �� �� � ����. ��� ��� 370 ���� �SQL ��� �
����.
��� ��
�� �� /*� ��� */� ����. �� �� �� � �� �
� �� � ����. ��� ��� 370 ���� �SQL ��� ���
��.
���� ���: C ��� �� ��� �� ��� ��� ���� ����
�(fold) ��. �� ��� ���� �� ����. ���, ��� ��� �
���.
select * from EMP where lastname = ’Smith’;
� ��� ��� �����.
SELECT * FROM EMP WHERE LASTNAME = ’Smith’;
��
44 iSeries� DB2 UDB SQL ��� V5R2
IDID� ��� �� � ��� ����. SQL�� ���� �� � � ��
�.
v �SQL ID�
v ���� ID�
v 46 ���� ���� ID�
�: $, @, # � �� �� �� ��� � ���� CCID� �� ���
� ��� ���� ����� ID� ��� ��� ���. ��� ��
� �� ��� �� � ����. �� ��� �� ��� ��� iSeries
Information Center� �� �� �� �����.
SQL ID
�� �� SQL ID� ����(�� ID� �� ID).
v �� ID� ���� �� 0�� ��� ���, �� ���, � �� �� �
���. �� ID� ���� ���� ����. ���� �� ID� � �
����. ��� ���� 897 ���� �� D ������ �����. ���
� SQL�� ID� ��� ���� ��� SQL �� ��� ��� ���.
v �� ID� SQL �� ��� �� ��� ����. ��� � ��� ��
� ���� , � ��� �� �� ��� �� ����. �� ID
� ���� � SQL �� ��� � ����. �� ID� ���� �
�� ��� ����. �� ��� �� ���(')� �� � ��� �
���(")��.
– SQL ��� �� ��� COBOL �� �� �� ���� �� ��� �
�� � ��� SQL
– CRTSQLCBL �� CRTSQLCBLI �� OPTION(*QUOTESQL)� ��
� �� ��� �� ��(")� ��� � COBOL ����� �� SQL
– CRTSQLCBL �� CRTSQLCBLI �� OPTION(*QUOTESQL)� ��
� �� ��� �� ��(")� ��� � COBOL ������ ����
�� ��� �� ID �� ��� � ����.
– X'00' - X'3F' � X'FF'
��� ID
��� ID� OS/400� ��� ����� �� ��. �� ID� �� ID, �
�� �� ��� ID� ����.
v ��� �� ID� ��� ��� SQL �� ID� ��� ��� �����.
ID
� 2 � � �� 45
|
|
|
|
|
|
|
|
|
|
|
|
|
v ��� �� ID� ��� ��� �� � ��� SQL �� ID� ��� �
�� �����,
– �� �� ��� �� ��� ID� ��� � ����.
- ��(X'40')
- ��(*)(X'5C')
- �� ���(X'7D')
- �� ��(X'6F')
- �� ��(X'7F')
– �� �� �� ��� �� ID� ��� �� � ����� ��� ��
� ID� ��� ��.
�� ��, “PRIVILEGES”� ����� �� �� �� ��� �� ID� �
�� ��� 10 ����� � �� �� ������. ��� “privileges”
� ����� ��� 12 ���� �� ��� ��� �� �� ID ���
�� �� � �� �� ����� ����.
�
WKLYSAL WKLY_SAL "WKLY_SAL" "UNION" "wkly_sal"
��� ID
host-identifier� ��� ������ �� ����. ��� ID �� ��� �
�� � ���� ��� DBCS ���� ��� � ����. �� ��, COBOL
����� ��� ID �� ��� COBOL� ��� �� �� �� ��� ���
�. ��� � 'SQ'14, 'SQL', ’sql', 'RDI' �� 'DSN' ��� ��� ��� �
�� ���� � ���� ��� ��� ��� � ����.
14. 'SQ'� C, COBOL � PL/I�� ���� RPG��� ��� � ����.
ID
46 iSeries� DB2 UDB SQL ��� V5R2
�� ��
�� �� ��� ��� �� ��(*SQL �� *SYS)� �� ��� ��� �
� �� �����. �� ��� CRTSQLxxx, RUNSQLSTM � STRSQL ��
�� ��. SET OPTION�� ��� � SQL� �� �� ����� �� �
� �� ��� ��� � ����. �� ����� �� �� �� �� �� �
�� �����. �� ���� �� ��� �����.
�� ��� ��� �� �� ��� �� ��. ��
� ��� ��� �� ��� �� �����. SQL
�� ��� � ��� ��� ����, ���(.),
SQL ID ���. ����� ��� ���
��� ����, ��(/), SQL ID ���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
��� ���� ��� ��� ����� ��� �
����.
���� ���� ��� ��� ��� ��� ID. ���
��� ����� ��� ������. ����
�� ��� � �� ID� ��� � ����.
������ ���� ID ��� ��� ��� 58
���� ����� ID � ������� ����
�.
�� �� �� � ��� ��� �� ��� ��
��. ��� ��� �� ��� SQL ID�
�. ��� ��� ���, ���(.), SQL ID ��
�. ���� � ��, � �� �� �����.
��� COMMENT � LABEL ��� ��
� schema-name/ table-name.column-name ��� �
���� � ��� � ����. ��� ��
�� � ��� ���� ��� ��� �
��� ���� ���.
��� � �� �� ���� ��� ��
� ��� � ����. ��� ��� �
� ��� ��� � �� ��� ��� ��� �
��.
����� �� �� ����� ��� ��� �� ���
�� ��. ����� ��� ��� �� ��� �
�� ��
� 2 � � �� 47
� �����. SQL�� ��� � ��� ��� �
���, ���(.), ��� ID ���. ����� �
�� ��� ��� ����, ��(/), SQL
ID ���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
��� �� �� �, � �� � �� ��� SQL ID
��� SQL ��� ��� SQL ID
���� ��� ��� �� SQLDA� ��� ��� ID �
�� ID� �� ��� ��� 114 ���� ����
��� �� ���� �����. SQLDA� ��
� ��� ���� ����� ��� ��� ���.
�� :host-variable:indicator-variable� ��� �
���.
distinct-type-name �� �� ��� ��� �� ��� �� �
�. �� � ��� ��� �� �� ��� �
� �����. SQL�� ��� � ��� ��� �
���, ���(.), SQL ID ���. ����� �
�� ��� ��� ����, ��(/), SQL
ID ���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
����� ��� �� � ��� SQL �
�� �� �� �� ��� SQL �,
SQL ����� �� ��� SQL �� �� �
�� � ��� � ����.
�� ����� ��� ��, ��� �� �� �� �� ����
� ��� �� ���. �� ������ ��� �
�� �� ��� �� �����. SQL�� ���
� ��� ��� ����, ���(.), ��� ID �
��. ����� ��� ��� ��� ��
��, ��(/), ��� ID ���.
��� �� ��� ��� ID��. ��� �
� ��� 54 ���� ���� �� �����
����� ��� ��� �� ����� �� ��.
�� ��
48 iSeries� DB2 UDB SQL ��� V5R2
�� ��� ��� �� � ���.
v OS/400 ��� �����(‘�� ��/ ����
�’).
v OS/400 ��� �� ��, �� ��, OS/400 �
��, ��� �� ���(‘�� ��/���
�(���)’). � ��� REXX ������ ��
� �� ����.
v OS/400 ��� �� �����, �� ��,
OS/400 ���, ��� ��(‘�� ��/��
�����(���)’). � ��� �� ����
���� .
v ��� jar-id, �� ID, ��� �� ���, �
�� ID(‘class-id!method-id’ �� ‘class-id.
method-id’) ��.��
jar-id :�
� class-id ! method-id.
��
jar-id� ������� ���� � jar ���
� �����. ��� ID� �� �� ��� �
� ID� �� ����. �� �� ‘myJar’ ��
‘myCollection.myJar’��.
class-id� Java ���� �� ID� ����
�. ��� ���� ��� �� ID�
�� ��� ��� �� ���. �� �
�, �� ID� ‘myPackage.StoredProcs’��
JVM(Java Virtual Machine)� StoredProcs �
�� �� �� ������ �� � ����.
’/QIBM/UserData/OS400/SQLLib/Function/myPackage/StoredProcs/’
method-id� ��� Java ���� ����� �
����.
� ��� Java ������ Java ����
����.
��� ��� �� �� ��� ��� �� ��� �
� ��, �� �� ��� � ��� ���
� �� �� �. ��� ��� ��� �� �
�� �� �����. SQL�� ��� � ��� �
�� ��
� 2 � � �� 49
�� ����, ���(.), SQL ID ���. ���
�� ��� ��� ��� ����, ��(/),
SQL ID ���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
����� ��� ��� ��� CREATE,
COMMENT, DROP, GRANT �� REVOKE �
�� ��� � ����/ ��� ����� ���
� ����.
��� �� ��� ������ �� � ��� ��
��� �� ��� ��� ��� ��� ��. ��� ����
114 ���� ���� ��� �� ����� ���
�� ��� �� ��� ID� ����.
��� ��� ��� ��� �� ��� �� ��. �
��� ��� ��� �� ��� �� �����.
SQL�� ��� � ��� ��� ����, ���
(.), SQL ID ���. ����� ��� �
�� ��� ����, ��(/), SQL ID ���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
�� ��� �� ��� ��� ��� �� ��� �� �
�. �� ��� �� ��� iSeries �� ���
�. ��� �� ����� �� ��� ��� DB2
Multisystem �� �����.
�� ���� ��� ��� �� ��� �� ��
���. SQL�� ��� � ��� ��� ����,
���(.), ��� ID ���. ����� ���
��� ��� ����, ��(/), ��� ID �
��.
��� �� ��� ��� ID��. ��� �
� ��� 54 ���� ���� �� �����
����� ��� ��� �� ����� �� ��.
���� ���� ��� ��� �� ��� �� ��. �
���� ��� ��� �� ��� �� �����.
SQL�� ��� � ��� ��� ����, ���
�� ��
50 iSeries� DB2 UDB SQL ��� V5R2
(.), ��� ID ���. ����� ��� �
�� ��� ����, ��(/), ��� ID ���.
��� �� ��� ��� ID��. ��� �
� ��� 54 ���� ���� �� �����
����� ��� ��� �� ����� �� ��.
����� �� ������ �� ��� ��� ��
ID. ������ �� ��� ID � �
�� � � ����.
������ ������ ��� ��� �� ��� �� �
�. ������ ��� ��� �� ��� �� �
����. SQL�� ��� � ��� ��� ���
�, ���(.), SQL ID ���. ����� ��
� ��� ��� ����, ��(/), SQL ID
���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
savepoint-name ���� ���� ��� �� ID.
���� SQL ���� � ��� ��� ��� �� �
�� �� ��. ����� �, �, ��, ����
�, �, ��, ����, ��, � �� ����
��� ���� �� ��. ����� ��� �
� �� ��� ID��. ����� ��� �
� �� ��� �� �����.
SQL�� SQL��� ��� �� �����
���� �� ����� �� ��. ��� ���
��� �� ���(.)� ��, ��� ID ���. �
��� �� ��� ���� ���.
����� SQL��� ��� �� ����
� ���� �� ����� �� ��. ��� ��
� ���, ��(/), ��� ID ���. ���� �
� ��� ���� ���.
�: ����� CREATE SCHEMA ��� �� �
�� ���� OS/400 �� �� ����.
��� ��� ���� SQL ID. ID�� ���� �� �
�� �� ���.
�� ��
� 2 � � �� 51
||
��� ������ �� �� ��� ��� ��
��� �� ��. ���� ��� ��� �� �
�� �� �����. SQL�� ��� � ��� �
�� ����, ���(.), SQL ID ���. ���
�� ��� ��� ��� ����, ��(/),
SQL ID ���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
SQL �� SQL �����, SQL � �� �� ���� �
� � ��� ��� �� ��. SQL �� �
� SQL ID��.
SQL ����� SQL �� ���� ��� ��� ��� ��
��� �� ��. SQL ��� ��� ��
��� SQL ID��. ��� ��� ������,
���(.), SQL ID ���.
SQL ��� SQL �� ���� ��� ��� ��� �� �
�� �� ��. SQL ��� ��� �� ���
SQL ID��. ��� ��� SQL �� , ���(.),
SQL ID ���.
���� �� SQL�� ��� SQL ID.
��� �� �� �� OS/400 ��� ��� ��� ��
��. ��� ��� ��� ID��. ���
��� �� ��� � � ��� �� �� �� �
�� ���� �� ��� � � ����.
��� ���� �, �, �� �� ��� OS/400 ��� ��� �
�� �� ��. ��� ����� ��� ID
��.
�, �, �� �� ��� ��� �� ��� �
� ��� ID�� �, �, �� �� ��� ��� �
���� �, �, �� �� ��� ��� �� �
���.
� �� �� ��� ��� �� ��� �� ��. � �
�� ��� ��� �� ��� �� �����.
SQL�� ��� � ��� ��� ����, ���
(.), SQL ID ���. ����� ��� �
�� ��� ����, ��(/), SQL ID ���.
�� ��
52 iSeries� DB2 UDB SQL ��� V5R2
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
� ��� � ���� �� ��� ����� �
�� � ����.
�� � �� �� ��� ��� ��� �� ��� �
� ��. ��� ��� ��� �� ��� �� �
����. SQL�� ��� � ��� ��� ���
�, ���(.), ��� ID ���. ����� ��
� ��� ��� ����, ��(/), SQL ID
���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
� �� �� ��� ��� �� ��� �� ��. � �
�� ��� ��� �� ��� �� �����.
SQL�� ��� � ��� ��� ����, ���
(.), SQL ID ���. ����� ��� �
�� ��� ����, ��(/), SQL ID ���.
��� �� ��� SQL ID��. ��� ��
��� 54 ���� ���� �� ����� �
���� ��� ��� �� ����� �� ��.
� ��� � ���� �� ��� ����� �
�� � ����.
� 2. ID �� ��( ��)
ID �� �� ��
�� 128
����� 10
��� 128
��� 18
��� ID 64
���� 128
��� 18
SQL �� 128
�� �� 18
��� �� ���� 10
��� �� �� 30
��� �� ����� 128
�� ��
� 2 � � �� 53
||
� 2. ID �� ��( ��) (�)
ID �� �� ��
��� �� �� � �� 128
��� �� �� ����� 15 10
��� �� �� 128
��� �� �� ��� 10
��� �� ���� 10
��� �� ��� 128
��� �� ������ 128
��� �� �� �� 128
��� �� SQL ��� 128
��� �� SQL ��� 128
��� �� ��� �� 10
��� �� ��� ���� 10
��� �� �, � � ��� 128
��� �� ��� 128
���� �� ������ ���
��� �� ����� ����� �� ��. �� ��� ��� ���� �
�� ���� �� �� �����.
���� �� ��, ����, �� ����, ��, �� ��, ���, �,
��� � ��
��� �� ��, ����, �� ����, ��, �� ��, ���, �, �� �
� ��� ��� �� ����� �� ��.
v �� SQL�� :
– CRTSQLxxx �� DFTRDBCOL ��� ���� SET OPTION�
� � ��� ��� ���� � ��� ��� ������.
– �� �� �� ���� �� ��� �� �����.
- SQL ��� ��� �� ���� ��� ���� ID��.
- ��� ��� ��� �� ���� �� �� � ���(*LIBL)
��.
v �� SQL�� �� ���� ��� ����� ����� ����� �
�� �� �����. ���� ���� ��� ����� SQL�� ���� �
� ��� � ��� ������ �� �����.
– ��� ����� ����� ��� ����.
- SQL ��� ��� �� ���� ��� ���� ID��.
15. REXX ������ ��� 33��.
�� ��
54 iSeries� DB2 UDB SQL ��� V5R2
- ��� ��� ��� �� ���� �� �� � ���(*LIBL)
��.
– ��� ����� ����� ��� �� ���� �� ��� �����.
��� ����� ��� �� ������ ��� � ����.
� 3. ��� ��� �����
SQL ����� ��
� SQL SQL ���� ��(CRTSQLxxx) � SQL ��� ��
(CRTSQLPKG) �� �� DFTRDBCOL �� �
DYNDFTCOL(*YES). SET OPTION ���
DFTRDBCOL � DYNDFTCOL �� ��� � ���
� ����.
(CRTSQLxxx �� �� ��� ��� ��� �� SQL
��� �� �����).
SQL� �� Run SQL�(RUNSQLSTM) �� DFTRDBCOL �
�.
(RUNSQLSTM �� �� ��� ��� SQL ���
� �� �����.)
��� �� �� ����� SQL_ATTR_DEFAULT_LIB ��
SQL_ATTR_DBC_DEFAULT_LIB � �� �� ��
(CLI� �� ��� ��� SQL �� �� �����
(ODBC) �� �����.)
Developer Kit for Java� ��� ��
� JDBC �� SQLJ
�� � �� �� ���
(JDBC� SQLJ� �� ��� ��� iSeries Information
Center� IBM Developer Kit for Java �� �����).
iSeries Access ODBC ����� ��
� ����� ODBC
ODBC ��� SQL ��� �� �
(ODBC� �� ��� ��� iSeries Information Center�
iSeries ��� �� �����.)
IBM Toolbox for Java� ��� �
���� JDBC
JDBC ��� SQL ��� �� �
(JDBC� �� ��� ��� iSeries Information Center�
iSeries ��� �� �����.)
(IBM Toolbox for Java� �� ��� ��� iSeries
Information Center� IBM Toolbox for Java �� ��
���).
�� ����� SET SCHEMA �� QSQCHGDC(��� ��� �� �
) API
(QSQCHGDC� �� ��� ��� iSeries Information
Center� � API �� �����).
���� �� ��, ����, �� � � � � ��
�� �(�� � � �� �), �, ����� � �� ��� ���� ��
� �� ��� ��� SQL�� �� �����.
v ��� �� ��� CREATE, COMMENT, DROP, GRANT �� REVOKE
��� �� ����� ��� ��� ��� ��� �� �� ��� ��
�� ��
� 2 � � �� 55
|
|
||
||
|||||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|
||||
|
� ����� �� ��(54 ���� ���� �� ��, ����, �� ��
��, ��, �� ��, ���, �, �� � � ��� ��).
v ��� ��� �� ����� ��� �� �� ��.
– �� � ��� ������ ���� SQL �� ��� �� ��
�� �� � �� ���� �����.
– ����� ��� ������ ���� SQL �� ��� ���
�� �� � �� �� �� ������ �� � �� ���� �����.
– ��� ��� �� ��� �� ��� ������ ���� 123 �
��� � � ����� ��� �� � ��� � SQL �� �����.
SQL ��� ����: �� ����
CL � OVRDBF(������ � ��)� ��� SQL �� ����� ��
�� �� SQL�� �� ������ ��� � ����. ��� ��� ���
����� ��� �� �� SQL�� �� �� SQL�� �� ��� �� �
�. �� �� �� ��� ��� � �� �� �����.
��� � SQL ��
SQL �� ���� �� ����� �����. ������ ���� ��
��� CREATE, DROP, COMMENT, GRANT �� REVOKE�� �� �
��� ��� �� ��� ���� ��� �� �� � ��(�� � � �
� � �), �� � ������� �� ����� �����. ������
���� ���� ����� �� ��� ��� �� ��� ��� ����
�� �� � �� ���� �� ���� ����� �����. ������
������ ���� ��� �� �� �� ��� ������� �
����. �� �� ���� �� ��� � �� �� � ���� �
����� ���� SQL �� � � ����� ����� ��� ��
�� ��� ��� �����. (��� ��� 123 ���� � � ���� ��
���).
�� �� SQL �� SMITH, XGRAPHIC, QSYS, QSYS2�� ��� �� �
� � �� MYTYPE� ��� ������ ���� �� SMITH ���
�� MYTYPE� �� � �� SGRAPHIC, QSYS, QSYS2�� ��� ����.
��� �� ��� �� �� ��.
v (CALL: ��� �� ��� ���) �� �� SQL�� ��� ��
CRTSQLxxx �� SQLPATH ��� ��� ���. SQLPATH� SET
OPTION ��� ��� ��� �� ����.
v �� SQL�(� CALL: ��� �� ��)� ��� �� CURRENT
PATH �� ����� ��� ���. CURRENT PATH �� ����� �
�� ��
56 iSeries� DB2 UDB SQL ��� V5R2
� ��� ��� 105 ���� �CURRENT PATH, CURRENT_PATH ��
CURRENT FUNCTION PATH�� �����.
��
������ �� �, � �� ��� �� �� ���� ��� �����. ��
� � �� �� ��� � ����. ��� ��� � � ��� �� ���
� �� ��� �� �����.
���� � ���� SQL�� � �� �� ��� � ����. ��� ���
SQL�� ������ � ��� ��� � ����. ��� �� ��� ����
�� �� �, � �� ������ � ���� ��� � ����.
�� � ��� � �� � ��� ��� �� ��� ��� � ����.
v CREATE TABLE �� CREATE VIEW ��� �� ��� � �� � ��
� ��� ��� ��� ����. �� ��, PERSONNEL� ��� ��
� CREATE TABLE PERSONNEL� �� � ��� �� ����.
v ������ � ��� � ��� ��� ��� �� ��, DELETE,
INSERT, SELECT INTO, SET UPDATE �� VALUES INTO ����� �
�� � ����.
��� ��� ���� ���� ��� ��� � ����. � � ��� ��
� ��� ��� �� ���� ��� ���. ��� ��� � ���� �
�� �� � ��. ��� �� ��� ��� � ����. ��� �� ���
������ �� �, � �� ������ � ���� ��� � ����.
���� �, � �� ������ � ��� ��� ��� ����� �� �
�� ��� SQL�� ��� � ����.
��� ���� �� �, �, ��, � �� ���� �� ��� �� ��� �
�� � ����.
SQL��� ��� ��� ��� ��� �� ��� ����. SQL�� ��� �
���� � ��� ��� �� �, � �� ������ � ���� �� ��
� ����. �� ��, PBIRD.SALES� DSPN014.DIST4_SALES_148� ��
���� � ��� ��� � �� �� ��� ���� �� ��.
SELECT * FROM PBIRD.SALES
�, � ��� ��� �� � ��.
SELECT * FROM DSPN014.DIST4_SALES_148
��� � SQL �
� 2 � � �� 57
��� �� �� �� ��� � �� ��� ��� ��� SQL
�� �� ���� ����� � �� ��. CREATE VIEW �� CREATE
INDEX ��� ��� ��� ��� �� �� ���� � �� ��
� ��� � ����.
�� OS/390 � z/OS� DB2 UDB ������� �� �� ��� CREATE
ALIAS � DROP ALIAS ���� ALIAS � SYNONYM� ��� � ��
��.
��� ID � ����
���� ID� ������ ���� ������ ���� �� ���� � �
��� ��� ��� ��� � ������ ���� ��� �� �����.
�� ��� �����. � �� ��� ���� ��� ��� ��� �� ���
������ ���� �� ��� ����.
���� ID� �� ��� ��� ������ ���� �� ��� ���
�����.
v �, �, ����, ��� � ���� �� ���� ���
v SQL�� ���� ��
���� ID� �� SQL�� �� ��. ���� ���� �� �� �� SQL �
� ��� �� �����.
v �� SQL� �� ���� ����� ����.
v �� 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 ��� �� ������ ��� �� ���
��
58 iSeries� DB2 UDB SQL ��� V5R2
– ����� �� USRPRF �� *USER�� DYNUSRPRF �� *USER�
��� ���� ID� ��� �� ����� �� �� ���� ID
��. ��� ��� ���� ID�� ���.
– ����� �� USRPRF �� *OWNER�� DYNUSRPRF �� *USER�
��� ���� ID� ��� �� ����� �� �� ���� ID
��.
– ����� �� USRPRF �� *OWNER�� DYNUSRPRF �� *OWNER
� ��� ���� ID� ��� �� ����� �� ID��.
v ��� ������ ��� �� ���
– SQL ���� �� USRPRF �� *USERR�� DYNUSRPRF �� *USER
� ��� ���� ID� �� ���� SQL ���� �� �� ��
�� ID��. ��� ��� ���� ID��� ���.
– SQL ���� �� USRPRF �� *OWNER�� DYNUSRPRF �� *USER
� ��� ���� ID� �� ���� SQL ���� �� �� ��
�� ID��.
– SQL ���� �� USRPRF �� *OWNER�� DYNUSRPRF ��
*OWNER� ��� ���� ID� �� ��� �� SQL ��� �
�� ID��.
v ��� ����� �� ��� ���� ID� STRSQL(SQL ��)
�� �� ���� ID��.
v RUNSQLSTM �� ��� ��� ��� ���� ID�
RUNSQLSTM �� ��� ���� ID��.
v REXX �� ��� ��� ��� ���� ID� STRREXPRC �
� �� ���� ID��.
OS/400�� ��� ���� ID� ��� ��� �����.
SQL�� ��� ���� ��� ���� ID� ��� ��� ���. ����
�� �� �� ��� ��� ��� � GRANT � REVOKE ���� ��
� ID��. �� �� X� ��� X� ��� �� ��� ��� ���
���� ID�� ���. SQL�� ��� ��� � �� ��� ���� ��
� �� ����. �� ��� ���� �� ��� ��� iSeries �� ���
� �����.
�
v SMITH� ��� ID�� �� ��� ����� ��� �� ���� ID��
�����.
GRANT SELECT ON TDEPT TO KEENE
��� ID � ��
� 2 � � �� 59
SMITH� ��� ���� ID��. ��� SMITH� �� �� �� ��
� ��� SMITH� TDEPT� �� �����.
KEENE� ��� ��� �������. KEENE� SMITH.TDEPT� ��
SELECT ��� �� ��.
v SMITH�� �� ��� �� �� ��� ���� ID�� �����.
DROP TABLE TDEPT
SMITH.TDEPT �� ����.
DROP TABLE SMITH.TDEPT
SMITH.TDEPT �� ����.
DROP TABLE KEENE.TDEPT
KEENE.TDEPT �� ����.
�� ��
SQL�� ��� � �� ��� �� �� � � ���� ���. �� ��� �
�� ��� �� �� �� �����. �� ��� ��� ����.
v
v ��
v ���
v �
v ��� ��
v �� ����
DB2� IBM� ��� �� �(�� �� �)� ��� �� �� �(�
�)� � �����. � ��� �� �� �� �����. �� �� ��
��� 75 ���� ���� �� ��� �����.
�� ��� iSeries� DB2 UDB ������ ��� � �� �� �� �
����.
��� ID � ��
60 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
�: �� �� ��� ��� ��. ��� �� � ��� �� �� �
���(�� �) �� ��� �����. �� �� �� ��� � ���
� �� ��� ��� ��� � ����. �� ��, ��, NOT NULL� ���
. �� ����� ��� � � ��, COUNT � COUNT_BIG �� ��
� �� � ����. ��� �� ROWID � �� ��� �� � ���
ROWID � ��� ��� � ����.
�� �� �� ��� ��� �� �� �����.
v 62 ���� �2� ����
v 62 ���� ��� ����
v 63 ���� ��� ���
� ��
� 2 � � �� 61
|
|
|
|
|
|
v 64 ���� �� ����
v 65 ���� �� ���
v 66 ���� �� ���(LOB)�
v 67 ���� ���
v 68 ���� �Datetime ��
v 74 ���� �DataLink ��
v 75 ���� �� ID ��
v 75 ���� ���� �� ��
� �� � ��� �� ��� 541 ���� �CREATE TABLE�� ����
�.
2� ���
2� ���� ��� ����. 2� ���(BLOB ���)� ��� ��
�� ���. 2� ����� 65535� CCSID� ����.
BLOB � �� �� 1 - 2 147 483 647 �� � � ��� ���.
BLOB� �� ��� ��� 66 ���� �� ���(LOB)�� �����.
BLOB ��� �� ��� ��� REXX, RPG/400 � COBOL/400� ��� �
� ��� �� ��� � ����.
�� ���
�� ���� ��� ����. ���� ��� �� �� ���. ��
� 0�� �� � ������ ���. � ���� ��� ��� ����.
�� �� �� ���
�� �� �� ��� � �� �� ��� ����. � �� �� �� ��
��. �� �� 1 �� 32766 ���� ���.
�� �� �� ���
�� �� �� ���� �� ��� ����.
v VARCHAR(�� ��� CHAR VARYING � CHARACTER VARYING)
v CLOB(�� ��� CHAR LARGE OBJECT � CHARACTER LARGE
OBJECT)
�� ��� � � �� � �� �� ��� �� � ����. � �� �
� �� �� � �� �� ��� �����.
� ��
62 iSeries� DB2 UDB SQL ��� V5R2
|
VARCHAR � �� �� 1 - 32740 � � ��� ���. CLOB �
�� �� 1 - 2 147 483 647 � � ��� ���. CLOB� �� ���
��� 66 ���� �� ���(LOB)�� �����.
�� ��� ��� ��
v �� �� �� ��� ��� REXX� ��� �� ��� �� ��� � �
���(C�� �� �� �� ��� ��� ��� 1� �� ��).
v VARCHAR �� �� �� ��� ��� C, COBOL, PL/I, REXX � RPG�
� ��� � ����.
– PL/I, REXX � ILE RPG� �� �� �� ��� �� �� ����.
– COBOL� C�� �� �� �� ���� ��� �� ��.
– C�� �� �� �� ��� ��� � �� ����� ��� � ����.
– RPG/400�� �� �� �� ��� ��� �� � �� ��� ���
� VARCHAR � ���� ��� � ����.
v CLOB �� �� �� ��� ��� REXX, RPG/400 � COBOL/400� ���
�� ��� ��� ��� � ����.
– ILE RPG�� CLOB �� �� �� ���� SQLTYPE � �� ���
� ��.
– �� �� ���� SQL TYPE IS CLOB �� �� ��.
�� �� �
� �� ���� �� � �� � �� �� ��.
� � ��� �� ��� ��� �� ��� �� ��. � ���
CCSID� 65535��.
SBCS � �� ��� 1 ��� ��� ��. � SBCS �� �� ����
� ��� CCSID� ����. ��� SBCS �� �� ����
CCSID� �� �� ���� ��� ��� �� �� ��.
�� � 1 �� �� ��(SBCS)� 2 �� �� ��(DBCS)� ��� �
�� �� �� ��. � �� �� �� ����� ��� CCSID
� ����. ��� �� �� �� ���� CCSID� �� ��
���� ��� ��� �� �� ��. �� ��� DBCS ��
� �� ��� SBCS ��� ��� � ����.
������ ���� 2 �� ��� ���� ��� �� �� 2 �� �
�� ��� ��� ��� ����. � � �� ��� ���� ��� 2
� 1 �� EBCDIC ���� ��� �� ��� ��� �� ��.
v X'0E', “SO” ��� ��� ��� 2 �� �� ��� �����.
v X'0F', “SI” ��� ��� ��� 2 �� �� �� �����.
� ��
� 2 � � �� 63
������ ���� �� �� �� ���� 2 �� ��� ���� �� �
�� ��� ���.
��� �� 2 �� ��� � �� SO� SI ��� ��� ���.
���� ���� ����� ��� � �� �� ��. X'0F'� ��� ���
�� X'0E'� SO ��� ��� ��� �� �� ����. 2 ��
�� �� X'0E' ��� � X'0F'� ��� SI ����. 2 �� �� �
� �� X'0F'� ��� ����.
�� � �� ���� �� � ��� ��� � ��� � �� 2
�� ��� � ��. ����� 2 ��� SO� SI �� �� �� � ��
��.
�� �� �� ���� ��� � 2 �� ��� 2 ���, � SO �� SI ��
� � ��� ��� � �� ���.
�� CCSID�� DBCS� ���� ��� FOR BIT DATA, FOR SBCS DATA
�� SBCS CCSID� ��� �� � CREATE TABLE� DBCS � ��� �
� � �����. SQL ����� �� ��� ���� ��� ������ �
���� DBCS � ��� ���. DBCS � ��� ��� ���� ����
�� ��� �� �����.
� ���
� ���� ��� 2 �� ����. ���� ��� �� ���. �� �
��� �� � ���� � �� � ����.
�� �� � ���
�� �� � ��� � �� �� � �� �� �� ��� ��� ��
��. �� �� 1 �� 16383 ���� ���.
�� �� � ���
�� �� � ���� �� ��� ����.
v VARGRAPHIC(�� ��� GRAPHIC VARYING)
v DBCLOB
�� ��� � � �� � �� �� ��� �� � ����. � �� �
� �� �� � �� �� ��� �����.
VARGRAPHIC � �� �� 1 - 16370 � � ��� ���. DBCLOB
� �� �� 1 - 1 073 741 823 � � ��� ���. DBCLOB� ��
��� ��� 66 ���� �� ���(LOB)�� �����.
� ��
64 iSeries� DB2 UDB SQL ��� V5R2
|
� ��� ��� ��
v �� �� � ��� ��� ��� C, ILE COBOL � ILE RPG/400�� �
�� � ����(C�� �� �� � ��� ��� ��� ��� 1� ��
��).
�� �� � ��� ��� ��� PL/I, COBOL/400 � RPG/400�� ��
� � ���� �� ��� ��� ��� �� �� ��� �� GRAPHIC
�� ��� ����� �� �� � ��� ��� ��� �� � ��.
v �� �� � ��� ��� ��� C, ILE COBOL, REXX � ILE RPG�
��� � ����.
– REXX� ILE RPG�� �� �� � ��� �� �� ����.
– C� ILE COBOL�� �� �� � ���� ��� �� ��.
– C�� �� �� � ��� ��� � �� ������ ��� � ���
�.
– �� �� � ��� ��� ��� PL/I, COBOL/400 � RPG/400�� �
�� � ���� �� ��� ��� ��� �� �� ��� ��
VARGRAPHIC �� ��� ����� �� �� � ��� ��� �
�� �� � ��.
v DBCLOB �� �� �� ��� ��� REXX, RPG/400 � COBOL/400� �
�� �� ��� ��� ��� � ����.
– ILE RPG�� DBCLOB �� �� �� ���� SQLTYPE � �� ��
� � ��.
– �� �� ���� SQL TYPE IS DBCLOB �� �� ��.
� �� �
� � ���� DBCS �� �� UCS-2 ��� � �� �� ��.
DBCS � �� ��� SO �� SI ��� � �� DBCS(2 �� ��
��)� ��� ��� ��.
�� DBCS � ����� 2 �� ��� �� ��� ���
CCSID� ����. ��� DBCS � ���� DBCS CCSID
� �� DBCS � ���� ��� ��� �� �� ��.
UCS-2 � �� ��� �� ��� �� ��(UCS-2)� ��� ��� ��.
� ��� ��� ��� CCSID� ��� �� ��� ��� �� CCSID
� ��� DBCS CCSID� �� ��. ��� DBCS CCSID� ��� ��� ��
� 65535� �� �� ��. � ��� ��� ��� ����� UCS-2 CCSID
� �� ��� ����. CCSID� � ��� ��� �� ��� ��� �
� ��� DECLARE VARIABLE ��� �����.
� ��
� 2 � � �� 65
� ����(LOB)
�� � ���(LOB)� �� �� �� �����.
2� � ����(BLOB) ���
� 2� ���(BLOB)� �� ��� 2 147 483 647� �� �� �����.
BLOB� ��, �� � �� �� �� �� ��� ��� � �����
�. BLOB� �� �� ��� �� ��� ��� ��� ��� ��� � �
���. BLOB� 2� ����� � ��.
BLOB ���� FOR BIT DATA �� ���� �� ��� � ��� � �
��� �� �� �� ��� � ����. BLOB �� ��� FOR BIT
DATA �� ���� �� ����� �� � ����.
BLOB� CCSID� 65535��.
�� � ����(CLOB) ���
� �� ���(CLOB)� �� ��� 2 147 483 647� �� �� �� ���
��. CLOB� � ��� �� � SBCS �� �� �� ��� ��� � ��
����. �� ��, �� ���, �� �� �� ��� ��� �� ��� CLOB
� ��� � ����.
CLOB� CCSID� 65535� � ����.
2��� �� � ����(DBCLOB) ���
� 2 �� �� ���(DBCLOB)� �� ��� 1 073 741 823 2 �� ���
�� �� � �����. UCS-2� � ��� �� � DBCS� ��� �
DBCLOB� ������.
DBCLOB� CCSID� 65535� � ����.
����� � ����(LOB) �
������� ��� ��� ��� �� LOB� ��� �� � �������
LOB(� ���) ����� ��� LOB �� ��� � ����.
LOB ����� ������ ��� �� LOB �� ���� �� �� ��� �
���. LOB ����� �� LOB �� ��� ��� �� �� ������ �
���� �� �� ������ ����(����)� �� ���� ������
������ � � ���� ��� � �� ����� ��� � ���.
�� ��, LOB �� ��� ������ ����� �� LOB �� ��
�(������ ����� � �� �� LOB �� �� ��� � ��) �
�� � ��� ��� � ��� LOB �� LOB ����� � ��� �
����. �� �� LOB ����� ��� ���� �� � ��� ���
� ��
66 iSeries� DB2 UDB SQL ��� V5R2
��� �����(��� � SUBSTR, CONCAT, VALUE, LENGTH ��, �
� ��, LIKE �� POSSTR� LOB �� �� LOB� �� UDF ���) LOB
�� �� � ������ ��� �� � ����. ���� ��� ���
��� ��� � �� ���� ��� �� ��� ����� � LOB �� �
� �����.
LOB ����� ��� �� LOB ���� ��� �� ����.
SUBSTR((lob1) CONCAT (lob2 )CONCAT (lob3), start, length )
������ ����� �� ��� ��� ��, ��� ��� ��� ��� � �
���� ��� �� ��� ���� -1� �� ��. � � LOB �����
����� ��� ��� �� ����. ���� ��� �� ��� �� � �
���� � ����� �� �� LOB ����� ��� LOB �� ��� ��
���. � ����� ��� ����� �� �� �� ����� � ��. �
�� �� ����� ��� ��� ����.
LOB ����� ������� ��� �� ��� �� ���� ��� ��
�����. �� �� ��� ����� �� ����� �� ��� �� �
�� � � ��� ��� ��� � �� ��� ����. ����� ��� �
� ����� ��� ��� �� ����� ����� ��� ��� �� �
� ����.
LOB ����� ������ LOB � ��� ��� �� ����� ���
����� ��� �� ����. �� ������ �� ���� �����
�� ��� �� ��� �� �� ����� ��� � ����. � �, ���
�� LOB �� ����� FETCH, OPEN, CALL � EXECUTE ���� �
�� SQLDA �� ��� ��� � ��� LOB ����� �� SQLTYPE�
����.
��
�� ��� ��� ���� ����. ���� ��� ��� 2� �� ����
�� �����. �� 0�� ��� ��.
� ��
�� ��� 5 ���� ���� �� 2 ��(16 �)� ��� 2����. ��
��� � � -32768 - +32767��.
�� ��� �� ���� ���� COBOL, RPG � iSeries ��� ���
�� ��. 2� ��� ���� ���� �� ��� DDS ���� �����.
� ��
� 2 � � �� 67
� ��
� ��� 10 ���� ���� �� 4 ��(32 �)� ��� 2����. � �
�� � � -2147483648 - +2147483647��.
� ��� �� ���� ���� COBOL, RPG � iSeries ��� ���
�� ��. 2� ��� ���� ���� �� ��� DDS ���� �����.
� ��(BIGINT)� ��� 19 ���� ���� �� 8 ��(64 �)� ��� 2����. � �
�� � � -9223372036854775808 - +9223372036854775807��.
�� ��
���� �� ��� �� �� �� 32�� �����. ��� � � �
1.17549436 × 10-38�� 3.40282356 × 1038��.
���� �� ��� �� �� �� IEEE 64 �� �����. ��� � �
� 2.2250738585072014 × 10-308 �� 1.7976931348623158 × 10308��.
�
�� �� �� ���� �� � �� �� � ����. ���� �� ����
� ���� �� �� ��. �� �� �� ���� ���� �� � �
�� �� � � ����. �� ���� 31 �����.
�� � �� �� ���� ���� ����. �� �� �� �� � ��
�� � � -n - +n� , ��� n� ���� ����� ���� ���� ���
� �� �� � ���. �� � � �� 1031+1 - 1031-1��.
�� ��� ��
�� �� � � 2� �� ��� �� ��� ��� ��� � ����. � ��
��� C, C++, ILE COBOL � ILE RPG��� ��� � ����. �� ���
��� RPG/400 � COBOL/400� ��� �� ��� �� ��� � ����.
�� ��� ��� �� ��� �� ��� � ����.
Datetime �
datetime �� ��� � � ��� ��� ��� � �� ��� ���� ���
� ���� ����� �� ����. � � ���� datetime ��� ��� �
����. 70 ���� �Datetime �� ��� ���� �����.
� ��
68 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
��
�� A.D. 1��� �� ��� ��� �����16� ��� ���� � �
�� �(�, �, � )��. � ��� � � 0001 - 9999��. � �� *JUL,
*MDY, *DMY � *YMD� 1940 - 2039 � � �� ��� � ����. � �
�� � � 1 - 12��. � ��� � � 1 - x� ��� x� �� �� ��
28, 29, 30 �� 31��.
�� �� ��� ��� �� �� 4 ��� �����. (Scaliger ���
�) ��� �� �����.
SQLDA� ��� �� DATE � ��� ��� ��� �� 6, 8 �� 10 �
���. �� �� �� ��� ��� ��� ����.
�
��� 24 �� ��� ��� �� ��� ���� � ��( �, �, �)�� �
���. �� ��� � � 0 - 24�� �� � ��� � � 0 - 59��. ��
24�� �� � ��� � 0��.
��� �� ��� 3 ��� �����. � ��� 2 � � �� ���� �
� ��. � �� ��� �, �� ��� � ��� ��� �� ����
�.
SQLDA� ��� �� TIME � ��� �� �� ��� ��� ��� ��� 8
����.
��
����� ������ �� ��� � ��� ��� ��� ��� ��
�� ��� ��� 7 ����� �(� , �, �, �, �, �)��.
����� �� ��� 10 �� �����. � 4 ��� �, �� 3 ��
� ��, ��� 3 ��� ������ �����(��� 3 ���� 6 ����
� �� ��).
SQLDA� ��� �� TIMESTAMP � ��� �� �� ��� ��� ���
��� 26 ����.
��� �� ��
�� ��� ��� ��� �� �, ��, ���� �� � � �� ��.
� �, �, ��, ���� ��� ��� ILE COBOL � ILE RPG�� ���
� ����.
16. ���� �� ��� ������ �!� �� ����. 1582-10-04� 1582-10-15 ��� �� ������ ���� �� �� �
� ��.
� ��
� 2 � � �� 69
|
|
|
|
Datetime �� ��� ��
�� �� DATE, TIME �� TIMESTAMP� �� SQL� ����� ��� �
� ���� �� ��. � � �, �� � �� ��� ��� UCS-2 � �
���� ��� � ����. �� ��� �� �� DATE, TIME ��
TIMESTAMP� ��� ���� SQL� ���� � ��� ����. ILE RPG�
ILE COBOL�� datetime ��� �����. ��� �� character-string �
�� datetime �� ��� � ����. �� ���� ��� ��� �� �
�� ��� � �� � ��� �� ��� �� ����. ��� � � �� �
�� � ��(DATFMT), � ���(DATSEP), �� ��(TIMFMT), �� ��
�(TIMSEP) ��� ��� ����.
datetime �� �� ��� ��� �� datetime � ��� ��� � ��� ��
� �� ��� ��� �, �� �� ����� �� ���� �� ��. ��
�� CCSID� �� ��� ��� ��� (�: ASCII), ���� datetime �
� �� ���� ��� �� � ��� CCSID� �� ��� ��� �� �
�� �� ��.
�� ��� datetime �� �� ��� ��� �� �����.
�� ���: � ��� ��� �� ��� ��� ��� 6�� �� ���
��. �� ��� � � ����. IBM SQL �� ��� ��� ��
��� � � � ���� ��� � ����. � IBM SQL �� ��� ����
��� (CHAR �� ��� �) ��� ��� ��. �� ����
CHAT �� ��� ��� �� �� ����. �� �� ��� ����
DATSEP(� ���) ��� �� �� ��. �� �� �� ��� ��
� � 4� � ��.
�� � � � � ������ ���� ���� �� �����.
v ��� � ���� ��� ��
v IBM SQL �� � �� � �
v ���� �� ���� ��
� 4. � ��� ��� �� ��
��� �� �� �� �
�� �� ��(*ISO) ISO yyyy-mm-dd 1987-10-12
IBM USA ��(*USA) USA mm/dd/yyyy 10/12/1987
IBM � ��(*EUR) EUR dd.mm.yyyy 12.10.1987
�� �� ��
Christian Era(*JIS)
JIS yyyy-mm-dd 1987-10-12
���� �� ��
��
- yyyyddd 1987285
����(*JUL) - yy/ddd 87/285
� ��
70 iSeries� DB2 UDB SQL ��� V5R2
|
� 4. � ��� ��� �� �� (�)
��� �� �� �� �
�, �, �(*MDY) - mm/dd/yy 10/12/87
�, �, �(*DMY) - dd/mm/yy 12/10/87
�, �, �(*YMD) - yy/mm/dd 87/12/10
��� � ��� ��� �� ������ ��� � ����.
� 5. ��� � �� �����
SQL ����� ��
� SQL DATFMT � DATSEP ��� CRTSQLxxx (SQL �
��� ��) �� ������. SET OPTION�� �
SQL� �� �� ���� ��� �� DATFMT �
DATSEP ��� ��� � ��� � ����.
(CRTSQLxxx �� �� ��� ��� ��� �� SQL
��� �� �����).
��� SQL � SQL� �� Start SQL (STRSQL) �� DATFMT � DATSEP
�� �� �� �� ��. Run SQL (STRSQL)
�� DATFMT � DATSEP ��.
(STRSQL � RUNSQLSTM �� �� ��� ��� SQL
��� � �� �����.)
��� �� �� ����� SQL_ATTR_DATE_FMT � SQL_ATTR_DATE_SEP �
�� �� ��
(CLI� �� ��� ��� SQL �� �� �����
(ODBC) �� �����.)
Developer Kit for Java� ��� ��
� JDBC �� SQLJ
� �� � � ��� �� �� ��
(JDBC� SQLJ� �� ��� ��� iSeries Information
Center� IBM Developer Kit for Java �� �����).
iSeries Access ODBC ����� ��
� ����� ODBC
ODBC ��� � �� ��� � �� � � ���
(ODBC� �� ��� ��� iSeries Information Center�
iSeries ��� �� �����.)
IBM Toolbox for Java� ��� �
���� JDBC
JDBC ��� ��
(ODBC� �� ��� ��� iSeries Information Center�
iSeries ��� �� �����.)
(IBM Toolbox for Java� �� ��� ��� iSeries
Information Center� IBM Toolbox for Java �� ��
���).
� ���: �� ��� ��� �� ��� ��� ��� 4�� �� ���
��. �� ��� � � �� ��� � ���� �� ��� ��� � ��
� ��� ��� � ����. �� ���� ��� 0�� �� ��� ��
��. ��� 13.30� 13.30.00� ����.
��� �� �� ��� ��� 72 ���� � 6� � ��. � IBM SQL �
� ��� ���� ��� (CHAR �� ��� �) ��� ��� �
� ��
� 2 � � �� 71
|
||
||
||||||
|
|||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|
�. �� ��(*HMS)�� CHAT �� ��� ��� �� �� ����. *HMS
��� ���� �� ���(TIMSEP) ��� �� �� ��.
�� � � � � ������ ���� ���� ���� �����.
v ��� �� ���� ��� ��
v IBM SQL �� �� �� � �
TIMFMT � TIMSEP ��� CRTSQLxxx, RUNSQLSTM � STRSQL �
� �� ��. SET OPTION ��� ��� � SQL� �� �� �����
�� �� TIMFMT � TIMSEP� ��� � ����.
� 6. �� ��� ��� �� ��
��� �� � �� �
�� �� ��(*ISO) ISO hh.mm.ss17 13.30.05
IBM USA ��(*USA) USA hh:mm AM �� PM 1:30 PM
IBM � ��(*EUR) EUR hh.mm.ss 13.30.05
�� �� ��
Christian Era(*JIS)
JIS hh:mm:ss 13:30:05
�, �, �(*HMS) - hh:mm:ss 13:30:05
USA �� ���� �� 12 �� �� ��� � 00:00 AM� �� ���
� ��� 0� � � ����. 24 �� ��� ��� USA ��� 24 �
� �� ���� ��� � ��� ����.
� 7. USA �� ��
USA �� 24 �� ��
12:01 AM - 11: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
USA ���� � ��� � ��� AM �� PM ��� �� ��� ����.
17. ISO ��� �� ����. JIS� ��� �� ISO ��� �� � ����.
� ��
72 iSeries� DB2 UDB SQL ��� V5R2
|
��� �� ��� ��� �� ������ ��� � ����.
� 8. ��� �� �� �����
SQL ����� ��
� SQL TIMFMT � TIMSEP ��� CRTSQLxxx(SQL ��
�� ��) �� ������. SET OPTION�� �
SQL� �� �� ���� ��� TIMFMT � TIMSEP
��� ��� � ��� � ����.
(CRTSQLxxx �� �� ��� ��� ��� �� SQL
��� �� �����).
��� SQL � SQL� �� Start SQL(STRSQL) �� TIMFMT � TIMSEP �
� �� �� �� ��. Run SQL (RUNSQLSTM)
�� TIMFMT � TIMSEP ��.
(STRSQL � RUNSQLSTM �� �� ��� ��� SQL
��� � �� �����.)
��� �� �� ����� SQL_ATTR_TIME_FMT � SQL_ATTR_TIME_SEP �
�� �� ��
(CLI� �� ��� ��� SQL �� �� �����
(ODBC) �� �����.)
Developer Kit for Java� ��� ��
� JDBC �� SQLJ
�� �� � �� ��� �� �� �� ���
(JDBC� SQLJ� �� ��� ��� iSeries Information
Center� IBM Developer Kit for Java �� �����).
iSeries Access ODBC ����� ��
� ����� ODBC
ODBC ��� � �� ��� �� �� � �� ���
(ODBC� �� ��� ��� iSeries Information Center�
iSeries Access �� �����.)
IBM Toolbox for Java� ��� �
���� JDBC
JDBC ��� ��
(ODBC� �� ��� ��� iSeries Information Center�
iSeries Access �� �����.)
(IBM Toolbox for Java� �� ��� ��� iSeries
Information Center� IBM Toolbox for Java �� ��
���).
�� ���: ���� ��� ��� �� ��� ��� ��� 16�� �
� �����. ����� ��� ��� ��� yyyy-mm-dd-hh.mm.ss.nnnnnn �
� yyyymmddhhmmss ����. �� ��� � � ����. ���� � �
��� ��� ��� �� ��� ����� �, � � � ���� ��� �
����. ������� �� ��� �� ��� ��� � ����. ���
� � ��� �� ���� ��� 0� �� ��� �� ��. ���
1990-3-2-8.30.00.10� 1990-03-02-08.30.00.100000� ����.
�� ��� 24.00.00.000000� ����� �� ��.
� ��
� 2 � � �� 73
|
||
||
||||||
|
|||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|
DataLink �
DataLink �� �������� �� ������� ��� ��� � ��� �
� �� ���� ���. � ���� �� �� ��� ����.
� ��
�� ��� �� �� URL(Uniform Resource Locator)��.
�� URL� HTTP �� FILE� �� ���. �� ���� � ���
���� ���� ������� �� ��.
�� ���
� ��� �� �. �� ���� � ��� ���� ���� ���
���� �� ��.
�� �
�� �� � ��. �� ����� ���� ������� ��� �
���� ��� ����.
��� �� ��
��� ��� ��� � � �� � ��. ���� �� ��
����� ��� Datalink �� ���� ��� ����.
�� �� 254 ��� � ��. ��� ��� � �� �� ID� �� ��
���� �� ��� � ���.
DataLink �� ��� ��� URL� ��� ��� �� ��. �� ���� �
��(A - Z)� ���(a - z), �(0 - 9), �� ��($, -, _, @, ., &, +, !, *, ″,
’, (, ), =, ;, /, #, ?, :, ��, �)� ��� �� ��.
� 4 �� �� �� �� ���� ���. DataLink �� � ��
� � ��� �� �� � � ����. �� �� � ���� �� �
� �� � ��� ����.
�� �� DataLink ��� 118 ���� �LOB � �� ��� �� �����
��� LOB � �� �� ��� ��� �� �����. � � ��� �
� ��� �� ����. � � ��� �� ��� ����.
v DataLink� ������� �� ��� ��� �� �� � �����
�� ��� � �� �� ���� �� � ����.
v � �� ��� ����� ��� ��� ���� ��� �� ��� ��
� ����.
DataLink �(DLVALUE)� ��� DataLink �(DLCOMMENT, DLLINKTYPE,
DLURLCOMPLETE, DLURLPATH, DLURLPATHONLY, DLURLSCHEME,
DLURLSERVER)�� ���� �� ��� � �� ��� �� �� ��.
� ��
74 iSeries� DB2 UDB SQL ��� V5R2
ID �
� ID� �� �� �� ��� ���. �� ��� ��� � ID ��
�� ����. ROWID � ��� �� ��� � ��� ��� ��� �
����. ROWID � �� ��� ���. ������ ���� �� ���
��� �� ����� �����. �� �� �� � ������ ����
ROWID � �� �� �� �����. �� ��� , � �� OS/390
� z/OS� DB2 UDB �� iSeries� DB2 UDB�� ��� ��� � � ID �
��� ���.
���� � ID �� �� ��� � � ����. �� CCSID ��� ��� �
��, BIT ��� � ��� �� ����. ROWID �� �� ��
40��.
��� �� �
� � �
�� �� ��� �� �(″�� �″)� ���� ��� �� ��� �
�� �� ���� ��� �� ��� �� ��� �� �� ���. �
� ��, �� �� ��� ��� �� � BLOB� ��� �� �, ���
� � ��� �� ��� �� ����. SQL� CREATE DISTINCT TYPE
�� �� �� �� ��.
�� ��, �� ��� AUDIO�� �� �� �����.
CREATE DISTINCT TYPE AUDIO AS BLOB (1M)
AUDIO� ��� �� � BLOB� �� ����� BLOB� �� �� �
� � �� ��� ��� � ��. AUDIO� �� �� �� �� � ��
�� AUDIO� ��� �� ��� �� �� �� �� �� ��� � �
���.
�� �� ��� ������ �� ��. ��� �� ��� �� �� ��
��� �� �� ���� ��� �� �����. ��� �� �� �
��� ��� :
v CREATE DISTINCT TYPE�� DROP, COMMENT, GRANT �� REVOKE
�� ����� ������ ���� ���� ID� �� ���� �� ��
��� ��� ����� �����. ��� ��� �� ��� ��� 55 �
��� ���� �� �, �����, �� � �� � ���� ����
�.
v �� ���� ������ ���� SQL �� ��� ����� �����.
������ ���� ��� ���� ���� ��� ��� �� ��
� ��
� 2 � � �� 75
|
|
|
|
|
|
|
|
|
|
|
�� � �� ���� �����. SQL �� �� ��� 105 ����
�CURRENT PATH, CURRENT_PATH �� CURRENT FUNCTION PATH�
� �����.
�� �� ��� ���� � �� �� �� �� ���� ���� ��
��� ����(�� ��, AUDIO �� LENGTH �� ���� ���
�� �� � � �� ����). �, �� �� �� �� �����. �
� �� ��� �� �� �� ����� ��� �� ���� � �
� �� ��� � ����. � �, �� �� � �� ���� ��� �
�� �� �� ��� �� �� ��� � ����. ��� �� �� �
� �� ��� �� �� �� �� ���.
�� ��� �� �� �� ����� �� ��. �� ��, �� ��
ROWID � �� � ����. ���, ROWID � �� �� � ID�� ���
(sourced)� � �� �� � �� � ����.
Datalink� ��� �� �� ��� �� �� �� � ���� ���
� �� ��. �� ������ ���� �� ��� �� ���, ��
��� �� ��� ���� ��� �� �� �� �� ���� ���
��. �� ��, �� ��� AUDIO �� ��� �� ��� �� ��
��.
FUNCTION schema-name.BLOB (schema-name.AUDIO) RETURNS BLOB (1M)
FUNCTION schema-name.AUDIO (BLOB (1M)) RETURNS AUDIO
�� ��� ��
�� �� ��� �� �� ���� ��� � ����. �� �� ��� �
�� �� �� �� � � � ��� �� �� ��� ����. �� �
� ��� ������ ���� �� ���� ��� ��� �� �� ���
� �� �� ��� ��� � ����. �� ��, ������ ����
VARCHAR� �� �� � CHAR�, DOUBLE PRECISION� �� �� �
INTEGER� ��� � ��� VARCHAR� �� CLOB� ��� � ����.
������ ���� �� � ��� ��� �����.
v � �� ��(123 ���� � � ��� ��)
v �� � ���(77 ���� ��� � ��� ���� ��)
v �� �� �� �� � ��(88 ���� ��� � ��� ��)
� �� �� ��, 77 ���� � 9��� ������ ���� � �� ��
��� � �� �� �� ��� � ��� (��) �� ���� �����.
��� ��� ��� �� �� �� �� �� ��� ��� �� ��� �
� ��
76 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
� ����. �� ��� �� �� �� ���� �� ��� ��� ���
����. �� ��, CHARACTER� GRAPHIC� ��� �� ��� �
��.
� 9. �� �� �� ��
� �� * (��-��� ��) � �� �� � ���
CHAR �� GRAPHIC CHAR �� GRAPHIC, VARCHAR �� VARGRAPHIC, CLOB �� DBCLOB
VARCHAR �� VARGRAPHIC VARCHAR �� VARGRAPHIC, CLOB �� DBCLOB
CLOB �� DBCLOB CLOB �� DBCLOB
BLOB BLOB
SMALLINT
SMALLINT, INTEGER, BIGINT, DECIMAL �� NUMERIC, REAL,
DOUBLE
INTEGER INTEGER, BIGINT, DECIMAL �� NUMERIC, REAL, DOUBLE
BIGINT BIGINT, DECIMAL �� NUMERIC, REAL, DOUBLE
DECIMAL �� NUMERIC DECIMAL �� NUMERIC, REAL, DOUBLE
REAL REAL, DOUBLE
DOUBLE DOUBLE
DATE DATE
TIME TIME
TIMESTAMP TIMESTAMP
DATALINK DATALINK
ROWID ROWID
�� � ��� �� �
�:
* �� �� �� �� �� ���� �� ���� �� ��� � ��.
�� �� ��� ���
�� �� �� �� �� �� ��� ��, ��� �� ���� �� ���
�� ��� ���(�)�� � � ����. 76 ���� ��� �� ���
�� ��� �� �� � ��� �� �� �� �� �� ��� �� �
�� ����� � � ���. �� �� ��� �� � �� ��
�� �� �� ��� �� �� ��� ���� � ����.
� �� ��� �� �� ��� ���� ����� �� ����� �� �
����. ��� �� CAST ��� ��� �� �� ����� ���� �
����. ������ ���� �� �� � ��� � � ����� ��
�� ���� � ����(88 ���� ��� � ��� ��). �� �� ��
� �� �� ��� � �� �� �� �� �� ���� �� ��
��� ���� � ��� ���(443 ���� �CREATE FUNCTION� ��).
� ��� ��
� 2 � � �� 77
||
��� � ���� �� �� �� �� ���� � ��� ��� �
��� ��� �� ����. ��� � ��� ��� ��� �� �
�� ��� ��� �� ��� ����� ��� �� ����.
�� ���� �� ��� �� �� �� � ���� ��� �
��� � 10�� �����. �� �� � �� ���� ��� ���� 79
���� � 11�� �����.
� 10. �� �� �� � � ��� ���
� �� ... � ���� ���� � �...
�� � DT �� � DT� �� �� �
�� � DT� �� �� � �� � DT
�� � DT �� � DT
�� � A
A� �� � DT� �� �� ��� ��� � �� �� � DT(76 ��
�� ��� �� ��� ��)
INTEGER DT �� �� SMALLINT� �� � DT
DOUBLE DT� �� �� REAL� �� � DT
VARCHAR �� VARGRAPHIC DT �� �� CHAR �� GRAPHIC� �� � DT
������ ����� ��� �� �� �� ���� � ���
��� ���� SQL �� ��� ����� �����. ������ ����
���� �� �� � SQL �� � �� ����� �����. SQL
�� �� ��� ��� 56 ���� ���� � SQL ��� �����.
�� �� �� � ��� ��� ���� �� �����.
� �� ��� ���
78 iSeries� DB2 UDB SQL ��� V5R2
� 11. �� �� � ���� ��� ���
�� � ��
SMALLINT
INTEGER
BIGINT
DECIMAL
NUMERIC
REAL
DOUBLE
CHAR
VARCHAR
CLOB
GRAPHIC
VARGRAPHIC
DBCLOB DATE TIME
TIME
STAMP BLOB
ROW
ID
SMALLINT Y Y Y Y -- -- -- -- -- --
INTEGER Y Y Y Y -- -- -- -- -- --
BIGINT Y Y Y Y -- -- -- -- -- --
DECIMAL Y Y Y Y -- -- -- -- -- --
NUMERIC Y Y Y Y -- -- -- -- -- --
REAL Y Y Y Y -- -- -- -- -- --
DOUBLE Y Y Y Y -- -- -- -- -- --
CHAR Y Y Y Y * Y Y Y Y Y
VARCHAR Y Y Y Y * Y Y Y Y Y
CLOB Y Y Y Y * -- -- -- Y --
GRAPHIC -- -- -- Y* Y -- -- -- Y --
VARGRAPHIC -- -- -- Y* Y -- -- -- Y --
DBCLOB -- -- -- Y* Y -- -- -- Y --
DATE -- -- -- Y** -- Y -- Y -- --
TIME -- -- -- Y** -- -- Y Y -- --
TIMESTAMP -- -- -- Y** -- Y Y Y -- --
BLOB -- -- -- -- -- -- -- -- Y --
ROWID -- -- -- Y -- -- -- -- Y Y
�: * ��� UCS-2 �� �� �� ��.
** DATE, TIME, TIMESTAMP �� ROWID�� CLOB�� ���� ��� ����.
DATALINK� DATALINK ��� ���� � ����.
�� ���� �� �� �� ��� ��� �����.
� �� ��� ���
� 2 � � �� 79
||
|||||||||||
|
� 12. �� �� �� ��� ��
�� � �� �� � �� ��
SMALLINT �� SMALLINT ��� �� �����.
INTEGER �� INTEGER ��� �� �����.
BIGINT �� BIGINT ��� �� �����.
DECIMAL �� DECIMAL ��� �� �����.
NUMERIC �� ZONED ��� �� �����.
REAL �� REAL ��� �� �����.
DOUBLE �� DOUBLE ��� �� �����.
CHAR �� CHAR ��� �� �����.
VARCHAR �� VARCHAR ��� �� �����.
CLOB �� CLOB ��� �� �����.
GRAPHIC �� ��� ��� �� ��� �� ��� �����.
VARGRAPHIC �� ��� ��� �� ��� �� ��� �����.
DBCLOB �� DBCLOB ��� �� �����.
DATE �� DATE ��� �� �����.
TIME �� TIME ��� �� �����.
TIMESTAMP CHAR
TIMESTAMP ��� �� �����, ��� ����� �
�� ��.
TIMESTAMP DATE ����� ��� �� �� 00:00:00�� �� ��.
TIMESTAMP TIME ����� CURRENT_DATE� ��� ���� �� ��.
BLOB �� BLOB ��� �� �����.
DATALINK DATALINK DataLink �� ��� �����.
ROWID �� ROWID ��� �� �����.
�� �
SQL� �� ��� ��� ���. �� ��� CALL, INSERT, UPDATE,
FETCH, SELECT, SET �� � VALUES INTO� ��� �� ��. � ��
� �� MAX, MIN, DISTINCT, GROUP BY � ORDER BY� �� ��
� ��� � �� ��� �� ��.
��� �� ��� � ����� �� �� ��� ���� ���. �
�� ��� UNION, ��, CASE ��� � CONCAT, VALUE, COALESCE,
IFNULL, MIN � MAX ��� ��� �� ��. ��� ��� ��� ���
�.
� �� ��� ���
80 iSeries� DB2 UDB SQL ��� V5R2
|||
� 13. �� � ���
��� 2� �� ���4
�� ��
�
�� ��
�
��� �
��
2� ��
� �� � ���
��� �
�
2� �� � � � ��� ��� ��� ��� ��� ��� 2
��� � � � ��� ��� ��� ��� ��� ��� 2
�� ��
�
� � � ��� ��� ��� ��� ��� ��� 2
�� ��
�
��� ��� ��� � � 5 ��� 3 1 1 1 2
� �
��
��� ��� ��� � 5 � ��� ��� ��� ��� 2
2� ��
�
��� ��� ��� ��� 3 ��� � ��� ��� ��� 2
� ��� ��� ��� 1 ��� ��� � ��� ��� 2
�� ��� ��� ��� 1 ��� ��� ��� � ��� 2
���� ��� ��� ��� 1 ��� ��� ��� ��� � 2
��
�
2 2 2 2 2 2 2 2 2 2
�:
1. ���� �� �� ���� ��� ��� ��, � � VALUE, COALESCE, IFNULL, MIN � MAX ��� �� �
� ��.
v Datetime �� 86 ���� �Datetime ����� ��� �� �� ��� � �� ��� ��� ��� � ����.
v ��� �� ��� ��� � � ��, �� � �� �� � VALUE, COALESCE, IFNULL, MIN ��
MAX ��� �� ��� � ����.
v ��� �� ��� ��� �� � ��, ��� � �� ��� � VALUE, COALESCE, IFNULL, MIN ��
MAX ��� �� ��� � ����.
v ����� �� ��� ��� ���� � ��, ����� � �� ����� � VALUE, COALESCE, IFNULL,
MIN �� MAX ��� �� ��� � ����.
2. �� �� �� �� ��� �� ��� ��� �� �� � ����. �����, ������ ���� ��
� �� �� �� � ���� ��� � ����. ��� ��� 88 ���� ��� � ���� �����.
3. � � FOR BIT DATA �� ��� �� �� ���� 2� ���� ��� � ����.
4. ��� �� � ��� ����.
5. � ��� � ���� ��� � ����.
6. DATALINK ������ �� DATALINK ����� ��� � ����. DATALINK �� � NO LINK CONTROL
� ��� �� ��� � ��� �� �� ��� � ����. DATALINK ����� �� �� � �
� � ����. DLCOMMENT, DLLINKTYPE, DLURLCOMPLETE, DLURLPATH, DLURLPATHONLY, DLURLSCHEME
� DLURLSERVER ��� �� ��� �� ���� �� � �� �� ����� �� ��� �� ��� � ��
��.
7. ROWID ������ �� ROWID ����� ��� � ����.
�� ��� �� ��� �!� ��� � � �� � ��� ����� �
�� �� ��� ��� ��� ��� � ����. ����� ��� �� ��
� 114 ���� ���� ��� �� ���� �����.
��� �
� 2 � � �� 81
|
�� ��
� �� �� ��� �!� �� �� ��� ��� ��� � ����. ���
���� �� ��� �� ��. ��� ��� ��� � ��
SQLCODE� �� � ����.
�� ��� ����.
v � ��� � � ��� ���
v ����� ��� �� ��� ��� ��� � � ��� ���
�� � �� ����.
����� ��� �� ��� ��� ��� � � ��� ��� . ��
�� ��� ��� ��� �� ����� ��� -2� �� ��.
�: ��� �� � ��� ����.
�: SQL CREATE TABLE��� ��� �� ��� �� ��� ���
�� ��� �� �� ��� � � ����. �� �� �� ��
�� �� �� ��� ��� �� � ��. SQL CREATE TABLE��
� ��� ��� �� �� �� ��� ��� ����.
� �� ���� �� ��
�� ��� �� ��� �����. �� �� �� �� ��� �� ���
�� ��� ��� ��� � �� ��� �� � ����.
� �� ��� ����(32�)� � ����(64�)� ��� ���� �
�����.
�� ���� ��� ��
�� �� �� ��� �� 2� �� �� ��� ��� � ��� ��
��� ���� ���� �� ��. ��� ���� 0�� �� �� ��� �
����. ��� �� �� ��� ��� �� �� �� ���� ���
�� �� ��� ��� ��� �� �� ��� � ��.
��� �
��� �� �� ��� ��� ��� �� ��� ���� ����
�� ��. ��� �� �� ��� ��� �� �� �� ���� ��
� �� �� ��� ��� ��� �� �� ��� � ��.
��� �
82 iSeries� DB2 UDB SQL ��� V5R2
���� �
��� �� �� ��� ��� �� �� �� ��� ��� �� ��
� ��� ���� ���� �� ��. ��� ���� 0�� �� ��� ��
�� �� ��� �� 5,0�� � ��� �� 11,0� � ��(big integer)
� �� 19,0��.
�� ���� �
�� ��� �� �� �� ��� ��� �� �� ��� 31� ��
��� ��� �� ��� ��� ���� ���� �� ��. � ���� �
� (�� ��� � � ���) 31 �� ���� ���� ��� ��. ���
0.5*10─31�� �� �� 0� ��. ���� ��� �� � �� ��� ��
�� �� � ��� ��� � ��� ���.
COBOL� RPG ���
COBOL � RPG �� �� �� � �� ��� ��� ��� � ��� ��� �
�� �� ���� �����. � � �� ��� ��� ��� �� ��� ��
��� �����. ��� COBOL �� ���� RPG ��� �� ��� ���
��� �� ��� �� � � ����.
�� ��, COBOL�� COL1� � 12345� �� ��� ��� ��� ���
�.
01 A PIC S9999 BINARY.EXEC SQL SELECT COL1
INTO :AFROM TABLEX
END-EXEC.
A� 4 ���� ������ � 12345� A� �����.
�� COBOL ��� � ���.
MOVE 12345 TO A.
A� 2345� �����.
��� ��
2� ��� ��
2� ��� ���� ��� �� �� ����.
v ���� ��� �� �� � �� �� ������ ��� ��� �
��.
v �� ��� �� ��� ��� ��� ���.
���� ��: �� ��� �� � �� ������ ��� ��� �
��� ��� �� �� ��� �� ��� �� ��� ��� ���.
��� �
� 2 � � �� 83
���� �� � �� ��� � � �� SQLCODE� � ��. SQLCA
� ��� 871 ���� �� B �SQL � ���� �����.
� ��: ��� ��� ��� ���� ��� ��� ��� �� ��� �
� ����. ��� ���� ��� ���� ��� �� � �� �� ���
� ���� ��� �� �� �� ��. �� �� SQLCA� SQLWARN1 �
�� � 'W'� �� ��.
��� n� ���� �� ��� n�� � �� �� ��� ��� ��� �
��� n�� �� ��� ��� ���� ��� ����.
�� � � ��� ��
��� �� �� ����� � ��� �� ��. datetime �� ��
� 86 ���� �Datetime ���� �����.
�� � � ��� ���� ��� �� �� ����.
v ���� ��� �� �� � �� �� ������ ��� ��� �
��.
v �� ��� �� ��� ��� ��� ���.
���� ��: �� ��� �� � �� ������ ��� ��� �
��� ��� �� �� ��� �� ��� �� ��� ��� ���.
���� �� � �� ��� � � �� SQLCODE� � ��(�� �
�� � ���� ��� ��. � � ���� ��� �� ��� �
�� ��� � ����).
SQLCA� ��� 871 ���� �� B �SQL � ���� �����.
���� �� �� ��� �� ��� ��� ��� ��� ��� ��
��� �� ���� ��� �� 1 ��, 2 �� �� UCS-2 ���� �
���.18 � ��� �� �� ��� �� ����.
� ��: ��� ��� ��� ���� ��� ��� ��� �� ��� �
� ����. ��� ���� ��� ���� ��� �� � �� �� ���
� ���� ��� �� �� �� ��. �� �� SQLCA� SQLWARN1 �
�� � 'W'� �� ��. �� ����� ��� ��� ���� � ��� �
� ��. C NULL �� ��� ��� �� �(null) ���� ��� CRTSQLCI
�� CRTSQLCPPI �� *NOCNULRQD(�� SET OPTION ���
CNULRQD(*NO))� ��� 'N'� �� SQLCA� SQLWARN1 ��� ���
��� NUL� ��� ����.
18. UCS-2� ��� X‘0020’� X‘3000’�� �� ��� �����. ������ ���� ��� X‘0020’� ���� ����.
��� �
84 iSeries� DB2 UDB SQL ��� V5R2
���� �� �� ��� ��� ��� ��� ��� �� ��� ��
���� 1 ��, 2 �� �� UCS-2 ��� ��� �� ���� � ���.18
� ��� �� �� ��� �� ����.
n ��� ���� �� �� n �� � �� �� ��� ��� ��� ��� n
�� �� �� ��� ��� ����.
�� ���� ��� ��: ���� �� ��� �� ��� �� ��� 2 ��
��� �� ��� ��� ��� � ����. 2 �� ��� ��� SI ���
�� ��� �� ��� ���� ��� ��� SI ��� ��� � ���
�. ��� ��� SO ��� ��� SI �� ��� �� ��� ��� ��
��.
C NUL �� ���� ���� ��: n� ��� ���� n+1 �� � C NUL
�� ��� ��� ��� :
v CRTSQLCI �� CRTSQLCPPI �� *CNULRQD ��(�� SET OPTION
��� CNULRQD(*YES))� ��� ���� ���� x-n-1 ���� �
� , ��� x� ��� ����. � � ���� ��� ��� �(null) �
��� �� �� �� �� ��.
v CRTSQLCI �� CRTSQLCPPI �� *NOCNULRQD ��� ��(��
SET OPTION ��� CNULRQD(*NO))� ��� ���� ���� � �
� ����. ���� ��� ��� �(null) ���� �� �� �� ��
��.
��� � �� ��: ��� �� ��� ��� ��� ���� � �
�� ��� �� ��� �� ��. ��� � �� �� �� ��� ���
��.
v CCSID� ��
v CCSID� � 65535� �
v ���� �� ��� � ��� ��
v CCSID �� �� �� �� ���� ���
�� ��� ����.
v CCSID �� �� �� ���� CCSID �� �� ��� �� �� ��
v ��� ��� ��� � �� ��� � �� ���� ������� ���
��� �� ��� �� ��, DBCS(2 �� ��)� SBCS(1 �� ��)
CCSID� �� �� ��� ��� ��� � ����.
�� � �� ����.
v ��� ��� �� ��� ���
��� �
� 2 � � �� 85
v ��� ��� ��� � �� ��� ����� ���� ��� ��� �� �
�� . �� ��, DBCS ��� SBCS CCSID� �� ��� ��� ���
� ����. � ���� ��� ��� ��� �� ����� ��� -2
� �� ��.
Datetime ��
DATE � ��� �� �� �� �� ��� ���� ���. �� DATE
, �� ��� , �� ��� �� �� ILE RPG/400 ���� ���� ���
� ����. TIME � ��� �� ���� ��� �� ��� ���� ��
�. ��� TIME , �� ��� , �� ��� �� �� ILE RPG/400 ���
� ���� ��� � ����. TIMESTAMP � ��� �� ������ ��
��� �� ��� ���� ���. ����� TIMESTAMP , �� ��� ,
�� ��� �� �� ILE RPG/400 ���� ���� ��� � ����.
datetime �� �� ��� �� �� � ��� ��� ��� �� ��. �,
�� �� ���� ���� �� ��� ��� ����. ��� ��� ��� �
�� ��� ��� �� �����. ��� ��� ��� � �� �� ���� �
��� � ���. �� ��� ��� � �� ��� ��� � datetime ��
�� �� �� �� �����.
v ��� �� ��� �� ��� ��� ����. �� ��� �� ��.
DATE
� ��� *ISO, USA, *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�� ��� �
�� ��� ��� 8��� ���.
TIME
��� �
86 iSeries� DB2 UDB SQL ��� V5R2
– *USA ��� ��� ��� ��� ��� 8 ����� ���. � ���
� �� � ����.
– *ISO, *EUR, *JIS �� *HMS �� ��� ��� ��� ��� ��� 5
����� ���. ��� 5, 6 �� 7�� ��� � ��� ���� ��
� SQLWARN1� 'W'� �� ��. � ��� � ��� ��� ��
��� ��� ���, ��� 6 �� 7�� �� �� �� ��� ���
�� ���� � ���.
TIMESTAMP
��� ��� ��� 19����� ���. ��� 19� 25 ���� �� �
�� ����� ��� � ��� �� ����, ���� �� ��.
��� 20�� �� ����� �� ��� ��� �� �� ���� �
��� �� ��.
DataLink ��
DataLink � �� ��� �� �� �� � �� � NO LINK
CONTROL� ��� �� � �� �� ��� �� ��. ��� �� � �
� ��� � �� ��� ����. ��� �� �� ��� �� ���
���� �� �� ��� �� ��� ����.
������� � �� ��� �� �� �� �� ��� ��� � �
�. � �� ��� ����.
v �� �� ��
v �� �� �� � ��� ��� �� ��� � ��� ��� �� �� �
�� �� ��� ��� � ��
DLVALUE ��� �� ��� DataLink �� � ��� � ����.
DLVALUE ��� �� � ��� � �� ��� DataLink �� �����.
�� �� � �� URL� ��� �� �� � ��� �� ��
��.
DataLink � �� ��� �� �� ��� �� � ����.
v URL(�� �) ��� �� ��
v � ������� � ��� ��� �� ��
v �� �� �� �� ���
v � �� URL� ��� �� ��
URL ��� � ��� ��� /�� �� �� �� DataLink � �
�� ���� ����. � � �� �� �� URL �� ���
��� ����. �� �� �� ��� ��� DataLink � ��� ���
��� �
� 2 � � �� 87
���� ��� ��� ���. ��� �� ��� �� �� ��� ��
URL� �� ��� �� ���� ��� ��� � ��� ���� ���. �
� ��� ��� ��� ����.
��� � ��� ���� �� ��� ����.
v �� � ��� ��� � ��
v �� ��
v ��� �� ��� � ���� � ��
v �� �� �� � ��� ��
�� ��� ������� ���� �� ��� � � ����.
�� ��� � �� ��� �� �� ��� ����.
v �� � ��� ��� � ��
v �� ��� ��� �� �� DB2 DataLink � ���� �� � � ��
� �� ��
DataLink ��(DLLINKTYPE � DLURLPATH� ��) ��� �� ��� �
������� ��� � ����. �� �� ��� �� ��� ��� ��� �
�� � ����.
�� ���� � ��� ���� ��� ��� ����.19 ��� � �
�� ��� � ��� ����� � ��� ��� � ����.
�� �� �� ��� ���� DataLink �� ��� � �� �� � ���
�.
ID ��
� ID �� � ID �� �� �� , �� �� ��� ���� ��� � �
���. ROWID � �� ��, � GENERATED BY DEFAULT� ���
OVERRIDING SYSTEM VALUE� ���� ���. �� ROWID �� ��
� ��� � �� column ROWID � �� �� �� � ����� ����
� �� ��. � �� ��� �� OS/390 � z/OS� DB2 UDB �� iSeries�
DB2 UDB�� ��� ��� � � ID ���� ���.
� � � ��
�� �� ��� ��� ��� � ��� ��� �� �� � �
� �� �� ��� ����.
19. �� ��� ���� ���� � ��� ����� ���. ��� � ���� ��� �� ��� � � ���� �� � �
���. ���� � �� ���� � ���� ��� �� ��� � � ��� �� DataLink �� � ��� � �����
� ���� � ��. � ��� ���� � ��� ��� � ��.
��� �
88 iSeries� DB2 UDB SQL ��� V5R2
��� ��� ��
�� �� ��� ��� ��� �� �� �� �� �� �� ��� �
��. ��� �� �� �� �� �� ��� ��� ��� � �� ��
�� �� �� ��� ��� ��� � ����.
�: �� � AGE� �� SQL��� ��� � STUDENTS�
STU_AGE� �� ��� ����� �����. CL_SCHED �� ���
�� ��� ���(STARTING) �� ��(CLASS_CODE)� �����. ��
��� DAY � � 3� ����.
CREATE DISTINCT TYPE AGE AS SMALLINT WITH COMPARISONS
��, INTEGER �� �� ��� �� HV_AGE� �� ��� ��� ���
�� �����.
SELECT STU_AGE INTO :HV_AGE FROM STUDENTS WHERE STU_NUMBER = 200
�� �(SMALLINT)� �� �� �� ��� ��(INTEGER)� ��� � �
��� �� �� �� ��� ��� HV_AGE� ��� � ����. ��
� AGE� CHAR(5)� �� �� �� �� �� ��� � �� �� �
� ��� ��� � ���� � ��� �� ����.
��� ��� �� �� ��
�� �� ��� ��� ��� � � ����. ��� ��� �� �� ��
��� �� �� ���� � ���� ��� �� �����. 77 ���� ��
� � ��� ����� �� �� � ��� ���� ����
�. ��� �� � �� � �� ��� ��� � �� ��� ��� �
����.
v �� ��� �� �� �� �� ��
v �� �� ��� �� ��� ���� � ��
�� � �� �� ��� ��� � ����.
v ��� �� ��� �� �� �� �� ��
v ��� �� �� �� �� �� �� ���� � ��
�: �� � AGE� �� �� �� SMALLINT�� �����.
CREATE DISTINCT TYPE AGE AS SMALLINT WITH COMPARISONS
�� ��, � � TABLE1� TABLE2� 4 � ��� ���� ����
� �����.
AGECOL AGESMINTCOL SMALLINTINTCOL INTEGERDECCOL DEC(6,2)
��� �
� 2 � � �� 89
�� SQL�� ��� X� Y� �� � �� ��� TABLE2�� TABLE1
� � � �� �� � 14� ��� ���� �����.
INSERT INTO TABLE1 (Y) SELECT X FROM TABLE2
� 14. �� �� ��(INSERT� �� �)
TABLE2.X TABLE1.Y �� ��
AGECOL AGECOL � ��� ��� �� �� ��
SMINTCOL AGECOL � (AGE �� �� SMALLINT���)
SMALLINT� AGE� ���� � ��
INTCOL AGECOL � (AGE �� �� SMALLINT���)
INTEGER� AGE� ���� � ��
DECCOL AGECOL ��� DECIMAL� AGE� ���� � ��
AGECOL SMINTCOL � AGE� �� � SMALLINT� ���
� � ��
AGECOL INTCOL ��� AGE� INTEGER� ���� � ��
AGECOL DECCOL ��� AGE� DECIMAL� ���� � ��
�� �
�� ����� � ��� �� � ��. �� ��, -2� +1 �� ����.
� �� ���� �� � �� ���� ��� ��� ��� �� �����
����.
�� �� ���� 0� � 2��� �� ���� �� �� ��� ��
�� ���� ��� �� ��� ��� � � �� �� ���� ���
����.
� �� �� ����� �� � �� ��, �� �� ���� �� �����
���� �� ����� ��� �� �� �� ����� ����. � �,
���� �� ��� � ��� �� ��� ���� �� ��� �� ��
� � ��� ���� ��� ��� � ��.
���� ��� � ��� ��� �� � �� ��� �� ����.
��� �
2� ��� �
2� ��� �� �� *HEX� �� ��� ��� � ���� �� ���
� ��. �� � 2� ���� ���� ��� ��� �� ����.
��� � ��� �
�� SBCS ��� �� ��� 1 �� ��� �� ��� ��� ���
UCS-2 � ��� �� �� �� ��� �����. �� ��� *HEX��
��� �
90 iSeries� DB2 UDB SQL ��� V5R2
� ���� �� ��� � ��. �� �� �� ��� � ��� ���
� �� ��� � ��. ���� ��� �!� �� �� � � ���
� �� ���� ���� ���� � ���. � � � ���� ��� ����
�. �� ��� ���� �� ��� �� ����. � ��� �� ��
��� ����. DBCS � ��� �� ��� DBCS ����(x‘4040’).
UCS-2 � ��� �� ��� UCS-2 ����.20
�� ��� ��� � ���� ����.
v ���� � � ����.
v *HEX �� ��� ��� �� ��� ��� ����.
v *HEX ��� �� ��� ��� ���� ��� �� ��� ����.
� ���� �� ���� ����. �� �� ��� ��� ��� ���� �
� ��� � �� �� �� ��(�� ��� ��) �� �� �� ��.
��� ��� � �� �� ��� �� � ��.
��� �� � �� �� ���� �� ��� �� �� �� ����.
� ���� �� �� ��� ���� �� ��� �� ��. �� ���
� � �� ��� DISTINCT, MAX, MIN, UNION � ��� �� ���
�. �� ��� � �� ��� �� ��� ��� GROUP BY ���
�����.
�� � �� ��: � ���� �� ��� � ��� �
�� �� ���� ��� �� ��� �� ��. ��� � �� �� �
� ��� �����.
v ���� CCSID� ��
v CCSID� � 65535� �
v ��� � ��� ���� �� ��� � ��� ��
v CCSID �� �� �� �� ���� ���
��� ��� �� ���� �� ����� �� ��� ��� �� �
�� ��� ���� �� ��.
� 15. �� ��� � ��� �� ��
� �� ���
� �� ���
SBCS � DBCS � �� � UCS-2 �
SBCS �� � �� �� �� ��
DBCS �� � �� � �� �� ��
�� �� � �� � �� � �� ��
20. UCS-2� ��� X‘0020’� X‘3000’�� �� ��� �����. ������ ���� ��� X‘0020’�� ���� ����.
��� �
� 2 � � �� 91
� 15. �� ��� � ��� �� �� (�)
� �� ���
� �� ���
SBCS � DBCS � �� � UCS-2 �
UCS-2 �� � �� � �� � �� � ��
��� ��� ��� � ��� ���� � ����� �� �� �����. �
� �� ���� �� �� � ��� � ��� ����� �����.
� 16. �� ��� � ���� ��
� �� ��
�
� �� ���
� ��� � �� ��� �� ��� ��
� �� �� �� �� ��
�� � � �� �� �� �� ��
�� ���� � �� � �� �� �� ��
�� � �� � �� � �� �� ��
��� �� � �� � �� � �� � �� ��
�� ��� ��� ��� �� �� ��� ��� ��� ��� �� �� �
��� ��� �� ��. � ��� ��� �� �� ��� �����.
��� ��� ��� � �� CCSID �� �� �� ���� CCSID �� �
� ��� �� �� �� ��� ����. ��� ��� �� ��� ��
� �� ����.
Datetime �
DATE, TIME �� TIMESTAMP �� �� �� �� �� ��� �� ��
�� ��� ��� �� � ����. �� �� ������ ��� 0001� 1�
1��� ��� ��� �� ����.
TIME �� �� �� ��� ��� � ��� �� �� ��. ��
� ��� �� ��� 0�� �� ��. �� 24:00:00� �� 00:00:00�� �
��� � ��.
TIMESTAMP �� � �� ��� �� ��� ���� ����
�. ��� �� ��� ���.
TIMESTAMP(’1990-02-23-00.00.00’) > ’1990-02-22-24.00.00’
� � � �
�� �� �� �� �� �� �� ��� �� � ����.
�� ��, �� � YOUTH� � CAMP_DB2_ROSTER �� �� SQL��
� ����� �����.
��� �
92 iSeries� DB2 UDB SQL ��� V5R2
CREATE DISTINCT 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_ROSTERWHERE AGE > ATTENDEE_NUMBER
� �, ��� �� CAST ��� ��� �� �� �� � ���� �
��� AGE� ATTENDEE_NUMBER� �� � ����. �� �� ��
����.
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
� �� ��� �� ��
��� �� �� ���� ����� ��� ��� �� �� ��. � ���
�� �� ��� �� �����.
� ��� ��� �� ��.
v UNION �� UNION ALL ���� ���
v CASE ���� �����
v ��� � COALESCE, IFNULL, MAX, MIN � VALUE� ��
v IN ��� IN ��� ��� �
��� �� �� ����� �� �� �� �� ��. � ����� �
� ��� �� �� �� �� �� , � �� �� �� ����� ��
��� ��� �� �� �� �� �� �� ���� � � ��. �
��� �
� 2 � � �� 93
�� �� �� �� �� ��� ����� �� ��� ��� �� �� �
� ��. � �� �� �� �� �� �� �� �� �� ��� ��� ��
� ������� �� �� ��.
���� � �� ��� ��� ��� �� ��� ����. ��� ��
��� �� �� ��. ���� � ��� ��� ��� �� ��� ��
� ��� ��� �� �� ��.
�� ��� �� �� ��� ��� �� ��� ����. �� ��, ��� �
���.
v � ���� � CHAR(10)�� �� ���� � CHAR(5)�� ���
CHAR(10)�� CHAR(5)�� �� �� ���� 5 � ���� � ���.
v �� �� ��� ��� � ��� ��� ����.
2� ��� ���
BLOB(2� ���)� �� BLOB(2� ���)�� ��� � ����. ��� ��
�� BLOB��. �� �� BLOB� ���� � �� �� �� BLOB
��� �� ��� BLOB �� ��� �� � ����. �� BLOB� �
�� �� �� � ��� �� ���.
� ��� ... � ���... �� � � ��...
BLOB(x) BLOB(y) BLOB(z) where z = max(x,y)
��� � ��� ���
�� � � ���� �� CCSID �� ��� ��� �� � �� �� � �
���� �� ��.
�� � �� �� ��
94 iSeries� DB2 UDB SQL ��� V5R2
� ��� ... � ���... �� � � ��...
DBCLOB(x) CHAR(y),
VARCHAR(y),
CLOB(y),
GRAPHIC(y),
VARGRAPHIC(y) ��
DBCLOB(y)
DBCLOB(z) ���� z = max(x,y)
CLOB(x) GRAPHIC(y) ��
VARGRAPHIC(y)
DBCLOB(z) ���� z = max(x,y)
VARGRAPHIC(x) VARGRAPHIC(y) ��
GRAPHIC(y) ��
VARCHAR(y) ��
CHAR(y)
VARGRAPHIC(z) ���� z = max(x,y)
VARCHAR(x) GRAPHIC(y) VARGRAPHIC(z) ���� z = max(x,y)
GRAPHIC(x) GRAPHIC(y) ��
CHAR(y)
GRAPHIC(z) ���� z = max(x,y)
CLOB(x) CLOB(y) ��
VARCHAR(y) ��
CHAR(y)
CLOB(z) ���� z = max(x,y)
VARCHAR(x) VARCHAR(y) ��
CHAR(y)
VARCHAR(z) ���� z = max(x,y)
CHAR(x) CHAR(y) CHAR(z) ���� z = max(x,y)
�� CCSID� �� �� �� �� �� �����.
� ��� ... � ���... �� � �� ��� ��� ����.
UCS-2 �� DBCS �� �� ��
SBCS ��
UCS-2 ��
DBCS �� DBCS �� �� ��
SBCS ��
DBCS ��
� �� ��, SBCS �� �
��
� ��
�� �� �� �� SBCS �� �� ��
SBCS �� SBCS �� SBCS ��
�� ���
� �� �� � ��� ��� � ����.
� ��� ... � ���... �� � � ��...
FLOAT(����) � � FLOAT(����)
FLOAT(����) FLOAT(����) FLOAT(����)
FLOAT(����) DECIMAL,
NUMERIC, BIGINT,
INTEGER ��
SMALLINT
FLOAT(����)
�� � �� �� ��
� 2 � � �� 95
� ��� ... � ���... �� � � ��...
DECIMAL(w,x) DECIMAL(y,z) ��
NUMERIC(y,z,)
DECIMAL(p,s) ���� p = min(31,
max(x,z)+max(w-x,y-z)) s = max(x,z)
DECIMAL(w,x) BIGINT DECIMAL(p,x) ���� p = min(31,
x+max(w-x,19))
DECIMAL(w,x) INTEGER DECIMAL(p,x) ���� p = min(31,
x+max(w-x,11))
DECIMAL(w,x) SMALLINT DECIMAL(p,x) ���� p = min(31,
x+max(w-x,5))
NUMERIC(w,x) NUMERIC(y,z) NUMERIC(p,s) ���� p = min(31, max(x,z)
+ max(w-x, y-z)) s = max(x,z)
NUMERIC(w,x) BIGINT NUMERIC(p,x) ���� p = min(31, x +
max(w-x,19))
NUMERIC(w,x) INTEGER NUMERIC(p,x) ���� p = min(31, x +
max(w-x,11))
NUMERIC(w,x) SMALLINT NUMERIC(p,x) ���� p = min(31, x +
max(w-x,5))
BIGINT BIGINT BIGINT
BIGINT INTEGER BIGINT
BIGINT SMALLINT BIGINT
INTEGER INTEGER INTEGER
INTEGER SMALLINT INTEGER
SMALLINT SMALLINT SMALLINT
NONZERO SCALE
BINARY
NONZERO SCALE
BINARY
NONZERO SCALE BINARY(�� ����
� 0� � 2� ����� ���� �
�� ���� 2���� ���).
Datetime ���
DATE �� �� DATE ��� �� �� ��� ��� �� �� CHAR
�� VARCHAR ���� ��� � ����. ��� �� �� DATE��.
TIME �� �� TIME ��� ��� �� ��� ��� �� �� CHAR
�� VARCHAR ���� ��� � ����. ��� �� �� TIME��.
TIMESTAMP �� �� TIMESTAMP ��� ����� �� ��� ��
� �� �� CHAR �� VARCHAR ���� ��� � ����. ��� ��
�� TIMESTAMP��.
� ��� ... � ���... �� � � ��...
DATE DATE DATE
TIME TIME TIME
TIMESTAMP TIMESTAMP TIMESTAMP
�� � �� �� ��
96 iSeries� DB2 UDB SQL ��� V5R2
DATALINK ���
DataLink� �� DataLink� ��� � ����. � �, NO LINK CONTROL�
DataLink� NO LINK CONTROL� �� DataLink�� ��� � ��, FILE LINK
CONTROL READ PERMISSION FS� DataLink� FILE LINK CONTROL READ
PERMISSION FS� �� DataLink�� ��� � �� , FILE LINK CONTROL
READ PERMISSION DB� DataLink� FILE LINK CONTROL READ
PERMISSION DB� �� DataLink�� ��� � ����. ��� �� ��
DATALINK��. �� DATALINK� ��� �� �� � ��� �� ���.
� ��� ... � ���... �� � � ��...
DATALINK(x) DATALINK(y) DATALINK(z) ���� z = max(x,y)
DISTINCT � ���
�� �� ���� ��� � ����. ��� �� �� �� ���.
� ��� ... � ���... �� � � ��...
�� � �� � �� �
��� �� �� � �� ��
���� ��� ��� ��, UNION � UNION ALL��(� ��� MAX,
MIN, VALUE, COALESCE, IFNULL � CONCAT ��� �� CASE ���
�� �� ��). � � ��� CCSID� ��� �� �� ���� CCSID
� ��� ��� �� ��� ��� ��� � � ����.
��� CCSID� ����� CCSID� �� �� ��. � ����� CCSID
� �� �� CCSID� ���, � CCSID� �� ����� CCSID� ��� �
� �� CCSID� �� �� ���� � � ��. ��� �� �� CCSID
� ��� ����� CCSID� �� ����� � CCSID� �����. � ��
CCSID� �� �� CCSID� �� ��� ��� ������� �� �� ��.
v CCSID� ��� ��� �� CCSID��.
v �� CCSID� 65535�� ��� 65535��.21
v � CCSID� �� CCSID� �� ��� ��� ��� ���� �� ��
�� ��� �� ��.
21. ��� � � CLOB� DBCLOB� �� CCSID� �� ��� CCSID��.
�� � �� �� ��
� 2 � � �� 97
� 17. �� ��� ��� �� ��
� �� ���
� �� ���
SBCS � DBCS � �� � UCS-2 �
SBCS �� � �� �� �� ��
DBCS �� � �� � �� �� ��
�� �� � �� � �� � �� ��
UCS-2 �� � �� � �� � �� � ��
v ��� �� �� CCSID� �� �� �� �� ��.
� 18. �� ��� CCSID ��
� �� ���
� �� ���
� ��� � ��
�� ��
� ��� ��
� � �� � �� � �� � �� � ��
�� � �� � �� � �� � �� � ��
�� �� �� � �� � �� � ��
�� ���� �� �� � �� � �� � ��
��� �� �� �� �� �� � ��
� �, �� ��� ��� ��� �� �� ��� ��� ��� ��� �� �
��� ��� �� ��. � ��� ��� �� �� ��� �����.
�� ��� �� � ����� ��� ����. �� ��, COLA, COLB
� COLC� �� CCSID� 37, 278 � 500� ��� �����. COLA CONCAT
COLB CONCAT COLC� �� CCSID� ��� �� �� ��.
1. ����� � �� ��� COLA CONCAT COLB� �� CCSID�
� 37� ���� � �� ����� CCSID� �� ��.
2. �� 1� ��� COLC� ��� �� CCSID� 500�� �� ��. � �� �
���� �� ��� �� ����� �� ��� �� CCSID� 500�
� ���� �� ����� CCSID� �� ��.
��� ��� ����� MAX, MIN, VALUE, COALESCE, IFNULL �
CONCAT ��� �� ��� ��� �� ���� ��� �� ��� �� �
�. ��� UNION �� UNION ALL� � ���� �� � ��� ��
��� �� ��. ��� � �� �� �� ��� �����.
v CCSID� ��
v CCSID� � 65535� �
v ���� �� ��� � ��� ��
v CCSID �� �� �� �� ���� ���
��� �� �� �� �� ��
98 iSeries� DB2 UDB SQL ��� V5R2
��� ��� ��� � �� CCSID �� �� �� ���� CCSID �� �
� ��� �� �� �� ��� ����. ��� ��� �� ��� ��
� �� ����.
��
(�� ������� �) ��� �� �����. ��� ��� ��� � ��
� �� ��. ��� ��� ��� ��� � �� �� ��. � ���
��, �� ��� �� ��� � �� �� ��.
�� ���� NOT NULL �� ����. �� 0� � ��� ���� ��
��.
�� ��
�� ��� ���� �� �� 19 ���� ��� �� �� ��� �� ��
��� �����. � �� � �� � �� �� �� ��� �� �� �
����. �� � �� � �� ��� � �� � �� �� �� ���
�� �� � ����. � �� � � � ���� ��� ��� �� ���
� ��.
�� ���� integer� ��� �� � �� ��� �� ��.
�
64 -15 +100 32767 720176 12345678901
�� �� ��
�� ��� ��� E� ��� �� ���� �� ��� �� �����.
� �� ��� ��� ���� � � �� �� ��� ��� �
� ���� � � ����. ��� �� � �� �� �� �� �� �
�� 10� �� �� ���. �� ��� � � �� ��� ���. ���
�� �� 24� �� ��� ���. �� ��� ��� � �� �� ����
17� �� ��� � �� �� ���� 3� �� ��� ���.
�
15E1 2.E5 2.2E-1 +5.E+2
� ��
�� ��� �� 31��� � ��� �� �� ��� �� �� ��� �
����. ��� ��� ��� ���.
v ���� ���.
v 2147483647 �� �� -2147483647 �� ����.
��� �� �� �� �� ��
� 2 � � �� 99
����(�� ��� �� ��� �) � ���� ����(�� ���
�) ��� ���� �����.
�
25.5 1000. -15. +37589.3333333333 12345678901
2� ��� ��
2� ��� ��� �� �� 2� ���� �����. 2� ��� ��� �� �
�� ����.
v ��� �� ��� ��� ��� ��� ��� �� �� X. ��� �� �
� ��� ��� 16� ���� ���. 16��� 32740� �� ��� ���.
16��� �� A - F(��� �� ���)��.
��� ��� CCSID� 65535��.
2� ��� ��� ��� �� ��� �� �� ��� ����. SET
OPTION�� 2� ��� ��(SQLCURRULE = *STD)� ���� CRTSQLxxx �
� SQLCURRULE(*STD) ��� ��� � �� ��� 2� ��� �
��� � ��.
�
X’FFFF’
�� ��� ��
�� ��� ��� �� �� �� ���� �����. �� ��� ��� ��
��� ��� ����.
v ��� �� ��� ��� ��� ��� ��. ��� �� �� ��� ��
�� 32740 �� � � ����. � � ��� �� ��� ��� ��
��� �� �� ��� �� ��� �����. ��� �� �� �� ��
� � ��� �� ��� � ���� �����.
v ��� �� ��� ��� ��� ��� ��� �� �� X. ��� �� �
� ��� ��� 16� ���� ���. 16��� 32740� �� ��� ���.
16��� �� A - F(��� �� ���)��. 16� ���� ���� 16�
�� � �� ��� �����. �� ��� ��� ��� ��� ��� ��
� �� ��� ��� � ����.
�� ��� ���� �� ��� ��� � ����. �� CCSID� �� ���
��� DBCS ����� � ��� �� ���� �� ��� ��
��. �� �� �� �� ��� ��� SBCS ��� �� ��.
��
100 iSeries� DB2 UDB SQL ��� V5R2
��� (ASCII� ��) ��� ��� ��� ���� �� � ��� ��� CCSID
� ��� �� �� ��� CCSID��. ��� ��� ��� �� ��� ���
� �� ��� ��� CCSID� �� ��. �� ��� ��� CCSID� �� �
�� ��� CCSID��.
��� CCSID� ������ ���� �� �� ��. ��� CCSID� ��� �
���.
v STRSQL� ������ ���� ��� CCSID
v RUNSQLSTM �� STRREXPRC �� ��� �� �� CCSID
v CRTSQLxxx� :
– �� SQL� ��� CCSID� CRTSQLxxx �� ��� �� ��
CCSID��.
– �� SQL� ��� CCSID� PREPARE ��� ��� ��� ���
CCSID�� PREPARE ��� ��� ��� ��� ��� �� ���
��� CCSID��.
�
’Peggy’ ’14.12.1990’ ’32’ ’DON’’T CHANGE’ ’’ X’FFFF’
� ��� ��
DBCS � ��� ��
� ��� ��� �� �� � ����. ��� ���� ��� 16730 �
� � � ����. DBCS � ��� ��� � �� ��� ��� ����.
���� ���� SQL �� ��� G �� N� SBCS ����. SBCS ’�
EBCDIC �� ���, X‘7D’��.
��
� 2 � � �� 101
PL/I ���� �� ���� G� DBCS ����. � � DBCS ��� �
� ��� ��� ��� �� �� ��� �� ��� �����. � PL/I �
�� PL/I ����� �� �� ���� � � ����.
16� DBCS � ��� �� ��. 16� DBCS � ��� ��� ��� �
���.
GX‘ssss’
���� ssss� 0 - 32766 16��� ���� �����. ��� �� �� ���
�� �� 4� �� ���� ���. 4��� � ��� �� DBCS � ��
� �����. SI� SO(‘0E’X � ‘0F’X)� �� 16��� ���� � ��
��.
��� (ASCII� ��) ��� ��� ��� ���� �� � ��� ��� CCSID
� ��� CCSID� ��� DBCS CCSID��. �� ��� �� �� SQL��
�� ��� ��� CCSID� �� ��� ��� CCSID� ��� DBCS CCSID
��. ��� CCSID� ��� DBCS CCSID� ��� CCSID� 65535��.
DBCS CCSID �� ��� iSeries Information Center� ��� DBCS CCSID
�� �����. ��� CCSID� �� ��� ��� �� ��� ��� ��
���.
UCS-2 � ��� ��
16� UCS-2 � ��� �� ��. 16� UCS-2 � ��� ��� ��� �
���.
UX‘ssss’
���� ssss� 0 - 32766 16��� ���� �����. ��� �� �� ���
�� �� 4� �� ���� ���. 4��� � ��� �� UCS-2 � ��
� �����.
UCS-2� CCSID� 13488��.
��
��� ���� ��� �� ��� � ����.
v � ��� ����
v �� ���� �� ���� � ��� �� ��� ���� (�� �
�, DECIMAL, DOUBLE_PRECISION, FLOAT, REAL ��� � � CAST
�����)
v �� ����� ���� � ��� ��� ��� ��� ���� (��
��, CHAR, CLOB, VARGRAPHIC ��� � � CAST �����)
��
102 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
��� ���� ��� �� ������ ��� � ����.
� 19. ��� � �� �����
SQL ����� ��
� SQL OPTION ��� *JOB, *PERIOD, *COMMA ��
*SYSVAL �� Create SQL Program(CRTSQLxxx) �
�� �� ��. SET OPTION�� � SQL� �� �
� ���� ��� DECMPT ��� ��� � ��
� � ����.
(CRTSQLxxx �� �� ��� ��� ��� �� SQL
��� �� �����).
��� SQL � SQL� �� Start SQL (STRSQL) �� DECPNT �� �� �
� �� ��. Run SQL (RUNSQLSTM) ��
DECMPT ��.
(STRSQL � RUNSQLSTM �� �� ��� ��� SQL
��� � �� �����.)
��� �� �� ����� SQL_ATTR_DATE_FMT � SQL_ATTR_DATE_SEP �
�� �� ��
(CLI� �� ��� ��� SQL �� �� �����
(ODBC) �� �����.)
Developer Kit for Java� ��� ��
� JDBC �� SQLJ
�� ��� �� �� ��
(JDBC� SQLJ� �� ��� ��� iSeries Information
Center� IBM Developer Kit for Java �� �����).
iSeries Access ODBC ����� ��
� ����� ODBC
ODBC ��� � �� ��� �� ���
(ODBC� �� ��� ��� iSeries Information Center�
iSeries ��� �� �����.)
IBM Toolbox for Java� ��� �
���� JDBC
JDBC ��� ��
(ODBC� �� ��� ��� iSeries Information Center�
iSeries ��� �� �����.)
(IBM Toolbox for Java� �� ��� ��� iSeries
Information Center� IBM Toolbox for Java �� ��
���).
�� ����� �� ��� �� ��.
v ���� ������ �� ��.
v ����� � ��� ���� ��� �� � �� ��� �� ���.
v ����� ��� � ��� ��� � � ����.
��� �� ���� �� ��� ���� �� � �� ��� � ��� �
� ���. �� ��� ��� �� ��� �� � �����.
VALUES(9999999999,, 111)
��
� 2 � � �� 103
|
||
||
|||||||
|
|||||
|
||||
|
||||
|
||||
|
||||
|
|
|
||
|
|
|
|
|
|
|
�� ��
*APOST� *QUOTE� COBOL �� ��� ��� �� ��� ��� ���
�� ���� COBOL ��� ����. *APOST� ��� �� ��� �
� ���(')� ��� *QUOTE� �� ��(")� �����. *APOSTSQL�
*QUOTESQL� COBOL ����� � SQL�� �� �� ��� ��� �
� ���� COBOL ��� ����. *APOSTSQL� SQL ��� �� �
�� �� ���(')� ��� � ��� ����(")� SQL �� ����.
*QUOTESQL� SQL ��� �� ��� �� ��� �� � ��� �
� ���� SQL �� ����. *APOSTSQL � *QUOTESQL� �� ��
*APOST � *QUOTE� �� ����.
COBOL ��� ��� �� ��� �� ��. ��� �� �� SQL�� �
� ��� �� ��� �� ���(')� SQL �� ��� �� ��(")��.
�� ����
�� ����� ������ ���� �� ������ ����� �� ���
����� SQL�� ��� � �� ��� ��� � �� ��. �� ����
� �� ��� �� ��� �� ��� �� �� ����. �� ����� �
� CCSID� �� ��� ��� CCSID��. iSeries� DB2 UDB�� ��� �
� ����� ��.
CURRENT DATE �� CURRENT_DATE
CURRENT DATE �� ����� SQL�� �� ���� ��� � � �� �
� ��� ��� �� �����. �� � �� �� �� ��� �� ��� �
�� ����.
v �� SQL� ��� �� ����� � �� ���
v �� �� ��� �� ����� CURRENT TIME �� CURRENT
TIMESTAMP �� ����� CURDATE, CURTIME �� NOW ��� �
� � ���
�
PROJECT �� ��� MA2111 ����(PROJNO)� ���� �� �� ��
�� �����.
UPDATE PROJECTSET PRENDATE = CURRENT DATEWHERE PROJNO = ’MA2111’
��
104 iSeries� DB2 UDB SQL ��� V5R2
|
CURRENT PATH, CURRENT_PATH �� CURRENT FUNCTIONPATH
CURRENT PATH �� ����� ���� �� SQL��� ��� �� �
� � ��(�� � � �� � �), ������ � ��� ��� �
��� SQL �� �����. SQL CALL�� ��� ��(CALL ��� ��)
� ��� ��� �� ������� ��� �� �� ��. �� ��
VARCHAR(3483)��.
CURRENT PATH �� ������ � ��� ���� ���� �� ���, �
����� �� ��� �� �� ����� �� �� ��. �� ��� ��
3483� ��� ��. �� ����� �� ��� 268��.
SQL �� ��� ���� ��� SQL�� �� �� ���� ��� ��
��� ��� � �� ��� 56 ���� ���� � SQL ��� ���
��.
� ��� �� CURRENT PATH �� ����� �� �� ��� � �� SQL
��� �� ��.
v � ��� � �� SQL�� SQL ������ SQL ����� ���
CRTSQLxxx �� SQLPATH ��� ��� SQLPATH ��� ��
� �� ���. SQLPATH �� �� SET OPTION ��� ��� ��
� � ����.
v ��� �� :
– SQL ��� ��� ″QSYS″, ″QSYS2″, ″��� ���� ID �″
– ��� ��� ��� ″*LIBL″
�� SET PATH� ��� ����� �� �� � ����. ��� ��
��� ��� 788 ���� �SET PATH�� �����.
�
��� QSYS� QSYS2(SYSTEM PATH) �� �� SMITH� ��� �� ���
�� �����.
SET CURRENT PATH SMITH, SYSTEM PATH
CURRENT SCHEMA
CURRENT SCHEMA �� ����� ���� �� SQL�� �� ��� ��
� �� � � � � �� � �� � � �� ��� ��� ��� �
VARCHAR(128) �� �����.22 CURRENT SCHEMA� DYNDFTCOL� �
22. OS/390 � z/OS� DB2 UDB�� ��� �, �� ���� CURRENT SQLID� CURRENT SCHEMA� ���� � ��.
�� ���
� 2 � � �� 105
|
|
|
|
�� ����� ��� ��� � ��� ����. DYNDFTCOL� �����
���, CURRENT SCHEMA ����� � �� ����� �� ��.
CURRENT SCHEMA� ���� �� �� ���� �� ID��.
DFTRDBCOL � �� �� SQL�� �� �� ��� ��� �� �����
� ��� ��� ��� � ��� ����� �����.
�
��� �� ���� ‘D123’�� �����.
SET CURRENT SCHEMA = ’D123’
CURRENT SERVER �� CURRENT_SERVER
CURRENT SERVER �� ����� ��� ��� ��� VARCHAR(18) �
� �����.
CURRENT SERVER� CONNECT (Type 1), CONNECT (Type 2) �� SET
CONNECTION ���� �� � ��� �� ����� �� � ����. 421
���� �CONNECT(� 1)�, 427 ���� �CONNECT(� 2)� � 769 ���
� �SET CONNECTION��� ��� �����.
ADDRDBDIRE �� WRKRDBDIRE ��� ��� ������ ����� �
�� ��� �� ��� �������� ��� ��� CURRENT SERVER
� ��� � ����.
�
��� �� APPL_SERVE(VARCHAR(18))� �� ���� �����.
SELECT CURRENT SERVERINTO :APPL_SERVEFROM ROW1_TABLE
CURRENT TIME �� CURRENT_TIME
CURRENT TIME �� ����� �� ���� SQL�� ��� � � �� �
� ��� ���� ��� �����. �� � �� �� �� ��� �� ���
��� ����.
v �� SQL� ��� �� ����� � �� ��� .
v �� �� �� �� ����� CURRENT DATE �� CURRENT
TIMESTAMP �� ����� CURDATE, CURTIME �� NOW ��� �
� � ���
�� ���
106 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
�
CL_SCHED �� ��� �� ��� ���(STARTING) �� ��
(CLASS_CODE)� �����. �� ��� DAY � � 3� ����.
SELECT CLASS_CODE FROM CL_SCHEDWHERE STARTING > CURRENT TIME AND DAY = 3
CURRENT TIMESTAMP �� CURRENT_TIMESTAMP
CURRENT TIMESTAMP �� ����� �� ���� SQL�� ��� � �
�� �� ��� ��� ����� �����. �� � �� �� �� ��� �
� ��� ��� ����.
v �� SQL� ��� �� ����� � �� ��� .
v �� �� �� �� ����� CURRENT DATE �� CURRENT TIME
�� ����� CURDATE, CURTIME �� NOW ��� �� � ��
�
�
IN_TRAY �� �� ����. RECEIVED � �� �� �� ��� ���
� ������� ���. �� � � � �� �� ��� �� SRC (CHAR(8)),
SUB (CHAR(64)) � TXT (VARCHAR(200))�� ����.
INSERT INTO IN_TRAYVALUES (CURRENT TIMESTAMP, :SRC, :SUB, :TXT)
CURRENT TIMEZONE �� CURRENT_TIMEZONE
CURRENT TIMEZONE �� ����� UTC23� �� ��� �� �� ��� �
�� �����. ���(� ��� �, �� ��� � � ��� ���
�� ���� ���) �� ��� �� �� ��. �� -24� 24 ��� ����
���. �� ���� CURRENT TIMEZONE� � �� ��� UTC� ��
��.
�
IN_TRAY �� ��� �� �� �� ��� �� UTC� �����.
SELECT RECEIVED - CURRENT TIMEZONE, SOURCE,SUBJECT, NOTE_TEXT FROM IN_TRAY
USER
USER �� ����� �� ���� ��� ���� ID� �����. �� ���
�� �� �� VARCHAR(18)��.
23.��� ���� �� ��(GMT)��� .
�� ���
� 2 � � �� 107
�
���� ��� �� � IN_TRAY ��� �����.
SELECT * FROM IN_TRAYWHERE SOURCE = USER
� ��
��� ��� ��� �� �����. ��� �� ��� ��� � ���
�.
v CREATE TABLE ��� ��� ��
v CREATE INDEX ��� � ���
v �� ��� � �� ���
– ��� ��� �� ��� ���� �� ���� �� ��
�����. ��� �� ���� 766 ���� �SELECT INTO�� ���
����. �� ��, MAX(SALARY)� � MAX� ��� �� SALARY
� �� �� �����.
– GROUP BY �� ORDER BY��� ��� �� ��� �� ����
�� �� �����. �� ��, ORDER BY DEPT� DEPT �� ��
�� �� ���� ��� ����.
– ���, �� �� �� ��� ��� ��� ��� ��� � ���
��� �� �����. �� ��, �� �� CODE = 20� �� ���
�� CODE� ��� �� � �� CODE� ���.
��� ��
��� ���� � ��, � ��, �� �� �����.
��� ��� �� ��� ��� �� �����.
v COMMENT� LABEL ���� ��� ���� ���.
v ��� �� ��� ��� ��� ��� �� ��� � ���
�.
v �� �� ����� ��� ��� � ����.
���� ����� �� ��� ��� � ����. ��� ��� 111 ���
� ��� � �� � �� ���� � 112 ���� ���� ��� ��
����� �����.
���
���� FROM�� UPDATE �� DELETE ��� � �� �� ��� � �
���. �� ��, � ��� �� Z� X.MYTABLE� ����� �����.
�� ���
108 iSeries� DB2 UDB SQL ��� V5R2
FROM X.MYTABLE Z
���� ��� �� ���� �, � �� ��� �� ��. ��� �� ���
� �� ���� �� ���� �� �� ��� �� �� ��� � ����.
����� ���� ��� �� � �� ��� ��� ��� � ����.
�, � �� ��� �� � � ����� ���� ��� �� ����. � �
�� ��� Z� �� X.MYTABLE� � �� �� �� � ����
�� ����.
� ��, � �� �� ���� ���� ��� �, � �� ��� �� ���
� �� ��� ��� � ��, � �� �� �� �� ���� ���� ���.
�� ��, �� ��� EMPLOYEE� ���� ������ EMPLOYEE.
PROJECT� �� ��� � !� ����.
FROM EMPLOYEE E ***INCORRECT***WHERE EMPLOYEE.PROJECT=’ABC’
� PROJECT� �� ��� ��� �� �� ��� “E”� ���� ���.
FROM EMPLOYEE EWHERE E.PROJECT='ABC'
FROM�� ��� ��� ��� ��� ����. ���� �� ��� ��
��. ���� ��� ��� � ��, � �� �� ��� �� FROM���
����� ���. �� ��, �� FROM��� ���� EMPLOYEE� ��
� DEPARTMENT�� ��� ���� DEPARTMENT� ��� ����
EMPLOYEE� ��� ��� ����.
FROM EMPLOYEE E, DEPARTMENT
FROM�� ��� � ��, � �� �� ��� �� FROM� �� FROM ��
���� ��� �� � ���� � ��� �� ��� ���. ��� �� �
� � ��� ��� �� ��� � ��.
� ��� � �� � FROM�� � �� ��� EMPLOYEE� �� ��
� �� �� ���� ����.
1. �� FROM�� ��� ����.
FROM EMPLOYEE E1, EMPLOYEE
EMPLOYEE.PROJECT� �� ��� ��� FROM��� EMPLOYEE�
�� ��� � �����. EMPLOYEE� � �� ���� �� ���
���� ��� “E1”(E1.PROJECT)� ���� ���.
2. �� FROM�� ��� ����.
FROM EMPLOYEE, EMPLOYEE E2
��
� 2 � � �� 109
EMPLOYEE.PROJECT� �� ��� ��� FROM��� EMPLOYEE� �
�� ��� � �����. EMPLOYEE� �� ���� �� ���
���� ��� “E2”(E2.PROJECT)� ���� ���.
3. �� FROM�� ��� ����.
FROM EMPLOYEE, EMPLOYEE ***INCORRECT***
� �� � � ��� � ��(EMPLOYEE� EMPLOYEE)� �� �
�� ��� ����.
4. �� ��� �� ��.
SELECT *FROM EMPLOYEE E1, EMPLOYEE E2 ***INCORRECT***WHERE EMPLOYEE.PROJECT=’ABC’
FROM�� EMPLOYEE ��� �� ���� ���� ��� ��
EMPLOYEE.PROJECT� � !� ����. �, PROJECT� �� ���
��� � �� ���� ���(E1.PROJECT �� E2.PROJECT).
5. �� FROM�� ��� ����.
FROM EMPLOYEE, X.EMPLOYEE
EMPLOYEE� �� ���� �� � �� ���� X.EMPLOYEE(X.
EMPLOYEE.PROJECT)� ���� ���. � FROM �� ��� ���
� ID� x� � �� ����.
FROM�� ��� ���� ��� �� ��� ���.
v FROM�� �� ���
v FROM�� ��� ��� �� � �� �� � ��
v FROM�� ��� � �� �� � ��� �� SQL ID
�� ��, �� FROM�� � !� ����.
FROM EMPLOYEE E, EMPLOYEE EFROM EMPLOYEE DEPARTMENT, DEPARTMENT ***INCORRECT***FROM X.T1, EMPLOYEE T1
�� FROM�� ��� � ���� � ���� ����.
FROM EMPLOYEE DEPARTMENT, DEPARTMENT EMPLOYEE
FROM��� ���� ��� ���� � ��� �� ���� ���
��� ��� �� ����. ���� ��� �� ��� ��� ��
� ���� � ��� ��� ��. �� ���� ��� �� ��
��� ��� ����.
�� FROM�� ��� ����.
FROM DEPARTMENT D (NUM,NAME,MGR,ANUM,LOC)
��
110 iSeries� DB2 UDB SQL ��� V5R2
D.NUM� �� ��� ��� ��� DEPTNO� ��� DEPARTMENT �� �
�� � �����. FROM�� ��� D.DEPTNO� �� ��� ��
DEPTNO� ��� �� ����� � !� ����.
���� ��� � ��� �� ��� ���� ���� ���. �
��� �� ���� ��� �� ���� ���.
���� �� � �� ���
�, GROUP BY�, ORDER BY�, ��� �� �� ��� ���� ���
�� ��� � �� �����. � � � �� �� �� ��� ���
��� ���. � ��� ��� �� ��� �� � � � ����. �
�� ��� �� � �� ���� ��� � ���.
� ���
��� ��� �� ��� ���� � ����� ���. ��� �� ��
� �� �� �� � ���� �����. �� ��, SELECT�� �� ����
��� � ��� �� ��� FROM��� �� ��.
SELECT CORZ.COLA, OWNY.MYTABLE.COLAFROM OWNX.MYTABLE CORZ, OWNY.MYTABLE
��� FROM��� � ���� ��� ����.
v �� � �� �� ��� ��� ���� � �����. ��� CORZ� �
�����. CORZ� �� ����� � �� ��� ��� � �� ��.
v SQL ��� ��� �� ��� �� � ��� � �����. ���
OWNY.MYTABLE� � �����. OWNY.MYTABLE� �� �����
�� ��� ��� � �� ��.
v ��� ��� ��� � ��� �� � ��� � ���� ��� �� ��
� ����. �� ��� MYTABLE� OWNY/MYTABLE� � �����.
SELECT CORZ.COLA, MYTABLE.COLAFROM OWNX/MYTABLE CORZ, OWNY/MYTABLE
���� ��� ��� �� �
��� � �� ��� � �� ��� �� �� ��� �� �
�� ���. �� � � ��� � ��.
v ��� �� ��� ��� �� � �� �� �� . ��� ��� �
���.
v ��� � ���� ��� ��� ��� �� ��� ��� �� �
� �� �� . �� ��� ��� ����.
v ��� ��� �� � ��� ��� �� � ��� �� � � ��
. ��� �����.
��
� 2 � � �� 111
�� ��� � ���� ��� ��� ��� ��� ����. � �
� ���� � ���� �� ��� ��� � ��� ���� ��� � �
���.
� ��� ��� �� �� �� ���� � � ����. � �� ��
�� ��� �� ��� ���� ��� �� ���� ���. ��� FROM
��� X� Y� �� � CORPDATA.EMPLOYEE� � ��� �� ���
� ���� �� ��.
FROM CORPDATA.EMPLOYEE X, CORPDATA.EMPLOYEE Y
� � ���� ��� � �� ���� ��� ��� � ��� ��� �
� ��� �� ��� ��� � ����. � �, � ���� � �� � � �
��� �� ��� ��� ��� ���� �� ��� ���.
1. ��� ���� ID� CORPDARA�
SELECT CORPDATA.EMPLOYEE.WORKDEPTFROM EMPLOYEE
� �� ����.
2. ��� ���� ID� REGION�
SELECT CORPDATA.EMPLOYEE.WORKDEPTFROM EMPLOYEE ***INCORRECT***
� EMPLOYEE� � REGION.EMPLOYEE� ����� �� ���
WORKDEPT� ���� �� � CORPDATA.EMPLOYEE� �����.
��� ��� �� ���
subselect� � SQL�� ������ ��� � �� �� ����. � ��
� �� ��� ��� 335 ���� � 4 � ����� �����. � ��� �
�� �� fullselect ����. �� ��, � ��� �� ��� ��� � ��
��.
� ��� ��� �� ��� � � �� �� �� ��� ��� � ��
� � � ����. ��� SQL�� � ��� ��� � � ����. �
��� ���� ��� ��� ��� � � �� �� � ��� ��
� ���.
��� �� ���� � ��� � ���� ��� �� ����. FROM��
� UPDATE� DELETE ��� �� ��� �����. � ��� �� �
�, �� ���, �� � �� � ��� ��� ��� �� ��� FROM �� �
� ��� �� �� ��� �� ���� ��� �� ��� �!� ��
�� �� ���� ��� �� � ��� � ����. � ���� ���
� � ��� ��� ���� ���.
��
112 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
Q� T� �� ��� ����� � T� C� �� ��� ��� T.C �� Q.C
� � � ����. � � ��� �� ��� ��� ��� � � ��� �
���. �� ��� ��� ��� �� ��� ��� ���� � �� ���
� ������ ��� ����.
Q.C� �� � �� ��� �� �� ��� ����.
v Q.C� � ��� �� ��, �� ���, �� � �� � ��� ���� ��
� .
v Q�� �� � ��, �� ���, �� �, �� � ��� ��� FROM ��
��� �� ��� �� .
v Q�� �� � ��� ��� �� ���
Q.C� ���� �� �� C � �� Q� � �� �� � ���� �� �
�. �� �� �� � ���� ��� � ���� � ���� �� ����
�� ��. � ��� ���� �� ��� � Q� ��� Q.C� Q.C�
� ���� �� �� �� ��� �����.
�� ���� Q� T1� T2� �� ����� ���� Q.C� Q.C�
� � ��� �� �� �� ����� T2� ��� ���� �����.
SELECT *FROM T1 QWHERE A < ALL (SELECT B
FROM T2 QWHERE B < ANY (SELECT D
FROM T3WHERE D = Q.C))
���� �� ��
� ��� ��� ��� �� ��� ��� ��� � � ����.
v � ��� �� ��� ���
v �� � ��� FROM�� ��� �� �� �� ��
v �� � ��� ��� �� �� ��
��� �� ��� ��� SQL�� ��� ��� �� ��� ����.
� �� �� �� ��� �� � � ����� �� ��. �� ���� �
�� ��� ��� �� �� ��� �� ����. ��� �� ���
��� �� SQL�� �� ��� � SQL ��� � ��� ���
� � ���� �� ������ ���� � SQLCODE(+12)�
SQLSTATE(01545)� ����.
��
� 2 � � �� 113
|
|
|
|
�� ��
SQL�� ��� SQL�� ��� � �� � �� �� �����. SQL��� �
�� �� ��� �� ��.
��� ��
��� ��� ��� �� ���� �� ��. ��� �� �� ��
� �� ��� ��� 114 ���� ���� ��� �� ���� ���
��.
�� ��
�� ��� ��� �� � �� ��� � �� �����. �� �
� ��� �� ��� ��� 575 ���� �CREATE TRIGGER�� ��
���.
SQL ��
SQL ��� SQL �, SQL ����� �� ��� SQL �� ���
�� �� ��. SQL ��� �� ��� ��� 824 ���� �SQL
�� � ��� �� ���� �����.
SQL ����
SQL ��� CREATE FUNCTION(SQL ���) , CREATE
FUNCTION(SQL �) �� CREATE PROCEDURE(SQL)�� �� ��.
SQL ��� �� ��� ��� 824 ���� �SQL �� � ��� �
� ���� �����.
���� ��
��� �� SQL��� ��� � ����. �� ��� SQLDA� �
� � �� ��. �� ��� �� ��� ��� 731 ���� �
�� ���� �����.
� ��� �� � ��� ���� �� ���� ��� ���� ��� ��
� ��, �� ��, SQL ��, SQL �� �� �� ��� �� ��
� � �� ��.
��� ��� �� ��
��� ��� COBOL �� ��, RPG �� �� SQL��� ��� PLI, REXX,
C++ �� C ����. ��� ��� ��� �� ���� �� ��. C, C++,
COBOL, PL/I � RPG�� ��� �� �� ��� �� ��� ��� 119 ��
�� �C, C++, COBOL PL/I � RPG� ��� ���� �����. REXX ��
� ��� �� ��� ��� ��� �� SQL ��� �� �����.
SQL�� host-variable� ��� �� �� �� ��� �� ����� � � �
�� ��� ���� ���. SQL�� ��� �� ��� ��� REXX � RPG
�� ��
114 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��� �� ��� �� SQL � ���� ��� ���(��� REXX� �
� ��� ��. RPG�� � ��� �� ��� ��� ����� �� �
� � ����). ��� SQL � �� ��� �� ��� ��� ���� SQL
� �� ���� �� � ����. SQL � ��� BEGIN DECLARE
SECTION�� ��� END DECLARE SECTION�� ����.
��� �� ��� �� ��� ��� SQL ��� � �� �����.
�� ��� ��� �� host-variable� ��� ��� �� ��� �����.
FETCH, SELECT INTO, SET ��� VALUES INTO ��� INTO�� ��
host-variable� �� �� ��� ��� ��� �����. CALL �� �
� EXECUTE ��� ��� ��� �� �� �� ��� ��� �� �
�� � � ������ ������ ������ ���� ��� � ��
�� ��� ��� ��� �����. �� �� ���� host-variable� ���
��� ������ iSeries� DB2 UDB� ��� �� �����.
host-variable ��� �� ��� ��� ����.
� host-identifier� �� ������ ��� ���. �� host-identifier�
��� ��� �� �� ���� 0� �� ���� ���.
� �� host-identifier� ��� ��� �� host-identifier� ����� �
�� �����. ����� ��� ��� ��� ����.
v �� ��. ����� ��� �� �� ��� �����.
v �� �� � �� � � ��
– ��� ��� � ��
– � �� ��(��(underflow) �� ��)
– ��� ��(0�� ��)
– � �� ���� ��(��� ��� �� �� � � �� �� ��
�� ����)
– �� �� datetime �� ��� ��
– ��� ��� �� ��� ��
– �� �� � �
– � � ���� SUBSTR ��� �� ��
v ��� ���� � �� ��
v ��� ��� ��� � ��� ��� ��� �� �� ��
�� :host-identifierINDICATOR
:host-identifier
��
��� �� �� ��
� 2 � � �� 115
�� ��, :V1:V2� � ��� �� ��� � ���, V2� ���� ��
� �� ����. V2� ��� ��� ��� �� V1� ���.
�����, :V1:V2� CALL, FETCH �� SELECT INTO ��� ��� �
� �� ��� V1� ��� �� V2� �� ��� �� ��. �� �� �
�� ����.
v ��� �� ���� -1
v �� subselect� �� ����� �� � ��� �� ��� �� -224
�� �� �� ��� � �� V1� ��� V2� 0�� �� ��(V1� ��
���� ���� ���� � �� � V2� ���� � ��� ���). �
�� �� ��� �� �� ��� V2� � �� �� ��.
�� ��� ID� ��� host variable� ����� ��� ����.
host-variable :V1� ��� �� �� V1� , ��� ��� ��� � ����. �
�� ��� �� � ��� � � �� � � ��� INTO�� ��� �
����. � ��� ��� � �� � ������ ���� SQLCA�
SQLCODE ��� �� �(-407)� ����. ��� ��� ����� ���
���, ��� �� ����.
��� ��� SQL��� ��� �� �� ��� ���� ���.
C, C++, ILE RPG � PL/I�� ��� ��� ��� SQL�� �� ��� ��
� � � �� ��� ���. �� SELECT ���� ��� ��� ���
� ��� DECLARE CURSOR ��� � OPEN ��� �� ��.
��� ��� ��� CCSID� �� � ���.
v DECLARE VARIABLE ��� ��� CCSID ��
v CCSID�� �� DECLARE VARIABLE� ��� ��� �� ��� ���
CCSID� �� ��� ��(�: ASCII)� �� �� � �, ��� ��� ��
�� SQL�� ��� � ������ ����� ��� CCSID. � ���
��� �� ��� ��� CCSID� �� ��.
�
PROJECT �� ��� ��� �� PNAME(VARCHAR(26))� �����
(PROJNAME)��, ��� �� STAFF(DECIMAL(5,2))� ���� ��
(PRSTAFF)�, ��� �� MAJPROJ(CHAR(6))� ����(PROJNO) ‘IF1000’�
�� ����(MAJPROJ)� �����. PRSTAFF � MAJPROJ �� � �
24.�� � ��� �� ��� ��� ��� � � ���� �� �� � ����, �� � ��� �� ��� �� ��� � �
�� ��� �� ��� � ����.
��� �� �� ��
116 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
� �� �� � ���� ����� � � STAFF_IND(SMALLINT)�
MAJPROJ_IND(SMALLINT)� �����.
SELECT PROJNAME, PRSTAFF, MAJPROJINTO :PNAME, :STAFF :STAFF_IND, :MAJPROJ :MAJPROJ_INDFROM PROJECTWHERE PROJNO = ’IF1000’
�� SQL� ��� ��
�� SQL��� ��� �� � �� ��� �� ��. �� ��� �
������ �� ��� �� SQL���� � �, �� ���� �� SQL
�� ��� ��� � �� ���� �� ��(?)��. �� �� ��
� ��� ��� �� SQL� �� ��� ��� �� ��� �����.
INSERT INTO DEPT VALUES( :HV_DEPTNO, :HV_DEPTNAME, :HV_MGRNO, :HV_ADMRDEPT)
INSERT INTO DEPT VALUES( ?, ?, ?, ? )
�� ��� �� ��� ��� 731 ���� � �� ���� �����.
LOB ��� ��� �� ��
�� LOB ��, LOB ���� ��(118 ���� �LOB ���� ��� �� �
�� ��) � LOB � �� ��(118 ���� �LOB � �� ��� �� �
�� ��)� �� ��� �� ��� � ����.
v C
v C++
v ILE RPG
v ILE COBOL
v PL/I
LOB� ��� �� ��� �� ��� ��� �� ��� ��, ���� �
� �� � �� ��� ��� � ����. �� ��� ��� ��� ��
� �� �� �� ���� SQL �� ��� ��� ��� � � ��
� ��� � ��� ��� � ��� �����.
�� LOB �� �� �� � ��� ��� ��� � �� ���� �� ���
��� ���� ��� ��� �� LOB ����� ��� ����. �
�, ��� � ����, ���� ���� �� �� ������ �� �� �
���� �� LOB �� �� ��� � ����. � �� �� LOB �� ���
� �� LOB ����� LOB �� ��� LOB � ��� LOB � ���
� � ��� ���� ��� �� � ����.
�� �� ��� ��� �� LOB ���� ��� LOB � �� ��� ���
����� ��� �� � ����. LOB ���� ��� LOB � �� ���
�� ����� ��� �� �� �� ����� ��� �� ���� �� �
��� �� �� ��
� 2 � � �� 117
�. ��� �������� �� ����� ��� ��� ��� ��
� �� ����. �, ����� ��� ��� � ��� �����.
LOB ���� ��� �� ��
LOB ���� ��� ����� LOB �� ���� ����� �� �� ���
���� ��� �� ��� ��� ��� � ����.
v C
v C++
v ILE RPG
v ILE COBOL
v PL/I
����� LOB � ��� ��� � �� ��� �� ��� ��� 66 ����
������ � ���(LOB) ���� �����.
SQL�� ���� ��� ���� �� �� �� ��� �� ����� � �
LOB ���� ��� ���� ���. ��� �� SQL�� �� ����� �
�����. C� ��� ����.
static volatile SQL TYPE IS CLOB_LOCATOR *loc1;
�� ���� ��� �� ���� ��� LOB ���� ��� �� ��� ��
���. �� �� ���� ��� ��� ��� � �� ��� ID� �
� ��� � ����.
LOB ����� ��� ����� ��� ��� ��� LOB� �� ���.
���� ��� �� �� ���� ��� ���� ��� ��� � ��� �
���.
���� ���� ���� ��� ����� �� ��� �� LOB ����� �
� ��.
������ ����� LOB ����� � LOB ����� ��� �� ��
���� ��� SQL ����� ���� �� ���. �� �� LOB ��
��� � ���� �� LOB ���� ��� ����� �����. LOB �
��� ��� �� ���� ��� SQL�� ��� ��� � �� ��
� ����.
LOB �� �� ��� �� ��
LOB � �� ��� �� ��� �� ��� � �� LOB� �� � �
�� ��� �� ��.
v C
��� �� �� ��
118 iSeries� DB2 UDB SQL ��� V5R2
v C++
v ILE RPG
v ILE COBOL
v PL/I
��� �� �� �� ���� SQL �� ��� ��� ��� � � �
� ��� ��� ��� � ��� �����.
� �� ��� LOB ����� LOB ��� � �� ��� ���� ��
�� �� ( � �� ���) �����. ������ ��, � � ���
� �� ��� ��� �� �� ��� ��� � ����. ���
�� ������ ����� ��� ���� ���.
�� �� ��� ��� �� � �� ��� ��� ����� ��� � �
����.
� �� ��� �� �� LOB� �� ��� ��� �� ��.
� �� ��� �� ��(/), QOpenSys � UDFS � ����� �� ��.
�� ��� �� �� �� ��� CCSID� ����. �� �� CCSID� ��
� ����. � �� ��� ��� �� ���� �� 2� ���� �
� ���.
� �� ��� �� ��� ��� SQL ��� � �� �����.
C, C++, COBOL PL/I � RPG� ��� ��
��� ��� COBOL ��, PL/I, C �� C++ �� �� SQL��� ��� RPG
�� ��� � � ����. ��� ��� ��� �� SQL ��� ��� �
�� �� ��� �� ���� �� ��. ��� ��� �� �� ��� �
��� SQLCA� SQLDA� � ����.
��� �� �� ��� ��� �� �� ��� �����. �� :S1:S2� S1�
��� ��� ��� �� ����. S1� ��� ��� ��� S2� ��
�� ���� �� �� ��� ���� ���. S1� ��� ���� S2� �
� ����� ���.
��� ��� ��� ��� ���� ��� � �� ���� ��� � ����.
��� �� ��� ��� � �� �� ��� ��� �� �� � � �
�� ��� �� ��� �����. ����� �� n�� ��� ��� ���
n�� ��� �� ����� ����.
��� �� �� ��
� 2 � � �� 119
�� ��, PL/I�� V1, V2 � V3� �� S1 �� ��� �� ��� ��
� ����.
EXEC SQL FETCH CURSOR1 INTO :S1;
��� �����.
EXEC SQL FETCH CURSOR1 INTO :V1, :V2, :V3;
��� ��� ����� � �� m �� ��� ���, ��� ��� ���
m ���� ����� ��� ����. ��� ��� ����� ��� m �
� ��� �� ����� �� ��� m ��� �� ��. ��� ��
� �� ��� ����� ��� � ��� ��� �� ��� �����
�� � � ��� �� ��. ����� ��� ����� ��� ��
� ��� ��� ��� ��� ����� ��� ����.
�� �� � ��� ��� ��� � ��� ��� ����� �� �����
��� ��� ���� ��� � ����. ��� ��� ��� ID, ���, ��
��� ID ���. � �� ��� ID� ��� ��� ���� �� ��� ID
� ��� �� �� ��� ��� ���� ���.
�� ��� ��� ��� ��� ��� �� �� ��� �����.
���� ��� ��� ��� �� � ��� �� ����� � �(��� �)
��� ���� ���.
REXX��� ��� ��� ��� ����.
�� �� ��� ��� ��� ��� �� ��� �����.
:V1 :S1.V1 :S1.V1:V2 :S1.V2:S2.V4
C, C++, COBOL, PL/I � RPG� ��� �� ��
PL/I, C++ � C�� ��� �� �� �� �� �� �����. COBOL�
�� 1�� ���. RPG��� � �� ����. ��� �� �� FETCH
���� �� � ��� ��� � �� INSERT ���� ��� �� �
�� �� ��� � ����. ��� �� �� SQL Programming with Host
Languages ��� ��� �� ��� �� ���� �� ��.
�� : host-identifierhost-identifier.
�
�INDICATOR
: host-identifierhost-identifier.
��
C, C++, COBOL, PL/I � RPG� ��� ��
120 iSeries� DB2 UDB SQL ��� V5R2
��� �� �� ��� ��� �� ��� ��� �����. �� :S1:S2� S1
� ��� �� �� ��� �� �� �� ����. S1� ��� ��
� ��� S2� �� �� ��� ��, �� �� ��� � �� �� �� �
�� ��� 2�� ���� ���. �� ��� S1� ��� �� ��� S2�
�� ����� ���.
EXEC SQL FETCH CURSOR1 FOR 5 ROWSINTO :S1:S2;
��� ��� ����� �� ��� ��� ���.
��� ��� ����� � �� m �� ��� ���, ��� ��� ���
m ���� ����� ��� ����. ��� ��� ����� ��� m �
� ��� �� ����� �� ��� m ��� �� ��. ����� �
�� ��� ��� ��� ��� �� �� ��� ����� ��� ���
�.
�� ��� ��� ��� �� �� ��� �����.
REXX��� ��� �� �� ��� ����.
�
�� ��� �� � ��� ���� � ��� �� ��� ����.
�� � � ��� �� � ��� ��� �����. �� �� � �� ��
�� ���. �� ��, �� �� �� �� �� � � ��� ���
� �� ���� ���� �� �� �� �� � ����.
�� �
�� ��� � ��� ����. �� ��� � �� ��� ��, ���
�� �� �� �� �� ��� ��� ����.
v �� �� iSeries� DB2 UDB� � IBM�� ��� ���. � �
� �� �� ��� �����. �� ��� ��� �(�: ″+″), �
�� : host-identifierINDICATOR
: host-identifier
��
C, C++, COBOL, PL/I � RPG� ��� �� �
� 2 � � �� 121
(�: AVG), ��� �(�: SUBSTR) �� ��. �� � ��� ��
��� � �� �� �� ��� 157 ���� � 3 � ��� ��� ���
��.25
v ��� �� ��� CREATE FUNCTION�� ��� ��� ���� �
QSYS2.SYSROUTINES � ���� � QSYS2.SYSFUNCS� ������ �
��� ��� ���. � �� ��� ���� � 3� � � ��
� ��� ������ ���� �� ��� � ����.
��� �� �� SQL, �� �� ���� SQL �� SQL�� ��� �
������ �� �� ��. �� �� �� ��� � ��� �� ���
��� �� ����� �� ��� ������� �� �� ��. �� �
� �� �� �� ��� �� �� �� ��� ������� �� ��
��. �� �� �� �� ��� �� � ��� � ��� ��� �
����.
��� �� �� ��� ���� ����. QSYS, QSYS2 �� QTEMP�
���� � � ����.
v ������ ���� �� �� CREATE DISTINCT TYPE ��� ��
� ��� �� ��� �� �� ���� �����. �� �� �
� ��� �� ���, �� ��� �� ��� ���� �����.
�� � ��� ��� �� �� �� �� ���� ��� � ���
� �����.
��� ��� �� �� ��� �� �� �� ���� �����.
QSYS, QSYS2 �� QTEMP� ���� � � ����. �� �� ��
��� �� �� ��� ��� 435 ���� �CREATE DISTINCT TYPE�
� �����.
�� ��� �� ��� � �� �� �� �� �� ���� , ��� �
� � �� �� ���.
�� � ��� �� � ��(�: �)� �� �� �� � � ��� �
� ��� ����. �� �� ���� ���. �� �� ��� �� �
� �� �� � � ����.
��� �� � ��� �� �� �� �� �� ��� ����. �� ��
��� �� �� ��� �� � � ����. �� �� �� ��� ��
��� ���.
25. �� �� ������ ���� �� ����� ���� �� �� �� ��� ���� �� �� ���� ���� ����. �
� ������ �� �� �� ��� � ����. � �, �� �� QSYS2� �� �� �� � �� �� ��� QSYS2
� ��� � ����.
��
122 iSeries� DB2 UDB SQL ��� V5R2
|
|
� �� �� �� ��� �� �� ����. ��� ��� �� ���.
� �� � ��� FROM��� ��� � ����. � �� �� � ��
SQL ��� ��� � ����(� �� ��� �� � � ����).
� �� DB2 ��� � ��� SQL � ��� ��� � � ��� DB2
�� ��� � �� ��. �� ��, � �� �� ��� �� ���,
��� ��� ���� � ���� ��� Notes ������� ���� �
� ���� �� ��� �� � ����.
��� �� �(�� �� ��� ��)� �� � ��� �� ��� ����
�.
ALL �� DISTINCT � �� � �� �� �� ��� ��� ��
�� �� ��� � ����.
� � �� � �� �� ��� ��� ���.
� ����, expression� ��� �� �� �� �� ����. � ��
���� � �� ��� ��� 340 ���� �from��� FROM� ��� ��
���.
�� �
�� ���� ����, ��� ���� � �� �� ��� ��� ��
� ��� ��� ��� �� ����� �� ��. ������ ��� � �
� � ���� �� ����, � ��� ����, ��, �� � �
��� �� ���. ��� ����� ��� ��� ��� �� �!
� ��� �� �� �� �� �� �� � ����. �� ��� ��
��� �� �� �� �� � ���� ��� �� ����. �� �
�� ������ ���� ��� �� ���� ���. � ����� �
����� ���.
� ��� ��� �� ��� � ��� ������ ���� � ���
���� ���� ��� �� ���� ��� ���� ��� �� ��
� �� ���� ��� �� � � � ����.
��
function-name ( )ALL ,DISTINCT
expression
��
��
TABLE ( function-name ( ) ) correlation�,
expression
��
��
� 2 � � �� 123
|
|
|
|
|
|
|
|
��� � ��: �� ��� ������ ��� � ������ ���� �
�� ����� ��� �� �� ���� ��� �����. �� ��� � �
�� ������ ���� ��� � ���� ����.
v � ��� ��� � ��� ��� �����.
v � ���� �� � ��� �� � ��� �� �� �����.
v � ��� �� � � ��� �� �� � ���� �� �� ��
�� ��� ��� � ����.
� �� �� � ��� ��� �� ��� ����� �� ��(125 ���
� ��� ��� �� �� ��� ��). �� �� ��� �� ��� 76 �
��� ��� �� ���� �����.
�� ����� ��� �� �� �� ��� ����.
��� �� � ��: ����� �� ��� ������ ����
��� � ���� ��� � � ��� ���� ���� ���. SQL
��� ��� ��� ���� �� ����. �(�� �� ��� 56 ����
���� � SQL �� ��)� � ���� ��� ������ ���� ��� �
� ��� �� �� �� �����.
v � ��� ��� � ��� ��� �����.
v � ���� �� � ��� �� � ��� � �� �� ����
�.
v � ��� �� � � ��� �� �� � ���� �� �� ��
�� ��� ��� � ����.
� �� �� � ��� ��� �� ��� ����� �� ��(125 ���
� ��� ��� �� �� ��� ��). �� �� ��� �� ��� 76 �
��� ��� �� ���� �����.
�� ����� ��� �� �� �� ��� ����.
�� �� ��� ��� �� ���� �� �� �� ��� ���
�.
������ ���� �� �� ��� � ��� � ���� �� ��� �
�� �����(125 ���� ��� ��� �� �� ��� ��). �� ���(�
���� ��� � ��� ���) � ���� �� ���� � �� ��
������ ���� SQL ��� �� �� ��� ���� �� ����
�.
� ��� �� �� � �� �� �� ��. �� �� ����
��� QSYS2� ����. ��� QSYS2� SQL �� ����� ��� ��
��
124 iSeries� DB2 UDB SQL ��� V5R2
� ���� ����� �� � �� ��� �� ��. ���, ��� ��
��� ��� ��� �� ���� �� �����.
�� ��� ��� �� ��
�� ��� �� �� �� �� � �� �� � ����. �� �����
� ���� ��� �� �� �� �� ���� �� ��� �� �
����. ��� � ��� � �( �� ���)� �� ��� � �
� ��� ����.
�� �� �� �� ��� �� �� � �� ��� �� �� ��
� �� �� �� ��� ���. �� ��� ��� ������ ���
� �� ���� ��� ���� ����� �� ���� �� �� �
���.
1. � ��� � �� �� �� �� � �� � �� �� �� ��
����(�� �� ��, ���, ��� � CCSID �� �� ���
����).
2. ��� �� �� �� �� � �� � ��� � ��� �� �
� ��� �� �� �� ��� ���. 76 ���� ��� �� ���
� �� � ��� �� �� ����� �� ��� �� ��� �� ��
� �� �� ��� � �� �� �� �� �� �����.
3. � ��� �� �� �� � �� ��� �� �� � ��� �� �
�� � ��� � ��� �� ��� �� � ����� �����. ��
��� �� �� ��� � ��� �� ����.
�� �� � ��� �����.
� 1: MYSCHEMA� �� �� CREATE FUNCTION ���� ��� �
FUNA� ����� �����.
CREATE FUNCTION MYSCHEMA.FUNA (VARCHAR(10), INT, DOUBLE) ...CREATE FUNCTION MYSCHEMA.FUNA (VARCHAR(10), REAL, DOUBLE) ...
�� �� �� VARCHAR(10), SMALLINT � DECIMAL� � � ��� �
� �� ��� ���� ����� �����.
MYSCHEMA.FUNA( VARCHARCOL, SMALLINTCOL, DECIMALCOL ) ...
MYSCHEMA.FUNA � � 123 ���� � � ���� ��� ��� ��
�� � ��� �� ����. �� �� � VARCHAR� ����
� ���� �� � �� ��� �� �� � �� � �� ��� ��
� varchar� ��� �����. � �, �� ��� � �� �
� �� �(INT)� �� �� �� �(REAL) �� �� ��� ��
��
� 2 � � �� 125
�(SMALLINT)� � � ����. ���, ������ ���� ��� � ��
�� � �� MYSCHEMA.FUNA �� �����.
� 2: �� CREATE FUNCTION ���� �� ����� �����.
1. CREATE FUNCTION SMITH.ADDIT (CHAR(5), INT, DOUBLE) ...2. CREATE FUNCTION SMITH.ADDIT (INT, INT, DOUBLE) ...3. CREATE FUNCTION SMITH.ADDIT (INT, INT, DOUBLE, INT) ...4. CREATE FUNCTION JOHNSON.ADDIT (INT, DOUBLE, DOUBLE) ...5. CREATE FUNCTION JOHNSON.ADDIT (INT, INT, DOUBLE) ...6. CREATE FUNCTION TODD.ADDIT (REAL) ...7. CREATE FUNCTION TAYLOR.SUBIT (INT, INT, DECIMAL) ...
�� �������� �� ��� �� SQL �� ″TAYLOR″, ″JOHNSON″,
″SMITH″�� �����. ��� �� � � �� �(INT, INT, DECIMAL)�
� �� �� ��.
SELECT ... ADDIT(INTCOL1, INTCOL2, DECIMALCOL) ...
� 5� �� ��� ��� ��� � ���� �� ��.
v � 6� ��� TODD� SQL �� �� ��� ���� � ��.
v ��� TAYLOR� � 7� ��� � !� ���� ���� � ��.
v ��� SMITH� � 1� � 1 � � �� ��� CHAR �� ���
���� � ���� ���� � ��.
v ��� SMITH� � 3� ��� �� ���� ���� � ��.
v � 2� ��� �� �� ��� �� �� ��� ���� � ��
�� ��� ��.
v ��� JOHNSON� � 4� 5� �� �� �� � � ��� �
� �� ��� ���� � ���� ��� ��. � � �� � �
� �� �� �(INT)� � �� ��(INT)� ����� � 5� �
� �� �� �(INT)� � 4 � �� �(DOUBLE) �� �� ��
(INT)� � ���� � �� ��� � 5� �� ��.
v ��� �� �, � 2� 5 � SQL ��� ��� JOHNSON� SMITH �
��� ������ ���� � 5� �����.
� 3: �� CREATE FUNCTION ���� �� ����� �����.
1. CREATE FUNCTION BESTGEN.MYFUNC (INT, DECIMAL(9,0)) ...2. CREATE FUNCTION KNAPP.MYFUNC (INT, NUMERIC(8,0))...3. CREATE FUNCTION ROMANO.MYFUNC (INT, FLOAT) ...
�� �������� �� ��� �� SQL �� ″ROMANO″, ″KNAPP″,
″BESTGEN″��� �����. ��� �� � �� �(SMALLNT,
DECIMAL)�� �� �� ��.
SELECT ... MYFUNC(SINTCOL1, DECIMALCOL) ...
��
126 iSeries� DB2 UDB SQL ��� V5R2
� 2� �� ��� ��� ��� � ���� �� ��.
v � � � 123 ���� � � ���� ��� ��� ���� � � ���
�� ����.
v ��� ROMANO� � 3� �� ��(FLOAT)� � 1(DECIMAL)�
� � 2(NUMERIC)� �� ���� �� ��(DECIMAL)� ��
� ���� � ��.
v � 1(DECIMAL)� � 2(NUMERIC)� �� ��� �� ��
(DECIMAL)� ��� � ����.
v SQL ��� ″KNAPP″� ″BESTGEN″ � ��� � 2� ����� ��
��.
�� ��
�� �� ���� �� ��� ��� � �� �� � ����. � �
� ��� �� ��� ��� ��� �� ��. � �� �� �� ��
��� �� ��� ��� � ��� ��� ����. �� ��, STEP���
�� �� �� ���� �� �� ��� �� ��.
STEP(SMALLINT) RETURNS CHAR(5)STEP(DOUBLE) RETURNS INTEGER
�� �� � ��� �� ��(��� S� SMALLINT ).
SELECT ... 3 +STEP(S)
�� �� ��� ��� �� ���� � �� STEP� �� ��. �� �
��� ��� ��� � � � �� �� CHAR(5)��� ��� ���
����.
� ��� ��� ��� �� �� �� �� ��� ��� ��
��� � �� ��� �� ��� ��� ��� ��� �� ��� �
� ��(80 ���� ���� �� ��). ���� ��� �� ��� ���,
���, �� �� CCSID� �� � ��.
��
���� �� �����.
��
� 2 � � �� 127
��
operator
function+ (expression)- constant
column-namehost-variablespecial-register
(1)(scalar-subselect)
(2)labeled-duration
(3)cast-specification
(4)case-expression
��
�:
1 ��� ��� 133 ���� ���� � ���� �����.
2 ��� ��� 133 ���� �Datetime ����� ���� �����.
3 ��� ��� 141 ���� �CAST ���� �����.
4 ��� ��� 139 ���� �CASE ����� �����.
���:�� CONCAT
\
/***+-
��
��� �:�� function
(expression)constantcolumn-namehost-variable
YEARYEARSMONTHMONTHSDAYDAYSHOURHOURSMINUTEMINUTESSECONDSECONDSMICROSECONDMICROSECONDS
��
��
128 iSeries� DB2 UDB SQL ��� V5R2
|
���� �� �
���� ��� �� ���� ��� ��� ���.
�
SALARY :SALARY ’SALARY’ MAX(SALARY)
�� ���� ���� �
�� ���(CONCAT �� ||)� � ���� �����. ���� ��� ��
���.
�� ����� ���� ��� � ��� ���. 2� ���� �� 2� ����
��� � ����.
��� �� �� ����� �� �� �� �� ��. ��� �� �� �
� �� �� ��.
� 20. ��� �� �� �
� ��� ... � ���... �� � � ��...
DBCLOB(x) CHAR(y),
VARCHAR(y),
CLOB(y),
GRAPHIC(y),
VARGRAPHIC(y) ��
DBCLOB(y)
DBCLOB(z) ���� z = MIN(x + y,
DBCLOB� �� ��)
CLOB(x) GRAPHIC(y) ��
VARGRAPHIC(y)
DBCLOB(z) ���� z = MIN(x + y,
DBCLOB� �� ��)
VARGRAPHIC(x) CHAR(y),
VARCHAR(y),
GRAPHIC(y) ��
VARGRAPHIC(y)
VARGRAPHIC(z) ���� z = MIN(x + y,
VARGRAPHIC� �� ��)
VARCHAR(x) GRAPHIC(y) VARGRAPHIC(z) ���� z = MIN(x + y,
VARGRAPHIC� �� ��)
GRAPHIC(x) CHAR(y) �� �� VARGRAPHIC(z) ���� z = MIN(x + y,
VARGRAPHIC� �� ��)
GRAPHIC(x) CHAR(y) SBCS ��
�� GRAPHIC(y)
GRAPHIC(z) ���� z = MIN(x + y,
GRAPHIC� �� ��)
UCS-2 �� UCS-2, DBCS, �� �
� SBCS ��
UCS-2 ��
DBCS �� DBCS �� �� ��
SBCS ��
DBCS ��
CLOB(x) CHAR(y),
VARCHAR(y) ��
CLOB(y)
CLOB(z) ���� z = MIN(x + y, CLOB�
�� ��)
VARCHAR(x) CHAR(y) ��
VARCHAR(y)
VARCHAR(z) ���� z = MIN(x + y,
VARCHAR� �� ��)
��
� 2 � � �� 129
||
||
||
||
||
||
||
||
� 20. ��� �� �� � (�)
� ��� ... � ���... �� � � ��...
CHAR(x) �� �� CHAR(y) VARCHAR(z) ���� z = MIN(x + y,
VARCHAR� �� ��)
CHAR(x) SBCS �� CHAR(y) CHAR(z) ���� z = MIN(x + y, CHAR�
�� ��)
� �� ��, SBCS �� �
��
� ��
�� �� �� �� SBCS �� �� ��
SBCS �� SBCS �� SBCS ��
BLOB(x) BLOB(y) BLOB(z) ���� z = MIN(x + y, BLOB�
�� ��)
����� �� ��� �� �� �� �� �� �� �����:
v ��� �� �� �� �� �� �� ����.26
v ��� �� , �� ��� �� ����.
v ��� � ��� ���, ��� ����.
����� �� � � ��� ��� �� � � ��, � � ��� ��� ��
��. ��� ��� ��� � �� ���� ���� � �� ��� �� �
�.
�� ��� ��� ��� ���� ��� ���(shift) ��� ����. ��
�, � �� ����� �SI� ��� ��� ��� (X'0F')�� ��� �� ��
��� �SO� ��� ��� �� �����(X'0E'), ���� �� ��� �
��.
��� ���� �� ��� ��� ��� ���� ��� ��� , �� �
� ��� ����� �� ���� 2 ����.
CONCAT ���� || ��� � ���� ���. | ��� ���� CCSID�
�� �����.
��� CCSID� 97 ���� ���� �� ��� � �� ���� ��� ��
����� CCSID� �� �� ��. �� ��� ��� ����.
v ����� � ���� ��� � ����.
v � ����� �� ���� �� ����� SBCS ���� ��� �� ��
��. � � ��� ��� � ��� �� ���� ��� �� ����.
26.���� �� ���� �� , �� �� � ��� �� ��� �� �� ��� � � ����. ��� ��� 569 ���� ��� �
���� �����.
��
130 iSeries� DB2 UDB SQL ��� V5R2
||
||
||
|
|
|
|
�
��� �� FIRSTNME� LASTNAME� �����.
FIRSTNME CONCAT ’ ’ CONCAT LASTNAME
���� �� �
���� ��� ���� ��� ���� �������� ����� ���
�� ���.
����� �� � � ��� ��� �� � � ����. ����� ��� ���
���� ��� ����. ���� �� ���� ��� �� ����. �� �
�, USER+2� �� ����.
�� ��� +(�� ��)� ����� �� ����. �� ��� -(��
�)� 0� � ����� ��� �����. A� �� �� �� ���� -A�
�� �� � ����. �� �� �� ��� � ��� ��� � ���
� � ����.
� ���, +, -, *, / � **� �� ��, �, ��, �� � ���� ��
���. ���� �� ����� �� 0� ���� ���.
���(**) ���� ��� ���� �� ��� ���. �� ���� ���
����� �� �� �����.
�� �� ���
� ���� ���� � � ���� 0� ��� �� �(�� � �) ���
�� � ��� ��� ��� 2��� ��� ��� � ����. � ���
�� ��� � ����. ���� ���� �����. �� �� ��� ��
(�� � )� � ��� � �� ��� ���. �� ���� � ��
���� 0� ��� ���� ���� �� �� ����� �� ��.
��� � ���
� ����� ���� 0� ���� �� ����� ���� �� �� ��� �
� ���� �� ���� 0� ��� ��� ��� �� ��� ��� ��� �
� ��.
��� �� �� ���
�� ��: � �� 19
�� ��: � �� 11
�� ��: �� �� 5
(�� �� �) �� ��� ���� ��
��
� 2 � � �� 131
� ����� ���� 0� � ���� ���� ���� �� �� �����
�� ��.
�� � ���
���� � ���� ��� ��� �� ��. �� ��� ��� ��� �
���� ��� � ���� ��� ���� ���� ����. �� �� ��
� ���� �� ���� ���� ���, ���� �� �� �� ���� �
�� �� ��. � � ����� ��� �� ��� ��� �� ��� � �
����� ���� �� ��.
�!� ��� ��� ��� ��� �� �� ��� �� 31��� ����
�� ��. �� ��� ��� 31�� � ���� �� ��� ���.
SQL� � ��
�� ��� SQL�� �� �� ��� ���� ���� �����. �� p� s�
� �� ����� ���� ���� ���� �� p'� s'� �� ����� �
��� ���� �����.
���� ��
��� � ��� ���� max(s,s’)��. ���� min(31,max(p-s,p’-s’)
+max(s,s’)+1)��.
���
�� ��� ���� min (31, p+p’)�� ���� min(31,s+s’)��.
��
�� ��� ���� 31��. ���� 31-p+s-s'��. ���� �� ����
���.
�� �� ���
���� � ����� �� ����� �� ����� ��� �� ��. ��
� ����� �� ���� �� ��� �� �� ��. ��� ���� ���
�� ��� ��� ���� ��� ���� �� ��� ���.
�� ��� �� ��� � ��� ���� �� ����� ��� ���
�� ���� �� ��. �� ��� �� ��� � ��� ���� ��
����� ��� ��� �� ���� �� ��. �� ��� ��� ��� ��
��� � �� ��� ���.
�� ��� ����(�� �� ��)� �� ��� ��� �� ��� � �
����. �� ��� ����� �� �� ����� ��� ��� ����.
����� �� ��� Optimizer� �� ����� ��� � �� ���(�
��
132 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
� ��, Optimizer� ��� �� �� �� � ��� ��� ��� ��� �
�� ��), ������� �� ��� ����� ��� SQL�� ��� ���
��� �� �� ���� ��� � ����.
� � �� ���
�� �� �� �� �� ��� ���� � ��� � ����. ���
���� ��� ���� ��� �� �����. �� ��, � � ��
�� DECIMAL(8,2)� �� �� INCOME� EXPENSES� ��� ��� �
�� �� � REVENUE� ��� �� ��� � ����.
CREATE FUNCTION REVENUE ( INCOME, EXPENSES )RETURNS DECIMAL(8,2) SOURCE "-" ( DECIMAL, DECIMAL)
�� ��� �� �� -( � ��) ���� ��� ��� �� �� � �
����.
CREATE FUNCTION "-" ( INCOME, EXPENSES )RETURNS DECIMAL(8,2) SOURCE "-" ( DECIMAL, DECIMAL)
��� �� ��
���� ��� ��� � ��� ��� � � � ����� �� ���
��� �� �� ����. � ��� �� �� ���� ���� ��� �
���. �� ��� ��� �� ��� ���� , �� ��� ��
� ��� �����. ��� ��� 336 ���� �subselect�� �����.
Datetime ���� �
Datetime �� ��� ��� � � ����. � ���� ����� ��� �
� ����. ��� �� ��� � �� �� ����. � �� �� ���
����.
��� �(125 ���� ����� ��)
�� � ���(���� ��� � � ��) ��
� �� 7 � � � �(YEARS, MONTHS,
DAYS, HOURS, MINUTES, SECONDS ��
MICROSECONDS)� ��� �� ��� �� �
� �����27. ��� �� DECIMAL(15,0)
�� ��� �� �� ��. �� � ��� ��
����� �� � �� DATE, TIME ��
TIMESTAMP� ���� ������ ��� � �
���. ���, ��� HIREDATE + 2 MONTHS
+ 14 DAYS� �� �� ��� HIREDATE + (2
27. � � YEAR, MONTH, DAY, HOUR, MINUTE, SECOND � MICROSECOND� �� ��� �� ��.
��
� 2 � � �� 133
|
|
|
|
|
|
|
|
MONTHS + 14 DAYS)� �� ����. �
���� �� � ��� 2 MONTHS� 14 DAYS
��.
�� � � ��� DECIMAL(8,0) �� ��� �, �, �
��. ��� ���� � ��� yyyymmdd
��� , ��� yyyy� � �, mm� � �, dd
� � �� ����� . ��� HIREDATE -
BRTHDATE �, � ��� �� �� � ��
� � ����.
� � �� ��� DECIMAL(6,0) �� ��� �, �, �
��. ��� ���� � ��� hhmmss�
�� , ��� hh� �, mm� �, ss� �� �
����. � �� ��� �� �� �� � ���
�� ����.
��� � ���� ��� DECIMAL(20,6) �� ��� �,
�, �, �, �, � � �������. ��� �
��� � ��� yyyymmddhhmmsszzzzzz���
, ��� yyyy, mm, dd, hh, mm, ss � zzzzzz�
�� �, �, �, �, �, � � ������ ���
��. � ���� ��� �� ���� �� � �
�� ���� ����.
SQL� Datetime ��
datetime ��� ��� � �� �� ��� ��� � ���. datetime ��
��� ������ �� ����� ����� ���. datetime �� � �
� ��� ��� ��� ��� ��� ��� ����.
v � ����� ��� �� ����� � ���� �, � �� �� �� �
����� ���.
v � ����� ���� �� ����� �� ���� �, � �� �� �� �
����� ���.
v � ����� ������ �� ����� ����� ���. �� �� ��
� ����.
v �� ���� ����� �� ��� � � ����.
datetime �� ���� � � �� � datetime �� � ��� datetime �
�� ��� � ��� �� ���� datetime �� � ��� �� ��� �
� ���� �� ����. datetime �� � � ��� ��� ��� ���
��� ��� ����.
��
134 iSeries� DB2 UDB SQL ��� V5R2
v � �� ����� ��� �� ����� �, � ��, �� ���
�� �� �, �, �� �� � ����� ���.
v �� ����� ��� � �� ����� � �� �� ��� ���
�� ���.
v � �� ����� ���� �� ����� ��, �� ��, ��� ���
�� �� �, �, �� �� � ����� ���.
v �� ����� ���� � �� ����� �� �� ��� ��� ���
�� ���.
v � �� ����� ������ �� ����� ����, ����� ���
�� �� ����� ���.
v �� ����� ������ � �� ����� ���� �� ����� �
�� ����� ���.
v � ���� ����� �� ��� � � ����.
�� ��
�� � ��� �� � ����.
�� ��: � �(DATE1)�� �� �(DATE2)� � ��� � ���
�, �, �� �� ��� � ����. ��� �� �� DECIMAL(8,0)
��. DATE1� DATE2 �� �� ��� DATE1�� DATE2� ���. �
� DATE1� DATE2 �� ��� DATE2�� DATE1� � ��� ��� ��
��. �� ������ �� RESULT = DATE1 - DATE2� � ��� �
�� ��� ���.
DAY(DATE2) <= DAY(DATE1)��
DAY(RESULT) = DAY(DATE1) - DAY(DATE2)��.
DAY(DATE2) > DAY(DATE1)��
DAY(RESULT) = N + DAY(DATE1) - DAY(DATE2)��
��� N = MONTH(DATE2)� ��� ��.
MONTH(DATE2)� 1� ����.
MONTH(DATE2) <= MONTH(DATE1)��
MONTH(RESULT) = MONTH(DATE1) - MONTH(DATE2)��.
MONTH(DATE2) > MONTH(DATE1)��
MONTH(RESULT) = 12 + MONTH(DATE1) - MONTH(DATE2)��
YEAR(DATE2)� 1� ����.
YEAR(RESULT) = YEAR(DATE1) - YEAR(DATE2).
��
� 2 � � �� 135
�� ��, DATE('3/15/2000') - '12/31/1999'� ��� 215(�� �� 0� 2 � 15�)
��.
�� ��� ��: ��� �� �� ��� ��� � ��� ��
�(� ��� � �� �� ���� �� �� ��. �� �� �� ��
��� ����� ��� ��� ���� ��� �� ����). ��� 1� 1
� 1�� 9999� 12� 31� ��( )� ��� ���. �� ��� �� �
�� � ��� ��� ����. ��� ��� 2� 29�� � �, �� ����
� �� �� ����. � �� 28�� �� SQLCA� SQLWARN6�
‘W’� ��� ��� ���� �����.
����� �� ��� �� � ��� �� �� �� ��� ����. ��
� �� �� �(�: 9� 31�) �� � ��� �� ����. � �
� � �� ��� �� ��� SQLCA� SQLWARN6� ‘W’� ��� ��
� ���� �����.
�� ��� �� � �� � ��� �� ��� �� �� �� ��� �
� � ����. DAYS� �� � ��� �� ��� ��� ����.
� ��� �� ��� ��� �� �� �� � � ����. �� �
��� ��� �� ��� �� ��� ��� ��� SQLCA�� � �
����� �� ��.
� � ��� �� �� �� � ��� ��� � ��� �� �,
�, � �� � ��� �� � ��. ��� DATE1 + X� �� ���� ��
��. ��� X� � DECIMAL(8,0) ���.
DATE1 + YEAR(X) YEARS + MONTH(X) MONTHS + DAY(X) DAYS
� � ��� ��� � �� � ��� �� �� ��� �� �,
�, � �� � ��� �� �����. ��� DATE1 - X� �� ���� ��
��. ��� X� � DECIMAL(8,0) ���.
DATE1 - DAY(X) DAYS - MONTH(X) MONTHS - YEAR(X) YEARS
�� ��� �� �� �� 1 �� �� � �� �� �� ��
�� � � ��� �� �� ��. �� �� �� �� ��� �
� �� ��. �� ��, 1� 28�� � �� �� 2� 28�� � 1� 29, 30,
31�� � �� �� 2� 28��� ��� �� 2� 29�� ��.
�: �� �� � � ��� �� �� � � �� ���� � ��� �
� ��� � �� � �� ����.
� ��
��� � ��� �� � ����.
��
136 iSeries� DB2 UDB SQL ��� V5R2
� ��: � ��(TIME1)�� �� ��(TIME2)� � ��� �� ��� �,
�, �� �� ��� �� ����. ��� �� �� DECIMAL(6,0)�
�. TIME1� TIME2 �� �� ��� TIME1�� TIME2� ���. � �
TIME1� TIME2 �� ��� TIME2�� TIME1� � ��� ��� �� �
�. �� ������ �� RESULT = TIME1 - TIME2� � ��� ���
���.
SECOND(TIME2) <= SECOND(TIME1)��
SECOND(RESULT) = SECOND(TIME1) - SECOND(TIME2)��.
SECOND(TIME2) > SECOND(TIME1)��
SECOND(RESULT) = 60 + SECOND(TIME1) - SECOND(TIME2)��
MINUTE(TIME2)� 1� ����.
MINUTE(TIME2) <= MINUTE(TIME1)��
MINUTE(RESULT) = MINUTE(TIME1) - MINUTE(TIME2)��.
MINUTE(TIME2) > MINUTE(TIME1)��
MINUTE(RESULT) = 60 + MINUTE(TIME1) - MINUTE(TIME2)��
HOUR(TIME2)� 1� ����.
HOUR(RESULT) = HOUR(TIME1) - HOUR(TIME2).
�� ��, TIME('11:02:26') - '00:32:56'� ��� 102930(10��, 29�, 30�)�
�.
� ��� ��: ��� ��� �� ���� ��� � ��� ���
�. �� ���� ��(underflow)� ��� ��� �� ����. �� ��
� �� � ��� � ��� ��� ����. �� �� �� ����.
����� �� ��� �� � ��� �� �� �� ��� ����. ��
� � ��� �� ����.
�� ��� �� � ��� � ��� �� ��� �� �� �� ��� �
� � ����.
�� ��� �� ��� ��� �� ��� �� � � ����. ��� �,
�, �� ��� � �� ���� ��� �� ����. TIME1 + X� �� ��
�� ����. ��� “X”� DECIMAL(6,0) ���.
TIME1 + HOUR(X) HOURS + MINUTE(X) MINUTES + SECOND(X) SECONDS
��
� 2 � � �� 137
�� ��
����� � ��� �� � ����.
�� ��: � ����(TS1)�� �� ����(TS2)� � ��� ����
��� �, �, �, �, �, �� �� ��� ���� ����. ��� ��
�� DECIMAL(20,6)��. TS1� TS2 �� �� ��� TS1�� TS2� ��
�. � � TS1� TS2 �� ��� TS2�� TS1� � ��� ��� �� �
�. �� ������ �� RESULT = TS1 - TS2� � ��� ��� ��
�.
MICROSECOND(TS2) <= MICROSECOND(TS1)��
MICROSECOND(RESULT) = MICROSECOND(TS1) -
MICROSECOND(TS2)��.
MICROSECOND(TS2) >MICROSECOND(TS1)��
MICROSECOND(RESULT) = 1000000 +
MICROSECOND(TS1) - MICROSECOND(TS2)��
SECOND(TS2)� 1� ����.
����� �� � ��� �� � ��� ��� �� ���.
HOUR(TS2) <= HOUR(TS1)��
HOUR(RESULT) = HOUR(TS1) - HOUR(TS2)��.
HOUR(TS2) > HOUR(TS1)��
HOUR(RESULT) = 24 + HOUR(TS1) - HOUR(TS2)��
DAY(TS2)� 1� ����.
����� � ��� � � ��� ��� �� ���.
�� ��� ��: ��� ����� �� ������ ��� � �
�� ������. �� �� � �, �� ���� ��(underflow)� ���
� ���� ��� � ��� �� � � �� ��� � � ���,
��� ��� �� �� ��. ������ �� ��� ����.
�� ��
�� �� ���� �� �����. ��� �� ��� ��� �� ���
� �� ���(�: -, �� �) ��� ��� ��� �� �� �� ��.
��� ��� ��� � �� �� ��. �� �� ��� ���� ���
� ����� �� �� . �� �� �� ���� �� � �� �� .
��
138 iSeries� DB2 UDB SQL ��� V5R2
��� ���
1 +, -(�� � ��� ��� )2 **3 *, /, CONCAT, ||4 +, -( ���� ��� ��� )
�
�� ��� ���� �� �� � ��� �� ��.
1.10 * (SALARY + BONUS) + SALARY / :VAR32 1 4 3
CASE ���
CASE ���� ��� � ��� ��� �� ���� ��� � ����. �
����, case-expression� �� ��� ��� � ��(�� ��) when� ��
� result-expression ���. when�� ��� ��� �� ELSE � �� ��
� ��� ELSE result-expression� ��� NULL��. when�� ��� �
�� �� ELSE � �� ��� ��� ��� NULL��. when��(���
�) � � �� ��� ��� when�� �� ��� ��� when�� ��
�� ���� � ��.
simple-when-clause� ��� � �� WHEN � � ��� expresseion �
� WHEN � � ��� expression ��� ��� ������. ��� � ��
WHEN � � ��� expression �� �� WHEN � � ��� � expression
�� �� ��� � ��� ���.
��ELSE NULL
CASE searched-when-clause ENDsimple-when-clause ELSE result-expression
��
searched-when�:
WHEN search-condition THEN result-expressionNULL
simple-when�:
expression WHEN expression THEN result-expressionNULL
��
� 2 � � �� 139
result-expression� THEN�� ELSE � � ��� �� expression��. CASE
���� ��� �� result-expression� ��� ���(NULL� �� � �
�� � �� �� ��). �� result-expressions�� ��� � �� �� �� �
�� � ��� ��� �� 93 ���� ��� �� �� �� ���� ��
�� ��.
CASE� ��� ��� ���� ���� ���� � �, NULLIF�
COALESCE� ����. �� �� CASE �� �� �� ��� ��� ���
� �����.
� 21. ��� CASE ���
CASE �� ��� ��
CASE WHEN e1=e2 THEN NULL ELSE e1 END NULLIF(e1,e2)
CASE WHEN e1 IS NOT NULL THEN e1 ELSE e2 END COALESCE(e1,e2)
CASE WHEN e1 IS NOT NULL THEN e1 ELSE
COALESCE(e2,...,eN) END COALESCE(e1,e2,...,eN)
�
v �� ��� � �� ��� � ���� ��� ���� CASE ���� ��
� � ��� � ��� �� ��� �� � ����.
SELECT EMPNO, LASTNAME,CASE SUBSTR(WORKDEPT,1,1)WHEN ’A’ THEN ’Administration’WHEN ’B’ THEN ’Human Resources’WHEN ’C’ THEN ’Accounting’WHEN ’D’ THEN ’Design’WHEN ’E’ THEN ’Operations’END
FROM EMPLOYEE
v � � �� EMPLOYEE �� ��� � ��� � � ����. CASE �
��� �� ���� ���� � ��� ���� � ��� � ����.
SELECT EMPNO, FIRSTNME, MIDINIT, LASTNAME,CASEWHEN EDLEVEL < 15 THEN ’SECONDARY’WHEN EDLEVEL < 19 THEN ’COLLEGE’ELSE ’POST GRADUATE’END
FROM EMPLOYEE
v CASE �� ��� �� ��� �� 0�� �� ��� �� ���. �
� ��, �� ��� ����� �� 25% ��� ��� ���� ��� �
� ��� ����.
SELECT EMPNO, WORKDEPT, SALARY+COMMFROM EMPLOYEEWHERE (CASE WHEN SALARY=0 THEN NULL
ELSE COMM/SALARYEND) > 0.25
��
140 iSeries� DB2 UDB SQL ��� V5R2
v �� CASE ���� �����.
SELECT LASTNAME,CASEWHEN LASTNAME = ’Haas’ THEN ’President’...
SELECT LASTNAME,CASE LASTNAMEWHEN ’Haas’ THEN ’President’...
CAST ��
��(1)
CAST ( expression AS data-type )NULLparameter-marker
��
�:
1 �� � ��� ��� � ����. ��� ��� 47 ���� ��� ���
� �����.
��
� 2 � � �� 141
data-type:built-in-typedistinct-type
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP( 200 )
DATALINK( integer ) CCSID integer
ROWID
��
142 iSeries� DB2 UDB SQL ��� V5R2
|||||
CAST ��� ��� ����(� �� ����) ���� data-type�� ���
�� ����. ����� �� �� �� ��� ��� ���� ID�
�� ��� �� �� �� USAGE ��� �� ���.
expression
��� �����( �� ��� NULL� �) ����� ��� ��� �
� �� ��� ��� �� ���.
��� ���� 79 ���� � 11� ���, ��� � �� � ��� �
���� �� �(�� �� �)� ���� " � �� �� CAST ��
� �� �� �� �����. ���� ��� ��� ��� ����.
��� � ���� ��� �� ��� � ����� ���� �
� �� ��� �� ��� �� � ��.
NULL
��� ����� � � NULL�� ��� data-type� ��� ����.
parameter-marker
�� ��(�� �� ��� ���)� ����� ����� ��� ��
� ��� ���� � �� �� ��� �� . ��� �����
parameter-marker�� ��� data-type�(� ��� �� �� ��� ��
�) ��� � �� ��� � ��. �� �� ��� typed-parameter-
marker� � ��. �� �� ��� �� ���� DESCRIBE� �
�� � �� �� �� �� � ��.
data-type
��� �� �� �����. �� �� ��� ��� SQL �� ��
� ��� �� �� ����. data-type� �� ��� 541 ����
�CREATE TABLE�� �����.
��, ���, ��� �� CCSID �� ��� ��� �� �� ��.
��, ��� �� ��� �� ��� �� ��� �� �� ��. �
� ��, CHAR� ��� ��� 1�� DECIMAL� ��� ���� 5� �
��� 0��. �� �� �� ��� �� 541 ���� �CREATE TABLE�
� �����(����� ���� ���� �� �� ��� �� �� �
�� FLOAT � REAL �� DOUBLE� �����).
CCSID �� ��� �� ��� ����.
v �� �� BLOB� CCSID 65535� �� ��.
v expression� �� ����� �� �� CHAR, VARCHAR �� CLOB
� expression� CCSID� �� ��.
v expression� �� ����� data-type� GRAPHIC, VARGRAPHIC ��
DBCLOB� expression� CCSID� �� ��.
v � ��� �� data-type� �� ��� CCSID� �� ��.
��
� 2 � � �� 143
��� �� �� �� ����� ��� ��� ����� �� ����.
v expression� ��� ����� �� 79 ���� � 11�� ��� ��
��� �� �� �� ��� �� �� �� �����.
v � � NULL� ��� ����� �� �� �� �� �� ��
� � ����.
v �� ��� ��� ����� �� �� �� �� �� �� �
� � � ����. �� �� �� ��� �� ��� ��� �
������� �� �� �� �� �� �����.
�� � ��� ��� ���� �� ���� ��� ��� �� ��� 77
���� ��� � ��� ����� �����.
�
v ������� EMPLOYEE � ��(DECIMAL(9,2)� ���) SALARY � �
� ���� ��� ����. �� CAST ��� SALARY � INTEGER� �
����.
SELECT EMPNO, CAST(SALARY AS INTEGER)FROM EMPLOYEE
v � �� �� ��� �����. T_AGE� ��� SMALLINT��
PERSONNEL �� �� AGE � �� ���. R_YEAR� ���
INTEGER�� �� �� �� RETIRE_YEAR � �� ���. ��
UPDATE ��� �� � ����.
UPDATE PERSONNEL SET RETIRE_YEAR = ?WHERE AGE = CAST( ? AS T_AGE )
�� �� ��� ��� �� �, � �� � � �� ��� �����. ��
��� �� �� �� �� ��.
v �� ��� �� �� ��� � ��� ���.
v � ��� ����� � � ����� CCSID ��� 91 ���� ���
� �� ���� �� �� ��.
v �� �� �� ��� NULL �� �� ��.
�� ��
28. ��� �� �� � ���� �� � ��� ��� �� ��. !=, !<, !>, ¬=,¬< � ¬>� �� ��. � � � ��� �� ��
� ���� �� ���� ��� ��� SQL�� ��� �� ���� � ��� SQL�� ��� � ��� �� ���
��
144 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
||
�� �� �� ����. �� ����� SBCS ��� �� ��� ��
�� ��� ��� � �� �� ��� *HEX� ��� ����� ���� �
�� ����� � ��. ���� �� ��� �� �����.
� �� � ����� �� ��� �� ��� �� ��� ����. ��� �
�� ��� ��� ���.
� x� y� :
�� �� � �...
x = y x� y� ��
x<> y x� y� �� ��
x < y x� y �� ��
x > y x� y �� �
x>= y x� y �� �� ��
x<= y x� y �� �� ��
�
EMPNO = ’528671’PRTSTAFF <> :VAR1SALARY + BONUS + COMM < 20000SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE)
��� �� ��
����. �� ���� ��(¬) ��� 16� �� ���� ���. 16� �� ��� ���� �� ����. �� ��(¬) �� �� ���
� �� ��� ��� ��� � ������ ���� �� ������ ��� ��� ���� �� �� ��� ��� � ����.
��� �� CCSID� �� CCSID� ��� �� ��� � ��� ����. � � ��� ���� �� ��� �� �� �
��� �� ��� �� ���� �����. �� �� ‘¬=’� ‘<>’�, ‘¬>’� ‘<=’� ��� ‘¬<’� ‘>=’� �����.
�� expression(1)
=<><><=>=
expression ��
�:
1 �� � ���� �� ��.28
� ��
� 2 � � �� 145
|
|
��� � �� �� � ��� ����.
subselect� �� �� � ���� � � �� �� � �� �� ��
� ����. �� ����� SBCS ��� �� ��� �� �� ��� ��
� � �� �� ��� *HEX� ��� ����� ���� ��� �����
� ��. ���� �� ��� �� �����.
ALL� ��� �� ��� ��� ����.
v subselect� ��� � �� subselect� �� �� �� �� ��� ��
� ��� �
v subselect� �� ��� �� �� �� ��� ��� ��� �
v subselect� �� �� �� ��� ��� �� ��� ���� �� ��
� �� �� �� ��� ��� �� ��� ��
SOME�� ANY� ��� �� ��� ��� ����.
v subselect� �� ��� �� �� �� ��� ��� ��� �
v subselect� ��� � �� subselect� �� �� �� �� ��� ��
� ��� �
v subselect� �� �� �� ��� ��� �� ��� ���� �� ���
�� �� �� ��� ��� �� ��� ��
�
�� �� ��� �� � �� �����.
� 22. � ��.
TBLA
COLA
TBLB
COLB
1 2
2 3
3
4
��
�� expression(1)
=<><><=>=
SOMEANYALL
(subselect) ��
�:
1 �� � ���� �� ��. 28
��� �� ��
146 iSeries� DB2 UDB SQL ��� V5R2
v �� �� ��� ��� 2,3��. subselect� (2,3)� ����. � 2� 3�
COLA� ��� �� � � �� ����.
SELECT * FROM TBLA WHERE COLA = ANY(SELECT COLB FROM TBLB)
v �� �� ��� ��� 3,4��. subselect� (2,3)� ����. � 3� 4�
COLA� ��� �� � � � �� ���.
SELECT * FROM TBLA WHERE COLA > ANY(SELECT COLB FROM TBLB)
v �� �� ��� ��� 4��. subselect� (2,3)� ����. � 4� COLA
� �� ��� � �� ���.
SELECT * FROM TBLA WHERE COLA > ALL(SELECT COLB FROM TBLB)
v �� �� ��� ��� 1,2,3,4 � ���. subselect� ��� � ����.
��� TBLA� �� �� �� �� ���.
SELECT * FROM TBLA WHERE COLA > ALL(SELECT COLB FROM TBLB WHERE COLB<0)
v �� �� ��� ��� � ����. subselect� ��� � ����. ��
� TBLA� �� �� �� �� ���.
SELECT * FROM TBLA WHERE COLA > ANY(SELECT COLB FROM TBLB WHERE COLB<0)
BETWEEN ��
BETWEEN �� �� � � � ����. ��� ��� � *HEX ��� �
� ��� �� BETWEEN �� SBCS ��� �� ��� � ���
� � ���� ���� � ��. ���� �� ��� �� �����.
BETWEEN ���:
value1 BETWEEN value2 AND value3
� ��� �� ��� ���� �����.
value1 >= value2 AND value1 <= value3
BETWEEN ���:
value1 NOT BETWEEN value2 AND value3
� ��� �� ��� �����.
NOT(value1 BETWEEN value2 AND value3)� �value1 < value2 OR value1 > value3���.
BETWEEN �� ����� CCSID� �� ����� � ���� ��� �
� ��� ��� �� ����� �� ��.
�� expression BETWEEN expression AND expressionNOT
��
��� �� ��
� 2 � � �� 147
datetime �� ��� datetime �� ��� ��� ��� �� �� datetime �
���� �� ��� �� ��.
�
EMPLOYEE.SALARY BETWEEN 20000 AND 40000
SALARY NOT BETWEEN 20000 + :HV1 AND 40000
EXISTS ��
EXISTS �� ��� �� ��� �� ������. subselect� �� ���
��.
v ��� subselect� ��� � �� 0� �� �� ���.
v ��� subselect� ��� � �� 0� �� ���.
v ��� �� ��� ��� � � ����.
subselect� �� �� �� ��.
�
EXISTS (SELECT * FROM EMPLOYEE WHERE SALARY > 60000)
IN ��
IN �� �� � ��� ����. ��� ��� � *HEX ��� �� ��
� �� IN �� SBCS ��� �� ��� � ��� �� � � �
��� ���� � ��. ���� �� ��� �� �����.
subselect ���� subselect� �� �� � ���� � � �� �� �
�� �� �� � ����.
�� ��� IN �:
expression IN (subselect)
�� EXISTS (subselect) ��
�� expression INNOT
(subselect),
( expression )expression
��
BETWEEN ��
148 iSeries� DB2 UDB SQL ��� V5R2
� �� ��� ��� � �� ����.
expression = ANY (subselect)
�� ��� IN �:
expression NOT IN (subselect)
� �� ��� ��� � �� ����.
expression <> ALL (subselect)
�� ��� IN �:
expression IN expression
� �� ��� �� �� ����.
expression = expression
�� ��� IN �:
expression IN (value1, value2, ..., valueN)
� ��� ���� �����.
expression IN (SELECT * FROM R)
T� �� �� ��� �����. R� �� fullselect� ��� �����.
SELECT value1 FROM TUNION
SELECT value2 FROM TUNION...
UNIONSELECT valueN FROM T
� ��� ��� ��� ��� ��� � ��� �� � � �� �� ��� �
��� ���.
IN � ����� �� ��� �� �!� IN � ��� � �� � �
�� ��� ��� UNION� UNION ALL� ����. ��� 93 ���� ��
� �� �� �� ���� �����.
IN �� ����� CCSID� �� ����� ��� ����� ��� �
��� ��� ���� ��� ��� ����. ��� 97 ���� ���� �
� ��� � �� ���� �����.
IN ��
� 2 � � �� 149
�
DEPTNO IN (’D01’, ’B01’, ’C01’)
EMPNO IN(SELECT EMPNO FROM EMPLOYEE WHERE WORKDEPT = ’E11’)
LIKE ��
LIKE �� ��� �� ���� �����. �� ���� ��� ��� �
�� ��� �� ���� �� �� ��. �� �� ��� �� ����.
�� � � �� �� �(null)� LIKE �� ��� � � ����.
�� ���, � ��� � �� ���� ���� ���� ���. �� ���,
� ��� � �� ���� � 2� ����� 2� ���� ���� ���.
� � ���� �� ���� � ���� �� �� � ����.
��� ���� �� �� ��� � ����. � � �� ��� ��
�� ���� �� �� ����.
��� ��� � *HEX ��� �� ��� �� LIKE �� SBCS ���
�� ��� � ��� �� � � ���� ���� � ��. ���� �
� ��� �� �����.
�� ���� ��� ��� �� ��, � � �� � �� 1 �� ���
�����. � ���� � ��� 2 �� �� �� UCS-2 ��� �
����. 2� ������ ��� 1 �� ��� �� ��� ����.
�� ���
�� �� �� �� �� ��� �� � ��� ���� ��� ���.
LIKE � ���
��� ���� ��� ���.
� �� �� ��
�� �� �� �� ���� �� �� �� ��� ��� � �� �
�.
v �� ��(_)� �� ��� �����.
v ��� ��(%)� 0�� �� ���� �����.
v �� �� ���� �� ��� �����.
�� match-expression LIKE pattern-expressionNOT ESCAPE escape-expression
��
IN ��
150 iSeries� DB2 UDB SQL ��� V5R2
� ���� ���� ��� ��� ���� � ��� ���� �
��� ��� ��� ��� � �� ���� �� ��.
� �� ��� ��
�� ���� ���� �� ��� ��� �����.
m� �� ��� �� ��� p� � ��� �� �����. p ���� �
� ���� ���� ��� ���� p� � ��� �� �� ���
� ���� ����. ���� ���� ��, ��� �� �� ���� �
�� ��� � � �� �� �� ����.
m�� p� � ��� �� ��� � � �� , ��� ��� �� ���
��� ���. m� p� � � � ����� ��� �� �����
� m� ��� ��� ���.
v m� ����� 0 �� � ��� �� �� ���� m� � ��� �
� �� ����� ����.
v n �� ���� ���� ���� m� n �� ����� ��� �� �
���.
v n �� ���� ���� ��� ���� m� n �� ����� 0 ��
� ��� �� ����.
v n �� ���� ���� ��� ��� ��� ��� m� n �� ��
��� � ���� ���� ��� ���� ���� ��� ����.
v m� ���� �� ���� ���� �� ����.
y� � ����� m� � ���� � �� �� ��� ���.
����� m� � ����� p� ��� �� ��� ��� ��� � ��
�� � �� �� ��� ���.
� m NOT LIKE p� �� �� NOT(m LIKE p)� ����.
��� �� �� ���, � ��� � �� ���� �� ���� � ��
��� �� ��� CCSID� �� ��.
�� �
���� �� ���� ���� 2 �� ��� ��� � �� �� SBCS�
DBCS ��� � � � � ����. � � p� �� ��� ��� �
� �� ��.
v SBCS ��� �� SBCS ��� �����.
v DBCS ��� �� DBCS ��� �����.
LIKE ��
� 2 � � �� 151
v ��� ��(SBCS �� DBCS)� SBCS �� DBCS� � �� �� ��
�� ��� �����.
v �� ���� � ���� �� ���� �� ��.
UCS-2 �
���� UCS-2 � ���� �� UCS-2 ��� ��� ��� ���
��� � � �� � �� � � ����. UCS-2 ��� ��� ��
�� X’005F’� X’FF3F’��. UCS-2 ��� ��� ��� ����
X’0025’� X’FF05’��.
���� ��
LIKE �� ��� �� �� ���� �� ��� ��� � �
� �� �� ��� ��� ��� ��� ��� � � ��� �� �
����. � � ��� ��� ��� SELECT� ��� ��� �� �
���.
�� ��, ��� ��� CHAR(10)�� ���, ��� �� ��� WYSE%
� ��� ���� ��� ��� ���� � ���. ��� ��
��� ����.
’WYSE% ’
� ���� ������ ���� WYSE� ��� 5 � ���� ���
�� �� ���� ���. ‘WYSE’� ��� ��� ���� ��� ���
‘WSYE%%%%%%’� ���� ���.
ESCAPE �� ���
� ����� ��(_)� ���(%) ��� ��� ��� ��� � ���
��� ��� ���. ESCAPE�� ��� LIKE �� �� ���� �
� ��� �� �� �� ������ ��� � ����. �� ��� ESCAPE
� � �� ��� ��� �� ��.
v �� ���� ��� 1� ������ ���.29
v � ����� � ��� �� ��, ��� �� ��� ��� � ��
�� �� ��� ��� � ����. �� �� '+'� �� ���� �
���� '++', '+_' �� '+%' ��� '+'� ��� ����.
v �� ���� �� ��� � � ����.
�� ���� �� ��� ���� �� � ��� ��� �����. ���
� �� ��� �� ��(+)��.
� ���... �� �...
29. �� ��� ��� 2� C �� ��� ��� ��� � ����.
LIKE ��
152 iSeries� DB2 UDB SQL ��� V5R2
+% ��� ��
++% �� ��� � �� 0 �� � ��� ��� ��� ��
+++% �� ��� � �� ��� ��� ��
�
� 1: PROJECT �� PROJNAME � �� ��� ��� ‘SYSTEMS’ ���
� �����.
SELECT PROJNAMEFROM PROJECTWHERE PROJECT.PROJNAME LIKE ’%SYSTEMS%’
� 2: EMPLOYEE �� FIRSTNM �� �� ���� �� � ‘J’� ��
�� �����.
SELECT FIRSTNMEFROM EMPLOYEEWHERE EMPLOYEE.FIRSTNME LIKE ’J_’
� 3: EMPLOYEE �� FIRSTNME �� � ��� ‘J’� ��� ��� ��
�� �����.
SELECT FIRSTNMEFROM EMPLOYEEWHERE EMPLOYEE.FIRSTNME LIKE ’J%’
� 4: �� �� �����.
SELECT *FROM TABLEYWHERE C1 LIKE ’AAAA+%BBB%’ ESCAPE ’+’
'+'� �� ���� 'AAAA%BBB'� ��� ��� ��� �����. '+%'� �
�� � �� '%' ��� �� ��.
� 5: �� �� �� CHAR(5)� ZIP_TYPE��� ��� �� �� ��,
� TABLEY� �� �� ZIP_TYPE� ADDRZIP � ��� �����. ��
����� � ��(ADDRZIP)� ‘9555’� ��� �� �����.
SELECT *FROM TABLEYWHERE CHAR(ADDRZIP) LIKE ’9555%’
� 6: �� � EMP_RESUME� RESUME � CLOB� �� ��. ��� �
� LASTNAME� ‘JONES’�� �� �� ��� �� ��� ��� JONES�
� �� � RESUME � �����.
SELECT RESUMEFROM EMP_RESUMEWHERE RESUME LIKE ’%’||LASTNAME||’%’
LIKE ��
� 2 � � �� 153
� 7: EBCDIC �� ��� �� ��� COL1� �� ��� �����. �� �
�� � �� �� � COL1 �� ��� ��� � ��� ���
��.
NULL ��
NULL �� ��� ������.
NULL �� ��� �� ��� � ����. ���� �� ��� ��� ��
�. �� �� ��� ��� ���. NOT� ��� ��� �� ��.
�
EMPLOYEE.PHONE IS NULL
SALARY IS NOT NULL
�� �
�� expression IS NULLNOT
��
LIKE ��
154 iSeries� DB2 UDB SQL ��� V5R2
�� ��� �� ��� ��� �� �, � �� � � �� ��� �����.
�� ��� ��� ��� � �� ��� �� ��� � ���(AND, OR,
NOT)� ������� �� � ��. � ���� ��� ��� �� ��
� ��� ��� �� ����.
AND� OR� P� Q� �� �� �� ��� ����.
� 23. AND� OR� �� �
P Q P AND Q P OR Q
� � � �
� � � �
� �� ��� �� �� ��� �� �
� � � �
� � � �
� �� ��� �� � �� ��� ��
�� ��� �� � �� ��� �� �
�� ��� �� � � �� ��� ��
�� ��� �� �� ��� �� �� ��� �� �� ��� ��
NOT(�)� ��� NOT(�)� �� NOT(�� ��� ��)� �� ���
����.
�� �� �� ��� �� �����. �� ��� ��� ��� ��� AND
� NOT� ��� OR � AND� �� ��. �� �� ��� ���� �
�� �� �� ��� ���� � ��� �����.
��NOT
predicate(search-condition)
�
�
AND predicateOR NOT (search-condition)
��
�� ��
� 2 � � �� 155
�
��� �� �� �� ���� ��� ��� �����.
� 1
MAJPROJ = ’MA2100’ AND DEPTNO = ’D11’ OR DEPTNO = ’B03’ OR DEPTNO = ’E11’1 2 or 3 2 or 3
� 2
MAJPROJ = ’MA2100’ AND (DEPTNO = ’D11’ OR DEPTNO = ’B03’) OR DEPTNO = ’E11’2 1 3
�� ��
156 iSeries� DB2 UDB SQL ��� V5R2
� 3 � �� �
�� �� iSeries� DB2 UDB�� ��� ���. �� �� ��� ��
� ��� ���� � ���� �� ��. �� ����� ���� �,
��� ��� ���� �� �� ��. �� ��� ��� �� ��� ��
� �� �� ���.
�� �� ��� QSYS2� ����. �� �� ��� ��� � �� �
�� �� �� ��� � ����. ��� ��� � ��� ���� ����
�� ��, ������ ���� � ��� ��� ��� �� �����.
� � � �� ����� �� ��� ��� 123 ���� � � ���� ��
���.
�� �� � �� ��� �� �� ��. �� ��� �� ���
�. ��� �� ��� �� ���.
SQL ���� �� �� ��� ����� �� ��. � �� �� ����
��� � �� ���� ��� � ����. �� ����� �� ��� 335 ��
�� � 4 � ������ ��� �� � ��� �����.
�� �� �� �� �� �� ����.
� 24. �
163 ���� �AVG� ��� �� �� ����.
165 ���� �COUNT� ��� �� ��� �� � �� �� �� ����.
167 ���� �COUNT_BIG� ��� �� ��� �� � �� �� �� ����. ���
��� ����� � � �� � ���� COUNT�
����.
169 ���� �MAX� ��� � �� � ���� ����.
170 ���� �MIN� ��� � �� � ���� ����.
171 ���� �STDDEV �� STDDEV_POP� � ��� �� ��(/n)� ����.
172 ���� �SUM� ��� ��� ����.
173 ���� �VAR_POP �� VARIANCE �� VAR� � ��� ��(/n)� ����.
� 25. ��� ��� �
182 ���� �BIGINT� �� � ��� ��� ����.
184 ���� �BLOB� ��� �� ���� BLOB� ��� ����.
187 ���� �CHAR� �� CHARACTER� ��� ����.
193 ���� �CLOB� �� CLOB� ��� ����.
204 ���� �DATE� ����� DATE� ����.
212 ���� �DBCLOB� ��� ���� DBCLOB� ��� ����.
© Copyright IBM Corp. 1998, 2002 157
|
|
|
|
|
|
|
|
|
|
|
|
||
||
||
||||
||
||
||
||
|||
||
||
||
||
||
||
||
� 25. ��� ��� � (�)
215 ���� �DECIMAL �� DEC� �� DECIMAL� ��� ����.
230 ���� �DOUBLE_PRECISION �� DOUBLE� �� DOUBLE_PRECISION�� ��� ����.
233 ���� �FLOAT� �� FLOAT� ��� ����.
235 ���� �GRAPHIC� ��� ���� GRAPHIC�� ��� ����.
246 ���� �INTEGER �� INT� �� INTEGER� ��� ����.
284 ���� �REAL� �� REAL� ��� ����.
287 ���� �ROWID� ����� Row ID� ����.
294 ���� �SMALLINT� �� SMALLINT� ��� ����.
305 ���� �TIME� ����� TIME� ����.
306 ���� �TIMESTAMP� � �� � ��� TIMESTAMP� ����.
320 ���� �VARCHAR� �� VARCHAR� ��� ����.
324 ���� �VARGRAPHIC� ��� ���� VARGRAPHIC�� ��� ����.
331 ���� �ZONED� �� � ���� ��� ����.
� 26. �� �� ��� �
221 ���� �DLCOMMENT� DataLink ����� � �� ����.
222 ���� �DLLINKTYPE� DataLink ����� �� � �� ����.
223 ���� �DLURLCOMPLETE� �� �� URL� DataLink ����� ��� URL �� �
���.
224 ���� �DLURLPATH� �� �� URL� DataLink ����� �� �� ���
�� ���� � ��� � � ��� ����. ��
� �� ��� � ��� ��� ��.
225 ���� �DLURLPATHONLY� �� �� URL� DataLink ����� �� �� ���
�� ���� � ��� � � ��� ����. ��
�� � ��� ��� � ����.
226 ���� �DLURLSCHEME� �� �� URL� DataLink ����� ��� ����.
227 ���� �DLURLSERVER� �� �� URL� DataLink ����� � ��� ���
�.
228 ���� �DLVALUE� DataLink �� ����.
� 27. � �� ��� �
202 ���� �CURDATE� � �� ��(time-of-day clock)� ��� �� ����.
203 ���� �CURTIME� � �� ��(time-of-day clock)� ��� ��� ����.
211 ���� �DAYS� �� �� ��� ����.
207 ���� �DAYOFMONTH� �� �� ��� ����.
208 ���� �DAYOFWEEK� � �� ��� ���� ��� � 1� ���, 7� �
��� �����.
209 ���� �DAYOFWEEK_ISO� � �� ��� ���� ��� � 1� ���, 7� �
��� �����.
210 ���� �DAYOFYEAR� 1� � ��� ���� ��� ����.
211 ���� �DAYS� �� ��� ��� ����.
240 ���� �HOUR� �� � ��� ����.
�� ��
158 iSeries� DB2 UDB SQL ��� V5R2
|
||
||
||
||
||
||
||
||
||
||
||
||
|||
||
||
||
|||
||||
||||
||
|||
|||
||
||
||
||
||
|||
|||
||
||
||
� 27. � �� ��� � (�)
248 ���� �JULIAN_DAY� ��� 4712� 1� 1��� ��� ��� ���� �� �
��� �� �� ����.
264 ���� �MICROSECOND� �� ����� ��� ����.
265 ���� �MIDNIGHT_SECONDS� ��� ��� �� ��� ��� � �� ��� �� �� �
���.
268 ���� �MINUTE� �� � ��� ����.
271 ���� �MONTH� �� � ��� ����.
274 ���� �NOW� � �� ��(time-of-day clock)� ��� ����� ���
�.
281 ���� �QUARTER� �� �� �� 1� � ���� ���� ��� ���
�.
290 ���� �SECOND� �� � ��� ����.
308 ���� �TIMESTAMPDIFF� � �� ���� ��� �� �� �� � �� ��
��.
327 ���� �WEEK� 1� � � ���� ��� ����. � ����� ��
���.
328 ���� �WEEK_ISO� 1� � � ���� ��� ����. � ����� ��
���.
330 ���� �YEAR� �� �� ��� ����.
� 28. � ��� �
238 ���� �HASH� � ��� �� ��� ����.
272 ���� �NODENAME� �� �� ��� �������� ����.
273 ���� �NODENUMBER� �� �� ��� ����.
276 ���� �PARTITION� �� �� ��� ����.
� 29. �� ��� �
197 ���� �COALESCE� �(null)� � � �� ��� ����.
239 ���� �HEX� �� 16��� ��� ����.
241 ���� �IDENTITY_VAL_LOCAL� ID � �� ��� ��� �� ����.
245 ���� �IFNULL� �(null)� � � �� ��� ����.
253 ���� �LENGTH� �� ��� ����.
262 ���� �MAX� � ���� ���� ����.
266 ���� �MIN� � ���� �� �� ����.
275 ���� �NULLIF� ��� ��� ��� �� ��� �� � �� �
� �� ����.
288 ���� �RRN� �� �� ��� ��� ����.
319 ���� �VALUE� �(null)� � � �� ��� ����.
� 30. � ��� �
175 ���� �ABS� �� ���� ����.
176 ���� �ACOS� �� �(arc) ��� �� ����� ����.
�� ��
� 3 � �� � 159
|
|||
||
|||
||
||
|||
|||
||
|||
|||
|||
|||
||
||
||
||
|||
||
||
||
||
||
||
||
||
|||
||
|||
||
||
||
� 30. � ��� � (�)
177 ���� �ANTILOG� �� ��(�� 10)� ����.
178 ���� �ASIN� �� �(arc) �� �� ����� ����.
179 ���� �ATAN� �� �(arc) ��� �� ����� ����.
180 ���� �ATANH� �� �!� �(arc)� ��� �� ����� ����.
181 ���� �ATAN2� x� y ��� �(arc) ��� �� ����� ��� ��� �
���.
186 ���� �CEILING� �� ��� ��� �� �� �� �� �� �� ���
�.
199 ���� �COS� �� ��� �� ����.
200 ���� �COSH� �� �!� ��� �� ����.
201 ���� �COT� �� ���� �� ����.
218 ���� �DEGREES� ��� ��� ���� � �� ����.
220 ���� �DIGITS� �� ���� �� ����� ��� ����.
232 ���� �EXP� ��� �� ��� ����� ��� �� ��� �� ��
����.
234 ���� �FLOOR� � ����� �� �� �� � �� �� ����.
255 ���� �LN� �� �� �� �� ����.
258 ���� �LOG10� �� �� ��(�� 10) �� ����.
269 ���� �MOD� � �� ��� �� ��� �� � ���� ����.
277 ���� �PI� PI �� ����.
280 ���� �POWER� � �� ��� �� �� ��� ���� ��� ����.
282 ���� �RADIANS� ��� ��� ��� �� ��� �� ����.
283 ���� �RAND� ��� ����.
285 ���� �ROUND� ��� �� ���� ���� �� ����.
291 ���� �SIGN� ��� ��� ������ ����.
292 ���� �SIN� �� ��(sine) �� ����.
293 ���� �SINH� �� �!� ��(sine) �� ����.
298 ���� �SQRT� �� ���� ����.
303 ���� �TAN� �� ��� �� ����.
304 ���� �TANH� �� �!� ��� �� ����.
315 ���� �TRUNCATE �� TRUNC� ��� �� ����� ��� � �� ����.
� 31. �� ��� �
192 ���� �CHARACTER_LENGTH� ����� ��� �� ��� ����.
198 ���� �CONCAT� ���� �����.
250 ���� �LCASE� �� ��� ���� ��� ���� ����.
219 ���� �DIFFERENCE� ���� � �� ��� ���� �� ����.
249 ���� �LAND� �� ���� � ‘AND’� ���� ����.
250 ���� �LCASE� �� ��� ���� ��� ���� ����.
251 ���� �LEFT� ����� �� ��� ��� ����.
256 ���� �LNOT� �� ���� � ‘NOT’� ���� ����.
�� ��
160 iSeries� DB2 UDB SQL ��� V5R2
|
||
||
||
||
|||
|||
||
||
||
||
||
|||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
|||
||
||
||
||
||
||
||
||
||
� 31. �� ��� � (�)
257 ���� �LOCATE� � ��� �� � �� �� ���� �� �� ��
��.
259 ���� �LOR� �� ���� � ‘OR’� ���� ����.
260 ���� �LOWER� �� ��� ���� ��� ���� ����.
261 ���� �LTRIM� ��� ���� �� ���� 16�� 0� ����.
278 ���� �POSITION �� POSSTR� � ��� �� � �� �� ���� �� �� ��
��.
299 ���� �STRIP� ��� ���� � �� ��� ���� �� ��� ���
����.
289 ���� �RTRIM� ��� ��� ��� ���� 16� 0� ����.
296 ���� �SOUNDEX� ��� ��� �� ���� �� ��� ����.
297 ���� �SPACE� ��� ��� ��� �� ��� �� ���� ����.
300 ���� �SUBSTRING �� SUBSTR� ���� ����� ����.
310 ���� �TRANSLATE� ���� � ��� ��� �����.
313 ���� �TRIM� ��� ���� � �� ��� ���� �� ��� ���
����.
317 ���� �UCASE� �� ��� ���� ��� ���� ����.
317 ���� �UCASE� �� ��� ���� ��� ���� ����.
318 ���� �UPPER� �� ��� ���� ��� ���� ����.
329 ���� �XOR� �� ���� � ‘XOR’� ���� ����.
�� ��
� 3 � �� � 161
|
|||
||
||
||
|||
|||
||
||
||
||
||
|||
||
||
||
|||
� �
�� ��� COUNT(*) � COUNT_BIG(*) ��� �� �� �����.
v �� ��� expression�� �� �� ����. expression� � �
� ��� �� �� � �� ����. ��� � � � 4 � ″��″�
� ��� �� �� �� �����.
v GROUP BY�� ���� ��� FROM, WHERE, GROUP BY � HAVING
�� �� ��� ��(empty) ���� �� ��� ��, �� ��� �
� ����, SQLCODE� +100��, SQLSTATE� ‘02000’�� �� ��.
v GROUP BY�� ���� ��� �� FROM, WHERE � HAVING�� �
� ��� �� ���� �� �� ��� �� ��.
v �� ��, �� SELECT�� ��� �� D01� �� JOB� �� ���.
SELECT COUNT(DISTINCT JOB)FROM EMPLOYEE
WHERE WORKDEPT = ’D01’
v � � DISTINCT� �� ��� ��� ����, � �� ��� ��� �
�� �� ��. DISTINCT� ��� �� �� � ��. ALL� ��
��� �� ����� ��� �� �� �� ����.
v �� WHERE �� HAVING �� � ���� ���� ��� ��
� ��� �� �� ���� ��� � ����. ���� � ��� ���
� �� , � ��� ��� ��� �� ���� ���.
�� ��
162 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
AVG
AVG �� � ��� ��� ����.
�� �� �� � �� ���� � �� �� �� �� �� �� � �
� ��� ���.
�� �� �� ��� ��� �� �� �� �� �����.
v ��� �� �� ���� �� ���� ���� �� �����.
v ��� �� �� �� ��� � ����.
v �� �� �� �� ��� p � ��� s� 0� � ��� 2�� ���
���� �� ��� 31� ���� 31-p+s��.
�� ��� �� �� ��� �� � ��� �� ��. DISTINCT� ��
� �� �� � ��.
��� �(null)� � � ����. �� ��� �� ��� ����. ���
��� ��� ��� �� ���.
��� �� ��� ��� ����, �� �� ��� �� �� �� � ��
��� ���.
�� �� ��� �� �� �� ��� � ��.
�
v PROJECT �� ��� ��� �� AVERAGE(DECIMAL(5,2))� ��
(DEPTNO) ‘D11’� ����� PRSTAFF(�� �� ��)� �����.
SELECT AVG(PRSTAFF)INTO :AVERAGEFROM PROJECTWHERE DEPTNO = ’D11’
AVERAGE� 4.25(�, 17/4)� �� ��.
v PROJECT �� ��� ��� �� ANY_CALC� ��(DEPTNO) ‘D11’� �
��� ��� � �� �(PRSTAFF)�� �����.
SELECT AVG(DISTINCT PRSTAFF)INTO :ANY_CALCFROM PROJECTWHERE DEPTNO = ’D11’
�� AVGALL
( numeric-expression )DISTINCT
��
AVG
� 3 � �� � 163
ANY_CALC� 4.66(�, 14/3)�� �� ��.
AVG
164 iSeries� DB2 UDB SQL ��� V5R2
COUNT
COUNT �� � �� � ��� � �� �� �� ����.
�� ��� � ����, � ��� � �� ��� ���. ��� �� � �
����. �� ��� ��� ��� DECIMAL(15,0)��. ��� �� �� ��
� ��� DB2 Multisystem �� �����.
COUNT(*)� ��� � ����. ��� ��� � ���. ���� �
�� ��� ��.
COUNT(expression)� ��� � ����. �� ��� �� �� ��� �
� ��� �� ��. ��� ��� � ���.
COUNT(DISTINCT expression)� ��� � ����. �� �� 2000�� � �
� �� �� �� ���, 1000 DBCS �� UCS-2 ��, LOB �� DataLinks
�� � �� �� �� � ���� ��� �� �� � � ����. ��
��� �� �� �� �� ��� �� � ��� �� ��. ��� ��� �
���.
*HEX ��� �� ��� COUNT(DISTINCT expression)� � ��� �
�� ��� SBCS, UCS-2 �� �� ��� �� �� � �� ��� ��
� �� � �� �� ��� �� �� ����. ���� �� ��� �� �
����.
�
v EMPLOYEE �� ��� ��� �� FEMALE(INTEGER)� SEX �� ‘F’
� � �� �����.
SELECT COUNT(*)INTO :FEMALEFROM EMPLOYEEWHERE SEX = ’F’
FEMALE� 13�� �� ��.
v EMPLOYEE �� ��� ��� �� FEMALE_IN_DEPT(INTEGER)� ��
� ��� � �� ��� �� �� �(WORKDEPT)� �����.
��ALL
COUNT ( expression )DISTINCT
*
��
COUNT
� 3 � �� � 165
SELECT COUNT(DISTINCT WORKDEPT)INTO :FEMALE_IN_DEPTFROM EMPLOYEEWHERE SEX=’F’
FEMALE_IN_DEPT� 5� �� ��. (�� A00, C01, D11, D21 � E11�
��� � �� ��� ����)
COUNT
166 iSeries� DB2 UDB SQL ��� V5R2
COUNT_BIG
COUNT_BIG �� ��� �� ��� �� � �� �� �� ����. ��
� ��� ����� � � �� � ���� COUNT� ����.
�� ��� ��� 31� ��� 0� �� �����. ��� �� � � ���
�.
COUNT_BIG(*)� ��� � ����. ��� ��� � ���. ����
� �� ��� ��.
COUNT_BIG(expression)� ��� � ����. �� ��� �� �� �
�� �� ��� �� ��. ��� ��� � ���.
COUNT_BIG(DISTINCT expression)� ��� � ����. �� �� 2000��
� �� �� �� �� ���, 1000 DBCS �� UCS-2 ��, LOB ��
DataLinks �� � �� �� �� � ���� ��� �� �� � � ���
�. �� ��� �� �� �� �� ��� �� � ��� �� ��. ��
� ��� � ���.
*HEX ��� �� ��� COUNT_BIG(DISTINCT expression)� � ��
� ��� ��� SBCS, UCS-2 �� �� ��� �� �� � �� ���
��� �� � �� �� ��� �� �� ����. ���� �� ��� ��
�����.
�
v COUNT �� ��� COUNT �� COUNT_BIG� �����. ��� ��
� �� �� ��� �����.
v �� � ���� ��� � �� � �� ���� ���. � ���
CREATE FUNCTION�� CHAR�� ��� �� � �� ��� �
�� ���, COUNT_BIG� ��� ��� ��� ��� ���� �� �
�� ��� ����. ��� ��� �� �� �� �� �� �� �� �
����.
CREATE FUNCTION RICK.COUNT(CHAR()) RETURNS DOUBLESOURCE QSYS2.COUNT_BIG(CHAR());
��ALL
COUNT_BIG ( expression )DISTINCT
*
��
COUNT_BIG
� 3 � �� � 167
|
|
|
|
SET CURRENT PATH RICK, SYSTEM PATH
SELECT COUNT(DISTINCT WORKDEPT FROM EMPLOYEE;
� �� �� ���� �� � ��(RICK.COUNT)� � �� �
��� SOURCE�� ��� �� � ��� ��� ��� �����.
SOURCE �� �� ���� �� � ��(COUNT_BIG)� DB2�
COUNT_BIG �� �� � COUNT_BIG �� CHAR �� �� ��
���� �����.
COUNT_BIG
168 iSeries� DB2 UDB SQL ��� V5R2
MAX
MAX �� ��� � ��� ���� ����.
�� �� LOB � DataLink �� ��� �� �� �� �� � � ����.
�� �� � � �� �� �� �� �� � � �� �� �����. ��
� ���� � ��� ��� �� CCSID� ����. ��� �(null)� � � �
���.
*HEX ��� �� ��� MAX �� �� �� ��� ��� � ��, �
�� SBCS, UCS-2 �� �� ��� �� ��� ��� � �� ��� ��
�� �� �� � ����. ���� �� ��� �� �����.
�� ��� �� �� ��� �� � ��� �� ��.
�� �� ��� ��� ��� ����. ��� ��� ��� ��� �
����.
DISTINCT� ��� ��� ��� � �� ���� ����.
�
v EMPLOYEE �� ��� ��� �� MAX_SALARY(DECIMAL(7,2))� �
� �(SALARY / 12) ��� �����.
SELECT MAX(SALARY) /12INTO :MAX_SALARYFROM EMPLOYEE
MAX_SALARY� 4395.83�� �� ��.
v PROJECT �� ��� ��� �� LAST_PROJ(CHAR(24))� �� ����
���� �����(PROJNAME)�� �����.
SELECT MAX(PROJNAME)INTO :LAST_PROJFROM PROJECT
LAST_PROJ� 'WELD LINE PLANNING '�� �� ��.
�� MAXALL
( expression )DISTINCT
��
MAX
� 3 � �� � 169
MIN
MIN �� ��� � ��� �� �� ����.
�� �� LOB � DataLink �� ��� �� �� �� �� � � ����.
�� �� � � �� �� �� �� �� � � �� �� �����. ��
� ���� � ��� ��� �� CCSID� ����. ��� �(null)� � � �
���.
*HEX ��� �� ��� MIN �� �� �� ��� ��� � ��, �
�� SBCS, UCS-2 �� �� ��� �� ��� ��� � �� ��� ��
�� �� �� � ����.
�� ��� �� �� ��� �� � ��� �� ��.
�� �� ��� ��� ��� ����. ��� ��� ��� ��� �
� ���.
DISTINCT� ��� ��� ��� � �� ���� ����.
�
v EMPLOYEE �� ��� ��� �� COMM_SPREAD(DECIMAL(7,2))� �
�(WORKDEPT) ‘D11’� ��� �� �� � �� ��(COMM) �� �� �
�� �����.
SELECT MAX(COMM) - MIN(COMM)INTO :COMM_SPREADFROM EMPLOYEEWHERE WORKDEPT = ’D11’
COMM_SPREAD� 1118(�, 2580 - 1462)� �� ��.
v PROJECT�� ��� ��� �� FIRST_FINISHED(CHAR(10))� � �� �
��� ��� ��� �� �� �(PRENDATE)� �����.
SELECT MIN(PRENDATE)INTO :FIRST_FINISHEDFROM PROJECT
FIRST_FINISHED� ‘1982-09-15’� �� ��.
�� MINALL
( expression )DISTINCT
��
MIN
170 iSeries� DB2 UDB SQL ��� V5R2
STDDEV �� STDDEV_POP
STDDEV_POP �� � ��� �� ��(/n)� ����. � �� ��� �
�� � ��� ��� ��� ����.
STDDEV_POP = SQRT(VAR_POP)
��� SQRT(VAR_POP)� ��� �����.
�� �� �� � �� ���� � �� �� �� �� �� �� � �
� ��� ���.
�� �� �� ���� �� �����. ��� �(null)� � � ����.
�� ��� �� �� ��� �� � ��� �� ��. DISTINCT� ��
� �� �� � ��.
�� �� ��� ��� ��� ����. ��� ��� ��� �� �
� �� ����.
��� �� ��� ��� ����, �� �� ��� �� �� �� � ��
��� ���.
STDDEV� STDEV_POP� ���� ��� � ����.
�
v EMPLOYEE �� ��� ��� �� DEV(FLOAT ����)� �� A00�
� � ���� �� �� ��� �����.
SELECT STDDEV_POP(SALARY)INTO :DEVFROM EMPLOYEEWHERE WORKDEPT = ’A00’;
DEV� �� 9938.00�� �� ��.
�� STDDEV_POPSTDDEV
ALL( numeric-expression )
DISTINCT��
STDDEV �� STDDEV_POP
� 3 � �� � 171
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
SUM
SUM �� � ��� ��� ����.
�� �� �� � �� ���� � �� �� �� �� �� �� � �
� ��� ���.
�� �� �� ��� ��� �� � ��� �� �� �� �����.
v �� �� ���� �� ���� ���� �� �����.
v �� �� �� ��� � ����.
v �� �� 0� � ��� 2�� ����.
��� �(null)� � � ����.
�� �� �� �� �� �� 0� � ��� 2�� ��� ���� 31�
� ���� �� �� ���� ����.
�� ��� �� �� ��� �� � ��� �� ��. DISTINCT� ��
� �� �� � ��.
�� �� ��� ��� ��� ����. ��� ��� ��� ��� �
� ����.
��� �� ��� ��� ����, �� �� ��� �� �� �� � ��
��� ���.
�
v EMPLOYEE �� ��� ��� �� JOB_BONUS(DECIMAL(9,2))� ��
�(clerk)(JOB='CLERK')� ��� � ��� ��(BONUS)�� �����.
SELECT SUM(BONUS)INTO :JOB_BONUSFROM EMPLOYEE
WHERE JOB = ’CLERK’
JOB_BONUS� 2800�� �� ��.
�� SUMALL
( numeric-expression )DISTINCT
��
SUM
172 iSeries� DB2 UDB SQL ��� V5R2
VAR_POP �� VARIANCE �� VAR
STDDEV_POP �� � ��� ��(/n)� ����. ��� ��� � ��
� ��� ��� ����.
VAR_POP = SUM(X**2)/COUNT(X) - (SUM(X)/COUNT(X))**2
�� �� �� � �� ���� � �� �� �� �� �� �� � �
� ��� ���.
�� �� �� ���� �� �����. ��� �(null)� � � ����.
�� ��� �� �� ��� �� � ��� �� ��. DISTINCT� ��
� �� �� � ��.
�� �� ��� ��� ��� ����. ��� ��� ��� ��� �
� ����.
��� �� ��� ��� ����, �� �� ��� �� �� �� � ��
��� ���.
VARIANCE � VAR� VAR_POP� ���� ��� � ����.
�
v EMPLOYEE �� ��� ��� �� DEV(FLOAT ����)� �� A00�
� � ���� �� ���� �����.
SELECT VAR_POP(SALARY)INTO :VARNCEFROM EMPLOYEEWHERE WORKDEPT = ’A00’;
VARNCE� �� 98763888.88� �� ��.
�� VAR_POPVARIANCEVAR
ALL( numeric-expression )
DISTINCT��
VAR_POP �� VARIANCE �� VAR
� 3 � �� � 173
|
|
|
|
||||
��� �
��� �� ���� ��� � �� ��� ��� � ����. � ���
����� ��� �� � �� �� �� �� �� ��� ��� ���
�� ��� ����. ��� �� ��� �� � � ����. � �, ��
�� � ��� ��� ����� ��� �� �� ��� � ��
��� �� �����. �� ��, ��� �� ��� �� ��� �� �
�� ��� ��� �� �� � � ����.
�
�� SELECT�� ��� �� D01� ��� �� ��� � �� ����.
SELECT EMPNO, LASTNAME, YEAR(CURRENT DATE - BIRTHDATE)FROM EMPLOYEE
WHERE WORKDEPT = ’D01’
��� ��
174 iSeries� DB2 UDB SQL ��� V5R2
ABS
ABS �� �� �� �� ����.
��� �� �� � �� �� �� �� ������ ���.
�� �� � � �� �� �� �� �� ��� ��� � ����, ��
�� ���� �� ���� ��� ���� �� ���� � ��� �
��� ��� � �� �� �����.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
ABSVAL� ABS� �����. �� �� DB2 ��� ���� � �� �
�.
�
v ��� �� PROFIT� � -50000� � ���� �����.
SELECT ABS(:PROFIT)FROM SYSIBM.SYSDUMMY1
� 50000� ����.
�� ABS ( numeric-expression ) ��
ABS
� 3 � �� � 175
|
|
|
ACOS
ACOS �� ����� ��� �� ��� � ���(arc cosine)�� ����.
ACOS � COS �� ����.
��� �� �� � �� �� �� �� ������ ���. �� -1 ��
1 �� ���� ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
��� -1 �� PI �� ���� ���.
�
v ��� �� ACOSINE� � 0.070737202� DECIMAL(10,9) ��� ���� �
����.
SELECT ACOS(:ACOSINE)FROM SYSIBM.SYSDUMMY1
�� � 1.49� ����.
�� ACOS ( numeric-expression ) ��
ACOS
176 iSeries� DB2 UDB SQL ��� V5R2
ANTILOG
ANTILOG �� �� ��(�� 10)� ����. ANTILOG � LOG �� �
���.
��� �� �� � �� �� �� �� ������ ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� ALOG� � 1.499961866� DECIMAL(10,9) ��� ���� ��
���.
SELECT ANTILOG(:ALOG)FROM SYSIBM.SYSDUMMY1
�� � 31.62� ����.
�� ANTILOG ( numeric-expression ) ��
ANTILOG
� 3 � �� � 177
ASIN
ASIN �� ����� ��� �� ��� � ��(arc sine)�� ����. ASIN
� SIN �� ����.
��� �� �� � �� �� �� �� ������ ���. �� -1 ��
1 �� ���� ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
��� Pl/2 �� PI/2 ���.
�
v ��� �� ASINE� � 0.997494987� DECIMAL(10,9) ��� ���� ��
���.
SELECT ASIN(:ASINE)FROM SYSIBM.SYSDUMMY1
�� � 1.50� ����.
�� ASIN ( numeric-expression ) ��
ASIN
178 iSeries� DB2 UDB SQL ��� V5R2
ATAN
ATAN �� ����� ��� �� ��� � ���(arc tangent)� ����.
ATAN � TAN �� ����.
��� �� �� � �� �� �� �� ������ ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
��� Pl/2 �� PI/2 ���.
�
v ��� �� ATANGENT� � 14.10141995� DECIMAL(10,8) ��� ����
�����.
SELECT ATAN(:ATANGENT)FROM SYSIBM.SYSDUMMY1
�� � 1.50� ����.
�� ATAN ( numeric-expression ) ��
ATAN
� 3 � �� � 179
ATANH
ATANH �� �� �!�� � ���(arc tangent)� ����� ����.
ATANH � TANH �� ����.
��� �� �� � �� �� �� �� ������ ���. �� -1 ��
1 ��� ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� HATAN� � 0.905148254� DECIMAL(10,9) ��� ���� �
����.
SELECT ATANH(:HATAN)FROM SYSIBM.SYSDUMMY1
�� � 1.50� ����.
�� ATANH ( numeric-expression ) ��
ATANH
180 iSeries� DB2 UDB SQL ��� V5R2
ATAN2
ATAN2 �� x� y ��� �(arc) ��� �� ����� ��� ��� ��
��. � ��� �� ��� �� x� y ��� �����.
��� �� �� � �� �� �� �� �����. �� ��� 0� �
��� ���.
�� �� �� ���� �� �����. �� ��� �� � � ��� ���
�� � � �� , �� ��� ��� ��� ���.
�
v ��� �� HATAN2A � HATAN2B� �� 1� 2 �� �� DOUBLE ��
� ���� �����.
SELECT ATAN2(:HATAN2A,:HATAN2B)FROM SYSIBM.SYSDUMMY1
�� 1.1071487 �� �� ���� �� ��� �� ����.
�� ATAN2 ( numeric-expression1 , numeric-expression2 ) ��
ATAN2
� 3 � �� � 181
BIGINT
BIGINT �� ��� � �� ��� ����.
v �
v ��� �� ��� ��
v ��� �� ��� ��
v �� ���� �� ��� ��
�: �� CAST ���� � �� �� �� � ��� � ����. ��� ��
� 141 ���� �CAST ���� �����.
�� � � ��
numeric-expression
��� � �� �� � �� �� �����.
��� numeric-expression� ��� ��� � �� �� ��� ���
� �� ��� ���. ��� �� ��� � �� � �� ��
��� ��� ����. ��� �� ��� �� ��.
�� � � ��
character-expression
���� ��� �� ��� ��� ����. ���� CLOB� ���� �
��.
��� character-expression�� ��� CAST(character-expression AS BIGINT)
��� ��� ��� ���. �� � �� ��� �� �� ���� �
� ���, �� �� �� ��� ���� � ��� ����. ��� ��
��� �� � �� �� ��� ��� ����. ��� �� ��� ��
��.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�� � � ���� BIGINT ( numeric-expression ) ��
�� � � ���� BIGINT ( character-expression ) ��
BIGINT
182 iSeries� DB2 UDB SQL ��� V5R2
�
v EMPLOYEE �� ��� �������� �� �� � � �� ���
EMPNO � �����.
SELECT BIGINT(SALARY)FROM EMPLOYEE
BIGINT
� 3 � �� � 183
BLOB
BLOB �� ��� �� BLOB ��� ����.
�: �� CAST ���� 2� ��� �� �� � ��� � ����. ���
��� 141 ���� �CAST ���� �����.
�� ��� BLOB��. � �� ��� �� � � �� ��� �� �
� �� , � �� ��� �� ��� ����.
string-expression
��� ���� �� ��, � ���, 2� ��� �� � ID� � � ��
��.
integer
��� �� 2� ���� �� �� �� �����. �� 1 - 2 147 483 647
��� ���� ���.
�� ��� ��� ����:
v string-expression� � ��� ���� ��� �� �� 1��.
v ��� ��� ��� �� �� ��� � ���� � �, � �� �
�� �� �� ����. � ��� �� �� ��� �� ��
���.
��� �� ��� ��� �� �� ���� �� ��� ��(�� �� �
��� � ��� ��� �)��. string-expression� ��� �� �
� ��� � ��� �� ��. � �� � ��� �� ����� �
� �� ��� ��� � , �� � �� � ��� � �����
�� �� ��� 2 �� ��� � , �(SQLSTATE 01004)� �
��.
�
v �� �� ��� ‘This is a BLOB’� �� BLOB� ����.
SELECT BLOB(’This is a BLOB’)FROM SYSIBM.SYSDUMMY1
v �� �� ���� myclob_locator� �� ��� � ���� �� BLOB
� ����.
SELECT BLOB(:myclob_locator)FROM SYSIBM.SYSDUMMY1
�� BLOB ( string-expression ), integer
��
BLOB
184 iSeries� DB2 UDB SQL ��� V5R2
|
|
v �� TOPOGRAPHIC_MAP�� BLOB � MAP_NAME��� VARCHAR�
��� �����. ��� ‘Pellow Island’� � � �� ��� ���
�� �� 2� ���� �� �� ����. �� �� ����
myclob_locator� �� ��� � ���� �� BLOB� ����.
SELECT BLOB( MAP_NAME CONCAT ’: ’ CONCAT TOPOGRAPHIC_MAP )FROM ONTARIO_SERIES_4WHERE TOPOGRAPHIC_MAP LIKE ’%Pellow Island%’
BLOB
� 3 � �� � 185
CEILING
CEIL �� CEILING �� numeric-expression�� �� �� �� �� �� �
� ����.
��� �� �� � �� �� �� �� �����.
�� ��� �� ��� DECIMAL �� NUMERIC� � ���� 0� �
��� ��� ��� �� � � �� �� ����. �� ��, DECIMAL(5,5)
� �� �� �� ��� DECIMAL(5,0)� ��� �����.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�
v �� ��� ��� �� �� �� ����. ��� �� ��� ������.
SALARY � �� �� �� ����.
SELECT CEIL(MAX(SALARY)/12FROM EMPLOYEE
�� �� �� ��� �� $52750.00� �� Christine Haas��� � �� �
�� 4396.00��. ��� �� �� CEIL �� ��� �� 4395.83�
�.
v � � �� �� CEILING� �����.
SELECT CEILING( 3.5),CEILING( 3.1),CEILING(-3.1),CEILING(-3.5),
FROM SYSIBM.SYSDUMMY1
�� �� ��� ����.
04. 04. -03. -03.
� ��� ����.
�� CEILING ( numeric-expression )CEIL
��
CEILING
186 iSeries� DB2 UDB SQL ��� V5R2
CHAR
CHAR �� ��� �� �� �� �� ��� ��� ����.
v � �� ��� SMALLINT, INTEGER �� BIGINT� ��
v � �� ��� ���� ���
v � �� ��� DOUBLE �� REAL� ���� �� ��� �
v � �� ��� �� ��� �� �� ���
v �� ��� DATE� � �
v � �� ��� TIME� �� �
v � �� ��� TIMESTAMP� ���� �
v � �� ��� ROWID� � ID �.
�: �� CAST ���� �� �� �� ��� �� �� � ��� � ���
�. ��� ��� 141 ���� �CAST ���� �����.
� �� ��� BLOB, GRAPHIC, VARGRAPHIC �� DBCLOB� � �� �
� ���� ���.
�� � � ���� CHAR ( datetime-expression )
, ISOUSAEURJIS
��
�� � ���� CHAR ( character-expression )
, integer��
�� � ���� CHAR ( integer-expression ) ��
�� � ���� CHAR ( decimal-expression )
, decimal-character��
�� ��� � ���� CHAR ( floating-point-expression )
, decimal-character��
CHAR
� 3 � �� � 187
|
�� ��� �� �� �� �����. � �� ��� �� � � �� �
�� �� � � �� , � �� ��� �� ��� ����.
�� � � ��
datetime-expression
�� ��� �� �� � �� �� ���
�� ��� �� ��� ��� ���� �� �� ��� ����.
�� ��� ��� �� ��� ��� � ��� ����
�. ��� ISO, USA, EUR �� JIS� ��� ��� 10��.
�� ��� ��� ��� � ��� ����. ��� ��� 70 �
��� �Datetime �� ��� ���� �����.
� ��� �� ��� ��� ���� ��� �� ��� ����.
�� ��� ��� �� ��� ��� �� ��� ����
�. ��� ��� 8��.
timestamp
�� ��� ��� � �� ��� ��� ���.
��� ����� �� ��� ����. ��� ��� 26��.
CCSID� ���� �� ���� ��� SBCS CCSID��.
ISO, EUR, USA �� JIS
�� ��� � �� �� ��� �����. ��� ��� 70 ����
�Datetime �� ��� ���� �����.
�� � ��
character-expression
�� �� ��� �� �� ���.
integer
��� ��� �� �� �� ���� �� �� �����. �� 1 - 32766
(� ��� 32765) ��� ���� ���. � �� ��� �� ���
�� ��� 4�� �� � ����.
�� ��� ��� �� � ��� ����.
v character-expression� � ��� ���� ��� �� �� 1��.
v ��� ��� ��� �� �� ��� � �� ��� �� �� ���
�.
CHAR
188 iSeries� DB2 UDB SQL ��� V5R2
||
|
|
|
|
||
|
|
|
|
|
�� ��� ��� �� �� ����. �� ��� ��� �� ���� �
� �� ���� ���� � ���. �� ��� ��� �� ���� �
�� ��. ��� ��� � ��� ��� �(SQLSTATE 01004)�
� ��.
CCSID� ���� CCSID� character-expression��.
�� � ��
integer-expression
�� �� �(SMALLINT, INTEGER �� BIGINT � �)� �� �
� ���
��� SQL �� ��� ���� ��� �� �� �� ��� ����. ���
��� �� �� �� ��� �� �� �� ��� � �� n�� ��
��. ��� �� ����.
v ��� �� ���
�� ��� 6��. ��� �� �� 6 �� �� ��� ���� ���
� � ���.
v ��� � ���
��� ��� 11��. ��� �� �� 11 �� �� ��� ���� �
��� � ���.
v ��� � ���
��� ��� 20��. ��� �� �� �� 20�� ���, ��� �����
���� � ���.
CCSID� ���� �� ���� ��� SBCS CCSID��.
�� � ��
decimal-expression
�� �� �� �(DECIMAL �� NUMERIC)� �� �� ���. ��
���� ���� ��� DECIMAL ��� �� �� � ���
� ����.
decimal-character
�� �� ���� �� ��� ��� � ��� 1 �� �� ��� ��
���. ��� ��� �� ���� ���. �� ��� ��� ��
���� ��� ���� �����. ��� ��� 102 ���� �����
� �����.
CHAR
� 3 � �� � 189
��� ��� �� �� �� ��� ����. ��� �� ��� � p �
����� , ��� p� ��� �� �� �� ��� �� decimal-expression
� �����. �� 0� �� ����. �� 0� � ��.
�� ��� 2+ p� , ��� p� decimal-expression� �����. � �� �
� �� �� ��� � �����.
CCSID� ���� �� ���� ��� SBCS CCSID��.
�� ��� � ��
floating-point expression
�� �� ��� �� �� ���.
decimal-character
�� �� ���� �� ��� ��� � ��� 1 �� �� ��� ��
���. ��� ��� �� ���� ���. �� ��� ��� ��
���� ��� ���� �����. ��� ��� 102 ���� �����
� �����.
��� �� ��� ��� ���� ��� �� �� �� ��� ����. ��
� ��� 24��. ��� �� ��� � �� ��� �� ����. ��
� ��� � �� ��� ���. ��� 0� ��� 0E0��. ��� �
�� ��� 0� � � �� � ��� ���� ��� �� �� ��� ��
��� �� ��� � ��� � �� ��� ��� ���.
���� �� �� 24�� �� ��� ���� ���� � ���.
CCSID� ���� �� ���� ��� SBCS CCSID��.
�
v PRSTDATE� 1988-12-25� �� �� �� ���� �����. � ��
� *MDY�� � ���� ��(/)��.
SELECT CHAR(PRSTDATE, USA)FROM PROJECT
�� ‘12/25/1988’� ��.
SELECT CHAR(PRSTDATE)FROM PROJECT
�� ‘12/25/88’� ��.
v STARTING� 17.12.30� �� �� ��, ��� �� HOUR_DUR
(DECIMAL(6,0))� 050000(� 5��)� �� �� �� ����� �����.
SELECT CHAR(STARTING, USA)FROM CL_SCHED
CHAR
190 iSeries� DB2 UDB SQL ��� V5R2
||
||
||
� ‘5:12 PM’� ��.
SELECT CHAR(STARTING + :HOUR_DUR, JIS)FROM CL_SCHED
��� ‘10:12:00’� ��.
v RECEIVED (�� ��)� PRSTDATE � STARTING � ��� �� �
� �� ��� �����.
SELECT CHAR(RECEIVED)FROM IN_TRAY
�� ‘1988-12-25-17.12.30.000000’� ��.
v CHAR �� ��� � �� �� ��� ��� EMPLOYEE ��
(VARCHAR(15)� ���) LASTNAME � ��� �� ��� 10�� ��
�.
SELECT CHAR(LASTNAME,10)FROM EMPLOYEE
(�� ��� ���) 10��� � ��� LASTNAME� �� �� ��
���� ��� �(SQLSTATE 01004)� � ��.
v CHAR �� ��� �� �� �����(SMALLINT� ���) EDLEVEL
� �� �� ����.
SELECT CHAR(EDLEVEL)FROM EMPLOYEE
EDLEVEL 18� CHAR(6) � ‘18����’(18 ��� 4 � ��)� � ��.
v STAFF �� ��� 9, ��� 2� ��� ��� SALARY � ��� ���
��. �� �� 18357.50�� �� ��(18357,50)�� �� � ��.
SELECT CHAR(SALARY, ’,’)FROM EMPLOYEE
‘18357,50���’ �� ����(18357,50 ��� 3 � ��� �).
v 20000.25�� � � �� SALARY � ��� �� ��� �� �� �
��� ����� �����.
SELECT CHAR(20000.25 - SALARY)FROM EMPLOYEE
‘-1642.75���’ �� ����(-1642.75 ��� 3 � ��� �).
v � � � � � DOUBLE_NUM� � � �� �� � � � �� �� �
-987.654321E-35�� ��� �����.
SELECT CHAR(:DOUBLE_NUM)FROM SYSIBM.SYSDUMMY1
�� � ‘-9.8765432100000002E-33’� ��.
CHAR
� 3 � �� � 191
||
||
||
||
||
||
CHARACTER_LENGTH
CHARACTER_LENGTH �� CHAR_LENGTH �� ��� ���� ��� �
���. �� �� �� 253 ���� �LENGTH�� �����.
��� �� �� ��� �� �� �� �� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
���( �� �� ���) ��� �� ���. �� ��� SBCS �� DBCS �
���. ��� ��� �� ��� ���. �� �� ���� ��� �� �
�� � �� ����.
�
v ��� �� ADDRESS� � ‘895 Don Mills Road’� �� �� �� ����
�� �����.
SELECT CHARACTER_LENGTH(:ADDRESS)FROM SYSIBM.SYSDUMMY1
� 18� ����.
�� CHARACTER_LENGTHCHAR_LENGTH
( string-expression ) ��
CHARACTER_LENGTH
192 iSeries� DB2 UDB SQL ��� V5R2
CLOB
CLOB �� ��� �� �� ��� ��� ����.
v � �� ��� SMALLINT, INTEGER �� BIGINT� ��
v � �� ��� � �� � ���� ���
v � �� ��� DOUBLE �� REAL� ���� �� ��� �
v � �� ��� �� ��� �� �� ���
v � �� ��� UCS-2 � ���� � ���
�: �� CAST ���� � �� ��� �� �� � ��� � ����. �
�� ��� 141 ���� �CAST ���� �����.
� ��� CLOB �����. � �� ��� �� � � �� ��� ��
� � �� , � �� ��� �� ��� ����.
�� � CLOB
character-expression
�� �� ��� �� �� ���.
�� � CLOB�� CLOB ( character-expression
, lengthDEFAULT , integer
) ��
��� � CLOB�� CLOB ( graphic-expression
, lengthDEFAULT , integer
) ��
�� � CLOB�� CLOB ( integer-expression ) ��
�� � CLOB�� CLOB ( decimal-expression )
, decimal-character��
�� ��� � CLOB�� CLOB ( floating-point-expression )
, decimal-character��
CLOB
� 3 � �� � 193
length
�� �� �� �� ���� �� �� �����. �� 1 - 2 147 483 647
��� ���� ���. � �� ��� �� ��� �� ��� 4��
�� � ����.
�� ��� ��� �� DEFAULT� ���
v character-expression� � ��� ���� ��� �� �� 1��.
v ��� ��� ��� �� �� ��� � �� ��� �� �� ���
�.
��� �� ��� ��� �� �� character-expression� �� ��� ��
���. �� ��� ��� �� ���� � �� ��. ��� ���
� ��� ��� �(SQLSTATE 01004)� � ��.
integer
��� CCSID� �����. �� SBCS CCSID �� �� �� CCSID��
� ���. � �� ��� SBCS CCSID� ��� SBCS ����. �
�� ��� �� CCSID� ��� �� ����. � �� ��� SBCS
CCSID� � �� ��� DBCS �� �� DBCS �� ���� � ��
��. � �� ��� 65535� � � ����.
� �� ��� ��� �� � �� ��� CCSID 65535� ���� �
��.
v � �� ��� � ��� ��� ����.
v � �� ��� SBCS ��� ��� SBCS ����. �� CCSID�
� �� ��� CCSID� ����.
v � �� ��� �� ��(DBCS �, DBCS �� �� DBCS ��)�
��� �� ����. �� CCSID� � �� ��� CCSID� ����.
��� � CLOB
graphic-expression
�� � ��� �� �� ���. DBCS � ������ � ��.
length
�� �� �� �� ���� �� �� �����. �� 1 - 2 147 483 647
��� ���� ���. ��� �� ���� �� ��� 4�� �� � �
���.
�� ��� ��� �� DEFAULT� ��� ��� �� ��
��� �� �� ��(��� n� � �� ��� �� ���).
v graphic-expression� � � ��� ��� ��� �� �� 1�
�.
CLOB
194 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v ��� SBCS ��� �� ��� n��.
v ��� �� ��� �� ��� (2.5*( n-1)) + 4��.
��� �� ��� ��� �� �� graphic-expression� �� ��� ���
��. � ���� ��� �� �� ��� � �� ��. ���
��� � ��� ��� �(SQLSTATE 01004)� � ��.
integer
��� CCSID� �����. �� SBCS CCSID �� �� �� CCSID��
� ���. � �� ��� SBCS CCSID� ��� SBCS ����. �
�� ��� �� CCSID� ��� �� ����. � �� ��� 65535
� � � ����.
� �� ��� ��� �� ��� CCSID� �� ���� ��� CCSID
��. ��� CCSID� �� ��� ��� �� ����. ���
CCSID� SBCS ��� ��� SBCS ����.
�� � CLOB
integer-expression
�� �� �� �(SMALLINT, INTEGER �� BIGINT � �)� �� �
� ���
��� SQL �� ��� ��� ��� �� �� �� ��� ����. ���
��� �� �� �� ��� �� �� �� ��� � �� n�� ��
��. ��� �� ����.
v ��� �� ��� ��� �� �� 6��.
v ��� � ��� ��� �� �� 11��.
v ��� � ��� ��� �� �� 20��.
��� �� ��� ��� �� ��� � ��� � �� �� ����. �� 0
� � ����. ��� �� ��� � �� ��� �� ����. �
�� ��� � �� ��� ���.
��� CCSID� �� ���� ��� SBCS CCSID��.
�� � CLOB
decimal-expression
�� �� �� �(DECIMAL �� NUMERIC)� �� �� ���. ��
���� ���� ��� DECIMAL ��� �� �� � ���
� ����.
decimal-character
�� �� ���� �� ��� ��� � ��� 1 �� �� ��� ��
CLOB
� 3 � �� � 195
|
|
|
|
|
|
|
���. ��� ��� �� ���� ���. �� ��� ��� ��
���� ��� ���� �����. ��� ��� 102 ���� �����
� �����.
��� ��� �� �� �� ��� ����. ��� �� ��� � p �
����� , ��� p� ��� �� �� �� ��� �� decimal-expression
� �����. �� 0� �� ����. �� 0� � ��.
��� �� �� 2+p� , ��� p� decimal-expression� �����. ���
�� ��� � �� ��� ��� ��� ��� � ��� � �� �� �
���. �� 0� � ����. ��� �� ��� �� ��� ���
��. ��� �� ��� �� �����.
��� CCSID� �� ���� ��� SBCS CCSID��.
�� ��� � CLOB
floating-point expression
�� �� ��� �� �(DOUBLE �� REAL)� �� �� ���
decimal-character
�� �� ���� �� ��� ��� � ��� 1 �� �� ��� ��
���. ��� ��� �� ���� ���. �� ��� ��� ��
���� ��� ���� �����. ��� ��� 102 ���� �����
� �����.
��� �� ��� ��� ���� ��� �� �� �� ��� ����.
��� �� �� 24��. ��� �� ��� 0� � �� � ���
decimal-character � ��� �� �� ��� �� �� �� ���� �� ��
��. ��� �� ��� � �� ��� �� ��� ��� �� �
�� ��� ���. ��� 0� ��� 0E0��.
��� CCSID� �� ���� ��� SBCS CCSID��.
�
v ��� �� ��� ‘This is a CLOB’� CLOB� ����.
SELECT CLOB(’This is a CLOB’)FROM SYSIBM.SYSDUMMY1
CLOB
196 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
COALESCE
COALESCE �� �� � � �� ��� �� ����.
��� ��� � ��� ���. �� ��� ��� � �� ��� ��� � �
���. �� � ���� �� ��� 80 ���� ���� ��� �����.
��� �� �� ��� �� ���.30
��� ��� ���� ���, �� ��� �� � � �� ����. ��
� �� ��� �� � � �� �� �� � � �� , ��� �� ��� �
� �� ���.
��� ��� ��� �� ��� �� ��. �� �� 93 ���� ���
�� �� �� ���� ��� �� �� ����� �� �� ��.
�
v DEPARTMENT �� �� ��� �� �� ��� � �� ���(MGRNO)�
� (�, �� ) � 'ABSENT'� ����.
SELECT DEPTNO, DEPTNAME, COALESCE(MGRNO, ’ABSENT’), ADMRDEPTFROM DEPARTMENT
v EMPLOYEE �� �� ��� �� ��(EMPNO) � �(SALARY)� ���
� �� � (� �� ) � 0� ����.
SELECT EMPNO, COALESCE(SALARY,0)FROM EMPLOYEE
30.� �� ��� �� �� ��� � �� �� ��� � ����. ��� �� �� �� ��� ��� ���, �� �� �
�� � �� ��� ��� ��� ����.
�� COALESCE ( expression , expression ) ��
COALESCE
� 3 � �� � 197
CONCAT
CONCAT �� �� ��� �����. ��� �� ������ ���. �
� � ���� �� ��� 80 ���� ���� ��� �����.
�� ��� � �� �� �� �� ��� �� ����. �� �� �
� �� � � �� ��� �� � � �� , �� � �� �� ��
� ����.
CONCAT �� CONCAT ���� ����. ��� ��� 129 ���� ���
���� ��� �� �����.
�
v FIRSTNME� LASTNAME� �����.
SELECT CONCAT(FIRSTNME, LASTNAME)FROM EMPLOYEE
WHERE EMPNO =’000010’
� ‘CHRISTINEHAAS’� ����.
�� CONCAT ( string-expression-1 , string-expression-2 ) ��
CONCAT
198 iSeries� DB2 UDB SQL ��� V5R2
COS
COS �� ��� ���� ��� ��� ��� ��� ��� ��. COS
� ACOS �� ����.
��� �� �� � �� �� �� �� ������ ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� COSINE� � 1.5� DECIMAL(2,1) ��� ���� �����.
SELECT COS(:COSINE)FROM SYSIBM.SYSDUMMY1
�� � 0.07� ����.
�� COS ( numeric-expression ) ��
COS
� 3 � �� � 199
COSH
COSH �� ��� �!�� ���� ��� ��� ��� ��� ���
��.
��� �� �� � �� �� �� �� ������ ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� HCOS� � 1.5� DECIMAL(2,1) ��� ���� �����.
SELECT COSH(:HCOS)FROM SYSIBM.SYSDUMMY1
�� � 2.35� ����.
�� COSH ( numeric-expression ) ��
COSH
200 iSeries� DB2 UDB SQL ��� V5R2
COT
COT �� ��� ����� ��� ��� ��� ��� ��� ��.
��� �� �� � �� �� �� �� ������ ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� COTAN� � 1.5� DECIMAL(2,1) ��� ���� �����.
SELECT COT(:COTAN)FROM SYSIBM.SYSDUMMY1
�� � 0.07� ����.
�� COT ( numeric-expression ) ��
COT
� 3 � �� � 201
CURDATE
CURDATE �� SQL�� �� ���� ��� � � �� ��� ��� �
� ����. CURDATE �� �� �� CURRENT DATE �� �����
�� �� �� ����.
�� �� �� ���. ��� �� � � ����.
�� �� SQL��� �� �� ��� �� �� ���� CURTIME
�� NOW ��� � �� CURRENT DATE, CURRENT TIME �� CURRENT
TIMESTAMP �� ����� ��� �� �� �� ��� ����.
�
v � �� ��� �� �� ����.
SELECT CURDATE()FROM SYSIBM.SYSDUMMY1
�� CURDATE ( ) ��
CURDATE
202 iSeries� DB2 UDB SQL ��� V5R2
CURTIME
CURTIME �� SQL�� �� ���� ��� � � �� ��� ��� ��
� ����. CURTIME �� �� �� CURRENT TIME �� �����
�� �� ����.
�� �� �� ����. ��� �� � � ����.
�� �� SQL��� �� �� ��� �� �� ���� CURDATE
�� NOW ��� � �� CURRENT DATE, CURRENT TIME �� CURRENT
TIMESTAMP �� ����� ��� �� �� �� ��� ����.
�
v � �� ��� �� ��� ����.
SELECT CURTIME()FROM SYSIBM.SYSDUMMY1
�� CURTIME ( ) ��
CURTIME
� 3 � �� � 203
DATE
DATE �� ��� �� ����.
��� �� �� � date, timestamp, �� ��� �� � �� � � � �
� �� �� ������ ���.
v expression� �� ���� , CLOB��� �� �� �� � ��� �
��.
– � �� ����� �� �� ��� ��. � � ����� � ��
� �� ��� 70 ���� �Datetime �� ��� ����� �����.
– �� �� yyyynnn ���� ��� �� �� 7� �� ���. ���,
yyyy� ��� ��� ��� nnn� �� ��� � �� ��� 001 - 366
��� ���.
v expression� �� , 3652059 �� ��� ���.
�: �� CAST ���� � �� �� � ��� � ����. ��� ���
141 ���� �CAST ���� �����.
� ��� ���. ��� �� � � �� ��� �� � � �� ��
� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� ����� :
��� ����� � ����.
v ��� �� :
��� �� ���.
v ��� �� :
��� January 1, 0001��� n-1�� �� ��� n� �� �� ���
�.
v ��� �� ���� :
��� ����� ��� � �� ����� ��� ���� �� � ��
��.
�� ��� ��� SBCS ��� ��� CCSID� �� �� CCSID� ��
SBCS ��� � �� � �� ��� ��� �� SBCS��� ���
CCSID� �� ��.
�� DATE ( expression ) ��
DATE
204 iSeries� DB2 UDB SQL ��� V5R2
�� ��� ��� �� ��� ��� CCSID� �� �� CCSID� �� �
� ��� � �� � �� ��� ��� �� �� ��� ��� CCSID�
�� ��.
�
v RECEIVED (TIMESTAMP) ‘1988-12-25-17.12.30.000000’� �� �� ��
��� �����.
SELECT DATE(RECEIVED)FROM IN_TRAY
‘1988-12-25’� �� ��� ��.
v �� ISO ��� ��� ��� DATE ��� �� ��� ����.
SELECT DATE(’1988-12-25’)FROM SYSIBM.SYSDUMMY1
‘1988-12-25’� �� ��� ��.
v �� EUR ��� ��� ��� DATE ��� �� ��� ����.
SELECT DATE(’25.12.1988’)FROM SYSIBM.SYSDUMMY1
‘1988-12-25’� �� ��� ��.
v �� ��� DATE ��� �� ��� ����.
SELECT DATE(35)FROM SYSIBM.SYSDUMMY1
‘0001-02-04’� �� ��� ��.
DATE
� 3 � �� � 205
||
DAY
DAY �� �� �(day) ��� ����.
��� �� �� � date, timestamp, �� ��� �� � �� � � � �
� �� �� ������ ���.
v expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� ��� 70
���� �Datetime �� ��� ����� �����.
v expression� �� , � �� �� ���� ����� ���. datetime
��� � ��� 133 ���� �Datetime ����� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� �, ����, � �� ����� � �� ��� ��� :
��� �� �(day) ��� 1 - 31 ��� �� ���.
v ��� ���� �� �� ���� ��� :
��� �� �� ���� -99�� 00 ��� ����. 0� � ��� ���
�� ��� ����.
�
v PROJECT �� ��� END_DAY(SMALLINT)� WELD LINE PLANNING
����(PROJNAME) �� ���(PRENDATE)� �����.
SELECT DAY(PRENDATE)INTO :END_DAYFROM PROJECTWHERE PROJNAME = ’WELD LINE PLANNING’
END_DAY� 15� �� ��.
v � ��� �!� � � ��� ����.
SELECT DAY( DATE(’2000-03-15’) - DATE(’1999-12-31’) )FROM SYSIBM.SYSDUMMY1
�� 15� ��.
�� DAY ( expression ) ��
DAY
206 iSeries� DB2 UDB SQL ��� V5R2
DAYOFMONTH
DAYOFMONTH �� � �� �� ��� 1-31 ��� ��� ����.
��� �� �� � date, timestamp, �� ��� � � �� �� �� ��
���� ���.
expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� �� ��� 70
���� �Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�
v PROJECT �� ��� END_DAY(SMALLINT)� WELD LINE PLANNING
����(PROJNAME) �����(PRENDATE)� �����.
SELECT DAYOFMONTH(PRENDATE)INTO :END_DAYFROM PROJECTWHERE PROJNAME = ’WELD LINE PLANNING’
END_DAY� 15� �� ��.
�� DAYOFMONTH ( expression ) ��
DAYOFMONTH
� 3 � �� � 207
DAYOFWEEK
DAYOFWEEK �� � �� ��� ��� 1 - 7 ��� ��� � 1
� ���, 7� �����. �� ��� 209 ���� �DAYOFWEEK_ISO�� �
����.
��� �� �� � date, timestamp, �� ��� � � �� �� �� ��
���� ���.
expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� �� ��� 70
���� �Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�
v EMPLOYEE �� ��� ��� �� DAY_OF_WEEK(INTEGER)� Christine
Haas(EMPNO=‘000010’)� ��(HIREDATE)� �����.
SELECT DAYOFWEEK(HIREDATE)INTO :DAY_OF_WEEKFROM EMPLOYEEWHERE EMPNO = ’000010’
DAY_OF_WEEK� 6 ���� �� ��.
v �� ��� � �� �: 1, 2, 1 � 2� ����.
SELECT DAYOFWEEK(CAST(’10/11/1998’ AS DATE)),DAYOFWEEK(TIMESTAMP(’10/12/1998’,’01.02’)),DAYOFWEEK(CAST(CAST(’10/11/1998’ AS DATE)) AS CHAR(20))),DAYOFWEEK(CAST(TIMESTAMP(’10/12/1998’,’01.02’) AS CHAR(20))),
FROM SYSIBM.SYSDUMMY1
�� DAYOFWEEK ( expression ) ��
DAYOFWEEK
208 iSeries� DB2 UDB SQL ��� V5R2
DAYOFWEEK_ISO
DAYOFWEEK_ISO �� � �� ��� ��� 1 - 7 ��� ��� �
1� ���, 7� �����. �� ��� 208 ���� �DAYOFWEEK�� �
����.
��� �� �� � date, timestamp, �� ��� � � �� �� �� ��
���� ���.
expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� �� ��� 70
���� �Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�
v EMPLOYEE �� ��� ��� �� DAY_OF_WEEK(INTEGER)� Christine
Haas(EMPNO=‘000010’)� ��(HIREDATE)� �����.
SELECT DAYOFWEEK_ISO(HIREDATE)INTO :DAY_OF_WEEKFROM EMPLOYEEWHERE EMPNO = ’000010’
�� �� ��� � DAY_OF_WEEK� 5, ���� �� ��.
v �� ��� � �� � 7, 1, 7 � 1� ����.
SELECT DAYOFWEEK_ISO(CAST(’10/11/1998’ AS DATE)),DAYOFWEEK_ISO(TIMESTAMP(’10/12/1998’,’01.02’)),DAYOFWEEK_ISO(CAST(CAST(’10/11/1998’ AS DATE)) AS CHAR(20))),DAYOFWEEK_ISO(CAST(TIMESTAMP(’10/12/1998’,’01.02’) AS CHAR(20))),
FROM SYSIBM.SYSDUMMY1
�� DAYOFWEEK_ISO ( expression ) ��
DAYOFWEEK_ISO
� 3 � �� � 209
DAYOFYEAR
DAYOFYEAR �� 1� � �� ��� 1 - 366 ��� ��� � 1�
1� 1���.
��� �� �� � date, timestamp, �� ��� � � �� �� �� ��
���� ���.
expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� �� ��� 70
���� �Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�
v EMPLOYEE �� ��� ���� �� (HIREDATE)� �� �� ���
�� AVG_DAY_OF_YEAR (INTEGER)� �����.
SELECT AVG(DAYOFYEAR(HIREDATE))INTO :AVG_DAY_OF_YEAR
FROM EMPLOYEE
AVG_DAY_OF_YEAR� 202� �� ��.
�� DAYOFYEAR ( expression ) ��
DAYOFYEAR
210 iSeries� DB2 UDB SQL ��� V5R2
DAYS
DAYS �� �� �� ��� ����.
��� �� �� � date, timestamp, �� ��� � � �� �� �� ��
���� ���.
expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� �� ��� 70
���� �Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
��� January 1, 0001�� D�� ���� 1 �� ���, D� DATE ��
��� ��� ��� ��� ���.
�
v PROJECT �� ��� ��� �� EDUCATION_DAYS(INTEGER)� ��
��(PROJNO) ‘IF2000’� �� ��(PRENDATE - PRSTDATE)� ����
�.
SELECT DAYS(PRENDATE) - DAYS(PRSTDATE)INTO :EDUCATION_DAYSFROM PROJECTWHERE PROJNO = ’IF2000’
EDUCATION_DAYS� 396�� �� ��.
v PROJECT �� ��� ��� �� TOTAL_DAYS(INTEGER)� ��(DEPTNO)
‘E21’� �� ������ ��� � ��(PRENDATE - PRSTDATE)� ��
� �����.
SELECT SUM(DAYS(PRENDATE) - DAYS(PRSTDATE))INTO :TOTAL_DAYSFROM PROJECTWHERE DEPTNO = ’E21’
TOTAL_DAYS� 1484� �� ��.
�� DAYS ( expression ) ��
DAYS
� 3 � �� � 211
DBCLOB
DBCLOB �� ��� ���� DBCLOB ��� ����.
�: �� CAST ���� 2 �� �� � ��� �� �� � ��� � �
���. ��� ��� 141 ���� �CAST ���� �����.
string-expression
�� ��� �� � ��� �� �� ���. BLOB� � ����.
CHAR �� VARCHAR � ��� � ����. � �� ��� ��� �
�� GRAPHIC �� CCSID� 65535� VARGRAPHIC� � ����.
length
�� �� �� � ���� �� �� �����. �� 1 - 1 073 741 823
��� ���� ���.
�� ��� ��� �� DEFAULT� ���
v expression� � ��� ���� ��� �� �� 1��.
v ��� ��� ��� �� �� ��� � �� ��� �� �� ���
�.
integer
�� �� �� � ���� CCSID(��� �� �� ID)� �����. DBCS
�� UCS-2 CCSID��� ���. CCSID� 65535� � � ����.
�� ���� S� �� �� �� �����.
v ��� ���� ��� ��� ��� ��� �� �� ��� ��� S
� ��� ��� ��� CCSID� ��� ��� ��� ��� ����(�
�� ��� 34 ���� ��� ���� �����).
v S� ��� ���� ��� ��� �� ��� � ��� �����.
� �� ��� ��� �� � �� ��� ��� ��� CCSID� ��
CCSID� �� ��. M� �� CCSID� �����. M� ��� �� ��
��.
v S� CCSID� �� CCSID� M� � CCSID��.
v S� CCSID� SBCS CCSID� :
– S� CCSID� �� CCSID� ��� M� � CCSID��.
– ��� ��� ��� ��� ����.
�� DBCLOB ( string-expression, length
DEFAULT , integer
) ��
DBCLOB
212 iSeries� DB2 UDB SQL ��� V5R2
�� �� M� �� CCSID ��� �����.
M �� CCSID �� DBCS �� ��
930 300 ��� EBCDIC X’FEFE’
933 834 ��� EBCDIC X’FEFE’
935 837 ��� EBCDIC X’FEFE’
937 835 ��� EBCDIC X’FEFE’
939 300 ��� EBCDIC X’FEFE’
5026 4396 ��� EBCDIC X’FEFE’
5035 4396 ��� EBCDIC X’FEFE’
� �� ��� ��� �� � �� ��� ��� � ��� CCSID�
� �� ��� CCSID� ����.
��� �� ��� ��� �� �� expression� �� ��� �����. ��
DBCLOB� �� �� � �� ��� �� ���� �� ��� ���
�� �� ����.
�� ��� DBCLOB �����. ���� �� � � ���, ��� �� �
� ����. ���� �� ��� ����. ���� �� ��� ��
EBCDIC ��� X’0E0F’� ��� �� �����.
��� DBCS � ��� SBCS � DBCS ��� ��� CCSID� ���
� M� �� �!�, ��� �� 2 �� ���� DBCS ��� ��, ���
�� 1 �� ���� EBCDIC �� �� ��� �� X’0E’ � X’0F’� ���
SBCS ��� � ��.
v ��� n �� ��� DBCS ��� ��� n �� ��� �� DBCS ��
��.
v ��� n �� ��� ��� DBCS ��� �� SBCS ��� ��� n �
� ��� ��� DBCS ����.
v ��� n �� ��� ��� DBCS ��� � SBCS ��� ��� n �
� ��� DBCS �� ����.
��� UCS-2 � ��� ��� � ��� �� ��� �����. ���
n �� ��� ��� n �� ��� ��� UCS-2��.
�
v EMPLOYEE �� ��� ��� �� VAR_DESC(VARGRAPHIC(24))� �
� ��(EMPNO) ‘000050’� ��(FIRSTNME)� ��� DBCLOB� ����
�.
DBCLOB
� 3 � �� � 213
SELECT DBCLOB(FIRSTNME)INTO :VAR_DESC
FROM EMPLOYEEWHERE EMPNO = ’000050’
DBCLOB
214 iSeries� DB2 UDB SQL ��� V5R2
DECIMAL �� DEC
DECIMAL �� ��� �� ��� ����.
v �
v ��� �� ��� ��
v ��� �� ��� ��
v �� ���� �� ��� ��
�: �� CAST ���� �� �� �� � ��� � ����. ��� ���
141 ���� �CAST ���� �����.
�� ��� ��� p� ��� s� ��� , ��� p � s� �� � � ��
����. � �� ��� �� � � �� ��� �� � � �� , � ��
��� �� ��� ����.
�� � ��
numeric-expression
��� � �� �� �� �� �����.
precision
1�� �� �� 31�� �� �� ��� ��� �� ��.
precision� ���� numeric-expression� �� �� �� ����.
v �� ���, ��, � �� 0� � ��� 2�� 15
v � ��� 19
v � ��� 11
v �� ��� 5
�� � ���� DECIMAL
DEC( numeric-expression )
, precision, scale
��
�� � ���� DECIMAL
DEC�
� ( character-expression ), precision
, scale, decimal-character
��
DECIMAL
� 3 � �� � 215
scale
0 ���� precision �� �� ��. ��� �� ���� 0��.
��� � �� ��� ��� p� ��� s� �� �� ��� ��� �
� �� ���. � ��� ��� � ��� �� ���� p-s�� �
��� ����.
�� � ��
character-expression
�� �� ��� ��� �� � ���. �� � �� ��� ��
�� ���� �� �� �� ��� ���� � ��� ����. ����
CLOB� ���� ���.
precision
1�� �� �� 31�� �� �� �� ��. ��� �� ����
15��.
scale
0 ���� precision �� �� ��. ��� �� ���� 0��.
decimal-character
� ���� �� ��� �� ��� ��� � ��� 1 �� �� ��� �
����. ��� ��� �� ���� ���. �� ��� ��� ��
���� ��� �� ����. ��� ��� 102 ���� ������
�����.
��� CAST(character-expression AS DECIMAL(p,s))� ��� ��� �� ��
��. ���� �� ��� ��� ���� ��� s�� � � �� �� �
�. character-expression�� �� ��(� �� ��) ��� � ���� p-s��
� ��� ����. ��� �� ��� decimal-character ��� ���
������ �� ����.
�
v DECIMAL �� ���(��� 5� ��� 2�) DECIMAL �� ��
EMPLOYEE �� �� EDLEVEL (�� � = SMALLINT)� �� ���
� ��� ���. EMPNO � ��� �� ���� ��� ���.
SELECT EMPNO, DECIMAL(EDLEVEL,5,2)FROM EMPLOYEE
v PROJECT �� ��� ��� ��� ��� ���� �� �� ��
(PRSTDATE)� �����. ��� �� PERIOD� � INTEGER�� ��
���. �� ��, �� �� � ���� ���� �� �� DECIMAL (8,0)
� �� “���”��� ���.
DECIMAL
216 iSeries� DB2 UDB SQL ��� V5R2
|
|
SELECT PRSTDATE + DECIMAL(:PERIOD,8)FROM PROJECT
v SALARY � �� �� �� ��� �� ��� �� ����� �� �
� � ��(�� ��, ���� 21400,50� ����). �������� �
�� �� CHAR(10)� ��� ��� �� newsalary� �� ��.
UPDATE STAFFSET SALARY = DECIMAL(:newsalary, 9, 2, ’,’)WHERE ID = :empid
SALARY �� 21400.50� ��.
DECIMAL
� 3 � �� � 217
DEGREES
DEGREES �� ����� ��� �� ��� ��� ����.
��� �� � �� � �� �� �����.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� RAD� � 3.142� DECIMAL(4,3) ��� ���� �����.
SELECT DEGREES(:RAD)FROM SYSIBM.SYSDUMMY1
�� � 180.0� ����.
�� DEGREES ( numeric-expression ) ��
DEGREES
218 iSeries� DB2 UDB SQL ��� V5R2
DIFFERENCE
DIFFERENCE �� ���� SOUNDEX �� ��� ���� �� �
�� ���� 0 - 4 ��� �� ����. 4 �� �� � ��� ���.
��� �� ��� �� ��� BLOB, CLOB, DBCLOB� ���� ���.
��� �� �� INTEGER��. �� ��� �� � � ��� ��� �� �
� �� , �� ��� ��� ��� ���.
�
v � �� �� ��� �����.
SELECT DIFFERENCE(’CONSTRAINT’,’CONSTANT’),SOUNDEX(’CONSTRAINT’),SOUNDEX(’CONSTANT’)
FROM SYSIBM.SYSDUMMY1
4, C523 � C523� � ��. � ���� �� SOUNDEX �� �
�� ��� 4(�� �� �)��.
v � �� �� ��� �����.
SELECT DIFFERENCE(’CONSTRAINT’,’CONTRITE’),SOUNDEX(’CONSTRAINT’),SOUNDEX(’CONTRITE’)
FROM SYSIBM.SYSDUMMY1
2, C523 � C536� � ��. � ���� �� �� SOUNDEX ��
��� �� ��� ����.
�� DIFFERENCE ( string-expression-1 , string-expression-2 ) ��
DIFFERENCE
� 3 � �� � 219
DIGITS
DIGITS �� � ���� �� ���� ����.
��� �� � �� � SMALLINT, INTEGER, BIGINT �� DECIMAL�
�� ���.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�� ��� ���� ���� ��� �� �� ��� �� �� �� ���
��. ��� �� �� ���� � ����. �� ��� �� 0�
� ���� � ���� �����. ���� ��� ��� ����.
v ��� �� 0 ��� ��� 5
v ��� � 0 ��� ��� 10
v ��� � ��� 19
v ��� ��� p� �� �� 0� � ��� ��� p
�� ���� CCSID� �� ���� ��� SBCS CCSID��.
�
v TABLEX �� 10���� � INTCOL��� INTEGER � �� ��� �
����. INTCOL� � � ���� �� ��� ����.
SELECT DISTINCT SUBSTR(DIGITS(INTCOL),1,4)FROM TABLEX
v COLUMNX� DECIMAL(6,2) �� �� �� , � � �� �� -6.28��
� �����.
SELECT DIGITS(COLUMNX)FROM TABLEX
� 1123� ����.
��� ���� � ���� � � �� 0� �� (� ���) �� 6� ���
��. �� �� ���� ��� ��� ����.
�� DIGITS ( numeric-expression ) ��
DIGITS
220 iSeries� DB2 UDB SQL ��� V5R2
DLCOMMENT
DLCOMMENT �� �� �� �� ��� � �� ����.
��� �� DataLink �� �� �� �� � ������ ���.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�� ��� VARCHAR(254)��.
�� ���� CCSID� DataLink ���� CCICD� ����.
�
v ��� �� HOCKEY_GOALS ��� ARTICLES � �� �����
�, �� � �� �����. ��� �� Richard ��(Maurice �� Henri)
� �� �� ���.
stmtvar = "SELECT DATE_OF_GOAL, DESCRIPTION, DLCOMMENT(ARTICLES)FROM HOCKEY_GOALSWHERE BY_PLAYER = ’Maurice Richard’ OR BY_PLAYER = ’Henri Richard’ ";
EXEC SQL PREPARE HOCKEY_STMT FROM :stmtvar;
v ��� ��� �� ��� TBLA ��� �� COLA � �� DataLink
���.
INSERT INTO TBLAVALUES (DLVALUE(’http://dlfs.almaden.ibm.com/x/y/a.b’,’URL’,’A comment’))
��� �� �� �� ��� ���.
SELECT DLCOMMENT(COLA)FROM TBLA
‘A comment’ �� ����.
�� DLCOMMENT ( DataLink-expression ) ��
DLCOMMENT
� 3 � �� � 221
DLLINKTYPE
DLLINKTYPE �� �� �� ��� �� � �� ����.
��� �� DataLink �� �� �� �� � ������ ���.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�� ��� VARCHAR(4)��.
�� ���� CCSID� DataLink ���� CCICD� ����.
�
v ��� ��� �� ��� TBLA ��� �� COLA � �� DataLink
���.
INSERT INTO TABLAVALUES( DLVALUE(’http://dlfs.almaden.ibm.com/x/y/a.b’,’URL’,’A comment’) )
��� �� �� �� ��� ���.
SELECT DLLINKTYPE(COLA)FROM TBLA
� ‘URL’� ����.
�� DLLINKTYPE ( DataLink-expression ) ��
DLLINKTYPE
222 iSeries� DB2 UDB SQL ��� V5R2
DLURLCOMPLETE
DLURLCOMPLETE �� �� � URL� DataLink ��� ��� URL� �
���. �� ‘://’� DLURLSCHEME� ��� �� DLURLSERVER ���
DLURLPATH� ��� �� �� ����. DataLink� � FILE LINK
CONTROL � READ PERMISSION DB� �� �� � ��� ���
���.
��� �� DataLink �� �� �� �� � ������ ���.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�� ��� �� �� �����. �� �� DataLink �� �� ����.
v DataLink� � FILE LINK CONTROL � READ PERMISSION DB� ��
��� �� �� ��� �� � �� 19��.
v ��� ��� ��� �� �� ��� �� ���.
DataLink �� ��� � �� ��� 0 �� �����.
�� ���� CCSID� DataLink ���� CCICD� ����.
�
v ��� ��� �� ��� TBLA ��� �� COLA � �� DataLink
���.
INSERT INTO TABLAVALUES( DLVALUE(’http://dlfs.almaden.ibm.com/x/y/a.b’,’URL’,’A comment’) )
��� �� �� �� ��� ���.
SELECT DLURLCOMPLETE(COLA)FROM TBLA
‘HTTP://DLFS.ALMADEN.IBM.COM/x/y/****************;a.b’ �� ���
�. ��� ****************� ��� ��� �����.
�� DLURLCOMPLETE ( DataLink-expression ) ��
DLURLCOMPLETE
� 3 � �� � 223
DLURLPATH
DLURLPATH �� �� � URL� DataLink ��� �� �� �� ��
���� � ��� � � ��� ����. ��� �� � ��
� ��� ���.
��� �� DataLink �� �� �� �� � ������ ���.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�� ��� �� �� �����. �� �� DataLink �� �� ����.
v DataLink� � FILE LINK CONTROL � READ PERMISSION DB� ��
��� �� �� ��� �� � �� 19��.
v ��� ��� ��� �� �� ��� �� ���.
DataLink �� ��� � �� ��� 0 �� �����.
�� ���� CCSID� DataLink ���� CCICD� ����.
�
v ��� ��� �� ��� TBLA ��� �� COLA � �� DataLink
���.
INSERT INTO TABLAVALUES( DLVALUE(’http://dlfs.almaden.ibm.com/x/y/a.b’,’URL’,’A comment’) )
��� �� �� �� ��� ���.
SELECT DLURLPATH(COLA)FROM TBLA
‘/x/y/****************;a.b’ �� ����. ��� ****************� ��
� ��� �����.
�� DLURLPATH ( DataLink-expression ) ��
DLURLPATH
224 iSeries� DB2 UDB SQL ��� V5R2
DLURLPATHONLY
DLURLPATHONLY �� �� � URL� DataLink ��� �� ���
�� ���� � ��� � � ��� ����. �� �� � ���
��� � ����.
��� �� DataLink �� �� �� �� � ������ ���.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�� ��� ��� �� �� �� �� �� �� �� �� �����.
DataLink �� ��� � �� ��� 0 �� �����.
�� ���� CCSID� DataLink ���� CCICD� ����.
�
v ��� ��� �� ��� TBLA ��� �� COLA � �� DataLink
���.
INSERT INTO TABLAVALUES( DLVALUE(’http://dlfs.almaden.ibm.com/x/y/a.b’,’URL’,’A comment’) )
��� �� �� �� ��� ���.
SELECT DLURLPATHONLY(COLA)FROM TBLA
� ‘/x/y/a.b’� ����.
�� DLURLPATHONLY ( DataLink-expression ) ��
DLURLPATHONLY
� 3 � �� � 225
DLURLSCHEME
DLURLSCHEME �� �� � URL� DataLink ��� ���� ����.
�� �� �����.
��� �� DataLink �� �� �� �� � ������ ���.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�� ��� VARCHAR(20)��.
DataLink �� ��� � �� ��� 0 �� �����.
�� ���� CCSID� DataLink ���� CCICD� ����.
�
v ��� ��� �� ��� TBLA ��� �� COLA � �� DataLink
���.
INSERT INTO TABLAVALUES( DLVALUE(’http://dlfs.almaden.ibm.com/x/y/a.b’,’URL’,’A comment’) )
��� �� �� �� ��� ���.
SELECT DLURLSCHEME(COLA)FROM TBLA
� ‘HTTP’� ����.
�� DLURLSCHEME ( DataLink-expression ) ��
DLURLSCHEME
226 iSeries� DB2 UDB SQL ��� V5R2
DLURLSERVER
DLURLSERVER �� �� � URL� DataLink ��� � ��� ���
�. �� �� �����.
��� �� DataLink �� �� �� �� � ������ ���.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�� ��� ��� �� �� �� �� �� �� �� �� �����.
DataLink �� ��� � �� ��� 0 �� �����.
�� ���� CCSID� DataLink ���� CCICD� ����.
�
v ��� ��� �� ��� TBLA ��� �� COLA � �� DataLink
���.
INSERT INTO TABLAVALUES( DLVALUE(’http://dlfs.almaden.ibm.com/x/y/a.b’,’URL’,’A comment’) )
��� �� �� �� ��� ���.
SELECT DLURLSERVER(COLA)FROM TBLA
� ‘DLFS.ALMADEN.IBM.COM’� ����.
�� DLURLSERVER ( DataLink-expression ) ��
DLURLSERVER
� 3 � �� � 227
DLVALUE
DLVALUE �� DataLink �� ����. �� UPDATE�� SET�� ��
�� �� �� INSERT�� VALUES�� ���, ����� �� �� ��
� �����. � �, (�� �� 0 �� ����) ��� ��� DataLink
�� � ��� ���� �� �� ��� �� ��.
data-location
�� �� URL� ��� URL �� � �� ��� �����.
���� �� ���� � URL ��� � URL ��� �� ��
�. �� ��� ���� �� ��� 32718� ���� ���.
linktype-string
DataLink �� �� �� ��� ��� �� ��� ���. �� ��
‘URL’��.
comment-string
� �� �� � ��� ��� ��� �� ��� ���. �� ��� �
��� �� ��� 254� ���� ���.
comment-string� ��� � ����. comment-string� ��� ���
comment-string� � �����.
� �� ��� �� � � �� ��� �� � � �� , � �� ��� ��
��� ����.
�� ��� DataLink ���.
DataLink� CCSID� �� � ��� �� �� CCSID� ����.
v � ���� �� ���� �� �� �� ��� � ��� CCSID�
� ���� CCSID� ��.31
v �� �� � �� CCSID(65535), UCS-2 � ��(13488), ���� �
�(905 �� 1026) �� ��� ��(290, 930 �� 5026)� �� ���
CCSID� �� ��� �� ��.
31. � ���� CCSID� 5026 �� 930� ��� CCSID� 939� ��.
�� DLVALUE ( data-location ), linktype-string
, comment-string
��
DLVALUE
228 iSeries� DB2 UDB SQL ��� V5R2
�� �� CCSID � ���� CCSID �� CCSID
65535 65535 �� ��� CCSID
65535 65535� �� � ��� CCSID(CCSID� 290, 930, 5026,
905, 1026 �� 13488� � CCSID�
�� ��� ��� �� �� ��).
290 � 4396
930 �� 5026 � 939
905 �� 1026 � 500
13488 � 500
� �� ��� DataLink �� ��� � �� �� �� ��� �����.
�� ��, � DataLink(200)� ��� �� �� �� �� ��� 200
����.
�
v �� �� ����. � �� ��� URL �� url_article � url_snapshot
�� ��� ��. url_snapshot_comment ���� �� � ���
��� � � ����. � movie� ��� �� url_movie_comment
��� �� ����.
INSERT INTO HOCKEY_GOALSVALUES(’Maurice Richard’,
’Montreal canadian’,’?’,’Boston Bruins,’1952-04-24’,’Winning goal in game 7 of Stanley Cup final’,DLVALUE(:url_article),DLVALUE(:url_snapshot, ’URL’, :url_snapshot_comment),DLVALUE(’’, ’URL’, :url_movie_comment) )
DLVALUE
� 3 � �� � 229
DOUBLE_PRECISION �� DOUBLE
DOUBLE_PRECISION � DOUBLE �� ��� �� ��� ��� ����.
v �
v ��� �� ��� ��
v ��� �� ��� ��
v �� ���� �� ��� ��
�: �� CAST ���� ���� �� ��� �� �� � ��� � ���
�. ��� ��� 141 ���� �CAST ���� �����.
numeric-expression
��� � �� �� �� �� �����.
��� ���� ���� �� ��� �� ��� ��� � �� ���
�.
character-expression
�� ��� �� �� ��� ��� CLOB� ���� ���.
��� CAST(character-expression AS DOUBLE PRECISION)� ��� ��
��. �� � �� ��� �� �� ���� �� ���, �� �� ��
��� ���� � ��� ����.
�� ��� ���� �� ��� ���. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
FLOAT� DOUBLE_PRECISION � DOUBLE� ����.
�
v EMPLOYEE �� ��� ��� 0� � ��� �� ��� �� ��
����. (SALARY � COMM)� � � DECIMAL �� ���. �
�� ��� �� ���� �� � ���� �� ���� ����
DOUBLE_PRECISION� SALARY� �� ��.
��� Double��� DOUBLE_PRECISION
DOUBLE( numeric-expression ) ��
��� Double��� DOUBLE_PRECISION
DOUBLE( character-expression ) ��
DOUBLE_PRECISION �� DOUBLE
230 iSeries� DB2 UDB SQL ��� V5R2
SELECT EMPNO, DOUBLE_PRECISION(SALARY)/COMMFROM EMPLOYEE
WHERE COMM > 0
DOUBLE_PRECISION �� DOUBLE
� 3 � �� � 231
EXP
EXP �� �� ��(e)� ��� ��� � ���� ����. EXP � LN
�� ����.
��� �� � �� � �� �� �����.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� E� � 3.453789832� DECIMAL(10,9) ��� ���� �����.
SELECT EXP(:E)FROM SYSIBM.SYSDUMMY1
�� � 31.62� ����.
�� EXP ( numeric-expression ) ��
EXP
232 iSeries� DB2 UDB SQL ��� V5R2
FLOAT
FLOAT �� �� �� ��� ��� ����.
FLOAT� DOUBLE_PRECISION � DOUBLE �� ����. ��� ��� 230
���� �DOUBLE_PRECISION �� DOUBLE�� �����.
��� Float��� FLOAT ( numeric-expression ) ��
��� Float��� FLOAT ( character-expression ) ��
FLOAT
� 3 � �� � 233
FLOOR
FLOOR �� numeric-expression�� �� �� �� � ��� ����.
��� �� �� � �� �� �� �� �����.
�� ��� �� ��� �� �� � ���� 0� � ��� ��� ��
� �� � � �� �� ����. �� ��, DECIMAL(5,5)� �� �� �
� ��� DECIMAL(5,0)� ��� �����.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�
v FLOOR �� ��� ���� ��� ���� �����.
SELECT FLOOR(SALARY)FROM EMPLOYEE
v � � �� �� FLOOR� �����.
SELECT FLOOR( 3.5),FLOOR( 3.1),FLOOR(-3.1),FLOOR(-3.5),
FROM SYSIBM.SYSDUMMY1
�� �� ��� ����.
3. 3. -4. -4.
� ��� ����.
�� FLOOR ( numeric-expression ) ��
FLOOR
234 iSeries� DB2 UDB SQL ��� V5R2
GRAPHIC
GRAPHIC �� ��� ���� �� �� � ����� ��� ���
�.
�: �� CAST ���� �� �� � ��� �� �� � ��� � ��
��. ��� ��� 141 ���� �CAST ���� �����.
�� ��� �� �� � ���(GRAPHIC)��.
���� �� � � ���, ��� �� � � ����. ���� �� ���
����.
�� � �����
character-expression
�� ��� ���� �����. CHAR �� VARCHAR � ��� � ��
��. ���� �� ��� �� EBCDIC ��� X’0E0F’� ��� ��
�����.
length
��� �� �� �� , � �� ��� �� � 1-16383 ��� �
� ���� � �� ��� �� 1-16382 ��� �� ����.
character-expression ��� ��� ���� � ��� �� ���� 2
�� ���� � ���.
�� ��� ��� �� DEFAULT� ��� ��� �� �� �
�� ��� �� �� ����.
��� � ��� ��� ��� �����. �� �� �� ���� �� �
� � �� ��� �� ���� � ��� �� �� �� �
���.
integer
��� CCSID� �����. DBCS �� UCS-2 CCSID��� ���. CCSID�
�� � ������� GRAPHIC ( character-expression
, lengthDEFAULT , integer
) ��
��� � ������� GRAPHIC ( graphic-expression
, lengthDEFAULT , integer
) ��
GRAPHIC
� 3 � �� � 235
65535� � � ����. CCSID� UCS-2 � ��� ��� � ��
� �� ��� �����. ��� n �� ��� ��� n �� ��� ���
UCS-2��.
integer� ��� ��� ��� CCSID� �� CCSID� �� �� ��. M
� �� CCSID� �����.
�� ���� S� �� �� �� �����.
v ��� ���� ��� ��� ��� ��� �� �� ��� ��� S
� ��� ��� ��� CCSID� ��� ��� ��� ��� ����(�
�� ��� 34 ���� ��� ���� �����).
v S� ��� ���� ��� ��� �� ��� � ��� �����.
M� ��� �� �� ��.
v S� CCSID� �� CCSID� M� � CCSID��.
v S� CCSID� SBCS CCSID� :
– S� CCSID� �� CCSID� ��� M� � CCSID��.
– ��� ��� ��� ��� ����.
�� �� M� �� CCSID ��� �����.
M �� CCSID �� DBCS �� ��
930 300 ��� EBCDIC X’FEFE’
933 834 ��� EBCDIC X’FEFE’
935 837 ��� EBCDIC X’FEFE’
937 835 ��� EBCDIC X’FEFE’
939 300 ��� EBCDIC X’FEFE’
5026 4396 ��� EBCDIC X’FEFE’
5035 4396 ��� EBCDIC X’FEFE’
SBCS� DBCS ��� ��� M� �� ����. CCSID� ���� ��� �
� 2 �� ���� DBCS ��� �� �� 1 �� ���� EBCDIC �
� �� ��� �� X’0E’ � X’0F’� ���� SBCS ��� � ��.
v ��� n �� ��� DBCS ��� ��� n �� ��� �� DBCS
����.
v ��� n �� ��� ��� DBCS ��� �� SBCS ��� ��� n
�� ��� ��� DBCS ����.
v ��� n �� ��� ��� DBCS ��� � SBCS ��� ��� n
�� ��� DBCS �� ����.
��� � �����
GRAPHIC
236 iSeries� DB2 UDB SQL ��� V5R2
graphic-expression
� ��� ���� �����.
length
��� �� �� �� , � �� ��� �� � 1-16383 ��� �
� ���� � �� ��� �� 1-16382 ��� �� ����.
graphic-expression ��� ��� ���� � ��� �� ���� 2
�� ���� � ���.
�� ��� ��� �� DEFAULT� ��� ��� �� �� �
�� ��� �� �� ����.
� ���� ��� �� �� ��� � �� ��.��� ��� �
��� ��� �(SQLSTATE 01004)� � ��.
integer
��� CCSID� �����. DBCS �� UCS-2 CCSID��� ���. CCSID�
65535� � � ����.
integer� ��� ��� ��� CCSID� � �� ��� CCSID��.
�
v EMPLOYEE �� ��� ��� �� DESC(GRAPHIC(24))� �� ��
(EMPNO) ‘000050’� ��(FIRSTNME)� ��� GRAPHIC ��� �����.
SELECT GRAPHIC( VARGRAPHIC(FIRSTNME))INTO :DESC
FROM EMPLOYEEWHERE EMPNO = ’000050’
GRAPHIC
� 3 � �� � 237
HASH
HASH �� � ��� �� �� ����. �� PARTITION �� ���
��. � ��� �� ��� ��� DB2 Multisystem �� �����.
date, time, timestamp, floating-point �� DataLink �� ��� �� �� ��
�� ��� � � ����.
�� ��� 0 - 1023 ��� �� � ����.
��� �� ��� 0��. ��� �� � � ����.
�
v HASH �� ��� � �� EMPNO � LASTNAME� ��� ��
�����. � ��� EMPLOYEE� �� �� �� � ��� ����.
SELECT HASH(EMPNO, LASTNAME)FROM EMPLOYEE
�� HASH (
,
expression ) ��
HASH
238 iSeries� DB2 UDB SQL ��� V5R2
HEX
HEX �� �� 16� ��� ����.
�� �� �� �� ��� � � ����.
�� ��� �� �����. ��� �� � � �� ��� �� � � �
� ��� �� ��� ����.
��� 16� ���� ���� , � ���� ��� � �� ��� ��
�, �� ���� ��� �� ��, �� �����. ��� datetime ��
, ��� ��� �� �� ��� 16� ����.32
��� �� �� ���� ��� �� �� �����. ��� ��� ��
� ��� �� �� �����. ��� �� �� ��� ���� �� ��
���. ���� �� �� �� ��� ��� 541 ���� �CREATE
TABLE�� �����.
��� �� �� �� �� �� 32766�� � � �� �� �� �� 32740
�� � � ����.
CCSID� ���� �� ���� ��� SBCS CCSID��.
�
v HEX �� ��� � ��� � ��� 16� ��� ����.
SELECT FIRSTNME, MIDINIT, LASTNAME, HEX(EDLEVEL)FROM EMPLOYEE
32. DATE, TIMESTAMP, � NUMERIC �� �� �� 16� ��� �� �� �� �� �� �� �!� ��� �� ������ �
�� ����.
�� HEX ( expression ) ��
HEX
� 3 � �� � 239
HOUR
HOUR �� �� �� ��� ����.
��� �� �� � time, timestamp, �� ��� �� � �� � � � �
� �� �� ������ ���.
v expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� �� ���
70 ���� �Datetime �� ��� ����� �����.
v expression� �� , �� �� �� ���� ����� ���. datetime
��� � ��� 133 ���� �Datetime ����� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� �, ����, � �� ����� � �� ��� ��� :
��� �� �� ��� , 0 - 24 ��� ����.
v ��� �� �� �� ���� ��� :
��� �� � ���� -99�� 99 ��� ����. 0� � ��� ���
�� ��� ����.
�
v CL_SCHED �� �� ��� ��� ��� �� ��� �����.
SELECT * FROM CL_SCHEDWHERE HOUR(STARTING) BETWEEN 12 AND 17
�� HOUR ( expression ) ��
HOUR
240 iSeries� DB2 UDB SQL ��� V5R2
IDENTITY_VAL_LOCAL
IDENTITY_VAL_LOCAL� ID � �� ��� ��� �� �� ���
���.
��� � ��� ����. �� �� ��� ID � �� �� �� �
� �� ��� DECIMAL(31,0)��.
�� �� ID � �� �� �� �� � INSERT�� ��� �� ID �
��� ���. INSERT�� ��� ���� ���� ���. �, �� ���
�� ��� ��� ���� �� �� ��� �� ��� ��� ��� � ��
� ���. ��, � �� �� ������ ��� ��� ��� �� ��.
�� ��� ��� �� ��� ��� ����.
��� �� ���� ��� �(ID � GENERATED BY DEFAULT� ���
)�� ������ ���� �� ��� ID ���.
��� �(null)� � � ����. �� � ���� ID � �� �� �� ��
INSERT�� ��� �� ��� �(null)��. ���� � �� ��
� � ��� ��.
IDENTITY_VAL_LOCAL �� ��� �� ��� ��� �� ����.
v ID � �� �� �� �� � INSERT ��
v UPDATE ��
v COMMIT ��
v ROLLBACK ��
��� �� � �� � �� ���� �� ����.
INSERT�� VALUES � � � �� ��
INSERT�� ���� INSERT�� �� � �� ��� �� �� �
�. �, INSERT��� IDENTITY_VAL_LOCAL� ��� , ���
�� �� INSERT��� ID � �� �� ��� ��� ���.
IDENTITY_VAL_LOCAL �� ��� ��� �� ��� � � INSERT
�� ��� �� �� �(null) �� ����.
INSERT�� ��� � �� ��
ID � �� �� INSERT�� ��� ��� � ��� �� ���
��� �� ��� ����. �� ��� INSERT ��� ���
�� IDENTITY_VAL_LOCAL ( ) ��
IDENTITY_VAL_LOCAL
� 3 � �� � 241
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� ��� ��� � �� INSERT� ����� ���� ��
�. �� �� �� �� ��� �� �!� ��� ��� � ����.
��� SELECT� � � �� ��
IDENTITY_VAL_LOCAL �� ��� ���� �� ��� ���, ��
� SELECT� ��� IDENTITY_VAL_LOCAL �� ��� ��� �
FETCH��� ����.
insert �� � �� �� � � �� ��
insert ��� �� ��� IDENTITY_VAL_LOCAL �� ��� ��
� ����.
insert �� � �� �� � � �� ��
� �� � �� � �� �� �� insert ��� ��� � ����.
� � , � ��� ��� � ��� �� ��� ��� SQL
�� ��� ID �� IDENTITY_VAL_LOCAL �� ��� �� ��
� ���� ��� � ����. ��� � ��� ���� ���
���� ��� �� �����.
insert �� ��� ��� ���� IDENTITY_VAL_LOCAL �� �
�� ����. �� insert ��� �� �� ���
IDENTITY_VAL_LOCAL �� ��� ��� ����. ��� �
�� �� I D �� �� i n s e r t ��� �� �� � � �
IDENTITY_VAL_LOCAL �� ��� ��� � ����. � �, ID
� �� �� ��� ��� ��� ���� ID �� ��� �
����.
after insert ��� ��� ��� IDENTITY_VAL_LOCAL �� �
�� ��� ID � �� �� �� �� ��� ��� ��� ��� �
� � INSERT�� ��� �� ID � ��� ���. ID � ��
�� �� INSERT�� IDENTITY_VAL_LOCAL �� ��� �� �
�� �� �� ��� ��� �� , �� � �� ����.
�� � �� �� INSERT� ��� � �� ��
��� ��� INSERT ��� �� ��� ��� ID � ���
��� ���(�, � SELECT�� ��� �). � �� ���
INSERT�� ��� ��� ������ ���� �� ��� �� �
�� ����. ��� �� ID � ��� �� �� ��� �� before
insert ��� ��� �� �� �� SET �� �� ��� ��� �
� � ����.
�
v EMPLOYEE �� ID � ��� �� �� IVAR� �����. VALUES�
� ���� �� �� 1��.
IDENTITY_VAL_LOCAL
242 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE EMPLOYEE(EMPNO INTEGER GENERATED ALWAYS AS IDENTITY,NAME CHAR(30),SALARY DECIMAL(5,2),DEPT SMALLINT)
INSERT INTO EMPLOYEE(NAME, SALARY, DEPTNO)VALUES(’Rupert’, 989.99, 50)
VALUES IDENTITY_VAL_LOCAL() INTO :IVAR
v � T1 � T2� ID C1� �� , ������ ���� � T1� C1
� �� � 1, 2, 3,...� ��� � T2� C1 � �� � 10, 11, 12,...� ��
���.
CREATE TABLE T1(C1 SMALLINT GENERATED ALWAYS AS IDENTITY,C2 SMALLINT)
CREATE TABLE T2(C1 DECIMAL(15,0) GENERATED BY DEFAULT AS IDENTITY ( START WITH 10 ) ,C2 SMALLINT)
INSERT INTO T1 ( C2 ) VALUES(5)
INSERT INTO T1 ( C2 ) VALUES(5)
SELECT * FROM T1
C1 C2
1 5
2 5
VALUES IDENTITY_VAL_LOCAL() INTO :IVAR
� �, IDENTITY_VAL_LOCAL �� IVAR� � 2� ����. ��
INSERT�� � �� T2� ����. ��� C2� IDENTITY_VAL_LOCAL
���� 2 �� �����.
INSERT INTO T2 ( C2 ) VALUES( IDENTITY_VAL_LOCAL() )
SELECT * FROM T2WHERE C1 = DECIMAL( IDENTITY_VAL_LOCAL(), 15, 0)
C1 C2
10 2
IDENTITY_VAL_LOCAL �� � INSERT ��� ��� �� �� 10�
��. � �� ������ ����� T2� C1� �� ��� ���. �
� � �� T2� �� , �� INSERT�� , ������ ����
ID C1� � 13� ��� C2� IDENTITY_VAL_LOCAL� � 10� ��
���. ���, C2�� T2� �� ��� ID �� ����.
IDENTITY_VAL_LOCAL
� 3 � �� � 243
|||||||||||
|
|
|
|||||||||||||
|||
||
|||
|
|
|
|
||||
|||
|||
|
|
|
|
|
INSERT INTO T2 ( C2, C1 ) VALUES( IDENTITY_VAL_LOCAL(), 13 )
SELECT * FROM T2WHERE C1 = DECIMAL( IDENTITY_VAL_LOCAL(), 15, 0)
C1 C2
13 10
v IDENTITY_VAL_LOCAL �� INSERT���� ��� � ����. � �
�� IDENTITY_VAL_LOCAL �� ��� ID � � �� ���� �
��. �� �� �� INSERT�� ��� � IDENTITY_VAL_LOCAL
�� ��� � �� ��. �� ��, �� � ��� �� ,
CREATE TABLE T3(C1 SMALLINT GENERATED BY DEFAULT AS IDENTITY,C2 SMALLINT)
�� INSERT��� C2 � �� � 25� ���, ������ ���� C1
ID � � 1� �����. � � IDENTITY_VAL_LOCAL �� ��� �
�� � �� ��� 1� �� ��.
INSERT INTO T3 ( C2 ) VALUES( 25 )
�� INSERT���, IDENTITY_VAL_LOCAL �� ��� 2� �� �
����. 1 �(� �� �� C1 � ��� ID �)� C2� �� ��. ���
��� ���� C1 ID � 2 �� �����. � � IDENTITY_VAL_LOCAL
�� ��� ��� � �� ��� 2� �� ��.
INSERT INTO T3 ( C2 ) VALUES( IDENTITY_VAL_LOCAL() )
�� INSERT���, IDENTITY_VAL_LOCAL �� �� ��� C2� �
� ���, ���� ID � C1� 11 �� �����. 2 �( �� �� C1
� ��� ID �)� C2� �� ��. C1� 11� ���
IDENTITY_VAL_LOCAL �� ��� ��� � �� ��� 11� ��
��.
INSERT INTO T3 ( C2, C1 ) VALUES( IDENTITY_VAL_LOCAL(), 11 )
3 INSERT�� �� ��, � T3� ��� ��.
C1 C2
1 25
2 1
11 2
T3� ��� VALUES� ���� INSERT�� � ��� �� ���� �
���. �, INSERT�� VALUES��� IDENTITY_VAL_LOCAL� ���
, ��� �� �� INSERT��� ID � �� �� ��� ��� ��
�.
IDENTITY_VAL_LOCAL
244 iSeries� DB2 UDB SQL ��� V5R2
||||
|||
|||
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
||
||
|||
|
|
|
|
IFNULL
IFNULL �� �� � � �� ��� �� ����.
IFNULL �� � ��� �� COALESCE ��� �� ����. ���
��� 197 ���� �COALESCE�� �����.
�
v EMPLOYEE �� �� ��� �� ��(EMPNO)� �(SALARY)� ��� �
�� � (�, �� ) � 0� ����.
SELECT EMPNO, IFNULL(SALARY,0)FROM EMPLOYEE
�� IFNULL ( expression , expression ) ��
IFNULL
� 3 � �� � 245
INTEGER �� INT
INTEGER �� ��� �� ��� ����.
v �
v ��� �� ��� ��
v ��� �� ��� ��
v �� ���� �� ��� ��
�: �� CAST ���� �� �� �� � ��� � ����. ��� ���
141 ���� �CAST ���� �����.
��� ���
numeric-expression
��� � �� �� � �� �� �����.
��� numeric-expression� ��� ��� � �� �� ��� ���
�� ������. ��� �� ��� �� � �� �� ��� ���
����. ��� �� ��� �� ��.
��� ���
character-expression
�� ��� �� �� ���
���� ��� �� ��� ��� ����. ���� CLOB� ���� �
��.
��� CAST( character-expression AS INTEGER)� ��� ����. �� �
�� ��� �� �� ���� �� ���, �� �� �� ��� ���
� � ��� ����. ��� �� ��� �� � �� �� ��� ��
� ����. ��� �� ��� �� ��.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
��� ����� INTEGER
INT( numeric-expression ) ��
��� ����� INTEGER
INT( character-expression ) ��
INTEGER
246 iSeries� DB2 UDB SQL ��� V5R2
�
v EMPLOYEE �� ��� � ��(EDLEVEL)� �� �(SALARY) ��
�� �����. ��� �� ��� �����. ����� �� ��� ���
�� �� ��(EMPNO)� �� ���.
SELECT INTEGER(SALARY / EDLEVEL), SALARY, EDLEVEL, EMPNOFROM EMPLOYEE
INTEGER
� 3 � �� � 247
JULIAN_DAY
JULIAN_DAY �� ��� 4712� 1� 1�(���� �� �)�� ��� �
�� ���� �� ���� �� �� ����.
��� �� �� � �, ����, �� ����� � �� ��� �� �
� �� �� �� ������ ���. �� ��� �� �� �� ���
CLOB��� � ��. � � ����� � ��� �� ��� 70 ����
�Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � ����. ��� ��� ��� � �
��.
�
v EMPLOYEE �� �� ��� �� ��� �� JDAY� ���� �� �
�� Christine Haas(EMPNO = ‘000010’)� ��(HIREDATE =
‘1965-01-01’)� �����.
SELECT JULIAN_DAY(HIREDATE)INTO :JDAY
FROM EMPLOYEEWHERE EMPNO = ’000010’
��� JDAY� 2438762� ������.
v �� ��� �� JDAY� ���� � 1998� 1� 1�� �����.
SELECT JULIAN_DAY(’1998-01-01’)INTO :JDAYFROM SYSIBM.SYSDUMMY1
��� JDAY� 2450815� ������.
�� JULIAN_DAY ( expression ) ��
JULIAN_DAY
248 iSeries� DB2 UDB SQL ��� V5R2
LAND
LAND �� �� ���� � ‘AND’� ���� ����. �� � ��
���� ���, �� ���� AND �� ���, �� ��� ��� ���
�� ��� AND � ��� ����. ��� �� ���� ���, ���� �
���.
��� �� ������ � LOB� � � ����. ��� �� �� ��� �
� � ���� � � ����.
��� ��� �� ��� �� ��. �� �� ��� �� �� ��.
v �� ��� �� �� ���� ��� �� n� �� �� ���� , ��
� n� �� � ��� ����.
v �� ��� �� �� ���� ��� �� � n� �� �� ���� ,
��� n� �� � �� �� ��� �� ���. ��� �� ��� m�
���, m� �� � ��� �� ����.
��� �� � � �� ��� �� � � �� , ��� �� ��� �
���.
��� CCSID� 65535��.
�
v ��� �� L1� � X’A1B1’� �� CHARACTER(2) ��� ��, ��� �
� L2� � X’F0F040’� �� CHARACTER (3) ��� ��, ��� �� L3
� � X’A1B10040’� �� CHARACTER(4) ��� ��� �����.
SELECT LAND(:L1,:L2,:L3)FROM SYSIBM.SYSDUMMY1
� X’A0B00000’� ����.
v �� ��,
SELECT LAND(:L3,:L2,:L1)FROM SYSIBM.SYSDUMMY1
� X’A0B00040’� ����. �� � ��� ��(X’40’)�� � � �
AND� � �� �����.
�� LAND ( character-expression , character-expression ) ��
LAND
� 3 � �� � 249
LCASE
LCASE �� ��� CCSID� �� �� ��� ���� ��� ���� ��
��.
LCASE �� LOWER �� ����. ��� ��� 260 ���� �LOWER�
� �����.
�� LCASE ( string-expression ) ��
LCASE
250 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
LEFT
LEFT �� �� �� integer ��� string-expression� �����.
string-expression� �� ���� ��� �� �����, � ��� 1 ��
��. string-expression� � ���� ��� � �����, � ���
DBCS �� UCS-2 ����. string-expression� 2� ���� ��� 2�
�����, � ��� 1 ����.
string-expression
��� �� ���� ��� ���. String-expression� �� �� �� �
� �� ���, � ��� �� 2� ������ ���.
string-expression� ����� string-expression� 0 �� ��� ��
����. string-expression� � ���� ��� DBCS �� UCS-2
����. string-expression� �� ���� , ��� �� ��� �� 2
� �����, � ��� 1 ����.33
integer
��� ��� ��� ���� �����. integer� 0 ���� n ��� �
��. ��� n� string-expression� �� ���. � �, �� �� 0��
�� � ��.
��� string-expression� ����� �� ���� string-expression� �
��� ��� �� �� ��(�� 2� ���� 16�� 0)� � ���.
�� ��� string-expression� �� �� ��� �� � � string-expression
� �� �� �� �� �� ��� �� �� �����.
v string-expression� GRAPHIC �� VARGRAPHIC� VARGRAPHIC
v string-expression� CHAR �� VARCHAR� VARCHAR
v string-expression� DBCLOB� DBCLOB
v string-expression� CLOB� CLOB
v string-expression� BLOB� BLOB
integer� ���� ��� BLOB, CLOB �� DBCLOB� � , �� ��
� �� �� �����.
��� �� ��� integer��.
33. LEFT �� �� �� ���� �����. � �, LEFT� ��� �� ��� �� ���� ��� � !� ���� �� �� ��
���� �� � ����.
�� LEFT ( string-expression , integer ) ��
LEFT
� 3 � �� � 251
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� ��� �� � � ��� ��� �� � � �� , �� ��� ��� ���
���.
��� CCSID� string-expression� CCSID� ����
�
v ��� �� NAME(VARCHAR(50))� 'KATIE AUSTIN' �, ��� ��
FIRSTNAME_LEN(int)� 5 �� ���� �����.
SELECT LEFT(:NAME, :FIRSTNAME_LEN)FROM SYSIBM.SYSDUMMY1
� 'KATIE'� ����.
LEFT
252 iSeries� DB2 UDB SQL ��� V5R2
LENGTH
LENGTH �� �� ��� ����. �� �� �� 192 ����
�CHARACTER_LENGTH�� �����.
��� �� �� �� �� �� �� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
��� ��� ����. ��� ��� �� ��� ���. �� �� ����
��� �� �� � �� ����.
� ���� ��� 2 �� ��� �� ���( �� �� 2� �� �). �
� �� �� ��� �� ��� � ��� �� ���.
�:
v �� ��� 2
v � ��� 4
v � ��� 8
v ��� p� � ��� p
v ��� p� � ��� (p/2)+1� �� ��
v ���� ��� 4
v ���� ��� 8
v � ID� 26
�� ���:
v ��� ��
� ���:
v ����� DBCS �� UCS-2 �� �
Datetime �:
v ��� 3
v �� 4
v ����� 10
DataLink �:
�� LENGTH ( expression ) ��
LENGTH
� 3 � �� � 253
|
v DataLink �� ��� � ��� �� �� �(DataLink� FILE LINK
CONTROL � READ PERMISSION DB� 19� ����).
�
v ��� �� ADDRESS� � ‘895 Don Mills Road’� �� �� �� ����
�� �����.
SELECT LENGTH(:ADDRESS)FROM SYSIBM.SYSDUMMY1
� 18� ����.
v PRSTDATE� DATE �� ��� �����.
SELECT LENGTH(PRSTDATE)FROM PROJECT
� 4� ����.
v PRSTDATE� DATE �� ��� �����.
SELECT LENGTH(CHAR(PRSTDATE, EUR))FROM PROJECT
� 10� ����.
LENGTH
254 iSeries� DB2 UDB SQL ��� V5R2
|
||
|
|
||
|
LN
LN �� �� �� �� �� ����. LN � EXP �� ����.
��� �� �� � �� �� �� �� �����. �� �� 0�� �
� ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� NATLOG� � 31.62� DECIMAL(4,2) ��� ���� �����.
SELECT LN(:NATLOG)FROM SYSIBM.SYSDUMMY1
�� � 3.45� ����.
�� LN ( numeric-expression ) ��
LN
� 3 � �� � 255
LNOT
LNOT �� �� ���� � NOT� ���� ����.
��� �� ������ �� LOB� � � ����. ��� MIXED �� ��
� �� � ���� � � ����.
��� �� � � �� �� �� �� �� � � �� �� ����. ��
� �� �� ���� ��� �� ��� �� �� �� ��� ����. �
�� �� � � �� ��� �� � � �� ��� �� ��� ��
��.
��� CCSID� 65535��.
�
v ��� �� L1� � X’F0F0’� CHARACTER(2) ��� ���� �����.
SELECT LNOT(:L1)FROM SYSIBM.SYSDUMMY1
� X’0F0F’� ����.
�� LNOT ( character-expression ) ��
LNOT
256 iSeries� DB2 UDB SQL ��� V5R2
LOCATE
LOCATE �� �� ���(source-string) �� � �� � ���(search-string)
� �� �� ����. search-string� �� � �� ��� �� ��� 0
��. search-string� �� ��� 1�� source-string� �� �� ��� �
��. ��� ��� ��� , ��� ��� source-string� �� �� ��
���.
search-string
��� ���� ��� ���. search-string� �� ���, � ��� �
� 2� ��� ���� � � ����. source-string� ��� � ��� ��
�.
source-string
��� �� �� ���� ��� ���. source-string� �� ���, �
��� �� 2� ��� ���� � � ����.
start
��� ��� source-string� �� ��� ���. � ����� ���.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
, ��� �� ��� ����.
start� ��� �� ��� ����.
POSSTR( SUBSTR(source-string,start) , search-string )
start� ��� �� �� ��� ����.
POSSTR( source-string , search-string )
��� ��� 278 ���� �POSITION �� POSSTR�� �����.
search-string� CCSID� source-string� CCSID� �� source-string� CCSID
� �� ��.
�
v � � ��� �� �� IN_TRAY �� �� ��� �� NOTE_TEXT �
� �� ’GOOD’� �� � �� ��� RECEIVED � SUBJECT � ��
���.
SELECT RECEIVED, SUBJECT, LOCATE(’GOOD’, NOTE_TEXT)FROM IN_TRAYWHERE LOCATE(’GOOD’, NOTE_TEXT) <> 0
�� LOCATE ( search-string , source-string ), start
��
LOCATE
� 3 � �� � 257
LOG10
LOG10 �� �� �� ��(�� 10)� ����. LOG10 � ANTILOG �
� ����.
�� �� � �� �� ��� � � ����.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
LOG� LOG10� �����. �� �� DB2 ��� ���� � �� ��.
LOG10� �� ������ ��� � ������� �� �� �� ��� LOG
� ��� ��� LOG � ���� ���.
�
v ��� �� L� � 31.62� DECIMAL(4,2) ��� ���� �����.
SELECT LOG10(:L)FROM SYSIBM.SYSDUMMY1
�� � 1.49� ����.
�� LOG10 ( numeric-expression ) ��
LOG10
258 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
LOR
LOR �� �� ���� � OR� ���� ����. � �� � �� ��
���� ���, �� ���� OR �� ���, �� ��� ��� ��� �
� ��� OR � ��� ����. ��� �� ���� ���, ���� �
���.
��� �� ������ � LOB� � � ����. ��� �� �� ��� �
� � ���� � � ����.
��� ��� �� ��� �� ��. �� �� ��� �� �� ��.
v �� ��� �� �� ���� ��� �� n� �� �� ���� , ��
� n� �� � ��� ����.
v �� ��� �� �� ���� ��� �� � n� �� �� ���� ,
��� n� �� � �� �� ��� �� ���. ��� �� ��� m�
���, m� �� � ��� �� ����.
��� �� � � �� ��� �� � � �� , ��� �� ��� �
���.
��� CCSID� 65535��.
�
v ��� �� L1� � X’0101’� �� CHARACTER(2) ��� ��, ��� ��
L2� � X’F0F000’� �� CHARACTER(3) ��� ��, ��� �� L3� �
X’0000000F’� �� CHARACTER(4) ��� ���� �����.
SELECT LOR(:L1,:L2,:L3)FROM SYSIBM.SYSDUMMY1
� X’F1F1000F’� ����.
v �� ��,
SELECT LOR(:L3,:L2,:L1)FROM SYSIBM.SYSDUMMY1
� X’F1F1404F’� ����. �� � ��� ��(X’40’)�� � � � OR
� � �� �����.
�� LOR ( character-expression , character-expression ) ��
LOR
� 3 � �� � 259
LOWER
LOWER �� ��� CCSID� �� �� ��� ���� ��� ���� �
���. SBCS � UCS-2 � ���� �� ��. �� A-Z� a-z� ���,
� �� ��� �� ��� �� ���(�� )� �� ��. � ��� ��
� ����� �� �� ��� iSeries Information Center� ��� �� UCS-2
�� 1 � � ��� �����.
string-expression
��� ���� ��� ���. ��� ���� ���� UCS-2 � �
����� ���.
�� ��� ��� �� �, �� �, �� ��, � ��� �� CCSID� �
���. ��� �� � � �� ��� �� � � ����. ��� ��
��� ����.
LCASE� LOWER� �����.
�
v ��� �� NAME �� ��� ������ ���. NAME� �� �
VARCHAR(30)� � ‘Christine Smith’� ����.
SELECT LOWER(:NAME)FROM SYSIBM.SYSDUMMY1
��� � ’christine smith’��.
�� LOWER ( string-expression ) ��
LOWER
260 iSeries� DB2 UDB SQL ��� V5R2
|
LTRIM
LTRIM �� ��� ���� ���� ���� 16� 0�� ����.34
��� ��� ������ ���.
v ��� 2� ����� �� 16� 0(X’00’)� � ��.
v ��� DBCS � ���� �� DBCS ��� � ��.
v � �� ��� UCS-2 � ���� �� UCS-2 ��� � ��.
v ��� ��� �� SBCS ��� � ��.
��� �� �� expression� �� �� �� ����.
expression� � �� ��� � ��
CHAR �� VARCHAR VARCHAR
GRAPHIC �� VARGRAPHIC VARGRAPHIC
BLOB BLOB
CLOB CLOB
DBCLOB DBCLOB
��� �� �� string-expression� �� �� ����.��� �� ���
string-expression� ���� �� �� �� � ����. �� ��� �
� ��� � �����.
� �� ��� �� � � �� ��� �� � � �� , � �� ��� ��
��� ����.
��� CCSID� ���� CCSID� ����.
�
v � CHAR(9)� ��� �� HELLO� � ‘ Hello’� ���� �����.
SELECT LTRIM(:HELLO)FROM SYSIBM.SYSDUMMY1
��� ‘ Hello’� ��.
34. LTRIM �� STRIP(expression,LEADING)� �� ��� ����.
�� LTRIM ( string-expression ) ��
LTRIM
� 3 � �� � 261
MAX
MAX ��� �� � ��� ���� ����.
��� ��� � ��� ���. �� ��� ��� datetime ��� ��� � �
��, � ���� ��� � ����. ��� DataLink �� � � ����.
�� ��� �� � �� ���. ��� ��� �� ��� �� � � ��
�, ��� �� � � �� , �� �� �� �� ��� ����. ���
��� ��� �� ��� �� ��. �� �� ��� �� �� ��.
v ��� ��� �� �� �, ��� ��� � �� �� �� �
�� ��� ��� ���. ��� ��� �� ��� �, ��
� ��� �� �� ��� �� ��� ��� ��� ����. ���
��� �� ����� �, ��� ��� ���� �� ����� �
� ��� ��� ��� ������.
v ��� ���� ��� CCSID� ��� ��� ��� ��� CCSID
��. 97 ���� ���� �� ��� � �� ���� �����.
v �� ��� �� �� ���� ��� �� n� �� �� ���� , ��
� n� �� � ��� ����.
v �� ��� �� �� ���� ��� �� � n� �� �� ���� ,
��� n� �� � �� �� ��� �� ���. ��� �� ��� m�
���, m� �� � ��� �� ����.
v ��� �� �� �� �� ��� ��� ����. �� ��� ��� �
���.
– ���� s� ���, s� �� � ���� �� ��� �����.
– ���� �� 31� s+n� ���, n� ���� ��� �� ��� �� �
��� �����.
– �� � ��� �� ��� ��� � ��� �� 31-s�� ��� � �
�.
��� ��� SBCS, UCS-2 �� �� ��� � � *HEX� � �� �
�� �� ���� ���� �� � �� � ��. ���� �� ��� �
� �����.
�� MAX ( expression , expression ) ��
MAX
262 iSeries� DB2 UDB SQL ��� V5R2
�
v ��� �� M1� � 5.5� DECIMAL(2,1) ��� ��, ��� �� M2� �
4.5� DECIMAL(3,1) ��� ��, ��� �� M3� � 6.5� DECIMAL(3,2)
��� ���� �����.
SELECT MAX(:M1,:M2,:M3)FROM SYSIBM.SYSDUMMY1
� 6.25� ����.
v ��� �� M1� � ‘AA’� CHARACTER(2) ��� ����, ��� �� M2
� � ‘AA ’� CHARACTER(3) ��� ����, ��� �� M3� � ‘AA A’�
CHARACTER(4) ��� ���� �����.
SELECT MAX(:M1,:M2,:M3)FROM SYSIBM.SYSDUMMY1
� ‘AA A’� ����.
MAX
� 3 � �� � 263
||
MICROSECOND
MICROSECOND �� �� ����� ��� ����.
��� �� �� � ����, �� ��� �� � �� � � � �� ��
�� ������ ���.
v expression� �� ���� , CLOB��� �� �� ����� � ��
��� ����� ���. ����� � ��� �� ��� 70 ����
�Datetime �� ��� ����� �����.
v expression� �� , ���� ����� ���. datetime ��� � ��
� 133 ���� �Datetime ����� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� ������ ����� � �� ��� ��� :
��� �� ����� ��� , 0 - 999999 ��� ����.
v ��� ��� :
��� �� ����� ��� -999999 - 999999 ��� ����. 0� �
��� ��� �� ��� ����.
�
v � TABLEA� � TIMESTAMP� � , TS1 � TS2� ��� �
����. TS1� ����� ��� 0� ��� TS1� TS2� � ��� �� �
� �� �����.
SELECT * FROM TABLEAWHERE MICROSECOND(TS1) <> 0 AND SECOND(TS1) = SECOND(TS2)
�� MICROSECOND ( expression ) ��
MICROSECOND
264 iSeries� DB2 UDB SQL ��� V5R2
MIDNIGHT_SECONDS
MIDNIGHT_SECONDS �� ���� ��� ��� �� � ��� � �� �
��� 0 - 86 400 ��� �� �� ����.
��� �� �� � ��, ���� �� ���� ����� � �� ��� �
� � � �� �� �� ������ ���. �� ��� �� �� �� �
�� CLOB��� � ��. ����� � ��� �� ��� 70 ����
�Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � ����. ��� ��� ��� � �
��.
�
v ���� 00:01:00 �� � ���� 13:10:10 ��� � �� ����. ��� �
� XTIME1� ‘00:01:00’ �, XTIME2� ‘13:10:10’ �� �� �� ��� ��
���.
SELECT MIDNIGHT_SECONDS(:XTIME1), MIDNIGHT_SECONDS(:XTIME2)FROM SYSIBM.SYSDUMMY1
� ���� 60� 47410� ����. 1�� 60��� 1��� 3600����
00:01:00� �� �� 60�((60 * 1) + 0)�� 13:10:10� 47410�((3600 * 13)
+ (60 * 10) + 10)��.
v ���� 24:00:00 �� � ���� 00:00:00 ��� � �� ����.
SELECT MIDNIGHT_SECONDS(’24:00:00’), MIDNIGHT_SECONDS(’00:00:00’)FROM SYSIBM.SYSDUMMY1
� ���� 86400� 0� ����. � �� ������ �� ��� ��
��� �� �� �� � ��.
�� MIDNIGHT_SECONDS ( expression ) ��
MIDNIGHT_SECONDS
� 3 � �� � 265
MIN
MIN ��� �� � ��� �� �� ����.
��� ��� � ��� ���. �� ��� ��� datetime ��� ��� � �
��, � ���� ��� � ����. ��� DataLink �� � � ����.
�� ��� �� �� �� ���. ��� ��� �� ��� �� � � �
��, ��� �� � � �� , �� �� �� �� ��� ����. ��
� ��� ��� �� ��� �� ��. �� �� ��� �� �� �
�.
v ��� ��� �� �� �, ��� ��� � �� �� �� �
�� ��� ��� ���. ��� ��� �� ��� �, ��
� ��� �� �� ��� �� ��� ��� ��� ����. ���
��� �� ����� �, ��� ��� ���� �� ����� �
� ��� ��� ��� ������.
v ��� ���� ��� CCSID� ��� ��� ��� ��� CCSID
��. 97 ���� ���� �� ��� � �� ���� �����.
v �� ��� �� �� ���� ��� �� n� �� �� ���� , ��
� n� �� � ��� ����.
v �� ��� �� �� ���� ��� �� � n� �� �� ���� ,
��� n� �� � �� �� ��� �� ���. ��� �� ��� m�
, ��� m� �� �� ��� �� ����.
v ��� �� ��� �� �� ��� ��� ��� ��� �� �
��. �� ��� ��� ����.
– ���� s� ���, s� �� � ���� �� ��� �����.
– ���� �� 31� s+n� ���, n� ���� ��� �� ��� �� �
��� �����.
– �� � ��� �� ��� ��� � ��� �� 31-s�� ��� � �
�.
��� ��� SBCS, UCS-2 �� �� ��� � � *HEX� � �� �
�� �� ���� ���� �� � �� � ��. ���� �� ��� �
� �����.
�� MIN ( expression , expression ) ��
MIN
266 iSeries� DB2 UDB SQL ��� V5R2
�
v ��� �� M1� � 5.5� DECIMAL(2,1) ��� ��, ��� �� M2� �
4.5� DECIMAL(3,1) ��� ��, ��� �� M3� � 6.5� DECIMAL(3,2)
��� ���� �����.
SELECT MIN(:M1,:M2,:M3)FROM SYSIBM.SYSDUMMY1
� 4.50� ����.
v ��� �� M1� � ‘AA’� CHARACTER(2) ��� ����, ��� �� M2
� � ‘AAA ’� CHARACTER(3) ��� ����, ��� �� M3� �
‘AAAA’� CHARACTER(4) ��� ���� �����.
SELECT MIN(:M1,:M2,:M3)FROM SYSIBM.SYSDUMMY1
� ‘AA’� ����.
MIN
� 3 � �� � 267
MINUTE
MINUTE �� �� � ��� ����.
��� �� �� � ��, ����, �� ��� �� � �� � � � ��
�� �� ������ ���.
v expression� �� ���� , CLOB��� �� �� �� �� �����
� �� ��� ����� ���. � � ����� � ��� �� ���
70 ���� �Datetime �� ��� ����� �����.
v expression� �� , �� �� �� ���� ����� ���. datetime
��� � ��� 133 ���� �Datetime ����� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� ��, ����, �� �� ����� � �� ��� ��� :
��� �� � ��� , 0 - 59 ��� ����.
v ��� �� �� �� ���� ��� :
��� �� � ���� -99 - 99 ��� ����. 0� � ��� ��� �
� ��� ����.
�
v CL_SCHED �� �� ��� 50� ��� ��� � �����.
SELECT * FROM CL_SCHEDWHERE HOUR(ENDING - STARTING) = 0 AND
MINUTE(ENDING - STARTING) < 50
�� MINUTE ( expression ) ��
MINUTE
268 iSeries� DB2 UDB SQL ��� V5R2
MOD
MOD �� � �� ��� �� ��� ��, � ���� ����.
���� ��� � ��� ��� ��� ����.
MOD(x,y) = x - (x/y) * y
���, x/y� ���� ��� ����. ��� � �� ��� ��� ��
����.
�� � �� �� � �� �� �� �� ����� � �� � .
numeric-expression-2� 0� � � ����.
��� �� � � �� ��� �� � � �� , ��� �� ��� �
���.
�� �� ��� �� �� ��.
v ��� � 0 ���� �� � �� �� �� ���� ��� �� ��
� ����.
v ��� � 0 ���� ���� �� � ��� �� � ���� ��� �
� �� � ����.
v �� ��� ��� 0� �� ���� �� ��� ��� ��� �� �
��� �� ��� �� ���� �� ����.
v �� ��� �� �� ���� �� ��� ��� ����. ��� ��
�� min (p-s,p’-s’) + max (s,s’)��, ��� ���� max (s,s’)� , ��� �
� p� s� � �� ����� ���� ���� ���, �� p’� s’� �
� ����� ���� ���� �����.
v �� �� �� �� ���� ��� �� �� ���� �� ���
��.
��� �� ����� �� , ��� ����� ���� �� ����
� �� �� ��.
�� ���� ��� � ��� ���� �� ����� ��� ��� �
� ��� �� ��. �� ���� ��� � ��� ���� �� ��
��� ��� ��� �� ��� �� ��. �� ��� ��� ��� �� �
�� � �� ��� ���.
�� MOD ( numeric-expression-1 , numeric-expression-2 ) ��
MOD
� 3 � �� � 269
�
v ��� �� M1� � 5� �� �� ��� ��, ��� �� M2� � 2� ��
�� ��� ��� �����.
SELECT MOD(:M1,:M2)FROM SYSIBM.SYSDUMMY1
� 1� ����.
v ��� �� M1� � 5� �� �� ��� ����, ��� �� M2� � 2.20
� �� DECIMAL(3,2) ��� ���� �����.
SELECT MOD(:M1,:M2)FROM SYSIBM.SYSDUMMY1
� 0.60� ����.
v ��� �� M1� � 5.50� �� DECIMAL(4,2) ��� ����, ��� ��
M2� � 2.0� �� DECIMAL(4,1) ��� ���������.
SELECT MOD(:M1,:M2)FROM SYSIBM.SYSDUMMY1
� 1.50� ����.
MOD
270 iSeries� DB2 UDB SQL ��� V5R2
MONTH
MONTH �� �� � ��� ����.
��� �� �� � �, ����, �� ��� �� � �� � � � ��
�� �� ������ ���.
v expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� ��� 70
���� �Datetime �� ��� ����� �����.
v expression� �� , � �� �� ���� ����� ���. datetime
��� � ��� 133 ���� �Datetime ����� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� �, ����, � �� ����� � �� ��� ��� :
��� �� � ��� , 1 - 12 ��� ����.
v ��� ���� �� �� ���� ��� :
��� �� � ���� -99 - 99 ��� ����. 0� � ��� ��� �
� ��� ����.
�
v EMPLOYEE ��� DECEMBER� ��� (BIRTHDATE) ��� �� �� �
����.
SELECT * FROM EMPLOYEE WHERE MONTH(BIRTHDATE) = 12
�� MONTH ( expression ) ��
MONTH
� 3 � �� � 271
NODENAME
NODENAME �� �� �� ��� ������(RDB)�� ����. ���
��� �� �� ��� CURRENT SERVER �� ����� �� � ��.
��� �� ��� ��� DB2 Multisystem �� �����.
��� subselect� � �����. � ���� �� ��� ��� 111 ����
�� ����� �����.
SQL ���� � ��� ���� � ����. ��� ���� � ��� ����
� ����.
��� �, �� � ��� �� ��� �� ��� , �� �� �� ���
������(RDB) ��� ����. ��� �, �� � ��� �� � ���
�� ��� ��� �� ��� , ��� �, �� � ��� �� ��� ��
�� subselect�� � �� �� ��� ������ ��� ����.
��� �� subselect� �, GROUP BY�, HAVING�, UNION� ��
DISTINCT�� � �, �� � ��� �� ��� �� ��� ����.
subselect� GROUP BY �� HAVING�� �� NODENAME ��
WHERE�� �� �� ������� ��� � ����. ��� ����
���� ��� ��� ��� ����.
��� �� �� VARCHAR(18)��. ��� �(null)� � � ����.
��� CCSID� �� ��� CCSID��.
�
v EMPLOYEE� DEPARTMENT �� ���, �� ��(EMPNO)� ��� �
�� ���� �� ��� �����.
SELECT EMPNO, NODENAME(X), NODENAME(Y)FROM EMPLOYEE X, DEPARTMENT YWHERE X.DEPTNO=Y.DEPTNO
�� NODENAME ( table-designator ) ��
NODENAME
272 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
NODENUMBER
NODENUMBER �� �� �� ��� ����. ��� �� �� ���
0 �� � ��.35 ��� �� ��� �� � ��� ��� DB2
Multisystem �� �����.
��� subselect� � �����. � ���� �� ��� ��� 111 ����
�� ����� �����.
SQL ���� � ��� ���� � ����. ��� ���� � ��� ����
� ����.
��� �, �� � ��� �� ��� �� ��� , �� �� �� ��
��� ����. ��� �, �� � ��� �� � ��� �� ��� ���
�� ��� , �� �, �� � ��� �� ��� �� �� subselect��
� �� �� �� ��� ����.
��� �� subselect� �, GROUP BY�, HAVING�, UNION� ��
DISTINCT�� � �, �� � ��� �� ��� �� ��� � ����.
subselect� GROUP BY �� HAVING�� �� NODENUMBER ��
WHERE�� �� �� ����� ��� � ����. ��� ����
���� ��� ��� ��� ����.
�� �� �� � ����. ��� �(null)� � � ����.
�
v EMPLOYEE ��� � �� �� �� �� � �� ��� �����. ���
�� ��� �� �� �� ��� � ��.
SELECT NODENUMBER(EMPLOYEE), LASTNAMEFROM EMPLOYEE
35.��� � ��� �� � ��� �� DDS �� � �� ��� NODENUMBER� 0� �� �� � �� � ��
��� ����.
�� NODENUMBER ( table-designator ) ��
NODENUMBER
� 3 � �� � 273
|
|
|
|
|
|
|
|
|
|
NOW
NOW �� SQL�� �� ���� ��� � � �� ��� ��� ����
� ����. NOW �� �� �� CURRENT TIMESTAMP �� ����
� �� �� ����. �� �� SQL��� �� �� ��� ��
�� ���� CURDATE �� CURTIME ��� � �� CURRENT DATE,
CURRENT TIME �� CURRENT TIMESTAMP �� ����� ��� �
� �� �� ��� ����.
�� �� �� ������. ��� �� � � ����.
�
v � �� ��� �� �� ����� ����.
SELECT NOW()FROM SYSIBM.SYSDUMMY1
�� NOW ( ) ��
NOW
274 iSeries� DB2 UDB SQL ��� V5R2
NULLIF
NULLIF �� ���� �� ��� � , ��� �� � �� �
�� �� ����.
��� �� �� ���� ���. �� ��� ��� � �� ��� ��� �
����. � ����� �� ��� �� ����� �� ���� ���.
��� DataLink �� � � ����.
�� �� � �� ��� ���. ��� �(null)� � � ����. ��� �
�� ��� ��� �� ��� �� ���.
NULLIF(e1,e2)� ��� ��� �� ���� ��� �� ����.
CASE WHEN e1=e2 THEN NULL ELSE e1 END
(� �� � �� ��� NULL���) e1=e2� � � �� ��� ��� �
CASE ���� �� � ��� � � ����. � �� � � ��
NULLIF� � �� ���� � e1� ����.
�
v ��� �� PROFIT, CASH, � LOSSES� �� � 4500.00, 500.00 � 5000.00
� �� �� � DECIMAL� ���� �����.
SELECT NULLIF (:PROFIT + :CASH, :LOSSES )FROM SYSIBM.SYSDUMMY1
��� ����.
�� NULLIF ( expression , expression ) ��
NULLIF
� 3 � �� � 275
PARTITION
PARTITION �� �� � � �� �� �� ��� �� �� � �
�� ����. �� HASH �� �����. ��� ��� �� �� ��
� � 0� � ��. � ��� � �� �� ��� ��� DB2
Multisystem �� �����.
��� subselect� � �����. � ���� �� ��� ��� 111 ����
�� ����� �����.
SQL ���� � ��� ���� � ����. ��� ���� � ��� ����
� ����.
��� �, �� � ��� �� ��� �� ��� , �� �� �� �
��� ����. ��� �, �� � ��� �� � ��� �� ��� ���
�� ��� , �� �, �� � ��� �� ��� �� �� subselect��
� �� �� � ��� ����.
��� �� subselect� �, GROUP BY�, HAVING�, UNION� ��
DISTINCT�� � �, �� � ��� �� ��� �� ��� � ����.
subselect� GROUP BY �� HAVING�� �� PARTITION �� WHERE
�� �� �� ������� ��� � ����. ��� ���� ��
�� ��� ��� ��� ����.
�� ��� 0 - 1023 ��� �� � ����. ��� �(null)� � � ���
�.
�
v EMPLOYEE ��� � ��� 100� �� �� �� �� ��(EMPNO)�
�����.
ELECT EMPNOFROM EMPLOYEE
WHERE PARTITION(EMPLOYEE) = 100
�� PARTITION ( table-designator ) ��
PARTITION
276 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
PI
PI � 3.141592653589793� ����. ��� ����.
� ��� ���� �� �����. ��� �� � � ����.
�
v ��� ��� 10� �� �� ����.
SELECT PI()*10FROM SYSIBM.SYSDUMMY1
�� PI ( ) ��
PI
� 3 � �� � 277
POSITION �� POSSTR
POSITION � POSSTR �� �� ���(source string) �� � �� � ��
�(search-string)� �� �� ����. search-string� �� � �� ��� �
� ��� 0��. search-string� �� ��� 1�� source-string� �
� �� ��� ���. ��� �� 257 ���� �LOCATE�� �����.
source-string
��� �� �� ���� ��� ���. source-string� 2� ���, ��
��� �� � ��� ���� � ����.
search-string
��� ���� ��� ���. search-string� 2� ���, �� ��� ��
� ��� ���� � ����. source-string� ��� � ��� ���.
�� ��� � ����. �� �� �� �� � � �� ��� �� �
� ����. �� �� �� �� ��� ����.
search-string� CCSID� source-string� CCSID� �� source-string� CCSID
� �� ��.
POSITION �� ��� ��� �����. POSSTR �� ��� �� ��
� �� �� ��. search-string �� source-string� �� ��� �
POSITION� POSSTR � ��� �� �����. POSSTR� �� �� ��
���� search-string �� source-string� �� ��� � search-string
� SI/SO ��� �� �� �� source-string�� � �� �� � �
���. POSITION� �� ����� ���� SI/SO ��� �� �� ��
�� ��� �� , SBCS� ���� DBCS� ���� ��� ��� ����
�.
POSSTR�� POSITION �� � ��� ��� � *HEX ��� �� �
�� �� ��� SBCS, UCS-2 �� �� ��� �� �� ��� ��
� � �� �� ���� �� ����. ���� �� ��� �� �����.
search-string� ��� 0� �� �� �� ��� 1��.
v �� ���� �� 0� �� �� �� ��� 0��.
v ��� �� :
�� POSITION ( search-string IN source-string )POSSTR ( source-string , search-string )
��
POSITION �� POSSTR
278 iSeries� DB2 UDB SQL ��� V5R2
– search-string� �� source-string � �� � �� �� �� ��� �
���� �� �� �� �� ��� source-string � �� ���
�� � �� �� ���.
– ��� �� �� �� �� ��� 0��.36
�
v � � ��� �� �� IN_TRAY �� �� ��� �� NOTE_TEXT �
� �� ‘GOOD’� �� � �� ��� RECEIVED � SUBJECT � ��
���.
SELECT RECEIVED, SUBJECT, POSSTR(NOTE_TEXT, ’GOOD’)FROM IN_TRAYWHERE POSSTR(NOTE_TEXT, ’GOOD’) <> 0
36. search-string� source-string�� � � ���.
POSITION �� POSSTR
� 3 � �� � 279
POWER
POWER �� � �� ��� �� �� ��� ���� ��� ����.37
rkr ��� �� �� � �� �� �� �� ������ ���.
numeric-expression-1 �� 0� , numeric-expression-2� 0 ����� ���.
�� � 0� , ��� 1��.
�� ��� ���� �� ��� ���. ��� �� � � �� ���
�� � � �� , ��� �� ��� ����.
�
v ��� �� HPOWER� � 3� ���� �����.
SELECT POWER(2,:HPOWER)FROM SYSIBM.SYSDUMMY1
� 8� ����.
37. POWER �� ��� numeric-expression-1 ** numeric-expression-2� ��� ��� ����.
�� POWER ( numeric-expression-1 , numeric-expression-2 ) ��
POWER
280 iSeries� DB2 UDB SQL ��� V5R2
QUARTER
QUARTER �� �� �� �� 1� � ���� ���� 1 - 4 ��� �
�� ����. �� ��, 1�, 2� �� 3�� �� �� 1� ����.
��� �� �� � �, ���� �� �� ��� � � �� �� �� �
����� ���. expression� �� ���� , CLOB��� �� �� �
�� ����� � �� ��� ����� ���. � � ����� � ��
� �� ��� 70 ���� �Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�
v PROJECT �� ��� ��� �� QUART(INTEGER)� ���� ‘PL2100’
� �� (PRENDATE) ��� �����.
SELECT QUARTER(PRENDATE)INTO :QUART
FROM PROJECTWHERE PROJNO = ’PL2100’
QUART� 3�� �� ��.
�� QUARTER ( expression ) ��
QUARTER
� 3 � �� � 281
RADIANS
RADIANS �� ��� ��� ��� �� ��� �� ����.
��� �� � �� � �� �� �����. ��� ���� �� ��
� �� � �� �� � ��� ���� �� ��� �� �� �
�.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� HDEG� � 180� �� INTEGER�� �����. �� ��� �
����.
SELECT RADIANS(:HDEG)FROM SYSIBM.SYSDUMMY1
��� �� 3.1415926536 �� �� ���� �� ��� �� ���
�.
�� RADIANS ( numeric-expression ) ��
RADIANS
282 iSeries� DB2 UDB SQL ��� V5R2
RAND
RAND �� 0 - 1 ��� �� ��� �� ����.
���� ��� ��� �� ��� �� ��. ���� SMALLINT ��
INTEGER��� ���.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� HRAND� � 180� �� INTEGER�� �����. �� ���
�����.
SELECT RAND(:HRAND)FROM SYSIBM.SYSDUMMY1
�� .0121398� 0 - 1 ��� ��� �� ��� �� � ��.
v 0 - 1 � � �� � ���� �� ���� RAND �� �� ���
��� ����. �� �� 5.8731398� �� 0 - 10 ��� ��� ���
�� 10�� ����.
SELECT RAND(:HRAND) * 10FROM SYSIBM.SYSDUMMY1
�� RAND ( )numeric-expression
��
RAND
� 3 � �� � 283
REAL
REAL �� ��� ���� �� ���� ����.
v �
v ��� �� ��� ��
v ��� �� ��� ��
v �� ���� �� ��� ��
�: �� CAST ���� ���� �� ��� �� �� � ��� � ���
�. ��� ��� 141 ���� �CAST ���� �����.
numeric-expression
��� �� �� � �� �� �� �� �����.
��� ��� ���� �� ��� �� ��� ��� � �� ���
�. ��� � ��� ���� �� ��� �� �� ��� ��� ���
�.
character-expression
�� ��� �� �� ���
��� CAST( character-expression AS REAL)� ��� ����. �� � �
� ��� �� �� ���� �� ���, �� �� �� ��� ���
� � ��� ����. ��� � ��� ���� �� ��� �� �� �
�� ��� ����.
�� ��� ���� �� �����. ��� �� � � �� ��� ��
� � �� ��� �� ��� ����.
�
v EMPLOYEE �� ��� ��� 0� � ��� �� ��� �� ��
����. (SALARY � COMM)� � � DECIMAL �� ���. �
�� ��� �� ���� ��� ���� �� ���� ����
REAL� SALARY� �� ��.
SELECT EMPNO, REAL(SALARY)/COMMFROM EMPLOYEE
WHERE COMM > 0
�� REAL ( numeric-expression )character-expression
��
REAL
284 iSeries� DB2 UDB SQL ��� V5R2
ROUND
ROUND �� ��� �� � ���� �� ����� ���� numeric-
expression-1� ����.
numeric-expression-1
��� � �� �� �� �� �����.
numeric-expression-2
�� ��� � ��� �� �����. ��� ���� numeric-
expression-2� ��� � ��� �� ���� �������
numeric-expression-2� ��� ���� ���� ���� �����.
numeric-expression-2� ��� ��� numeric-expression-1� ���� ���
numeric-expression-2 ���� ��� ��. ��� 5� ��� �� �� �
�� ��.
numeric-expression-2� ���� numeric-expression-1� ���� ����
numeric-expression-2+1)� ��� ���� ��� ��. ��� 5� ��� �
� ��� ��� ��. numeric-expression-2� ���� ��� ��� ���
����, ��� 0��.
numeric-expression-1� DECIMAL �� NUMERIC�� ���� 31�� �� �
���� 1� �� � ���, ��� �� � � �� �� � �� �
�� �� � � �� �� ����. �� ��, �� � DECIMAL(5,2)� �
� ��� DECIMAL(6,2)� ��� �����. �� � DECIMAL(31,2)� ��
��� DECIMAL(31,2)� ��� �����.
� ��� �(null)� � ��� ��� �(null)� � ����. � ��� �(null)�
� ��� ����.
�
v � 873.726� 2, 1, 0, -1, -2, -3 � -4 �� ��� ���� �� ����
�.
SELECT ROUND(873.726, 2),ROUND(873.726, 1),ROUND(873.726, 0),ROUND(873.726, -1),ROUND(873.726, -2),ROUND(873.726, -3),ROUND(873.726, -4)
FROM SYSIBM.SYSDUMMY1
�� ROUND ( numeric-expression-1 , numeric-expression-2 ) ��
ROUND
� 3 � �� � 285
�� �� �� ����.
0873.730 0873.700 0874.000 0870.000 0900.000 1000.000 0000.000
v �� �� � �����.
SELECT ROUND( 3.5, 0),ROUND( 3.1, 0),ROUND(-3.1, 0),ROUND(-3.5, 0)
FROM SYSIBM.SYSDUMMY1
�� �� �� ����.
04.0 03.0 -03.0 -04.0
ROUND
286 iSeries� DB2 UDB SQL ��� V5R2
ROWID
ROWID �� �� ����� 2� ���� � ID� ������.
�: �� CAST ���� � ID �� �� � ��� � ����. ��� ��
� 141 ���� �CAST ���� �����.
string-expression
�� ��� �� 2� ��� �� �� ��� string-expression� CLOB�
���� ���. ���� �� �� � �� ���, �� ROWID ��
���� �� ��� OS/390 � z/OS� DB2 UDB �� iSeries� DB2
UDB�� ��� ROWID �� � �� ����. �� ��, �� CHAR
��� ������ �� ROWID ��� ���� ROWID� ��� �
� �� ��� � ����.
string-expression� �� ��� 40�� �� , ��� � �� ����.
string-expression� �� ��� 40�� � , ��� ����. ��� � ��
� � , �� � ��.
��� �� �� 40��. ��� �� ��� string-expression� ����.
�� ��� � ID��. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�
v � EMPLOYEE� ROWID EMP_ROWID� , �� � ID �
X’F0DFD230E3C0D80D81C201AA0A280100000000000203’� ��� �� ��
, � � ���� ��� �� �� �� ��� �����.
ELECT EMPNOFROM EMPLOYEE
WHERE EMP_ROWID = ROWID(X’F0DFD230E3C0D80D81C201AA0A280100000000000203’)
�� ROWID ( string-expression ) ��
ROWID
� 3 � �� � 287
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
RRN
RRN �� �� �� ��� ��(RRN)� ����.
��� subselect� � �����. � ���� �� ��� ��� 111 ����
�� ����� �����.
SQL ���� � ��� ���� � ����. ��� ���� � ��� ����
� ����.
��� �, �� � ��� �� ��� �� ��� , �� �� �� ��
��� ��� ����. ��� �, �� � ��� �� � ��� �� ���
��� �� ��� , �� �, �� � ��� �� ��� �� �� subselect
�� � �� �� �� ��� ��� ����.
��� �� �� ��� �� �� �� ���� �� �� ��� ��
(RRN)� ����. ��� RRN� �� �� � �� �� �� ��� ��
���.
��� �� subselect� �, GROUP BY�, HAVING�, UNION� ��
DISTINCT�� � �, �� � ��� �� ��� �� ��� � ����.
RRN �� subselect� � GROUP BY� �� HAVING�� �
SELECT�� ��� � ����. ��� ���� ���� ��� ��� �
�� ����.
��� �� �� ��� 15 � ��� 0� �����. ��� ��� � ���
�.
�
v EMPLOYEE ��� �� 20�� ���� �� �� ��� ��(RRN)� ��
��� ����.
SELECT RRN(EMPLOYEE), LASTNAMEFROM EMPLOYEE
WHERE DEPTNO = 20
�� RRN ( table-designator ) ��
RRN
288 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
RTRIM
RTRIM �� ��� ���� ��� ���� 16� 0�� ����.38
��� ��� ������ ���.
v ��� 2� ����� �� 16� 0(X’00’)� � ��.
v ��� DBCS � ���� �� DBCS ��� � ��.
v � �� ��� UCS-2 � ���� �� UCS-2 ��� � ��.
v ��� ��� �� SBCS ��� � ��.
��� �� �� string-expression� �� �� �� ����.
expression� � �� ��� � ��
CHAR �� VARCHAR VARCHAR
GRAPHIC �� VARGRAPHIC VARGRAPHIC
BLOB BLOB
CLOB CLOB
DBCLOB DBCLOB
��� �� �� string-expression� �� �� ����. ��� �� ��� �
��� ���� �� �� �� � ����. �� ��� �� ��� �
�����.
� �� ��� �� � � �� ��� �� � � �� , � �� ��� ��
��� ����.
��� CCSID� ���� CCSID� ����.
�
v � CHAR(9)� ��� �� HELLO� � ‘ Hello’� ���� �����.
SELECT RTRIM(:HELLO)FROM SYSIBM.SYSDUMMY1
��� ‘Hello’� ��.
38. RTRIM �� STRIP(expression,TRAILING)� �� ��� ����.
�� RTRIM ( string-expression ) ��
RTRIM
� 3 � �� � 289
SECOND
SECOND �� �� � ��� ����.
��� �� �� � �, ����, �� ��� �� � �� � � � ��
�� �� ������ ���.
v expression� �� ���� , CLOB��� �� �� �� �� �����
� �� ��� ����� ���. � � ����� � ��� �� ���
70 ���� �Datetime �� ��� ����� �����.
v expression� �� , �� �� �� ���� ����� ���. datetime
��� � ��� 133 ���� �Datetime ����� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� ��, ����, �� �� ����� � �� ��� ��� :
��� �� � ��� , 0 - 59 ��� ����.
v ��� �� �� �� ���� ��� :
��� �� � ���� -99 - 99 ��� ����. 0� � ��� ��� �
� ��� ����.
�
v ��� �� TIME_DUR(DECIMAL(6,0))� � 153045� ���� �����.
SELECT SECOND(:TIME_DUR)FROM SYSIBM.SYSDUMMY1
� 45� ����.
v RECEIVED(TIMESTAMP) 1988-12-25-17.12.30.000000� �� �� �� �
�� �����.
SELECT SECOND(RECEIVED)FROM IN_TRAY
� 30� ����.
�� SECOND ( expression ) ��
SECOND
290 iSeries� DB2 UDB SQL ��� V5R2
SIGN
SIGN �� ��� ��� ������ ����. �� �� ��� ���
�.
-1 ��� 0�� ��
0 ��� 0�
1 ��� 0�� �
��� �� �� � �� �� �� �� �����.
��� DECIMAL �� NUMERIC�� ��� ���� ���� ��� ����
1� �� � ���, ��� ��� ��� �� � � �� �� ��
��. �� ��, �� � DECIMAL(5,5)� �� ��� DECIMAL(6,5)� ��
� ����� . ���� �� 31�� ���� 1� ����� . �� �� ,
DECIMAL(31,31)� DECIMAL(31,30)� ��� �����.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
�
v ��� �� PROFIT� � 50000� � ���� �����.
SELECT SIGN(:PROFIT)FROM EMPLOYEE
� 1� ����.
�� SIGN ( numeric-expression ) ��
SIGN
� 3 � �� � 291
SIN
SIN �� ��� ��� ��� ��� ����� ��� ����. SIN �
ASIN �� ����.
��� �� � �� � �� �� �����.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� SINE� � 1.5� ��(2,1) ��� ���� �����.
SELECT SIN(:SINE)FROM SYSIBM.SYSDUMMY1
�� � 0.99� ����.
�� SIN ( numeric-expression ) ��
SIN
292 iSeries� DB2 UDB SQL ��� V5R2
SINH
SINH �� ��� �� ��� ��� ��� ����� ��� ����.
��� �� � �� � �� �� �����.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� HSINE� � 1.5� ��(2,1) ��� ���� �����.
SELECT SINH(:HSINE)FROM SYSIBM.SYSDUMMY1
�� � 2.12� ����.
�� SINH ( numeric-expression ) ��
SINH
� 3 � �� � 293
SMALLINT
SMALLINT �� ��� �� �� ��� ����.
v �
v ��� �� ��� ��
v ��� �� ��� ��
v �� ���� �� ��� ��
�: �� CAST ���� �� �� �� �� � ��� � ����. ��� �
�� 141 ���� �CAST ���� �����.
��� Smallint�
numeric-expression
��� � �� �� � �� �� �����.
��� ��� �� �� �� ��� ��� � ��� ���. ���
�� ��� �� �� � �� �� ��� ��� ����. ��� �� �
�� �� ��.
��� Smallint�
character-expression
���� ��� �� ��� ��� ����. ���� CLOB� ���� �
��.
��� CAST� ��� �� ����(character-expression AS SMALLINT). �
� � �� ��� �� �� ���� �� ���, �� �� �� ���
���� � ��� ����. ��� �� ��� �� �� � �� ��
��� ��� ����. ��� �� ��� �� ��. ��� �� ��� �
� ��.
�� ��� �� ����. ��� �� � � �� ��� �� � � ��
��. ��� �� ��� ����.
��� Smallint��� SMALLINT ( numeric-expression ) ��
��� Smallint��� SMALLINT ( character-expression ) ��
SMALLINT
294 iSeries� DB2 UDB SQL ��� V5R2
�
v EMPLOYEE �� ��� � ��(EDLEVEL)� �� �(SALARY) ��
�� �����. ��� �� ��� �����. ����� �� ��� ���
�� �� ��(EMPNO)� �� ���.
SELECT SMALLINT(SALARY / EDLEVEL), SALARY, EDLEVEL, EMPNOFROM EMPLOYEE
SMALLINT
� 3 � �� � 295
SOUNDEX
SOUNDEX �� ��� ��� �� ���� 4�� ��� ����. ���
�� ���� �� �� � �� ��.
��� BLOB, CLOB �� DBCLOB ��� �� ��� �� �� � � ��
��.
��� �� �� CHAR(4)��. ��� �� � � �� ��� �� � �
�� ��� �� ��� ����.
��� CCSID� �� ��� ��� CCSID��.
SOUNDEX �� �� �� ��� ��� ��� �!� ���� �� � �
���. �, ��� �� �� ��� �� � �� �� ��� ��� ��� �
�� �� ��� � ���. �� � ��� ���� ��� DIFFERENCE
�� ��� ��� �� ����. ��� ��� 219 ���� �DIFFERENCE�
� �����.
�
v EMPLOYEE �� ��� �� ‘Loucesy’� �� ��� EMPNO �
LASTNAME� ����.
SELECT EMPNO, LASTNAMEFROM EMPLOYEEWHERE SOUNDEX(LASTNAME) = SOUNDEX(’Loucesy’)
�� �� ����.
000110 LUCCHESSI
�� SOUNDEX ( string-expression ) ��
SOUNDEX
296 iSeries� DB2 UDB SQL ��� V5R2
|
SPACE
SPACE �� ��� ��� SBCS �� �� ��� �� ���� ����.
��� ��� �� �����. ��� ��� �� SBCS �� �� ��
��� 0 - 32740 ��� ���� ���. numeric-expression� ��� ��
0� � ��.
� ��� SBCS ��� � �� �� �� ���(VARCHAR)��.
numeric-expression� ��� ��� �� �� ����. ��� ��� �
�� �� �� 4000��. ��� �� ��� numeric-expression ���. �
�� �� ��� ��� �� ��� ��� � ��.
��� �� � � �� ��� �� � � �� ��� �� ��� �
���.
CCSID� ��� SBCS ��� �� EBCDIC CCSID��.
�
v �� ��� 5 � ���� ��� �� ���� ����.
SELECT SPACE(5)FROM SYSIBM.SYSDUMMY1
�� SPACE ( numeric-expression ) ��
SPACE
� 3 � �� � 297
SQRT
SQRT �� �� ���� ����.
��� �� �� � �� �� �� �� �����. numeric-expression
�� 0�� �� ��� ���. ��� �� �� ���� �� ����� �
� ��.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� SQUARE� � 9.0� DECIMAL(2,1) ��� ���� �����.
SELECT SQRT(:SQUARE)FROM SYSIBM.SYSDUMMY1
�� � 3.00� ����.
�� SQRT ( numeric-expression ) ��
SQRT
298 iSeries� DB2 UDB SQL ��� V5R2
STRIP
STRIP �� ��� ���� � �� ���� �� �� �!� ��� ��� �
���.
STRIP �� TRIM ��� �� ����. ��� ��� 313 ���� �TRIM�
� �����.
�� STRIP ( string-expression ), BOTH, B , strip-character, LEADING, L, TRAILING, T
��
STRIP
� 3 � �� � 299
SUBSTRING �� SUBSTR
SUBSTR � SUBSTRING �� ���� ����� ����.
string-expression
��� �� ���� ��� ���.
String-expression� �, � �� 2� ������ ���. string-expression
� �� ���� ��� �� �����. � �� � ���� ,
� ��� � �����. � �� 2� ���� , � ��� 2� �
����.
string-expression� ����� string-expression� 0 ��� � ���
�. string-expression� � ���� , ��� DBCS �� UCS-2 ��
��. string-expression� �� ���� , ��� �� ��� �� 2� �
��� , ��� 1 ����. SUBSTR �� �� �� ���� ���
��. � �, SUBSTR� ��� �� ��� �� ���� ��� ���
� !� ���� �� �� �� ���� ��� ����.
start
��� � �� ��(�� ��)� string-expression � �� ��� ���.
� �� 2� ���� ���. start� �� �� 0��. � �� string-expression
� �� ��� �� ���(�� �� ���� �� �� ���� �� �
���).
length
��� ��� ��� ���� �����. � �� ��� , length� 2�
���� ���. length� 0 - n � � 2� ����� ���, n� ��
�� �� �� ����.
SUBSTR� ���� length� ����� ��� , ��� string-expression
� ����� �� ���� string-expression� ���� ��� �� ��
��(�� 2� ���� 16�� 0)� � ���.
SUBSTRING� ��� length� ����� ��� , ��� ��� �
���.
string-expression� �� �� ���� length� ��� ��
LENGTH(string-expression) - start + 1���� ����� start ��(��
��)�� string-expression� ��� ��(�� ��)��� �� ���.
�� SUBSTR ( string-expression , start )SUBSTRING , length
SUBSTRING ( string-expression FROM start )FOR length
��
SUBSTRING �� SUBSTR
300 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string-expression� �� �� ���� length� ��� �� 0 ��
LENGTH(string-expression) - start + 1� ��� ����. �� ��� 0�
��� �� �����.
��� �� �� string-expression� �� �� �� SUBSTR ��
SUBSTRING�� ��� �� ����.
string-expression� �
��
SUBSTRING ��
��� � �� SUBSTR �� ��� � ��
CHAR ��
VARCHAR
VARCHAR length� �� ��� �� ����� ���
�� length� ����� ��� ���
string-expression� �� �� ����� start
� �� ��� CHAR. �� �� �
� VARCHAR
GRAPHIC ��
VARGRAPHIC
VARGRAPHIC length� �� ��� �� ����� ���
�� length� ����� ��� ���
string-expression� �� �� ����� start
� �� ��� GRAPHIC. �� ��
�� VARGRAPHIC
BLOB BLOB BLOB
CLOB CLOB CLOB
DBCLOB DBCLOB DBCLOB
SUBSTRING �� ��� ��� �� �� string-expression� �� �� �
���.
SUBSTR �� ��� string-expression� LOB� � , ��� �� �
� length, start � string-expression �� �� ����.
v length� �� ��� �� ����� ��� ��� �� �� length
��.
v length� ����� ��� ��� string-expression� �� �� ����� start
� �� ��� , ��� �� �� LENGTH(string-expression) - start +
1��.
�� �� �� ��� �� �� string-expression� �� �� ����.
(string-expression� �� ��� start ��� �� ����� �� ��� 0
�� �����).
SUBSTR� ��� �� �� �� �� �� ���� ��� ����.
SUBSTR �� ��� �� � � �� ��� �� � � �� , ��� �
� ��� ����.
��� CCSID� string-expression� CCSID� ����.
SUBSTRING �� SUBSTR
� 3 � �� � 301
|
|
|
|
|
�
v ��� �� NAME(VARCHAR(50))� 'KATIE AUSTIN' �� �� ��� �
� SURNAME_POS(INTERGER)� 7 �� ���� �����.
SELECT SUBSTR(:NAME, :SURNAME_POS)FROM SYSIBM.SYSDUMMY1
'AUSTIN' �� ����.
v �� ��,
SELECT SUBSTR(:NAME, :SURNAME_POS, 1)FROM SYSIBM.SYSDUMMY1
� 'A'� ����.
v PROJECT ��� 'OPERATION '� ��� �����(PROJNAME)� �� �
� �� �����.
SELECT * FROM PROJECTWHERE SUBSTR(PROJNAME,1,10) = ’OPERATION ’
�� �� ��� 'OPERATIONS'� �� � ��� ����� � �����.
SUBSTRING �� SUBSTR
302 iSeries� DB2 UDB SQL ��� V5R2
TAN
TAN �� ��� ���� ��� ��� ��� ��� ��� ��. TAN
� ATAN �� ����.
��� �� � �� � �� �� �����.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� TANGENT� � 1.5� DECIMAL(2,1) ��� ���� �����.
SELECT TAN(:TANGENT)FROM SYSIBM.SYSDUMMY1
�� � 14.10� ����.
�� TAN ( numeric-expression ) ��
TAN
� 3 � �� � 303
TANH
TANH �� ��� �� ��� ��� ��� ����� ��� ����.
TANH � ATANH �� ����.
��� �� � �� � �� �� �����.
�� �� �� ���� �� �����. ��� �� � � �� ���
�� � � �� ��� �� ��� ����.
�
v ��� �� HTANGENT� � 1.5� DECIMAL(2,1) ��� ���� ����
�.
SELECT TANH(:HTANGENT)FROM SYSIBM.SYSDUMMY1
�� � 0.90� ����.
�� TANH ( numeric-expression ) ��
TANH
304 iSeries� DB2 UDB SQL ��� V5R2
TIME
TIME �� ��� ��� ����.
�: �� CAST ���� �� �� �� � ��� � ����. ��� ���
141 ���� �CAST ���� �����.
��� �� �� � �, ���� �� �� ��� � � �� �� �� �
����� ���. expression� �� ���� , CLOB��� �� �� �
�� ����� � �� ��� ����� ���. � � ����� � ��
� �� ��� 70 ���� �Datetime �� ��� ����� �����.
�� ��� ����. ��� �� � � �� ��� �� � � �� �
�� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� ��� :
��� � ����.
v ��� ����� :
��� ����� �� ����.
v ��� �� ���� :
��� ��� ��� SBCS ��� ��� CCSID� �� �� CCSID� ��
SBCS ��� � �� �� �� ��� ��� �� SBCS ��� ���
CCSID� �� ��.
��� ��� ��� �� ��� ��� CCSID� �� �� CCSID� �� �
� ��� � �� �� �� ��� ��� �� �� ��� ��� CCSID�
�� ��.
�
v IN_TRAY �� ��� �� ���� ��� � �� �� �� �� � ���
��.
SELECT * FROM IN_TRAYWHERE TIME(RECEIVED) >= CURRENT TIME + 1 HOUR
�� TIME ( expression ) ��
TIME
� 3 � �� � 305
TIMESTAMP
TIMESTAMP �� �� ����� ����� ����.
�: �� CAST ���� ����� �� � ��� � ����. ��� ���
141 ���� �CAST ���� �����.
��� �� ��� �� ��� ������ ��� �� ����.
v �� ��� ��� :
��� �� �� � ���� �� �� ��� � � �� �� �� ��
���� ���.
expression� �� ���� , CLOB��� �� �� �� � ��� �
��.
– � �� ����� �� �� ��� ��. � � ����� � ��
� ��� 70 ���� �Datetime �� ��� ����� �����.
– �� �� yyyynnn ���� ��� �� �� 7� �� ���. ���,
yyyy� ��� ��� ��� nnn� �� ��� � �� ��� 001 - 366
��� ���.
– �� yyyyxxddhhmmss� �� �� ��� ��� �� �� 14� ��
������, ���, yyyy� ��, xx� �, dd� �, hh� ��, mm� � �
ss� ���.
v �� ��� ��� :
� �� ��� �� �� � � �� �� ��� � � �� �� ��
������ ���. �� ��� �� �� � �� �� �� ��� � �
�� �� �� ������ ���.
expression� �� ���� , CLOB��� �� �� �� � �� �
�� ����� ���. expression� �� ���� , CLOB��� �� �
� ��� � �� ��� ����� ���. � � ����� � ��� �
�� 70 ���� �Datetime �� ��� ����� �����.
�� ��� ������. �� �� �� �� � � �� ��� ��
� � �� , �� � �� �� ��� ����.
�� ��� �� ��� ������ ��� �� ����.
v �� ��� ��� :
�� TIMESTAMP ( expression ), expression
��
TIMESTAMP
306 iSeries� DB2 UDB SQL ��� V5R2
��� � �� ��� ��� �� �� ��� ��� ��� �� ����
��. ����� ����� ��� 0��.
v �� ��� ��� ����� :
��� �� ������.
v �� ��� ��� �� ���� :
��� �� ����� ��� ������. ��� �� 14� �� ����
����� ����� ��� 0��.
����� ��� ��� SBCS ��� ��� CCSID� �� �� CCSID� ��
SBCS ��� � �� ���� �� ��� ��� �� SBCS��� ���
CCSID� �� ��.
����� ��� ��� �� ��� ��� CCSID� �� �� CCSID� �� �
� ��� � �� ���� �� ��� ��� �� �� ��� ��� CCSID�
�� ��.
�
v � � �� �� ��� �� :
SELECT TIMESTAMP( DATE(’1988-12-25’), TIME(’17.12.30’) )FROM SYSIBM.SYSDUMMY1
� ‘1988-12-25-17.12.30.000000’� ����.
TIMESTAMP
� 3 � �� � 307
|
||
|
TIMESTAMPDIFF
TIMESTAMPDIFF �� � ���� �� ��� �� � �� ��� ��
��� �� ��� �� �� �� ����.
� �� ��� �� �� � INTEGER �� SMALLINT�� ���. ��(� �
� ��)� �� �� �� ��� ����.
1 1�� ��
2 �
4 �
8 �
16 ��
32
64 �
128 ���
256 ��
�� ��� � ���� �� � � � ��� CHAR(22)� ��� ��
��.
�� ��� ����. �� �� �� �� � � �� ��� �� � �
�� , �� � �� �� ��� ����.
�� ��� � �� ��� � ��� � ����.
v 1�� 365�
v 1�� 30�
v 1�� 24��
v 1��� 60�
v 1�� 60�
� � ��� �� �� ��� ���� ��� � �� ��� ��� �� �
�� ��� � �� ��. �� ���� �� �� �� � ����. �� �
� ‘1997-03-01-00.00.00’� ‘1997-02-01-00.00.00’� ����� �� �(�� 16)
� ��� � ��� 30��. ��� ���� �� 1��� ��� 30��
�� ��� ���� ����.
�� TIMESTAMPDIFF ( numeric-expression , character-expression ) ��
TIMESTAMPDIFF
308 iSeries� DB2 UDB SQL ��� V5R2
�
v ��� ��� � �� �����.
SELECTTIMESTAMPDIFF(64,CAST(CURRENT_TIMESTAMP-CAST(BIRTHDATE AS TIMESTAMP) AS CHAR(22)))AS AGE_IN_MONTHS
FROM EMPLOYEE
TIMESTAMPDIFF
� 3 � �� � 309
TRANSLATE
TRANSLATE �� string-expression� � ��� ��� �� ��� ��� �
�� �� ����.
string-expression
��� string-expression� � ���� ��� ���� �� ��� �� UCS-2
� ������ ���.
to-string
string-expression� �� ��� ��� ��� ��� ���. � ���� �
� �� �� �!� � ����. ���� �� ��� ���� ���. �
� ��� ��� ��� 256�� �� ��� ���.
to-string� �� �� from-string� �� ��� �� to-string� pad
�� ��� ��� � � ��� �� ����. to-string� �� ��
from-string� �� ��� � to-string� ��� ��� ��� ��
��.
from-string
string-expression� �� ��� ��� ��� ���. � ���� �
�� �� �!� � ����. from-string� ��� �, string-expression
� ��� from-string� �� �� �� �� to-string ��� �� ��.
���� �� ��� ���� ���. �� ��� ��� �� ��� 256��
��� � ��.
from-string� �� ��� �� �� ���� ��� ��� �� �
� ����. from-string� �� ��� �� �� X’00’� ��� �� X’FF’
� ��� (�� 255) �����.
pad
��� from-string�� �� to-string� �� ��� �����. ����
�� 1� �� ��� ���� ���. ��� �� SBCS ����.
� �� ��� UCS-2 � ���� �� ��� ��� � ����.
� �� ��� ��� ��� SBCS ��� ��� CCSID� �� ���� �
� ��. SBCS ���� �� ��. �� a-z� A-Z� ���, � �� ���
�� ��� �� ���(�� )� �� ��. � �� ��� UCS-2 ���
�� TRANSLATE ( string-expression ), to-string
, from-string, pad
��
TRANSLATE
310 iSeries� DB2 UDB SQL ��� V5R2
��� UCS-2 ��� ���� �� ��. � ��� ��� ����� �� �
� ��� iSeries Information Center� ��� �� UCS-2 �� 1 � � ��
� �����.
� ��� ��� ���, �� ���� from-string� ��� to-string� ��� �
�� ��� expression� ��� � � ����. string-expression� � ��
� �� ��� from-string�� �� ��. ��� from-string� n�� ���
� �� ���� to-string� n�� ��� �� ����. to-string� ��
� n��� �� �� ���� �� ��� �� ����. ��� from-string
�� � �� ��� �� �� ���� �� ��.
��� ��� �� �� , ���� ��� �� �� �� ���
� ��� � ����. SRTSEQ �� TRANSLATE �� ��� ����.
�� ��� ��� �� �, �� �, �� �� � ��� �� CCSID� �
���. � �� ��� �� � � �� ��� �� � � ����. ��� �
� ��� ����.
�
v ��� ‘abcdef’� ������ ����.
SELECT TRANSLATE(’abcdef’)FROM SYSIBM.SYSDUMMY1
� ‘ABCDEF’� ����.
v �� �� ���� ����� ����.
SELECT TRANSLATE( ’ab def ’ )
FROMSYSIBM.SYSDUMMY1
’AB DEF ’ �� ����.
v �� ��� �� SITE� � ‘Pivabiska Lake Place’� �� �� �� �� �
����.
SELECT TRANSLATE(:SITE, ’$’, ’L’)FROM SYSIBM.SYSDUMMY1
� ‘Pivabiska $ake Place’� ����.
SELECT TRANSLATE(:SITE, ’$$’, ’Ll’)FROM SYSIBM.SYSDUMMY1
� ‘Pivabiska $ake P$ace’� ����.
SELECT TRANSLATE(:SITE, ’pLA’, ’Place’, ’.’)FROM SYSIBM.SYSDUMMY1
TRANSLATE
� 3 � �� � 311
� ‘pivAbiskA LAk. pLA..’� ����.
TRANSLATE
312 iSeries� DB2 UDB SQL ��� V5R2
TRIM
TRIM �� ��� ���� � �� ���� �� �� �!� ��� ��� �
���.
string-expression� ��� ������ ���.
��� � �� ��� ���� � �� ���� ��� ��� �� ��
� �����. � �� ��� ��� ��� ���� ���� �� ���� �
��.
�� ��� ��� �� 2�, SBCS �� DBCS ��� ��� ��
�� ����. string-expression� 2� ����� �� ��� ��� 2� �
�� ����� ���. string-expression� DBCS � �� DBCS �� ���
� �� ��� �� DBCS ��� �� �� � ����� ���.
�� ��� ��� �� :
v string-expression� 2� ����� ������ ��� 16� 0(X’00’)��.
v string-expression� DBCS � ���� ��� ��� ��� DBCS �
���.
v string-expression� UCS-2 � ���� ��� ��� ��� UCS-2 �
���.
v ��� ��� ��� ��� ��� SBCS ����.
��� �� �� string-expression� �� �� �� ����.
expression� � �� ��� � ��
CHAR �� VARCHAR VARCHAR
GRAPHIC �� VARGRAPHIC VARGRAPHIC
BLOB BLOB
CLOB CLOB
DBCLOB DBCLOB
�� TRIM ( string-expression )BOTH
FROMB strip-characterLEADINGLTRAILINGT
��
TRIM
� 3 � �� � 313
��� �� �� string-expression� �� �� ����.��� �� ��� �
��� ���� �� �� �� � ����. �� ��� �� ��� �
�����.
� �� ��� �� � � �� ��� �� � � �� , � �� ��� ��
��� ����.
��� CCSID� ���� CCSID� ����.
SRTSEQ �� TRIM �� ��� ����.
�
v � CHAR(9)� ��� �� HELLO� � ‘ Hello’� ���� �����.
SELECT TRIM(:HELLO), TRIM( TRAILING FROM :HELLO)FROM SYSIBM.SYSDUMMY1
�� ‘Hello’ � ‘ Hello’� �����.
v � CHAR(9)� ��� �� BALANCE� � ‘000345.50’� ���� ����
�.
SELECT TRIM( L ’0’ FROM :BALANCE )FROM SYSIBM.SYSDUMMY1
��� ‘345.50’� ��.
v ���� ���� �� ��� ��� �����.
SELECT TRIM( BOTH ’ ’ FROM ’ ’ )
FROMSYSIBM.SYSDUMMY1
��: ’ ’
TRIM
314 iSeries� DB2 UDB SQL ��� V5R2
TRUNCATE �� TRUNC
TRUNCATE �� ��� �� � ���� �� ����� �� numeric-
expression-1� ����.
numeric-expression1
��� � �� �� �� �� �����.
numeric-expression2
�� ��� � ��� �� �����. ��� ���� numeric-
expression-2� ��� � ��� �� ���� ����� ��
numeric-expression-2� ��� ���� ���� ���� �����.
numeric-expression-2� ��� ��� numeric-expression-1� ���� ���
numeric-expression-2 ����� ��� ��.
numeric-expression-2� ���� numeric-expression-1� ���� ����
(numeric-expression-2+1)� �� ���� ��� ��.
numeric-expression-2� ���� ��� ��� ����� ��, ��� 0��.
�� ��, TRUNCATE(748.58,-4) = 0��.
��� �� �� �� �� � �� ��� �� � � �� �� ����.
� ��� �(null)� � ��� ��� �(null)� � ����. � ��� �(null)�
� ��� ����.
�
v �� �� �� ��� �� �� �� �����. ��� ��� ���
��� �����.
SELECT TRUNCATE(MAX(SALARY/12, 2)FROM EMPLOYEE
�� �� ��� �� �� �� ��� �� $52750.00� �� ��� ���
� � 4395.83� ����.
v 2, 1, 0, -1, -2 � -3 �� ��� �� ��� � 873.726� �����.
SELECT TRUNCATE(873.726, 2),TRUNCATE(873.726, 1),TRUNCATE(873.726, 0),TRUNCATE(873.726, -1),TRUNCATE(873.726, -2),TRUNCATE(873.726, -3)
FROM SYSIBM.SYSDUMMY1
�� TRUNCATE ( numeric-expression-1 , numeric-expression-2 )TRUNC
��
TRUNCATE
� 3 � �� � 315
�� �� �� ����.
0873.720 0873.700 0873.000 0870.000 0800.000 0000.000
v �� �� � �����.
SELECT TRUNCATE( 3.5, 0),TRUNCATE( 3.1, 0),TRUNCATE(-3.1, 0),TRUNCATE(-3.5, 0)
FROM SYSIBM.SYSDUMMY1
�� �� �� ����.
3.0 3.0 -3.0 -3.0
TRUNCATE
316 iSeries� DB2 UDB SQL ��� V5R2
UCASE
UPPER �� ��� CCSID� �� �� ��� ���� ��� ���� ��
��.
UCASE �� UPPER �� ����. ��� ��� 318 ���� �UPPER��
�����.
�� UCASE ( string-expression ) ��
UCASE
� 3 � �� � 317
|
|
|
|
|
|
|
UPPER
UPPER �� ��� CCSID� �� �� ��� ���� ��� ���� ��
��. SBCS � UCS-2 � ���� �� ��. �� a-z� A-Z� ���,
� �� ��� �� ��� �� ���(�� )� �� ��. � ��� ��
� ����� �� �� ��� iSeries Information Center� ��� �� UCS-2
�� 1 � � ��� �����.
string-expression
��� ���� ��� ���. String-expression� ���� UCS-2 �
������ ���.
�� ��� ��� �� �, �� �, �� �� � ��� �� CCSID� �
���. ��� �� � � �� ��� �� � � �� ��� �� �
�� ����.
UCASE� UPPER� �����.
�
v UPPER ��� �� ��� ��� ‘abcdef’� ���� ����.
SELECT UPPER(’abcdef’)FROM SYSIBM.SYSDUMMY1
� ‘ABCDEF’� ����.
v UPPER ��� �� ��� �� �� ���� ���� ����.
SELECT UPPER(’ab def ’ )
FROM SYSIBM.SYSDUMMY1
� �: ’AB DEF ’
�� UPPER ( string-expression ) ��
UPPER
318 iSeries� DB2 UDB SQL ��� V5R2
VALUE
VALUE �� �� � � �� ��� �� ����.
VALUE �� COALESCE ��� �� ����. ��� ��� 197 ����
�COALESCE�� �����.
�� VALUE ( expression , expression ) ��
VALUE
� 3 � �� � 319
VARCHAR
VARCHAR �� ��� �� �� ��� ��� ����.
v � �� ��� SMALLINT, INTEGER �� BIGINT� ��
v � �� ��� � �� � ���� ���
v � �� ��� DOUBLE �� REAL� ���� �� ��� �
v � �� ��� �� ��� �� �� ���
v � �� ��� UCS-2 � ���� � ���
�: �� CAST ���� �� �� �� ��� �� �� � ��� � ���
�. ��� ��� 141 ���� �CAST ���� �����.
�� ��� �� �� �����. � �� ��� �� � � �� ���
�� � � �� , � �� ��� �� ��� ����.
�� � Varchar
character-expression
�� CHAR, VARCHAR �� CLOB �� �� �� �� ���.
�� � Varchar�� VARCHAR ( character-expression
, lengthDEFAULT , integer
) ��
��� � Varchar�� VARCHAR ( graphic-expression
, lengthDEFAULT , integer
) ��
�� � Varchar�� VARCHAR ( integer-expression ) ��
�� � Varchar�� VARCHAR ( decimal-expression )
, decimal-character��
�� ��� � Varchar�� VARCHAR ( floating-point-expression )
, decimal-character��
VARCHAR
320 iSeries� DB2 UDB SQL ��� V5R2
length
�� �� �� �� ���� �� �� �����. �� 1 - 32740(� ��
� 32739) ��� ���� ���. � �� ��� �� ��� �
� ��� 4�� �� � ����.
�� ��� ��� �� DEFAULT� ���
v character-expression� � ��� ���� ��� �� �� 1��.
v ��� ��� ��� �� �� ��� � �� ��� �� �� ���
�.
��� �� ��� ��� �� �� character-expression� �� ��� ��
���. �� ��� ��� �� �� ��� � ��� �� ��. �
�� ��� � ��� ��� �(SQLSTATE 01004)� � ��.
integer
��� CCSID� �����. �� SBCS CCSID, �� �� CCSID �� 65535
(� ��)��� ���. � �� ��� SBCS CCSID� ��� SBCS
����. � �� ��� �� CCSID� ��� �� ����. � �
� ��� 65535� ��� � ����. � �� ��� SBCS CCSID
� � �� ��� DBCS �� �� DBCS �� ���� � ����.
� �� ��� ��� �� ��� ����.
v � �� ��� SBCS ��� ��� SBCS ����. �� CCSID�
� �� ��� CCSID� ����.
v � �� ��� �� ��(DBCS �, DBCS �� �� DBCS ��)�
��� �� ����. �� CCSID� � �� ��� CCSID� ����.
��� � Varchar
graphic-expression
GRAPHIC, VARGRAPHIC �� DBCLOB �� � �� �� ���.
DBCS � ������ � ��.
length
�� �� �� �� ���� �� �� �����. �� 1 - 32740(� ��
� 32739) ��� ���� ���. � �� ��� DBCS ��� �� �
� , �� ��� 4�� �� � ����.
�� ��� ��� �� DEFAULT� ��� ��� �� ��
��� �� �� ��(��� n� � �� ��� �� ���).
v graphic-expression� � � ��� ��� ��� �� �� 1�
�.
v ��� SBCS ��� �� ��� n��.
VARCHAR
� 3 � �� � 321
|
|
|
|
|
|
|
|
|
v ��� �� ��� �� ��� (2.5*( n-1)) + 4��.
��� �� ��� ��� �� �� graphic-expression� �� ��� ���
��. �� ��� ��� �� �� ��� � ��� �� ��. ��
� ��� � ��� ��� �(SQLSTATE 01004)� � ��.
integer
��� CCSID� �����. �� SBCS CCSID �� �� �� CCSID��
� ���. � �� ��� SBCS CCSID� ��� SBCS ����. �
�� ��� �� CCSID� ��� �� ����. � �� ��� 65535
� � � ����.
� �� ��� ��� �� ��� CCSID� �� ���� ��� CCSID
��. ��� CCSID� �� ��� ��� �� ����. ���
CCSID� SBCS ��� ��� SBCS ����.
�� � Varchar
integer-expression
�� �� �(SMALLINT, INTEGER �� BIGINT � �)� �� �
� ���
��� SQL �� ��� ��� ��� �� �� �� ��� ����. ���
��� �� �� �� ��� �� �� �� ��� � �� n�� ��
��. �� �� ��.
v ��� �� ��� ��� �� �� 6��.
v ��� � ��� ��� �� �� 11��.
v ��� � ��� ��� �� �� 20��.
��� �� ��� ��� �� ��� � ��� � �� �� ����. �� 0
� � ����. ��� �� ��� � �� ��� �� ����. �
�� ��� � �� ��� ���.
��� CCSID� �� ���� ��� SBCS CCSID��.
�� � Varchar
decimal-expression
� �� � �� �� �(DECIMAL �� NUMERIC)� �� �� ��
�. �� ���� ���� ��� DECIMAL ��� �� �� �
��� � ����.
decimal-character
�� �� ���� �� ��� ��� � ��� 1 �� �� ��� ��
VARCHAR
322 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
���. ��� ��� �� ���� ���. �� ��� ��� ��
���� ��� ���� �����. ��� ��� 102 ���� �����
� �����.
��� ��� �� �� �� ��� ����. ��� �� ��� � p �
����� , ��� p� ��� �� �� �� ��� �� decimal-expression
� �����. �� 0� �� ����. �� 0� � ��.
��� �� �� 2+p� , ��� p� decimal-expression� �����. ���
�� ��� � �� ��� ��� ��� ��� � ��� � �� �� �
���. �� 0� � ����. ��� �� ��� �� ��� ���
��. ��� �� ��� �� �����.
��� CCSID� �� ���� ��� SBCS CCSID��.
�� ��� � Varchar
floating-point expression
�� ��� �� �(DOUBLE �� REAL)� �� �� ���
decimal-character
�� �� ���� �� ��� ��� � ��� 1 �� �� ��� ��
���. ��� ��� �� ���� ���. �� ��� ��� ��
���� ��� ���� �����. ��� ��� 102 ���� �����
� �����.
��� �� ��� ��� ���� ��� �� �� �� ��� ����.
��� �� �� 24��. ��� �� ��� 0� � �� � ���
decimal-character � ��� �� �� ��� �� �� �� ���� �� ��
��. ��� �� ��� � �� ��� �� ��� ��� �� �
�� ��� ���. ��� 0� ��� 0E0��.
��� CCSID� �� ���� ��� SBCS CCSID��.
�
v �� 10� EMPNO �� ��� �����.
SELECT VARCHAR(EMPNO,10)INTO :VARHV
FROM EMPLOYEE
VARCHAR
� 3 � �� � 323
|
|
|
|
|
|
|
|
VARGRAPHIC
VARGRAPHIC �� ��� ���� � ��� ��� ����.
�: �� CAST ���� �� �� � ��� �� �� � ��� � ��
��. ��� ��� 141 ���� �CAST ���� �����.
�� ��� �� �� � ���(VARGRAPHIC)��.
���� �� � � ���, ��� �� � � ����. ���� �� ���
����. ���� �� ��� �� EBCDIC ��� X’0E0F’� ��� �
� �����.
�� � �����
character-expression
�� ��� ���� �����. CHAR �� VARCHAR � ��� � ��
��.
length
��� �� �� �� , � �� ��� �� � 1-16370 ��� �
� ���� � �� ��� �� 1-16369 ��� �� ����.
�� ��� ��� �� DEFAULT� ��� ��� �� �� �
�� ��� �� �� ����. �, ���� � ����� EBCDIC ��
� X’0E0F’� ��� �� �� 1��.
��� �� ��� ��� �� �� �� ����. ��� � ��� ��� �
�� �����. �� �� �� ���� �� �� � �� ��� �� ��
�� �� ��� ��� �� �� ����.
integer
��� CCSID� �����. DBCS �� UCS-2 CCSID��� ���. CCSID�
�� � ������� VARGRAPHIC ( character-expression
, lengthDEFAULT , integer
) ��
��� � ������� VARGRAPHIC ( graphic-expression
, lengthDEFAULT , integer
) ��
VARGRAPHIC
324 iSeries� DB2 UDB SQL ��� V5R2
65535� � � ����. CCSID� UCS-2 � ��� ��� � ��
� �� ��� �����. ��� n �� ��� ��� n �� ��� ���
UCS-2��.
integer� ��� ��� ��� CCSID� �� CCSID� �� �� ��. M
� �� CCSID� �����.
�� ���� S� �� �� �� �����.
v ��� ���� ��� ��� ��� ��� �� �� ��� ��� S
� ��� ��� ��� CCSID� ��� ��� ��� ��� ����(�
�� ��� 34 ���� ��� ���� �����).
v S� ��� ���� ��� ��� �� ��� � ��� �����.
M� ��� �� �� ��.
v S� CCSID� �� CCSID� M� � CCSID��.
v S� CCSID� SBCS CCSID� :
– S� CCSID� �� CCSID� ��� M� � CCSID��.
– ��� ��� ��� ��� ����.
�� �� M� �� CCSID ��� �����.
M �� CCSID �� DBCS �� ��
930 300 ��� EBCDIC X’FEFE’
933 834 ��� EBCDIC X’FEFE’
935 837 ��� EBCDIC X’FEFE’
937 835 ��� EBCDIC X’FEFE’
939 300 ��� EBCDIC X’FEFE’
5026 4396 ��� EBCDIC X’FEFE’
5035 4396 ��� EBCDIC X’FEFE’
SBCS� DBCS ��� ��� M� �� ����. CCSID� ���� ��� �
� 2 �� ���� DBCS ��� �� �� 1 �� ���� EBCDIC �
� �� ��� �� X’0E’ � X’0F’� ���� SBCS ��� � ��.
v ��� n �� ��� DBCS ��� ��� n �� ��� �� DBCS
����.
v ��� n �� ��� ��� DBCS ��� �� SBCS ��� ��� n
�� ��� ��� DBCS ����.
v ��� n �� ��� ��� DBCS ��� � SBCS ��� ��� n
�� ��� DBCS �� ����.
��� � �����
VARGRAPHIC
� 3 � �� � 325
graphic-expression
� ��� ���� �����.
length
��� �� �� �� , � �� ��� �� � 1-16370 ��� �
� ���� � �� ��� �� 1-16369 ��� �� ����.
�� ��� ��� �� DEFAULT� ��� ��� �� �� �
�� ��� �� �� ����. �, ���� � ���� ��� ��
�� 1��.
��� �� ��� ��� �� �� �� ����. ��� � ��� ��� �
�� �����. �� �� �� ���� �� �� � �� ��� �� ��
�� �� ��� ��� �� �� ����.
integer
��� CCSID� �����. DBCS �� UCS-2 CCSID��� ���. CCSID�
65535� � � ����.
integer� ��� ��� ��� CCSID� � �� ��� CCSID��.
�
v EMPLOYEE �� ��� ��� �� VAR_DESC(VARGRAPHIC(24))� �
� ��(EMPNO) ‘000050’� ��(FIRSTNME)� ��� VARGRAPHIC� �
����.
SELECT VARGRAPHIC(FIRSTNME)INTO :VAR_DESC
FROM EMPLOYEEWHERE EMPNO = ’000050’
VARGRAPHIC
326 iSeries� DB2 UDB SQL ��� V5R2
WEEK
WEEK �� � ��� 1 - 54 ��� ��� �����. ����� ��
�, 1� 1�� �� � �� ��.
��� �� �� � �, ���� �� �� ��� � � �� �� �� �
����� ���.
expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� �� ��� 70
���� �Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�
v PROJECT �� ��� ��� �� WEEK (INTERGER)� ����(‘PL2100’)
� �� (week)� �����.
SELECT WEEK(PRENDATE)INTO :WEEKFROM PROJECTWHERE PROJNO = ’PL2100’
WEEK� 38�� �� ��.
v � X� DATE DATE_1� �� � � � ���� � �� ��
,
SELECT DATE_1, WEEK(DATE_1)FROM X
�� ������ � �� �� �� WEEK �� �� �� ����
�.
1997-12-28 531997-12-31 531998-01-01 11999-01-01 11999-01-04 21999-12-31 532000-01-01 12000-01-03 2
�� WEEK ( expression ) ��
WEEK
� 3 � �� � 327
WEEK_ISO
WEEK �� � ��� 1 - 53 ��� ��� �����. � ����� �
����. 1�� ���� ���� 1� � � �� �� 1� 4�� � �
�� ��� ���. ��� �� 3��� ���� ��� � �� ��� �
�� �� �� ��� � � �� 3��� ��� � ����.
��� �� �� � �, ���� �� �� ��� � � �� �� �� �
����� ���.
expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� �� ��� 70
���� �Datetime �� ��� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�
v PROJECT �� ��� ��� �� WEEK (INTERGER)� ����(‘AD2100’)
� �� (week)� �����.
SELECT WEEK_ISO(PRENDATE)INTO :WEEKFROM PROJECTWHERE PROJNO = ’AD3100’
WEEK� 5�� �� ��.
v � X� DATE DATE_1� �� � � � ���� � �� ��
,
SELECT DATE_1, WEEK_ISO(DATE_1)FROM X
��� ��� ����.
1997-12-28 521997-12-31 11998-01-01 11999-01-01 531999-01-04 11999-12-31 522000-01-01 522000-01-03 1
�� WEEK_ISO ( expression ) ��
WEEK_ISO
328 iSeries� DB2 UDB SQL ��� V5R2
XOR
XOR �� �� ���� � �� XOR� ���� ����. � �� � �
� �� ���� ���, �� ���� XOR �� ���, �� ��� ��
� ��� �� ��� XOR � ��� ����. ��� �� ���� ���,
���� � ���.
��� �� ������ � LOB� � � ����. ��� �� �� ��� �
� � ���� � � ����.
��� ��� �� ��� �� ��. �� �� ��� �� �� ��.
v �� ��� �� �� ���� ��� �� n� �� �� ���� , ��
� n� �� � ��� ����.
v �� ��� �� �� ���� ��� �� � n� �� �� ���� ,
��� n� �� � �� �� ��� �� ���. ��� �� ��� m�
���, m� �� � ��� �� ����.
��� �� � � �� ��� �� � � �� , ��� �� ��� �
���.
��� CCSID� 65535��.
�
v ��� �� L1� � X’E1E1’� �� CHARACTER(2) ��� ��, ��� �
� L2� � X’F0F000’� �� CHARACTER(3) ��� ��, ��� �� L3�
� X’0000000F’� �� CHARACTER(4) ��� ���� �����.
SELECT XOR(:L1,:L2,:L3)FROM SYSIBM.SYSDUMMY1
� X’1111404F’� ����. �� � ��� ��(X’40’)�� � � � XOR
� � �� �����.
SELECT XOR(:L3,:L2,:L1)FROM SYSIBM.SYSDUMMY1
� X’1111400F’� ����.
�� XOR ( expression , expression ) ��
XOR
� 3 � �� � 329
YEAR
YEAR �� �� �� ��� ����.
��� �� �� � �, ����, �� ��� �� � �� � � � ��
�� �� ������ ���.
v expression� �� ���� , CLOB��� �� �� � �� �����
� �� ��� ����� ���. � � ����� � ��� ��� 70
���� �Datetime �� ��� ����� �����.
v expression� �� , � �� �� ���� ����� ���. datetime
��� � ��� 133 ���� �Datetime ����� ����� �����.
�� ��� � ����. ��� �� � � �� ��� �� � � ��
��� �� ��� ����.
�� ���� ��� �� �� �� ����.
v ��� �, ����, � �� ����� � �� ��� ��� :
��� �� �� ��� , 1 - 9999 ��� �� ���.
v ��� ���� �� �� ���� ��� :
��� �� �� ��� , -9999 - 9999 ��� ����. 0� � ��� �
�� �� ��� ����.
�
v PROJECT ��� �� ��� ��(PRSTDATE)� ����(PRENDATE) �
��� �� ����� �����.
SELECT * FROM PROJECTWHERE YEAR(PRSTDATE) = YEAR(PRENDATE)
v PROJECT ��� ��� ���� �� ���� �� ����� �����.
SELECT * FROM PROJECTWHERE YEAR(PRENDATE - PRSTDATE) < 1
�� YEAR ( expression ) ��
YEAR
330 iSeries� DB2 UDB SQL ��� V5R2
ZONED
ZONED �� ��� � �� ��� ����.
v �
v ��� �� ��� ��
v ��� �� ��� ��
v �� ���� �� ��� ��
�: �� CAST ���� � �� �� �� � ��� � ����. ��� ��
� 141 ���� �CAST ���� �����.
�� ��� ��� p� ��� s� � ��� , ��� p � s� ��� � �
� ����. � �� ��� �� � � �� ��� �� � � �� , �
�� ��� �� ��� ����.
�� � �(zone) ��
numeric-expression
��� � �� �� �� �� �����.
precision
1�� �� �� 31 �� �� �� ��� ��� �� ��.
precision� ���� numeric-expression� �� �� �� ����.
v �� ���, ��, � �� 0� � ��� 2�� 15
v � ��� 19
v � ��� 11
v �� ��� 5
scale
0 ���� precision �� �� ��. ��� �� ���� 0��.
�� � �(zone) ���� ZONED ( numeric-expression )
, precision-integer, scale-integer
��
�� � �(zone) ���� ZONED ( character-expression )
, precision, scale
, decimal-character
��
ZONED
� 3 � �� � 331
��� � �� ��� ��� p� ��� s� �� �� ��� ��� �
� �� ���. � ��� ��� � ��� �� ���� p-s�� �
��� ����.
�� � �(zone) ��
character-expression
�� �� ��� ��� �� � ���. �� � �� ��� ��
�� ���� �� �� �� ��� ���� � ��� ��� ���. �
��� CLOB� ���� ���.
precision
1�� �� �� 31 �� �� �� �� ��. ��� �� ����
15��.
scale
0 ���� precision �� �� ��. ��� �� ���� 0��.
decimal-character
� ���� �� ��� �� ��� ��� � ��� 1 �� �� ��� �
����. ��� ��� �� ���� ���. �� ��� ��� ��
���� ��� �� ��� �����. ��� ��� 102 ���� ��
���� �����.
��� CAST(character-expression AS NUMERIC(p,s))� ��� � �� ���
�. ���� decimal-character� ��� ���� ��� s�� � � �� �
� ��. character-expression�� decimal-character(� �� ��) ��� � �
��� p-s�� � ��� ����. ��� �� �� ��� decimal-character
��� ��� ������ �� ����.
ZONED
332 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
�
v ��� �� Z1� � 1.123� �� ��� ���� �����.
SELECT ZONED(:Z1,15,14)FROM SYSIBM.SYSDUMMY1
� 1.12300000000000� ����.
v ��� �� Z1� � 1123� �� ��� ���� �����.
SELECT ZONED(:Z1,11,2)FROM SYSIBM.SYSDUMMY1
� 1123.00� ����.
v �� ��,
SELECT ZONED(:Z1,4)FROM SYSIBM.SYSDUMMY1
� 1123� ����.
ZONED
� 3 � �� � 333
ZONED
334 iSeries� DB2 UDB SQL ��� V5R2
� 4 � ��
SQL ��� ��� �� �� ���� �����.
��� SQL�� ������. ��� �� ��� ����.
v subselect
v fullselect
v select�
�� �� �� 766 ���� �SELECT INTO��� �����.
�� ������� �����.
���
�� �� ��� ���� ID� �� ��� ��� �� � ��
�� ���.
v ���� ��� � � �� �� ��
– � �� ���� SELECT �� �
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ����.
v �� �� SELECT ��� �������.
v ��� ��� �� *OBJOPR � *READ� ����, � �� � �� ���
�� �� �� �� � � ��� ��� �� *READ� ����� � �,
� ��� ��� �� �� � ��� �� ��� �� � ��� ��� �
� �� � �
���� �� � ��� ���� ID� � ��� �� �� ��
��� �� � �� �� ���.
v ��� EXECUTE ��
© Copyright IBM Corp. 1998, 2002 335
v �� ��
��� ���� ID� �� � �� �� EXECUTE ��� ����.
v �� ����.
v ��� EXECUTE ��� �������.
v ��� *OBJOPR� *EXECUTE� ��� ��� �������.
subselect
�� select-clause from-clausewhere-clause group-by-clause
�
�having-clause
��
subselect� fullselect, CREATE VIEW� � INSERT�� ������. �� �
� �� ����� , ��� �� �� subselect� ������.
scalar-subselect� � ��� (��� ����) �� �� � � �� �� �
����. ���� ��� �� ��� � �� � ��. ��� � ���
�� ��� ��� � ��.
subselect� FROM��� ��� � �� ��� �� ���� �����. ��
� ��� ��� �� ��� �� �� �� ��� ��� � ����(���
subselect� ��� �� �� ����. �� ��� � ��� ����
� ��� �� � ����).
(����) �� ��� ��� ����.
1. FROM�
2. WHERE�
3. GROUP BY�
4. HAVING�
5. SELECT�
��
336 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
select�
SELECT�� �� ���� � �����. �� R� �� �� ���� ��
����� �� �� ��. �� ���� SELECT�� ��� �� �� ����
, R� subselect� �� �� ����. �� ��, ��� �� SELECT, FROM
� WHERE�� R� �� WHERE�� ����.
ALL
�� ���� � �� ��� ��� �� ����. ��� ��� �
��.
DISTINCT
�� ���� �� � � �� � �� ��� � ����.
� �� ��� � �� �� �� ���� �� �� �� �� ��
��(�� �� ��� � ��� ��� � ��). �� ��� �
� � ��� �� ��.
�� ���� LOB �� DATALINK � � DISTINCT� ��
� ����.
�� ��� ���
* � R� � ��� �� ���� �����. ����� � �� ��� R�
� �� � ���, �� ��� R� �� � �����.
�� ���� SELECT�� �� �� ��� �� � �� ��. ���, *
� ��� �� �� �� ��� � ��� ����.
expression
127 ���� ������� ��� �� ���� � �����. expression
�� � column-name� R� � ��� ���� ���.
colum-name �� AS column-name
�� � �� �� ������. ��� ��� ��� �� ��� �
���.
�� SELECTALL
DISTINCT
*,
expressionAS
column-nametable-name.*view-name.*correlation-name.*
��
select�
� 4 � �� 337
name.*
name � ��� �� ���� �����. name� � ��, � �� ��
���� � �� , FROM��� ��� � �� �� ���� ���. ���
�� � �� ��� � �� �� � �� � ���, ���� �� ��
� � �� �� �� � �����.
�� ���� SELECT�� �� �� ��� �� � �� ��. ���, *
� ��� �� �� �� ��� � ��� ����.
��, SQL�� ����� � ��� � �� ���� ���� ����. ���,
��� �� �� �� �� ����. � �, �� ���� �� ��
� �� �� � �� � 4�� ����.
v SQL ���� �� SQL ���� ��� ��� ���� ��� ��� �
iSeries ����� ��� �
v ��� SQL� SQL ���� �� ���� �� ��� ���� ��� SQL
���� �� ���� ��� ��� �� �
v � ��� OS/400 ��� ��� � SQL�� ��� ��� �
v SELECT *� INSERT�� subselect�� �� � �� subselect��
�� � ��� subselect�� ��� � �� �� �� �� � ���� �
SELECT ���� �� �� ���(�, ��� ��� ���) �� �� �
�� �� �� , 8000� �� � ����. � ��� EXISTS ��� ��
� ���� � �� ��� �� ������ ���.
�� ��� ��
�� ���� R� ��� ��� GROUP BY �� HAVING �� ��� �� �
����. �� ��� ��� �� ��.
GROUP BY �� HAVING� ��� �:
v �� ����� column-name� � � ���� ��� ���� ��
� � ��� ���� ���.
– ��� ���� ��� �� ���� ��� �� ���� ���
�� ����. �� �� ��� ���� C1� �� ����� C1+1
� � � ����.
– ��� ���� ��� � �� ���� ���� ���� ���
� ��� �� �� ����. �� �� ��� ���� C1+1� ��
����� C1+1� �� (C1+1)/8� � ����.
v RRN, PARTITION, NODENAME � NODENUMBER �� �� �����
��� � ����.
select�
338 iSeries� DB2 UDB SQL ��� V5R2
v �� ���� R� � ��� ���, ��� R� �� � ��� �� ��
�. �� ���� R� ��� ��� � �� ��� �� ���� �� �
� �� ����.
GROUP BY� HAVING� ���� �� �:
v �� ���� �� ��� �� �� � ����� ���.
v �� ���� �� � �� �� ���� R� � �� ���,
��� R� �� � � ��� �� ���.
v �� ���� � ���� R� � ��� ��� �� ���� �
�� ��� � ���.
�� ��� n�� � �� ���� �� ��� n�� ���� ��
� ��� �� ���.
�� � �(null) ��
�� � � ���� �� ��� �����.
v COUNT � COUNT_BIG� ��� �
v ��� ���
v ��� ��� ����� �� ��� � �� ���
v ����� ��� �� �� ��� ��
v ��� �� ���� �� �� � �� �� � � �� UNION ��
v ���
v ��� � ��
v ��� �� ��� �� � �
�� ��
v AS�� ��� �� ��� AS��� ��� ����.
v ���� ���� ��� �� ��� �� ���� �� ���
����.
v ����� AS�� ���� ��� �� �� � �� ( �� ��� �
�)��� �� �� ��� �� � ��� �� ����.
v �� �� �� � ��� ����.
�� � �� �
SELECT� � �� � �� ����� �� �� ����.
��� ��� ��
�
�� � � ��� ��� ����.
� � �� � �� �� ��, �� � ��� ���� ��� ��
select�
� 4 � �� 339
|
|
|
��� ��� ��
�
�� � � ��� ��� ����.
�� �� INTEGER �� BIGINT(�� �� INTEGER� � � �����
BIGINT� � �� �� )
�� �� �� ��� �
�
��� �� �� ��, �� ��� ��� ���� ��� ��.
� ��� ��� ��� �� �� ��, �� ��� ��� ���� ��� ��. ���
�� �� SQL �� �� ��� �� (�: COBOL� DISPLAY
SIGN LEADING SEPARATE), �� � ����.
��� ��� �� �� ��, 127 ���� ������� ��� �� ��� �
�� ���� ��� ��
� �� ��� �� �. �� �� ��� ��� �� �� ���
� � 3 �� �����. ��� �� ���� ��� �� �� �
� CREATE FUNCTION ��� �� ��.
��� � �� � �� �� ��, ��� �� �� ��
��� ��� ��� ��� �� �� ��, �� ��� �� �� �� �� ��� ��
�� SQL �� �� ��� �� (�:C� NUL �� ���), ��
� �� �� �����.
�� n� �� ��� �
�
VARCHAR( n)
�� n� � ���
��
VARGRAPHIC(n)
� �� �� ILE
RPG � �� ILE
COBOL � �
�� ��� ��� ��
�� ��� �� �� �� ��
�� �� � �� ��� �� �� �� �� ��
� ID �� � ID �
�� ��� ��
ROWID
scalar-subselect scalar-subselect� �� ���� �� ���� �� �
from�
FROM�� �� ���� �����.
�� table-reference� ��� �� ���� �� table-reference� ���
�. � ��� table-reference� FROM��� ��� �� ���� ���
table-references �� ��� �� ���� ������(Cartesian ��). ��� �
�� �� table-reference� �� ��� � �� table-reference� �� , �
� �� � �� �� �� , �� �� �� �� ��� � �� ��. ��
�� FROM
,
table-reference ��
select�
340 iSeries� DB2 UDB SQL ��� V5R2
|||
||
|||
||
� �� �� � table-reference� �� � �� ���. table-reference� ��
��� �table-reference�� �����.
table-reference
table-reference� �� ���� �����.
v �� � �� �� ��� �� ���� �� �� � �� ���.
v WITH �� �� �� �� ��� �� � ������ ���. 39 �� �
���� ��� ���� �� �� � ���� ����. �� � �
�� �� ��� ���, �� �� ��� �� � ��� � ����.
v �� function-name� ��� �� �� �� � �� �� �� �� �
���.
v joined-table� ��� �� ���� � ��� �� ��� ����. �
�� ��� 343 ���� �joined-table�� �����.
39. �� � ���� �� �� ���� ���.
�� single-tablenested-table-expressiontable-functionjoined-table
��
single-table:table-nameview-name correlation-clause
nested-table ��:( fullselect ) correlation-clause
order-by-clause fetch-first-clause
table-function:
TABLE ( function-name ( ) ) correlation-clause,
expression
correlation�:
AScorrelation-name
,
( column-name )
from�
� 4 � �� 341
|
|
|
|
|
FROM��� �� ���� �� ��� ��� ���.
v � table-name � view-name� �� ��� �� �� �� � �� table-reference
� �� �� subselect ��� ��� common-table ���(353 ����
�common-table ���� ��)� table-name� ���� ���.
v ��� ��� ��� ���. ��� ��� correlatin-name, ���
correlatin-name� �� �� table-name �� ��� correlatin-name� �� �
� view-name��.
v �� �� �� � � function-name� �� ��� ��� � �� ��
�� ���. 123 ���� � � ���� � � � ����� �����
� �� � ��� ��� ��� ��� �� �����. correlation-clause
� �� ��� ���, � �� ��� CREATE FUNCTION��
RETURNS�� ��� ���. �� CREATE TABLE� ��� ���
����.
� correlation-name� � � table-reference� �� ��� �� ���� ��
�� �� ��. ���� �� � ��� � � �� �� ���� ���.
�� � ��� ��� ��� ��� ���. ��� ��� ��� ����.
v correlation-name
v ��� correlation-name� �� �� table-name �� view-name
�, �, �� � ���, �� � �� � �� ��� � �� ��� ��
� ��� ��� ���� ���. ��� � �� � ��� � ��� ��
� � �� ��� correlation-name� ��� ���. correlation-name� �� �
� � �� ��� ��� � �� ��. correlation-name� ��� �
column-names� table-name, view-name, nested-table ��� �� table-function�
� ��� ��� � ��� �� ����. ���� ��� �� ��
� , ��� nested-table ��� �� table-function� � �� � �� ��
�� ��� ��� ���. ��� ��� 108 ���� ������ �����.
�����, nested-table ���� table-functions� from��� ��� � ����.
�� � ��� � � �� � �� ����� ��� � �� , ����
� ���� ��� ��� � ����� ��� � ����. �� ���� �
� FROM�� �� �� �� � ��� �� ���� �����. �� � �
��� ��� �� � ��� � ����.
v � ��� �� � � ��(���� � ��� ��� �� �)
v �� ���� ��� ��� ���� � �
from�
342 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
table-reference�� �� ��: �� ��� �� � ����� ��� � �
���. ��� �� ��� �� ��� � �� ��� � ��� table-reference
�� ���� ��� ���. � ��� FROM�� ���� ��� ��� �
� ��� table-reference� ���.
�� �� FROM�� ��� ���� ��� �� ��� ��� � �� �
�� FROM�� �� ��� � ��� �� ��� � � ����. ���,
�� ��� � �� ��� �� ���� �� ��.
� 1: �� �� ����.
SELECT D.DEPTNO, D.DEPTNAME, EMPINFO.AVGSAL, EMPINFO.EMPCOUNTFROM DEPARTMENT D,(SELECT AVG(E.SALARY) AS AVGSAL,COUNT (*) AS EMPCOUNT, E.WORKDEPT AS DEPT
FROM EMPLOYEE EWHERE E.WORKDEPT =(SELECT X.DEPTNOFROM DEPARTMENT XWHERE X.DEPTNO = E.WORKDEPT ) GROUP BY E.WORKDEPT)
AS EMPINFOWHERE D.DEPTNO = EMPINFO.DEPT
nested-table ���� WHERE��� D.DEPTNO� �� ��� � �� �� �
� �� �� ���� ��� ��� �� �� �� ����.
SELECT D.DEPTNO, D.DEPTNAME, EMPINFO.AVGSAL, EMPINFO.EMPCOUNTFROM DEPARTMENT D,(SELECT AVG(E.SALARY) AS AVGSAL,COUNT (*) AS EMPCOUNT
FROM EMPLOYEE EWHERE E.WORKDEPT = D.DEPTNO ) AS EMPINFO
� 2: ��� � � �� ����:
SELECT t.c1, z.c5FROM t, TABLE(tf3 (t.c2 ) ) AS z WHERE t.c3 = z.c4
FROM ��� � �� ��� �� �� ��� t.c2�� ��� ��� �� �
� ����:
SELECT t.c1, z.c5FROM TABLE(tf6 (t.c2 ) ) AS z, tWHERE t.c3 = z.c4
joined-table
from�
� 4 � �� 343
|
|
|
|
|
|
|
|
||||||||||
|
|
|||||
|
||
|
|
|||
|
joined-table� ��, ��, �� �� �� ��� ��� �� �� �� �����.
�� �� ��� � INNER, LEFT OUTER, RIGHT OUTER, LEFT EXCEPTION,
RIGHT EXCEPTION �� CROSS � �� ����� ��� � ��.
�� ���� ��� �� INNER� �� ��. �� ��� ��� ��
� ��� ��� �� � ����. ��� �� �� �� �� � ����. ��
� �� � ��� ����� ���� ������, ��� join-condition ��
���� ���. �� �� ��� �� �� � ��� ��� ��� �� ��
��. �� ��, ��� ����.
TB1 LEFT JOIN TB2 ON TB1.C1=TB2.C1LEFT JOIN TB3 LEFT JOIN TB4 ON TB3.C1=TB4.C1
ON TB1.C1=TB3.C1
� ��� ��� �����.
(TB1 LEFT JOIN TB2 ON TB1.C1=TB2.C1)LEFT JOIN (TB3 LEFT JOIN TB4 ON TB3.C1=TB4.C1)
ON TB1.C1=TB3.C1
�� ��� �� �� � �� ��� �� �� �� ��� �� ��� �� �
� ����. ��� �� �� ��� � � �� � �� � ��� �� �
� �� � ����. �� ���� �� �� �� �� �� � � �� ���
�� ���� �� ��. �� ���� ��� �� �� �� �� ��
�� �� ��.
v �� ��. �� ���� �� �� �� �� ��.
v ��� ��. �� ���� �� ��� �� �� ��.
v �� ��. �� ���� �� �� �� ��� ��.
v ��� ��. �� ���� �� ��� �� ��� ��.
��� �� ��� SELECT� �� ��� ��� ���� ��� � ����.
SELECT�� ��� �� � �� ��� �� ����.
�� � : join-condition� ��� ��� �!� �� ����.
v � �� � ��, � ��� �� IN � �� EXISTS � ��� �
� ����. ���� � �� � ��� � ��� � � ����.
v � ��� from�� � � �� �� � ��� ���� ���.
INNERtable-reference JOIN table-reference ON join-condition
OUTERLEFTRIGHTLEFT
EXCEPTIONRIGHT
CROSS JOIN table-reference( joined-table )
from�
344 iSeries� DB2 UDB SQL ��� V5R2
|
|
v �� ����� ��� � ����.
�� �� ��� ���� join-condition ���� ��� �� � �� ��
�� ��� �� ��� ��� �� 108 ���� � ���� ��� �
� ��� �� ��� ��� �� ��.
�� ��: join-condition� T1� T2� �� �� T1� T2� join-condition�
JOIN ���� �� � ��� ���� ���. T1� T2 �� �� ��� ��
� �� join-condition� �� T1� �� T2� �� �� ����. T1� �
� T2� �� ��� �� �� T1� � �� T2� � �� ��� �� ��.
��� �(null) �� �� �� ����. �� �(null) �� � �� �� ��
� ���� �� � � �� ���� �� ��.
INNER JOIN �� JOIN
T1 INNER JOIN T2� ��� ��� �� �� ��� �� ��.
join-condition� �� INNER JOIN ��� ��� �� ��� FROM��
� �� �� ��� ��� � where�� ��� ��� ���
�� ��� ��� �����.
LEFT JOIN �� LEFT OUTER JOIN
T1 LEFT OUTER JOIN T2� ��� �� �� �! ��� �� T1�
�� �� �� T2� �(null) �� �� ��. T2�� �� �� �� ���
��� � ����.
RIGHT JOIN �� RIGHT OUTER JOIN
T1 RIGHT OUTER JOIN T2� ��� �� �� �! ��� �� T2
� �� �� �� T1� �(null) �� �� ��. T1�� �� �� �� �
�� ��� � ����.
LEFT EXCEPTION JOIN � EXCEPTION JOIN
T1 LEFT EXCEPTION JOIN T2� ��� T1� �� �� �� T2� �(null)
�� ��� �� ��. T2�� �� �� �� ��� ��� � ����.
RIGHT EXCEPTION JOIN
T1 RIGHT EXCEPTION JOIN T2� ��� T2� �� �� �� T1� �(null)
�� ��� �� ��. T1�� �� �� �� ��� ��� � ����.
CROSS JOIN
T1 CROSS JOIN T2� ��� T1� � �� T2� � �� �� ��� ��
��. CROSS JOIN� Cartesian Product��� ���.
where�
from�
� 4 � �� 345
WHERE�� search-condition� �� R� ��� ��� �� ���� ����
�. R� ��� FROM�� ����.
search-condition� �� ��� ��� ���.
v � column-name� R� � ��� ��� �� ���� ���.
column-name� �� � ���� ��� �, �, �� � ��� �� �� �
� � ��� �� ����.
v �� WHERE�� HAVING�� � ��� ��� �� � ��� �
�� �� �� ��� �� ����� � ��.
WHERE�� �� �� ��� ��� � *HEX ��� �� ��� �� �
� ��� SBCS, �� �� UCS-2 ��� �� �� � �� ��
�� ��� �� ��� ������. ��� �� �� ����� �� ��
� ��� ����.
search-condition� � ��� R� � �� �� ����� �� , � ��� R
� �� �� �� search-condition� �������� �� ��. � ��� R
� � �� �� ��� � �� ��� R� � �� �� �� ��.
��, �� ��� �� � ��� � ��� ��� �� �� ��� �� �
��� � �� �� ��� ���� ���.
group-by�
GROUP BY�� R� � ���� ���� �� ���� �����. R� ��
subselect�� ����.
�� ��� ���, GROUP BY�� grouping-expression� ���.
grouping-express ion� R� ���� � �� � � �� ���� � .
grouping-expression� � � column-name� R� � ��� ���� ��
�. LOB � DataLink � grouping-expression�� ��� � ����. �
grouping-expression� �� �� 2000������ � , � �� � � ��
1999��. grouping-expression� ��� �� RRN, PARTITION,
NODENAME �� NODENUMBER �� � � ����.
�� WHERE search-condition ��
�� GROUP BY
,
grouping-expression ��
where�
346 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
GROUP BY�� ��� � �� ����. � � ��� � ���� �
grouping-expression� �� � �� , grouping-expression� ��� �� �� �
� �� �� ��� ��� ����. ���� grouping-expression� �� �
�� � ��� ��� � ��.
*HEX ��� �� ��� GROUP BY�� �� �� ��� ��� � � ,
�� ��� �� ��� ���� �� ��. ��� �� �� ��� SBCS �
� grouping-expression, �� �� grouping-expression� SBCS �� � UCS-2 �
� grouping-expression� ��� ����.
grouping-expression� HAVING�� �� ��, SELECT� �� ORDER BY��
sort-key-expression�� ��� � ����(��� ��� order-by�� �����).
�� � ��� � ��� �� �� �� �����. ��� �� ��� ��
�� ���, �� �� ��� grouping-expression� GROUP BY��
grouping-expression� �� ���� ���. �� ��,
SALARY*.10
� grouping-expression�
HAVING SALARY*.10
� having�� ���� ����, �� ��� ��� ����.
HAVING .10 *SALARY��HAVING (SALARY*.10)+100
grouping-expression� �� ��� �� �� �� ���� � ��� �
�� �� ��� �� �� � �� , � ��� ��� �� �� � ����.
�� grouping-expression� �� ��� �� � ��� �� � �� �� �
���, ��� �� �� ��� � ���� ��� �� ��. ���, �� ��
�� ��� ��� � ����.
GROUP BY�� �� 120 � grouping-expression �� 2000 - n ���
� � ���, ��� n� �(null)� ��� ��� grouping-expression ���.
having�
�� HAVING search-condition ��
group-by�
� 4 � �� 347
HAVING�� search-condition� �� R� ���� ��� �� ���� ���
��. R� subselect� �� �� ����. � �� GROUP BY� � R�
��� ���� �� �� ���� � ��.
�� ��� column-name� � � ���� �� � �� ���� ���.
v R� ��� ���� ��� �����.
v � ��� ���� ���.
v �� ���� ���. column-name� �� � ���� ��� �, �, �� �
��� �� �� �� � ��� �� ����.
RRN, PARTITION, NODENAME � NODENUMBER �� � �� ��
� ��� HAVING��� ��� � ����. � ��� ��� ���
�� � 3 �� ″ �″� �����.
HAVING�� �� �� ��� ��� � *HEX ��� �� ��� �� �
� ��� SBCS, �� �� UCS-2 ��� �� �� � �� ��
�� ��� �� ��� ������. ��� �� �� ����� �� ��
� ��� ����.
�� ��� ��� R ��� �� ��� � �� �� ��� �� ��
� �� ��� �� � ����.
� �� ��� � ��� � � ��� �� ��� R ��� ���
��� ��� ��� �� � �� � ��� �� ��� ��� � �� �
�. ���, � ��� �� ��� � �� � ��� �� �� ��.
���� �� ��� �subselect� ��� � 6 � 7� �����.
�� R� �� �� ��� ��� � ��� � �� �� ���.
GROUP BY �� HAVING� ��� � �� ���� ��� � �� �
��� ���.
subselect� �
� 1EMPLOYEE ��� �� � �� �����.
SELECT * FROM EMPLOYEE
� 2EMPPROJACT� EMPLOYEE �� ��� EMPPROJACT ��� �� � �
�� � EMPLOYEE �� �� �(LASTNAME)� ��� � �� �����.
having�
348 iSeries� DB2 UDB SQL ��� V5R2
SELECT EMPPROJACT.*, LASTNAMEFROM EMPPROJACT, EMPLOYEEWHERE EMPPROJACT.EMPNO = EMPLOYEE.EMPNO
� 3EMPLOYEE � DEPARTMENT �� ���, �� ��(EMPNO), �� �
(LASTNAME), ���(EMPLOYEE �� WORKDEPT, DEPARTMENT ��
DEPTNO), ��� 1930� ��� ���(BIRTHDATE) �� ��� ���
(DEPTNAME)� �����.
SELECT EMPNO, LASTNAME, WORKDEPT, DEPTNAMEFROM EMPLOYEE, DEPARTMENTWHERE WORKDEPT = DEPTNOAND YEAR(BIRTHDATE) < 1930
� subselect� ��� �� ��� �� ����.
SELECT EMPNO, LASTNAME, WORKDEPT, DEPTNAMEFROM EMPLOYEE INNER JOIN DEPARTMENTON WORKDEPT = DEPTNOWHERE YEAR(BIRTHDATE) < 1930
� 4��(JOB)� ��� EMPLOYEE ��� ��� �� ��� �� � � ��� �
� �� � �� �(SALARY)� �����. � �, �� � ���� ��
�� 27000 ��� ��� ���� �����.
SELECT JOB, MIN(SALARY), MAX(SALARY)FROM EMPLOYEE
GROUP BY JOBHAVING COUNT(*) > 1 AND MAX(SALARY) >= 27000
� 5��(WORKDEPT) ‘E11’� ��(EMPNO)� �� EMPPROJACT �� �� �
� �����(�� �� ��� EMPLOYEE �� �����).
SELECT * FROM EMPPROJACTWHERE EMPNO IN (SELECT EMPNO
FROM EMPLOYEEWHERE WORKDEPT = ’E11’)
� 6EMPLOYEE ��� �� �� �� ��� �� �� � ��� �� ��� �
� �� ��(WORKDEPT) � �� �� �(SALARY)� �����.
SELECT WORKDEPT, MAX(SALARY)FROM EMPLOYEE
GROUP BY WORKDEPTHAVING MAX(SALARY) < (SELECT AVG(SALARY)
FROM EMPLOYEE)
HAVING��� � ��� � ��� � ��� �� ��.
having�
� 4 � �� 349
� 7EMPLOYEE �� ��� �� �� �� �� ��� �� � ��� �� �
�� �� �� ��(WORKDEPT) � �� �� �(SALARY)� �����.
SELECT WORKDEPT, MAX(SALARY)FROM EMPLOYEE EMP_CORGROUP BY WORKDEPTHAVING MAX(SALARY) < (SELECT AVG(SALARY)
FROM EMPLOYEEWHERE NOT WORKDEPT = EMP_COR.WORKDEPT)
� 6� �����, HAVING��� � ��� � ��� �� ��� ��� ��
��.
� 8EMPLOYEE� EMPPROJACT �� ��� � �� �� � ��� ���� ��
� �����. �� ��� ���� ��� �� ���� ����.
SELECT EMPLOYEE.EMPNO, PROJNOFROM EMPLOYEE LEFT OUTER JOIN EMPPROJACTON EMPLOYEE.EMPNO = EMPPROJACT.EMPNO
EMPPROJACT �� ���� ��� �� EMPLOYEE �� ��� �� ��
EMPNO �� PROJNO � ��� �� �� � �� ����.
fullselect
fullselect� ���� �����. UNION� ��� �� fullselect� ���
��� subselect� ����.
UNION DISTINCT or UNION ALL
� �� ���(R1 � R2)� ��� ���� ����. UNION ALL�
��� ��� R1 � R2� �� ��� ������. ALL �� ��
UNION� ��� ��� �� �� �� R1�� R2� �� �� � �
���. � �, �� UNION �� � �� R1� � �� R2� ��
�.
�� � ��� �� �� ��.
�� subselect(fullselect)
DISTINCTUNION subselect
ALL (fullselect)
��
having�
350 iSeries� DB2 UDB SQL ��� V5R2
v R1� n �� � R2� n �� � ��� �� ��� �� ���� n
�� � �� ��� ����.
v R1� n �� � R2� n �� � ��� ��� �� �� ���� n �
� � ��� ����.
� �� �� � �� �� �� ���� �� �� �� ��. UNION
� �� �� �� ��� ��� � *HEX ��� �� ��� �� ����
SBCS, UCS-2 �� �� ��� �� � � � � � �� ��
��� �� ��� ������. ��� �� � �� �� ��� ��� ��
��(��� ��� � ��� ��� ��� � ��).
UNION� UNION ALL� � �� ����. UNION ���� ��� SQL�
� UNION ALL ���� � �� ��� �� ��� �� �����.
��� �� ��� ��� ���� ����� ������. ��� �� ����
�� � subselect� �� ���, ��� ���� ����� ��� �� �
���� �� �� ��.
�� ��: R1 � R2� ��� �� � ��� , R1� n �� �� �
� R2� n �� �� �� ��� � ��� ���. �� ��� �� � ��
�� ��� � ����.
UNION � UNION ALL ��� n �� � R1 � R2� n �� �� � �
�. �� � �� �� � �� ��� ��� �� ��. ��� ��� 93
���� ��� �� �� �� ���� �����.
UNION� ��� � LOB �� DATALINK � � � ����.
�� �� ��� fullselect� � ���� ���. �� ��, � ��� �� �
�� ��� � ����.
fullselect� �
� 1EMPLOYEE ��� �� � �� �����.
SELECT * FROM EMPLOYEE
� 2EMPLOYEE �� �� ��� ��� �� ��(WORKDEPT)� 'E'� ���
�� EMPPROJACT ��� ���� ��(PROJNO)� 'MA2100', 'MA2110' ��
'MA2112'� ����� ��� ��� ��(EMPNO)� � ����.
fullselect
� 4 � �� 351
|
|
SELECT EMPNO FROM EMPLOYEEWHERE WORKDEPT LIKE ’E%’
UNIONSELECT EMPNO FROM EMPPROJACTWHERE PROJNO IN(’MA2100’, ’MA2110’, ’MA2112’)
� 3� 2��� �� ��� �� EMPLOYEE ��� ��� ��� ‘emp’,
EMPPROJACT ��� ��� ��� ‘empprojact’ ��� ���. �2� ���
� �� � ��� �� �� ��� ��� �� ��� ��� EMPNO� �
�� �� � ����.
SELECT EMPNO, ’emp’ FROM EMPLOYEEWHERE WORKDEPT LIKE ’E%’UNION
SELECT EMPNO, ’empprojact’ FROM EMPPROJACTWHERE PROJNO IN(’MA2100’, ’MA2110’, ’MA2112’)
� 4� 2��� ��� ��� ���. UNION ALL�� ��� �� �� �� �
�� ���.
SELECT EMPNO FROM EMPLOYEEWHERE WORKDEPT LIKE ’E%’
UNION ALLSELECT EMPNO FROM EMPPROJACTWHERE PROJNO IN(’MA2100’, ’MA2110’, ’MA2112’)
select�
��
,
WITH common-table-expression
fullselectorder-by-clause
�
�fetch-first-clause
(1) (2)
update-clauseread-only-clauseoptimize-clauseisolation-clause
��
�:
1 update� � read-only�� � ��� select��� ��� � ����.
2 � �� � �� �� ��.
fullselect
352 iSeries� DB2 UDB SQL ��� V5R2
select�� DECLARE CURSOR��� � ��� �� � DECLARE
CURSOR��� ��� � �� �� ���. � ��� ���� ����
������ ���� �� �(STRSQL �)� ��� ����� �� �
� ����. � select-statement� �� ��� �� fullselect� ���
�.
common-table ���
common-table-expression� ���� fullselect� FROM�� � ���� ��� �
�� table-name�� ���� ��� � ��� �����. table-name� ���
��� ���. �� WITH � � ��� �� �� � ���� ��� � ���
�. ��� � �� � ���� ���� �� � ���� FROM�� �� ���
� ��� �� ����.
���� ��� ���� �� �� �� �� �� �� �� ����
���� ���. � column-name� ��� ��� ��� ���. ��
��� ��� �� ��� �� � ���� ��� � ��� subselect
� �� ����� �� ���.
�� � ���� table-name� ��� ��� �� �� � ��� table-name�
��� ���. �� � ��� table-name� fullselect� �� FROM�� � ���
� ��� � ����. �� � ���� table-name� �� �, � �� ��� ��
� ��� �� ��(����� ��)� �����.
� ��� �� � ���� ��� ��� ��� �� � ��� ��� �
� ��� ��� ����. cyclic reference� � �� � ��� dt1 � dt2
�, dt1� dt2� ��� dt2� dt1� ���� ��� � ����.
common-table-expression� CREATE VIEW � INSERT���� �� �� ��
�����.
common-table-expression� ��� �� � ��� � ����.
v � ��� �� � � ��(���� � ��� ��� �� ���� �
�� �� ��� �� �)
v �� ���� ��� ��� ���� � �
��
table-name,
( column-name )
�
� AS ( fullselect )order-by-clause fetch-first-clause
��
select�
� 4 � �� 353
|
|
|
|
|
|
v ��� ���� fullselect�� ��� � �
�� � ���� fullselect� FROM��� �� ��� � �� � ����
�� � �����. �� �� � ���� iSeries� DB2 UDB�� ��� �
���.
order-by�
ORDER BY�� ���� � ��� �����. �� sort-key� ��� �� �
� sort-key �� �� ��� ��. � ���sort-key� ��� �� � �� �
�� sort-key �� �� ���� �� �� ��� sort-key �� �� ���
��.
ORDER BY�� �� �� ��� ��� � *HEX ��� �� ��� ��
ORDER BY�� SBCS, UCS-2 �� �� ��� �� sort-keys� �
sort-keys� �� �� ��� �� �� ������. ��� �� sort-keys ��
�� ��� ��� ����.
�� ���� ��� � simple-integer �� simple-column-name� sort-key� �
� ��� � ����. �� ���� ��� �� ��� simple-integer ��
sort-key-expression� �� ��� � ����. AS�� select-list�� ��� ��
��, ���� �� ��� �� ��� �� � ��� ����.
fullselect� UNION ���� � fullselect�� ��� � �� ���
350 ���� �fullselect�� �����.
simple-column-name
����� ���� � �����. � , simple-column-name� �� ��
�� ��� ��� � ����� ���. � LOB �� DATALINK �
��� � ��. fullselect� UNION �� UNION ALL� � �
�� ��� � ����.
�� ORDER BY
,ASC
sort-keyDESC
��
sort-key:simple-column-namesimple-integersort-key-expression
common-table-expression
354 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
simple-column-name� ��� � ��� FROM��� ��� �, � �
� �� �� ��� ��� �� ����. � ��� ���� ��� �
�� simple-column-name� grouping-expression� ��� ��� ����.
integer
0 �� �� , ���� ��� ��� � ��. �� n� ���� n��
� �����. ��� � LOB �� DATALINK ���� � ��.
sort-key-expression
�� �� �� �� �� �� ��� � ���. � ��� sort-key�
���� ���� ��� ��� subselect��� ���.
fullselect� UNION �� UNION ALL� � sort-key-expression�
RRN, PARTITION, NODENAME �� NODENUMBER� � � ���
�. sort-key-expression ��� LOB �� DATALINK� ��� � ��.
subselect� ���� sort-key-expression�
v subselect� �� ���� �� ���� � � ����.
v subselect� GROUP BY�� grouping-expression� � � ����.
ASC
������ � �� �����. ��� ��� ���.
DESC
������ � �� �����.
���� � 2 ��� ��� � ��� �� �� ��. ��� �� ��� ��
���. ��� ��� ��� ���� ��� �� ��� ��� sort-key� �
��� �� �� �� ��� ����. ORDER BY�� ��� �� ���
� �� �� ��� ����.
ORDER BY�� �� 10000-n sort-key �� 10000-n ��� � � ����
(���, n� �(null)� ��� ��� sort-key ���).
fetch-first�
fetch-first�� ��� � �� �� � �� �����. � � ������ ���
� � �� ��� ��� � �� �� � � �� ���� ���� ����
�� FETCH FIRST1
integerROWROWS
ONLY ��
order-by�
� 4 � �� 355
|||||||||||||||||||||||||||||
||
|
|
|
|
|
|
���� �� � �� ����� ��� ��� � � � ����. �� � �
��� ���� ��� ��� �� ��� �� ���� � ��. �� �� (0
� �) � ���� ���.
���� � �� �� ��� ��� ��� ��� � ����. ������ �
��� � �� integer �� ��� �� �� �����.
select�� fetch-first-clause� ��� ���� �� ��� ��. �� �� ��
�� UPDATE� DELETE��� ����� � ��.
fetch-first-clause� UPDATE�� �� �� ��� �� � ����.
fetch-first-clause� order-by-clause� � ��� � �� integer� �� �
� �� �� �� ��� �� ��� �� ��.
update�
UPDATE�� �� ��� UPDATE��� �� � �� � �����. �
column-name� ��� ��� , �� ��� � �� FROM��� ��� �
�� �� � ���� ���. UPDATE�� ���� ��� fullselect�
� �� FROM��� ��� � �� �� ���� � � ��. �� �
�� optimize � �� �� �� � ����.
fullselect� ���� �� ����(��� ��� 598 ���� �DECLARE
CURSOR� ��), FOR READ ONLY�� ��� �� DECLARE CURSOR
��� DYNAMIC � � �� SCROLL � �� ��� FOR UPDATE OF
�� ����� � ��.
select�� ��� ��� ��� � ��� UPDATE�� ��� �� �
��� � � �� � ����.
v select�� �� � �� � ��
– UPDATE�
– FOR READ ONLY�
– ORDER BY�
v DECLARE CURSOR�� DYNAMIC � � �� SCROLL � �� �
��
�� FOR UPDATE
,
OF column-name
��
fetch-first�
356 iSeries� DB2 UDB SQL ��� V5R2
UPDATE�� ISO/ANSI SQL� ��� � �� ����.
read-only�
FOR READ ONLY �� FOR FETCH ONLY�� ���� �� ���� ���
��. �� ��, ��� ���� DELETE �� UPDATE�� ��� ����.
�� ���� � �� ����(�: �� �� �� �� � �). FOR READ
ONLY� �� �� �� ��� �� ���, ��� ��� ��� ����.
� � �� ��� ���� �� FOR READ ONLY� ��� �����
� ���� ��� ��� ��� ��� �� � �� ��� FETCH �� �
�� ���� � ����. �� ��, FOR READ ONLY �� ORDER BY��
�� �� SQL�� � ������ ������ ���� FOR UPDATE OF
�� ��� �� DYNAMIC � � �� SCROLL� ��� �� ��� �
����.
�� �� ���� � �� ���� FOR READ ONLY� ���� UPDATE
�� DELETE��� ����� � ��.
FOR READ ONLY�� UPDATE�� �� �� ��� �� � ����. �
� ��� optimize � �� �� �� � ����.
optimize�
optimize�� ������ ����� ����� ���� integer � ��� ��
� ���� ����� �� �����. � �� �� �� � � ALL� ��
������ ���� ���� �� �� ����� ��� ��� ����
��. integer �� �� �� ��� ��� �� �� ���� ��� ��� �
��� � ����. � �� ��� �� �� ��� ��� �� � ����. �
� �� �� ��� � ���, ��� integer� ��� �� �� � ����. �
� ��(0� �) � ���� ���. � �� ��� update� �� read-only
� �� �� �� � ����.
�� FOR READFETCH
ONLY ��
�� OPTIMIZE FOR integerALL
ROWROWS
��
read-only�
� 4 � �� 357
isolation�
isolation�� SELECT, SELECT INTO, INSERT, UPDATE, DELETE, �
DECLARE CURSOR��� �� ��� �����. � �� ��� ���� ��
�� �� ����� �� ��. �� ��� �� ��� ��� �� ��� �
����.
KEEP LOCKS�� ��� ��� �� ��� � � ��� �����. ��,
�� ��� �� �� ��� � �� ��. ���� ��� ��� ��� �
� COMMIT �� ROLLBACK ��� ��� ��� ��� ����. �
�� �� ��� SQL� ����� � ��. KEEP LOCKS�� SQL
SELECT, SELECT INTO �� DECLARE CURSOR��� �� ��. ���
� ����� ��� ����.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ��� ��� ��� � ����.
v � � NONE� NC� �� ���� ��� � ����.
v � � CHG� UR� �� ���� ��� � ����.
v � � ALL� RS� �� ���� ��� � ����.
select� �
� 1EMPLOYEE ��� �� � �� �����.
SELECT * FROM EMPLOYEE
� 2PROJECT ��� �����(PROJNAME), �� �(PRSTDATE), �� �
(PRENDATE)� �����. �� ��� �� �� ����� �� ���� �
��� ����.
�� WITH NCURCS
(1)KEEP LOCKS
RSRR
��
�:
1 KEEP LOCKS�� DECLARE CURSOR, SELECT INTO � fullselect��
�� ��� � ����.
isolation �
358 iSeries� DB2 UDB SQL ��� V5R2
SELECT PROJNAME, PRSTDATE, PRENDATEFROM PROJECTORDER BY PRENDATE DESC
� 3EMPLOYEE ��� �� ��� �� �� �� �(SALARY)� �� ��
(WORKDEPT)� �����. ���� �� �� �� �� ������ ��
��.
SELECT WORKDEPT, AVG(SALARY)FROM EMPLOYEE
GROUP BY WORKDEPTORDER BY 2
� 4PROJECT �� �� �(PRSTDATE)� �� �(PRENDATE)� �� C �
����� ��� UP_CUR��� ��� ����. ����� � �� �� ��
�� ��(PROJNO)� � � � �� ��� ���. �� ��� �� ��
� �� �� 2 � ��� � ����� �����. � ��, �����
����� 2 � ��� ��� � ����. � �, 2 � ��� ��� �� ���
�� � ����.
EXEC SQL DECLARE UP_CUR CURSOR FORSELECT PROJNO, PRSTDATE, PRENDATE
FROM PROJECTFOR UPDATE OF PRSTDATE, PRENDATEOPTIMIZE FOR 2 ROWS ;
� 5� ���� ��� SAL+BONUS+COMM� TOTAL_PAY�� �����.
SELECT SALARY+BONUS+COMM AS TOTAL_PAYFROM EMPLOYEEORDER BY TOTAL_PAY
� 6�� � � �� ��� ��� � �� �� � ����� �� �����.
�� �� �� �� �� � ��� �� �� ����.
� �� � ���� ��� �� �� DINFO �� ��� �� �� �
� � ����. �� �� ���� ���� �� �� ��� ��� �� ���
��� ���� ���.
WITHDINFO (DEPTNO, AVGSALARY, EMPCOUNT) AS
(SELECT OTHERS.WORKDEPT, AVG(OTHERS.SALARY), COUNT(*)FROM EMPLOYEE OTHERSGROUP BY OTHERS.WORKDEPT),
DINFOMAX AS(SELECT MAX(AVGSALARY) AS AVGMAX
FROM DINFO)
isolation �
� 4 � �� 359
SELECT THIS_EMP.EMPNO, THIS_EMP.SALARY, DINFO.AVGSALARY, DINFO.EMPCOUNT, DINFOMAX.AVGMAXFROM EMPLOYEE THIS_EMP, DINFO, DINFOMAXWHERE THIS_EMP.JOB = ’SALESREP’AND THIS_EMP.WORKDEPT = DINFO.DEPTNO
� 7����� ��(RS, ALL) �� ��� �� ��� ��� �����.
SELECT NAME, SALARYFROM PAYROLLWHERE DEPT = 704WITH RS
isolation �
360 iSeries� DB2 UDB SQL ��� V5R2
� 5 � ���
� ��� �� ��, �� ��, �� � �� �� �� SQL�� �� ��
� ����.
� 32. SQL ��� ��
SQL� �� ���
ALTER TABLE �� �� � 371
COMMENT ��, , �, ��, ���, ��,
�����, �, ��� �� ���
�� �� ��� ��
408
CREATE ALIAS �� �� 432
CREATE
DISTINCT TYPE
�� � �� 435
CREATE
FUNCTION
��� �� � �� 443
CREATE
FUNCTION(��
���)
�� ��� � �� 447
CREATE
FUNCTION(��
���)
�� � � �� 465
CREATE
FUNCTION(���
(sourced))
��� ���� �� �� �
�� �� � ��
480
CREATE
FUNCTION(SQL
���)
SQL ��� � �� 488
CREATE
FUNCTION(SQL
�)
SQL � � �� 497
CREATE INDEX �� �� �� 506
CREATE
PROCEDURE
����� �� 510
CREATE
PROCEDURE(�
�)
�� ����� �� 512
CREATE
PROCEDURE
(SQL)
SQL ����� �� 526
CREATE
SCHEMA
��� � � ���� ��� ��
��
536
CREATE TABLE � �� 541
© Copyright IBM Corp. 1998, 2002 361
|||
||
� 32. SQL ��� �� (�)
SQL� �� ���
CREATE
TRIGGER
�� �� 575
CREATE VIEW � ��� �� �� �� � �� 590
DROP ��, �, ��, ���, �����,
���, �, ��, � �� � �
656
GRANT(��
� ��)
�� �� �� �� 684
GRANT( � ��
����� ��)
�� ������ �� �� 687
GRANT(��� �
�)
���� �� �� 695
GRANT(� ��) �� �� �� �� 698
LABEL ��, , ���, �� �� ��� �
� � ��� ��
717
RENAME �, � �� �� ��� 741
REVOKE(��
� ��)
��� ��� �� � �� 744
REVOKE( � �
� ����� ��)
�� ������ �� �� 746
REVOKE(���
��)
��� ��� ����� �� �� 753
REVOKE(� ��) �� �� �� �� 755
� 33. SQL �� � ��
SQL� �� ���
DELETE ��� � ��� � � 639
INSERT �� � ��� � � 708
UPDATE �� �� � ��� �� � ��
� �� �
804
� 34. SQL �� ��
SQL� �� ���
�� SQL �� � �� � 33
CLOSE �� �� 406
DECLARE
CURSOR
SQL �� �� 598
FETCH ��� ��� ��� ���. ���
� � ��� �� �� ��� ��
� ��� �� ����.
675
FREE LOCATOR LOB ���� ��� � ��� ��
�
683
HOLD LOCATOR LOB ���� ��� �� � � �
��� �� ��� ��� ���.
704
���
362 iSeries� DB2 UDB SQL ��� V5R2
||||
� 34. SQL �� �� (�)
SQL� �� ���
LOCK TABLE �� ����� �� �� ��
� ��
721
OPEN �� � 723
SELECT �� �� 765
SELECT INTO �� ��� ��� �� 766
SET �� �� �� ��� �� �� 798
SET �� �� ��� ��� �� 801
VALUES ���� ��� �� � �� ��
��
814
VALUES INTO � ��� ���� ��� ��� �
�� � ��
816
� 35. SQL ���� ��
SQL� �� ���
COMMIT �� � � ��� �� �� � �
��� ������ � ��� ��
(commit)
418
RELEASE
SAVEPOINT
�� �� ��� �� 740
ROLLBACK �� � � ��� �� �� � �
��� ������ �� ��
759
SAVEPOINT �� � �� ��� �� 763
SET
TRANSACTION
�� �� � � �� �� �� � 795
� 36. SQL �� ��
SQL� �� ���
CONNECT(� 1) ��� ��� ��� �� � � �
� �� ��
421
CONNECT(� 2) ��� ��� ������ �� �
� �� � � �� �� ��
427
DISCONNECT � ��� ��� �� �� 653
RELEASE � ��� ��� �� �� ��
���
738
SET
CONNECTION
�� �� �� �� � �� ��
� ����� �� ��
769
� 37. SQL �� ��
SQL� �� ���
DESCRIBE �� ��� �� �� 645
DESCRIBE
TABLE
�� �� �� �� �� 650
���
� 5 � �� 363
|||
|||
||||
|||
� 37. SQL �� �� (�)
SQL� �� ���
EXECUTE �� SQL� �� 670
EXECUTE
IMMEDIATE
SQL� � � �� 673
PREPARE SQL� �� � 728
� 38. SQL �� ��
SQL� �� ���
DECLARE
GLOBAL
TEMPORARY
TABLE
�� ��� �� �� �� 606
SET PATH CURRENT PATH �� ����� �
� �����.
788
SET SCHEMA CURRENT SCHEMA �� �����
�� �����.
793
� 39. SQL �� ��� � ��
SQL� �� ���
BEGIN
DECLARE
SECTION
SQL � ��� �� �� 398
DECLARE
PROCEDURE
�� ����� �� 624
DECLARE
STATEMENT
�� SQL�� ��� � ���
�� �
634
DECLARE
VARIABLE
��� ��� ��� � �� �
��� ��� �� �� ID(CCSID)
�
636
END DECLARE
SECTION
SQL � ��� � �� 668
INCLUDE �� ����� � � 706
SET RESULT
SET
������� �� �� �� 790
SET OPTION SQL�� �� �� �� 772
WHENEVER SQL � ��� ���� �� ��
��
819
� 40. SQL ���
SQL� �� ���
assignment� �� �� �� �� ��� ��
�����.
826
CALL ����� �� 400
���
364 iSeries� DB2 UDB SQL ��� V5R2
||||
||
||||
� 40. SQL ��� (�)
SQL� �� ���
CASE �� ��� ���� �� �� ��
���.
829
compound� SQL ���� �� ��� � ��
����.
831
FOR �� � �� �� ��� ����
�.
838
GET
DIAGNOSTICS
��� �� SQL�� �� ��� ��
��.
840
GOTO SQL �� �� ���� ��� ��
�� � ��� � �� ��.
843
IF ��� � �� ���� � ��� �
�� �����.
845
ITERATE ����� �� � ��� �� ��
���� ��� ���.
847
LEAVE � �� ��� ��� � ����
�.
849
LOOP ��� ��� �����. 851
REPEAT ��� ��� �����. 853
RESIGNAL �� �� � ��� �� ���
�.
855
RETURN ���� ����. 858
SIGNAL �� �� � ��� ����. 861
WHILE ��� ��� �� �� �� ���
�����.
864
�� �����.
v �SQL�� ��� ���
v 368 ���� �SQL � ���
v 370 ���� �SQL ��
SQL� ���� ��
� �� ��� SQL�� �� �� ���� �� ��. � ��� ��� ��
�� ��� ��� ���� ��� �����.
��� �� ���� ���� ��� � ����.
v ������ ����� �
v ���� � � ��
v ����� �
���
� 5 � �� 365
�: REXX� �� RUNSQLSTM� ��� �� ��� ���� �
� �� ��.
��� �� �� ���� �� �� �� ��� � ����. � ��� ���
�� �� ��� ��� � �� ���� �����.
���� ������ ������ �� � ����.
� �� ��� �� �� select���� SQL� ��� � ����. 352 ���
� �select��� �����. � ��� �� ���� �� ���� ��� �
�� � ��� � ����.
��� �� ���� select�� ��� � ����.
v DECLARE CURSOR� � OPEN� �� ����� ��
v DECLARE CURSOR� ��� ���� �� OPEN� �� ����� �
�
v ����� �
�� �� ���� �� select�� �� � �� ����� ���.
������ ����� �� ��
CRTSQLCBL, CRTSQLCBLI, CRTSQLCI, CRTSQLFTN, CRTSQLCPPI,
CRTSQLPLI, CRTSQLRPG, CRTSQLRPG �� CRTSQLRPGI �� ���
SQL�� ��� � �� �� ����� � � ����. � � ��
� ����� ���� ���. ������ ��� �� ��� ��� �
� ��� �� ��� �� � ����. �� ��� � EXEC� SQL
� � ��� ���.
��
��� �� ��� �� �� ��� ��� ��� ������ �����
�� ���� �� ��. �� �� �� ��� ��� ��� ��� ���,
�� �� �� ��� ��� ��� �� ����� �� �����.
�� ��� ��� ��� �� ��� � � ����. � � ���� �
�� ��� ��� �� ���� ��� � ����.
v ���(��� ��� �� �� ��� ��� �� ��.)
v ����(�� ��� ��� ��� � �� �� ��.)
�, ���� �� ��� ��� �� ��� ��� �� ��� �� ��. �,
��� ��� �� ��. �� ��� �� � ��� �� ���� ��
��.
���
366 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
�� ��� ��� SQL � ��� ���� ��� ���. �� WHENEVER�(�
��� ���)� �� ��� ��� � �� ��� ��� �� � ��
� � ����.
SQL��� ��� ���� ��� �� � ��� ��.
��
�� ���� ��� � ���� � ��. ��� � � � ��
�� �� ��� � �����. ��� ��� ��� �� , ������
����� ��� ��� �� ��� ����. ���, � � �� ���
� SQL � ��� ���� ���� � ��.
�� � � �
������ ����� ��� ��� �� �� ��� ���� SQL�� ��
�� ��� � ����. ����� ��� ������ ��� � �� �� �
�� �� �� ��(�� ��, ���������� �). ��� (��) �
� PREPARE� ��� �� (��) �� EXCUTE� �� ��� � �
���. �� (��) �� EXECUTE IMMEDIATE� ��� � ��� �
�� �� ��� � ����.
���� �� ��� ��� ��� �� ��� � � ����. �
�� ��� � � ����. �� ��� �� ��� 728 ����
�PREPARE�� �����. �� ��� ��� �� ��� EXECUTE
�� ��� ��� ��� �� ��� �� ��. � � ��� �� ��� 670
���� �EXECUTE�� �����. ��� �� ��� �� ��� �� �
�� � � ��� � ����. �� ��� EXECUTE IMMEDIATE��� �
�� ����.
EXECUTE(�� EXECUTE IMMEDIATE)� ��� SQLCA� �� SQL � �
�� ��� ��� ��� �� ����� �� ��� �����. �� �
�� �� �� ��� �� SQL � ��� ���� ���. ��� ���
368 ���� �SQL � ��� �� �����.
select�� �� ��
select�� (��) �� DECLARE CURSOR� ���� � � ����. �
� ��� (��) �� OPEN� �� ��� ��� �� ��. ���
� �, ���� FETCH�� ���� ��� � �� � �� �� �� �
FETCH�� ��� � �� � �� ��� � ����.
� � ���� select��� ��� ��� �� ��� � � ����. � �
��� OPEN� ��� ��� ��� �� ��� �� ��.
���
� 5 � �� 367
select�� �� ��
������ ����� ��� ��� �� �� ��� ���� select�� ��
�� ��� � ����. ����� ��� ������ ��� � �� �� �
���� � ��(�� ��, ������� ��� ��). �� ��, (��) �
� OPEN� �� ��� ��� ��� �� ��. ��� � �, ���
� FETCH�� ���� ��� � �� � �� �� �� � FETCH�� �
�� � �� � �� ��� � ����.
� � ���� select�� ��� ��� �� ��� � � ��. �
�� ��� � � ����. �� ��� �� ��� 728 ����
�PREPARE�� �����. �� ��� OPEN�� ��� ��� �� ��
� �� ��. � � ��� �� ��� 723 ���� �OPEN�� �����.
��� ��
������� SQL�� �� �� ������ ��� ��� ����.
iSeries� DB2 UDB ��� ����� SQL ��(STRSQL) �, Query Manager
��(STRQM), ��� � �� �� iSeries Navigator� SQL ���� ��� �
����. �� ��� �� ��. � ���� �� ��� ����� ��
�� ���. ���� �� � �� ��� �� �� ��(CONNECT,
DISCONNECT, RELEASE � SET CONNECTION)� ���� �����
�� � ����.
�� ��� ��� ��� �� ��� ������ ����� ����� ��
� ���� ����� �� ��� �� ��� ��� ��� �� ���
�� ������ ���.
SQL �� ��
����� SQL�� �� �� ������ ����� ��� �� � �� ��
�� ���.
v SQLCA� ��� ��
v SQLCODE� ��� �� �� ��
v SQLSTATE� ��� �� CHAR(5)(C��� CHAR(6)) ��
�� SQLCODE� SQLSTATE� � � ��� � ����. SQLCA� ��� �
� SQLCODE� SQLSTATE� � � ��� ����. �� SQLCODE�
SQLSTATE� ��� ���� �� � ��.
SQLCA� REXX� RPG�� ���� �� ��. �� ���� INCLUDE
SQLCA�� ��� SQLCA� �� � ����. �� SQLCODE �� SQLSTATE
���
368 iSeries� DB2 UDB SQL ��� V5R2
� ��� INCLUDE SQLCA� ��� � ����. SQLCA� SQLCODE(RPG
��� SQLCOD)�� � �� ��� SQLSTATE(RPG��� SQLSTT)��
� �� ��� ��� ����.
SQLCA � �� SQLSTATE� ��� ��� ISO/ANSI SQL ��� ���
�. �� SQLSTATE � �� SQLCODE� ��� ��� ISO/ANSI SQL �
�� �� �� ��. ISO/ANSI SQL ��� ��� �� � � ��
SQLSTATE� �����.
SQLCODE
������ ����� SQLCA� �� ��� ���� ��� ����,
SQLCODE� � SQL�� ��� � � ������ ���� �� �� ��.
iSeries� DB2 UDB� ��� �� ISO/ANSI SQL ��� ����.
v SQLCODE = 0�� SQLWARN0� ���� ��� ��������.
v SQLCODE = 100�� � ��� �����. �� ��, ��� ���� �
�� � ��� ��� ��� FETCH�� ��� �� �����.
v SQLCODE > 0�� = 100� ���, ��� �� ���� ��������.
v SQLCODE = 0�� SQLWARN0 = ‘W’�� ��� �� ���� ����
����.
v SQLCODE < 0�� ��� ����� �����.
iSeries� DB2 UDB SQLCODE �� ���� �� SQLSTATE� iSeries
Information Center� SQL ��� � �� ��� �� ��.
SQLSTATE
������ ����� SQLCA� �� ��� ���� ��� ����
SQLSTATE� SQL�� ��� � � ������ ���� ��� �� ��. �
�� ������ ����� SQLCODE � SQLSTATE� ���� SQL��
��� ��� � ����.
SQLSTATE� �� �� ��� �� �� ��� � ������ ����� �
����. �� SQLSTATE� ������ ����� �� ��� �� ��� �
��� � ��� ������. ��� �� ������ ����� �� �
�� ISO/ANSI ��� ���� ���. � SQLCODE� ��� SQLSTATE �
� � SQLSTATE� �� ���� iSeries Information Center� SQL ��� � �
� ��� �� ��.
���
� 5 � �� 369
SQL �
�� SQL�� ��� �� SQL �� � � ����. �� SQL�� SQL
�� � � ����. SQL ��� �� �� ����.
� ��
�� �� � � ���� �� ��.
��� ��
�� �� /*� ��� */� ����.
�� ��� �� � ��� �� ��.
v � ��� �� �� ��� � ��� �� ��� � ��.
v �� �� ��� �� ��� ����� ��� � ����(�� �� ��
��� 'EXEC'� 'SQL' �� ��).
v �� �� �� ��� �� � ����.
v COBOL��� �� � ��� �� ���.
�� ��� �� � ��� �� ��.
v /*� �� �� ��� ���� ��� ����.
v */� �� �� ��� ���� ��� ����.
v �� �� ��� �� ��� ����� ��� � ����(�� �� �
� ��� 'EXEC'� 'SQL' �� ��).
v �� �� �� �� �� � ����.
v �� �� � �� �� �� �� � ����.
�
�� �� ��� �� �� ��� ��� �����.
CREATE VIEW PRJ_MAXPER -- PROJECTS WITH MOST SUPPORT PERSONNELAS SELECT PROJNO, PROJNAME -- NUMBER AND NAME OF PROJECT
FROM PROJECTWHERE DEPTNO = ’E21’ -- SYSTEMS SUPPORT DEPT CODEAND PRSTAFF > 1
�� �� ��� �� �� ��� ��� �����.
CREATE VIEW PRJ_MAXPER /* PROJECTS WITH MOST SUPPORTPERSONNEL */
AS SELECT PROJNO, PROJNAME /* NUMBER AND NAME OF PROJECT */FROM PROJECTWHERE DEPTNO = ’E21’ /* SYSTEMS SUPPORT DEPT CODE */AND PRSTAFF > 1
���
370 iSeries� DB2 UDB SQL ��� V5R2
ALTER TABLEALTER TABLE�� � ��� ����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� ��
– �� ALTER ��
– �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� ALTER ��� ����.
v �� ����.
v �� �� ALTER ��� �������.
v �� �� *OBJALTER� *OBJMGT� ��� ��� �������.
�� �� ���� ��� ���� ID� �� ��� ��� �� �� �
�� � �� �� �� ���.
v �� �� ��� �� ���� REFERENCES ��
v ��� � �� � � �� REFERENCES ��
v �� ��
v �� ��
��� ���� ID� �� � �� �� � �� �� REFERENCES ���
����.
v �� ����.
v �� �� REFERENCES ��� �������.
v �� �� *OBJREF�� *OBJMGT� ��� ��� �������.
�� �� �����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
ALTER TABLE
� 5 � �� 371
|
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
ALTER TABLE
372 iSeries� DB2 UDB SQL ��� V5R2
��
�� ALTER TABLE table-name �
�
COLUMNADD column-definition
COLUMN (2)ALTER column-name SET DATA TYPE data-type
default-clauseGENERATED ALWAYS (1)
GENERATED BY DEFAULTNOT NULL
(3)DROP DEFAULT
NOT NULLIDENTITY
identity-alterationCOLUMN CASCADE
DROP column-nameRESTRICT
(4)ADD unique-constraint
referential-constraintcheck-constraint
CASCADEDROP PRIMARY KEY
UNIQUE constraint-name RESTRICTFOREIGN KEYCHECKCONSTRAINT
��
�:
1 GENERATED� � ROWID �� �(�� ROWID �� �� ��� � �)�� ID
� �� ��� � ����.
2 � �� � �� �� ��. DATA TYPE� ��� �� ���� ���.
3 � �� � �� �� ��.
4 ALTER TABLE�� � �� ��� ADD � �� ������, �� ��. ��� �� ��
����.
ALTER TABLE
� 5 � �� 373
|||||||
column-definition:column-name
COLUMNFOR system-column-name
data-type �
�
default-clauseGENERATED ALWAYS (1)
GENERATED BY DEFAULT identity-options(2)
datalink-optionsNOT NULLcolumn-constraint
�:
1 GENERATED� � ROWID �� �(�� ROWID �� �� ��� � �)�� ID
� �� ��� � ����.
2 datalink-options� DATALINK� DATALINK� ��� � distinct-type� ���� ��� �
����.
ALTER TABLE
374 iSeries� DB2 UDB SQL ��� V5R2
||||||
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 52 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATACHARACTER VARYING ( integer ) FOR SBCS DATACHAR allocate-clause FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) allocate-clause FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC allocate-clause
( 1M )DBCLOB
( integer ) allocate-clauseKMG( 1M )
BLOBBINARY LARGE OBJECT ( integer ) allocate-clause
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP( 200 )
DATALINK( integer ) allocate-clause CCSID integer
ROWID
allocate�:ALLOCATE (integer)
ALTER TABLE
� 5 � �� 375
|||||
default�:WITH
DEFAULTconstantUSERNULLCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMPcast-function-name ( constant )
USERCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMP
identity-options:
AS IDENTITY,
1 (1)( START WITH numeric-constant )
1INCREMENT BY numeric-constant
NO MINVALUEMINVALUE numeric-constantNO MAXVALUEMAXVALUE numeric-constantNO CYCLECYCLECACHE 20NO CACHECACHE integerNO ORDERORDER
�:
1 � �� � �� �� ��.
ALTER TABLE
376 iSeries� DB2 UDB SQL ��� V5R2
||||||||||||||||||||||||||||||||
datalink-options:LINKTYPE URL NO LINK CONTROL
FILE LINK CONTROL file-link-optionsMODE DB2OPTIONS
file-link-options:
(1)
INTEGRITY ALLREAD PERMISSION FSREAD PERMISSION DBWRITE PERMISSION FSWRITE PERMISSION BLOCKED
RECOVERY NOON UNLINK RESTOREON UNLINK DELETE
identity-alteration:(2)
SET INCREMENT BY numeric-constantNO MINVALUEMINVALUE numeric-constantNO MAXVALUEMAXVALUE numeric-constantNO CYCLECYCLENO CACHECACHE integerNO ORDERORDER
RESTARTWITH numeric-constant
�:
1 �� �� � � �� ����� ���� ���. � � ��� ������.
2 � �� � �� �� ��.
ALTER TABLE
� 5 � �� 377
|||||||||||||||||||||||||
�
table-name
��� � �� �����. table-name �� ��� �� �� ���� �
��. �� ���� � �� ��� �� ���� ��� � ��.
column-constraint:PRIMARY KEY
CONSTRAINT constraint-name UNIQUEreferences-clauseCHECK ( check-condition )
unique-constraint:
CONSTRAINT constraint-namePRIMARY KEYUNIQUE
(
,
column-name )
referential-constraint:
CONSTRAINT constraint-name
(1)FOREIGN KEY
,
( column-name ) references-clause
references�:REFERENCES table-name
,
( column-name )
�
�ON DELETE NO ACTION ON UPDATE NO ACTION (2)
ON DELETE RESTRICT ON UPDATE RESTRICTCASCADESET NULLSET DEFAULT
check-constraint:
CONSTRAINT constraint-nameCHECK ( check-condition )
�:
1 �� ���� ��� � constraint-name(CONSTRAINT � �� ��)� FOREIGN KEY ��
� ��� � ����.
2 ON DELETE� ON UPDATE�� ��� �� �� ��� � ����.
ALTER TABLE
378 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
ADD COLUMN
column-definition
�� � �����. �� �� ��� � ROWID �� ID (AS
IDENTITY� ��� )� � �� � �� �� ��� ��� �� ��.
������ ���� ROWID � ID � ��� �� �����. ���
�� n � � ���� � � ��� n+1��. n �� 8000� ��
� ����.
�� �� ROWID � �� � ����. �� ID � �� �� ID �
��� � ����.
� � ���� � � ��� � �� � ��� 32766 �� ��� �
�, VARCHAR�� VARGRAPHIC � ��� �� 32740 �� �� �
��. �� LOB� ��� � �� � ��� 15,728,640����� �
��. �� �� �� � �� �� �� ��� 569 ���� ��� ��
���.
column-name
�� ���� � � �����. �� � ��� ��
�� system-column-name� �� ��� ��� � ����. column-name
� ��� � ����.
FOR COLUMN system-column-name
� �� O S / 4 0 0 ��� ���� � . �� � ��� ��
system-column-name� �� ��� ��� � ����.
system-column-name� ��� �� column-name� ��
system-column-name� ���, ��� ��� �� ��. ��� �
�� ��� ��� �� ��� ��� 572 ���� � �� �� ���
� �����.
data-type
� �� �� �����.
���
�� �� �� �����. 541 ���� �CREATE TABLE��� ��
�� �� ��� �����.
FILE LINK CONTROL� �� DataLink � CASCADE� � ���
�� �� ������ �� �� ��� � ����.
DEFAULT
� �� ��� �� �����. � �� column-definition� � � ��
��� � ����. ROWID �� ID (AS IDENTITY� ��� )�
ALTER TABLE
� 5 � �� 379
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
� ��� �� ��� � ����. ������ ���� ROWID � ID
� ��� �� �����. ��� � � ��� �� ��� ��� �
�� �� ��.
v � ��� ��� �� ����.
v � �� ��� ���� � �� �� �� ����.
� �� ��� �
�� 0
�� �� ��� ��
�� �� ��� ��� 0� ���
�� �� �� 0001� 1� 1�� ��
� �. ��� �� � �� �
� �� �� 0��, 0�, 0�� ��
� ��. ��� �� � �� ��
��� �� �� 0001� 1� 1�� ��
� �� 0��, 0�, 0�, 0������
��� ��. ��� �� � �� �
���
Datalink DLVALUE(‘ ’,‘URL’,‘ ’)� ��� �
distinct-type �� �� �� �� ��� ��
� �
column-definition�� NOT NULL� DEFAULT� ��� DEFAULT
NULL� ��� ����.
constant
� �� ��� ��� ��� �����. ��� ��� 80 ����
���� ��� ��� �� �� ��� �� � ��� � �� ��
���� ���. �� ��� ��� SMALLINT, INTEGER, BIGINT,
DECIMAL �� NUMERIC � �� ����� � ��. �� ��
� � ��� ���� � �� ��� �� ���� �� � ���
�.
USER
INSERT �� UPDATE �� USER �� ����� �� � �� �
�� ��� �����. � �� �� �� �� USER� �� �
����� �� �� CHAR� VARCHAR� �� ���. �� �
� �� ALTER TABLE�� �� � USER �� ����� �
��.
ALTER TABLE
380 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
||
||
||
||
||
|
||
|
||
|
|
|
||
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NULL
� �� ��� ��� �� �����. NOT NULL� ��� ��
� column-definition �� DEFAULT NULL� ��� � ��.
CURRENT_DATE
� �� ��� ��� �� �� �����. CURRENT_DATE�
��� ��� �� DATE �� DATE� ��� �� ���
� ���.
CURRENT_TIME
� �� ��� ��� �� ��� �����. CURRENT_TIME� �
�� � �� �� TIME �� TIME� ��� �� ����
���.
CURRENT_TIMESTAMP
� �� ��� ��� �� ����� �����.
CURRENT_TIMESTAMP� ��� � �� �� TIMESTAMP
�� TIMESTAMP� ��� �� ���� ���.
cast-function-name
� � ��� � ��� �� �, BLOB, CLOB, DBCLOB, DATE,
TIME �� TIMESTAMP �� ��� ��� � �� ��� �
����. �� �� � cast-function� ��� ���� ��� ��
�.
� �� ��� ���
BLOB, CLOB �� DBCLOB� ��� �
�� � N
BLOB, CLOB �� DBCLOB *
DATE, TIME �� TIMESTAMP� ���
� �� � N
N(N� ���� � ��� ��� �� ���
�) **
��
DATE, TIME �� TIMESTAMP *�� �� �� ��� � �� � N N(N� ���� � ��� ��� �� ���
�) **BLOB, CLOB �� DBCLOB BLOB, CLOB �� DBCLOB *DATE, TIME �� TIMESTAMP DATE, TIME �� TIMESTAMP *�:
* � ��� ��� �� ��� ���� QSYS2� �� �� �� ��(�� �� �� ��
�� ���� ���.
** � ��� � �� �� � ��� ���� ���. ��� ���� ����� ��
�� �� ��� ��� ��� ���. ��� ���� � ��� ��� ��� �� ��
�� ��� ��� ��� ���.
constant
��� ��� �����. ��� �� �� �� � �� �
ALTER TABLE
� 5 � �� 381
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|||
|||||
|||||||||
|
|
|
|
||
|
|
� �� � �� �� �� �� ��� ��� ���.
BLOB, CLOB, DBCLOB, DATE, TIME � TIMESTAMP ��
��� ��� ����� ���.
USER
INSERT �� UPDATE �� USER �� ����� �� � �
� ��� ��� �����. � �� �� �� �� ��
�� �� �� �� USER �� ��� �� �� CHAR�
VARCHAR� �� ���. �� �� �� ALTER TABLE
�� �� � USER �� ����� ���.
CURRENT_DATE
� �� ��� ��� �� �� �����. CURRENT_DATE
� ��� � �� �� �� �� �� �� �� DATE
� �� ���.
CURRENT_TIME
� �� ��� ��� �� ��� �����. CURRENT_TIME
� ��� � �� �� �� �� �� �� �� TIME
� �� ���.
CURRENT_TIMESTAMP
� �� ��� ��� �� ����� �����.
CURRENT_TIMESTAMP� ��� � �� �� �� �
� �� �� �� TIMESTAMP� �� ���.
GENERATED
������ ���� � �� �� �����. � ID � ��
(AS IDENTITY�� ��) GENERATED� ���� ���. � ��
�� ROWID� (�� ROWID� ��� � �)�� � �� ���
� ���. ���, ��� � ����.
ALWAYS
�� �� �� � ������ ���� �� �� ���� �
����. ALWAYS� �� ���.
BY DEFAULT
� �� �� ��� �� �� �� �� � ������ �
��� �� �� ���� �����. �� ���, ������
���� �� �����.
ROWID � �� ������ ���� ��� �� ����, � �
� ��� OS/390 � z/OS� DB2 UDB �� iSeries� DB2 UDB�
� ��� �� � � ID�� ���.
ALTER TABLE
382 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ID � ������ ���� ��� �� ��� ID � �� ID
� �� ��� � ������ � ���� �� ��
�� �� � � ��� �� ����.
AS IDENTITY
� �� ID �� �����. �� �� ID � �� � ����. AS
IDENTITY� � �� �� ��� 0� �� ��� � �(��� 0
� SMALLINT, INTEGER, BIGINT, DECIMAL �� NUMERIC, � �
�� ��� � �)� �� ��� � ����.
ID � ����� NOT NULL��.
START WITH numeric-constant
ID � �� ��� � �� �� �����. � �� � � ���
� �� ��� ��� � ���, ��� ���� 0� � ��
��� ��� ���.
ID � ��� �� ����� ��� ����, ��� �� �
���� MINVALUE, ����� MAXVALUE��. � �
� ��� ��� �� ���� ��� � ��� ��� �� ���
����. START WITH�� ��� �� ��� � � �� �
�� ��� � ����. �� ��� � � MINVALUE �
MAXVALUE� �� ��.
INCREMENT BY numeric-constant
ID � � � ��� ��� �����. � �� 0� � ��
� ��� � ��� � �� �� �� ��� �� , ��� ���
� 0� � �� ��� �� � ��� � ����. ���� 1
��.
�� ���, ID � � ��� ������. �� ����, ID
� � ��� ������.
MAXVALUE numeric-constant
� ID � �� ��� ���� � ��� �����. � �� �
� ��� � �� ��� ��� � ���, ����� �� ���.
ID � ��� �� ����� ��� ��� �, � �� ��
��� �� �� ���(DECIMAL� ���), �����
START WITH �(START WITH� ��� �� -1)��.
MINVALUE numeric-constant
� ID � �� ��� ���� � ��� �����. � �� �
� ��� � �� ��� ��� � ���, ����� ��� ��
�.
ALTER TABLE
� 5 � �� 383
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ID � ��� �� ����� ��� ��� �, � �� ��
��� START WITH �(START WITH� ��� �� -1),
����� �� �� ���(DECIMAL� ���)��.
CACHE �� NO CACHE
�� ��� �� �� ���� ��� ��� ��� �����. ��
�� ��� ��� ��� �� �� �� ��� �����.
CACHE integer
������ ���� ��� ��� ���� ��� ID � �
�� �����. ��� � �� ���� 2��, ���� ��� �
�� � �� �� � ���. ���� 20��.
��� ��� ��, ��� ��� �� ID �� �� �
�� ��� ����. ���, CACHE� �� ��� �� ���
�� � �� � �� ID � �� � �� �����.
NO CACHE
ID � �� ��� ��� ��� �����.
CYCLE �� CYCLE
��� ��� �� ���� ��� � � ID � � �� ���
� ��� �����.
CYCLE
����� ���� ��� � � � �� �� � ���� �
����. � ��� ��� , ����� ��� ���� ���
� �� ���� �����. ����� ��� ���� ��� �
�, ���� �� ��. � ���� ���� �� ��� �
� �����.
CYCLE� �� , ������ ���� ID � �� ���
� ��� � ����. ID � �� ���� �� � ��� �
��� � � �� �� �� �� ��� ��� ���
�.
NO CYCLE
��� ����� ���� ��� � ID � �� �� ���
��� �����. ��� ��� ���.
ORDER �� NO ORDER
�� ���� ID �� ���� �����.
ORDER
�� ���� �� ���� �����.
ALTER TABLE
384 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NO ORDER
�� ���� �� ��� ��� ��� �����. ��� ���
���.
datalink-options
DATALINK � ��� ��� �����. datalink-options� �� ���
541 ���� �CREATE TABLE�� �����.
NOT NULL
� ��� � ��� ���. NOT NULL� ��� � ��� �
� � ��� �� �����. NOT NULL� ��� DEFAULT� ��
�� ���.
column-constraint
CONSTRAINT constraint-name
����� �����. constraint-name� �� �� ��� �� ���
����� � ��.
�� ��� ��� � �� ��� ������ ���� �� ��
��.
PRIMARY KEY
�� � ��� 1� �� ��� � ���� �����. ���,
PRIMARY KEY� C� ��� ��� ��� PRIMARY KEY(C)
�� ��� �� ��� � �����.
� �� � ��� column-definition� ����� � UNIQUE
�� ��� ��� �� �� ����� � ��. � LOB
�� DataLink ���� � ��.
1� �� ��� NULL �� 1� �� ��� � ��� �� �
�� ��� � CHECK ��� ����� �� ��.
UNIQUE
�� � ��� � �� ��� � ���� �����. ���,
UNIQUE� C� ��� ��� ��� UNIQUE(C)�� ��� �
� ��� � �����.
� �� ��� � � �� ��� � �� PRIMARY KEY�
column-definition� ��� ����� � ��. � LOB ��
DataLink ���� � ��.
references�
column-definition� reference-clause� �� � ��� �� �� ��
� � ���� �����. ���, reference�� C� ��� �
ALTER TABLE
� 5 � �� 385
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� ��� C� �� ��� � FOREIGN KEY�� ���
reference�� ��� � �����.
CHECK(check-condition)
check-condition�� �� � ��� �� ����� ��� �
���� �����. ���, CHECK� C� ��� ��� C �
�� �� � �� ����� check-condition�� ��� � ����.
��� �� ����� ��� �� ��� � �����.
FILE LINK CONTROL � ROWID �� DATALINK� CHECK �
���� ��� � ����. �� �� ��� 391 ���� �ADD
check-constraint�� �����.
ALTER COLUMN
�� � ��� ����. ��� �� � ��. �� ��� �� ���
�.
column-name
�� � �����. ��� ����� � ��. ��� ��� ��
� ���� ���. ��� � ALTER TABLE�� ��� �� � �
���� � ��.
SET DATA TYPE data-type
�� � ��� �� �� �����. ��� �� �� � �� ��
�� ���� ���. �� �� ���� �� ��� ��� 80 ����
���� ��� �����. � �, �� ��� �� ��� ����.
v ��� UCS-2 � ��� �� � �� �� ��.
v datatime �� ��� ���� �� � �� ��� ����.
��� ��, ���, ��� �� ��, ���, ���� �� �� �� �
� � ����. � �, � ��, ��� �� ���� � �� �� ��
� �� ��� �� � ����.
��� � ��� �� �� ��� ��� �� ��� ��� ��� ���
�� 80 ���� ���� ��� ��� �� �� ��� �� � ��� �
�� �� ���� ���.
� �, 1� �� �� �� ��� �� ��� ��� ��� 2000-n�
��� � ��. ���, n� �� ������ ���.
�� �� � �� �� �� �� ��� �� ��� �� ���
� �� �� ��� ��� � ��� �� ��.
ALTER TABLE
386 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
SET default-clause
�� � ��� ��� �� �����. ��� ��� �� 80 ���� ��
�� ��� ��� �� �� ��� �� � ��� � �� �� ����
���.
SET NOT NULL
� ��� �� � ��� �����. �� �� �� �� � �� �� �
� ��� � ��. ��� � ��� �� �� ��� ��� �� ��
� �� ��� ��� �� NULL� ��� � ��. � �� ���
�� ��� SET NULL� DELETE ���� ��� �� �� �� � � �
� �� � ���, SET NOT NULL� ��� ����.
SET GENERATED ALWAYS �� GENERATED BY DEFAULT
������ ���� � �� �� �����. � ID � �� (AS
IDENTITY�� ��) �� � �� �� ROWID� (�� ROWID� �
�� � �) GENERATED� ���� ���. ���, ��� � ����.
DROP DEFAULT
� �� ��� �� ����. ��� � ��� �� ��� �(null)
��� NOT NULL� ���� � ��. ��� ��� �� ����.
DROP NOT NULL
� ��� �� � ��� ����, � NOT NULL �� ����. �
�� �� ��� �� �� ��� ��� ��� ��� �� ����.
� �� 1� ��� ��� DROP NOT NULL� ��� ����.
DROP IDENTITY
� ID �� �� �� � �� � �� � � ����. � ID
� � , DROP IDENTITY� ��� ����.
identity-alteration
� ID �� ����. � ID��� ���. �� ��� 383 ���
� �����.
RESTART
ID � �� �� �����. WITH numeric-constant� ��� ��
, ��� ID � � ��� � ����� ��� �� ����� ��
� ��� �����. � ID��� ���.
WITH numeric-constant
numer ic-cons tant� � �� ��� � ��� � ��� � .
numeric-constant� ��� � ���� ���. � �� � � ��
� � �� ��� ��� � ���, ��� ���� 0� � �
� ��� ��� ���.
ALTER TABLE
� 5 � �� 387
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DROP COLUMN
��� ��� � ����.
column-name
�� � �����. ��� ����� � ��. ��� ��� ��
� ���� ���. ��� ALTER TABLE�� �� ���� �� �
����� � ��. ��� �� � ����� � ��.
CASCADE
�"(drop)� � �� �, ��, �� �� ���� �� �"(drop)
�� �����.40
RESTRICT
� �� �, ��, �� �� ����� �� �� � �� �
��� �����.40
������ ��� �� � �� ALTER TABLE��� ��
RESTRICT� �� �� ����.
ADD unique-constraint
CONSTRAINT constraint-name
����� �����. constraint-name� �� �� ��� �� ��� ���
�� � ��. constraint-name� ��� ��� ��� ���.
��� �� � ���� ��� ������ ���� �� �� ��.
UNIQUE(column-name,...)
��� � ��� � �� �����. � column-name� �� � ��
� ��� �� ����� ���. �� � � � �� ����� � �
�. � LOB �� DATALINK ���� � ��. ��� � �� 120�
����� �� ��� ��� 2000-n� ����� � ��. ��� n� �
(null)� ��� ��� � ���. ��� � �� �� UNIQUE ���
��� PRIMARY KEY� ��� � �� � ���� . �� �� ,
UNIQUE(B,A)� PRIMARY KEY(A,B)� �� �� ��� UNIQUE(A,B)�
��� ����. ��� �� ��� �� � �� ��� ���. ��
��� �� ��.
� ��� �� ��� � ���, � ��� � ���� �� ��. ��
� �� � �� ��� ��� � � ��� �� ��. � �
�� ��� ��� � �� � ��� �� �� ��� �� ��.
PRIMARY KEY(column-name,...)
��� � ��� 1� �� �����. � column-name� �� � ���
40. ��� ���� UPDATE OF� ��� ��� �� ���� ��� � � ��.
ALTER TABLE
388 iSeries� DB2 UDB SQL ��� V5R2
��� �� ����� ���. �� � � � �� ����� � ��.
� LOB �� DATALINK ���� � ��. ��� �� 120� ��
��� �� �� ��� 2000� ����� � ��. �� �� 1� �� �
�� � ��. ��� � �� �� UNIQUE ������ ��� � ��
� ����. �� ��, UNIQUE(B,A)� �� �� �� PRIMARY
KEY(A,B)� ��� ����. ��� �� ��� �� ��� ���. 1
� �� ��� NULL �� 1� �� ��� � ��� �� ��� �
�� � CHECK ��� ����� �� ��.
� ��� ��� � �� ��� � ��� 1� ���� �� ��. ���
�� 1� �� ��� ��� � 1� ��� �� ��. � ���
��� ��� � �� � ��� �� �� ��� �� ��.
ADD referential-constraint
CONSTRAINTconstraint-name
����� �����. constraint-name� �� �� ��� �� ��� ���
�� � ��.
��� �� � ���� ��� ������ ���� �� �� ��.
FOREIGN KEY
�� ��� �����.
T1� �� �� �����.
(column-name,...)
�� ��� �� �� ��� � �� ��. � column-name� T1 �
��� ��� �� ����� ���. �� � � � �� ����
� � ��. � LOB �� DATALINK ���� � ��. ���
� �� 120� ����� �� �� ��� 2000-n� ����� � �
�. ���, n� �� ��� ��� ���.
REFERENCES table-name
REFERENCES�� ��� � ��� �� ��� �� �� �� ����
��, ���� �� ����� � ��. � �� �� ��� � ��
�� ��.
�� ��� �� �, � �, � �� �� �� ��� �� �, � �,
� �� ��� �� ��� duplicate��. �� �� ��� ����
���� ����.
T2� ��� � �� �����.
(column-name,...)
�� ��� � �� ��� � �� ��. � column-name� T2�
ALTER TABLE
� 5 � �� 389
|
|
|
|
|
|
|
� ��� ��� �� ����� ���. �� � � � �� ��
��� � ��. � LOB �� DATALINK ���� � ��. ���
� �� 120� ����� �� ��� ��� 2000-n� ����� �
��. ��� n� �(null)� ��� ��� � ���.
�� ���� T2� 1� �� T2� �� UNIQUE ����� ��
�� ���� ���� ���. ��� ��� �� �� ��� � ����.
�� ��, (A,B)� ��� UNIQUE(B,A)� ��� � ����� ��
��� ������. �� ���� ��� ��� T2� 1� �� ��
� ��� ���. �� ���� ��� �� 1� � � ��� ��
��.
��� �� �� T2� � �� �� �� ��� ���. �� �� n
�� � � �� n�� � ��� ��� �� �� ��� ��� �
��.
�� � �� ��� �� �� �� �� ��� � �� �� ���� ��
�. �� �� �� ALTER TABLE�� ��� �� �� ��. ���, ��
�� �� � �� � T2� � � �� ��� ���� ���.
FOREIGN KEY�� ��� �� ����� T2� � �� T1� �� ��
� �����.
ON DELETE
� �� �� �� � � �� �� ��� �����. ��� �� �
� � ��� ����.
v NO ACTION(���)
v RESTRICT
v CASCADE
v SET NULL
v SET DEFAULT
�� �� �� � ��� ��� ��� SET NULL� ����� �
��.
T1� � ��� ��� CASCADE� ����� � ��. T1� �
��� ��� SET NULL � SET DEFAULT� ����� � ��.
T1� FILE LINK CONTROL� �� DataLink � ��� CASCADE�
����� � ��.
� ��� T2� �� DELETE� ���� �� � ��� � ��
� �� T1� �� ����. p� T2� �� �� �����.
ALTER TABLE
390 iSeries� DB2 UDB SQL ��� V5R2
v RESTRICT� NO ACTION� ��� ��� �� �� �� �
� ����.
v CASCADE� ��� � ��� T1� �� p� �� � ��.
v SET NULL� ��� T1� �� p� � �� �� �� �� �
�� � �(null)� �� ��.
v SET DEFAULT� ��� T1� �� p� � �� �� �� ��
� � ��� ��� �� ��.
ON UPDATE
� �� �� �� � � �� �� ��� �����.
� ��� T2� �� UPDATE� ���� �� � ��� � ��
� �� T1� �� ����. p� T2� �� �� �����.
v RESTRICT� NO ACTION� ��� ��� �� �� �� �
� ����.
ADD check-constraint
CONSTRAINT constraint-name
����� �����. constraint-name� �� �� ��� �� ��� ���
�� � ��. constraint-name� ��� ��� ��� ���.
��� �� � ���� ��� ������ ���� �� �� ��.
CHECK(check-condition)
�� ����� �����. check-condition� �� �� �� �� ��� �
� ��� ��� ���.
check-condition� �� ��� ���� search-condition��.
v �� � ��� � ����.
v FILE LINK CONTROL � ROWID �� DATALINK� ��� � ��
��.
v �� ��� ��� � ��.
– � ��
– Scalar-subselects
– �
– ��� ��
– �� ��
– LOB� �� !� �� ���(�� �)
– CURRENT TIMEZONE, CURRENT SCHEMA, CURRENT SERVER,
CURRENT PATH, � USER �� ����
ALTER TABLE
� 5 � �� 391
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
– NOW, CURDATE, � CURTIME ��� �
– NODENAME ��� �
– LOB� ��� ���
– �� �� ���� ����� ��� ��� �� ��
– ATAN2, DIFFERENCE, RAND, RADIANS � SOUNDEX ��� �
– DLVALUE, DLURLPATH, DLURLPATHONLY, DLURLSERVER ��
DLURLSCHEME ��� �
– DLURLCOMPLETE ��� �(FILE LINK CONTROL � READ
PERMISSION DB �� �� �� ��� )
search-condition� �� ��� ��� 154 ���� ��� ���� �����.
DROP
PRIMARY KEY
1� �� � �� �� �� ��� 1� �� ��� ����. ��� 1� �
� ��� ���.
FOREIGN KEY constraint-name
�� �� constraint-name� ����. constraint-name� �� �� �
� ��� ���� ���.
UNIQUE constraint-name
� ���� constraint-name� � �� � �� �� �� ����� �
���. constraint-name� �� � ����� ���� ���. DROP
UNIQUE� PRIMARY KEY � ����� �� ����.
CHECK constraint-name
�� ���� constraint-name� ����. constraint-name� �� �� ��
��� ���� ���.
CONSTRAINTconstraint-name
���� constraint-name� ����. constraint-name� �� ��, � ��
�� ��� ���� ���. ��� PRIMARY KEY� UNIQUE ���� 1
� �� � �� � ��, �� �� ����� � ��.
CASCADE
�� ��� ��� �� ��� ��� � ��� �����.
RESTRICT
�� ��� ��� ��� ��� �� � ��� � ��� ����
�.
ALTER TABLE
392 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
� �� ALTER TABLE�� ADD, ALTER �� DROP COLUMN��� � �
� ��� � ����. � � �� � �� ALTER TABLE�� ��� ��
� �� �� � � ��� � ����.
ALTER TABLE� �� �� ��� ��� ����.
v �� �
v RESTRICT ��� ��� �
v �� �� �� �
– CASCADE ��� ��� �
– � � ��
– ��
v �� ��
� ��� ���, � ���� ���� �� ��� ��� �� ��� ��
��. � �� ��� ��� ��� �� �� ���� ��
��.
�� �� ��� �� ��� QTEMP� �� �� � �� ALTER
TABLE�� ��� � ��.
�� ��� �� ���� �� ��. �� ���� ALTER TABLE�� �
� ���� � ���, �� ���� �� �� ��� ��� ����. �� �
�, �� �� ��� ��, �� ��� �� �� �� ��� � �
��� �� ��� ��� ����.
�� �� �� �� � �� �� ���� � �� ��� ���.
�� ��� ����� ��� � ��, � �� �� � ALTER TABLE��
�� ��.
v �� �� ��� ��� � ����.41
� ��� ��� ��� ��� �����.
� ��� ����� ��� ��� �����. � �, ��� � ���
� �� � ��� ��� ��� ����.
– VARCHAR � �� �� �� �� �� �� 20�� ���.
– VARGRAPHIC � �� �� �� �� �� �� 10�� ���.
– VARCHAR � ��� ��� �� �� � �� ��� �� � 20�
� �� ����.
41. �� ��� ���� ��� ����� ���, � 16 - 32�� ��(MB)� ������ ��� � �� ��� �� ��.
ALTER TABLE
� 5 � �� 393
|
|
|
|
|
|
|
– VARGRAPHIC � ��� ��� �� �� � �� ��� �� �
10�� �� ����.
– � ��� �� �� ID(CCSID)� ��� ��� CCSID�� ���
CCSID� ��� ��� �� �. �� ��, � ��� �� �� ID(CCSID)�
65535�� �� ��� ��� ����.
– ��� �� �� ��� �� ��� �� ��� ���� �� ����.
– DROP DEFAULT� �� ��.
– DROP NOT NULL� ����, � �� ��� ��� �� ��� �
��� � �� �����.
v ��� �� �� ���.42
� �� ��� �� � � �� �� �� ��� � ��� ��
�� ��� �� � ��� ����.
���� �� ��� ��� � ��� ����� �� � ��� ��
���. � � �� �� ��� �� � ��� ����.
– VARCHAR �� VARGRAPHIC �� �� �� ��
– � ��� �� �� ID(CCSID)� ��� ��� CCSID�� ���
CCSID� ��� ��� �� �. �� ��, � CCSID� 65535�
�� ��
� ���� SQL �� ���� � �� � ��� � � ����.43 ��
��, � �� SELECT *�� ��� ��, �� � ���� � � �
� ��� ����.
� �� ��� � �� � ��� � � ����. � 41� � �
� � ��� ����.
� 41. � �� � ��
�� RESTRICT �� CASCADE ��
�� �� ���
�
�� ��� ����. �� � �� �� �� �� �
��.
42.�� �� � ��� ������ �� ��� �� ����� �� ��.
43. � �� �� ��� � �� �� ��� �� � ��� �� ��(�� �� �� �� � �� ��� �� ��� �
� ).
ALTER TABLE
394 iSeries� DB2 UDB SQL ��� V5R2
� 41. � �� � �� (�)
�� RESTRICT �� CASCADE ��
�� � �
�� �� ���
�
�� �� , �� � �
� ��� � ��.
v � �� �� �� ���
��,
v �� � � ��� �� ��/��
���� ��� �� ,
v �� �� �� � � ���
� ��� �� ��� ��
��� ��� �� ��� ��
��.
�� �� , �� � �
� ��� � ��.
v � �� �� �� ���
��,
v �� � � ��� �� ����
�� ���� ��� �� ,
v �� �� �� � � ���
� ��� �� ��� ��
� �� �� � �� � �
�.
�� ��� ��
� �
�� �� ��� ����. ��� � ��.
� ���� ��
� �
� ���� ��� �� � ��
ALTER COLUMN��� �� �
��� �� ��� �� ���
��� � ��� � ��(���,
��� ����� � ��� ���
� ��). �� ��, A� �
� UNIQUE(A)� PRIMARY
KEY(A)� � ��� ��� �
��� ��� �� ��� ���,
��� �� ��.
��� ��� �� ��� ��
��.
� ��� � � ��� ���
�� ��� �� � � ��
(���, � ��� �� ��� ���
� ��).
�� ���� ��
� �
�� ���� ��� �� � ��
� �� � ��� � ��(�
��, �� �� �� ��� ��� �
��). �� ��, B� ��
PRIMARY KEY(A) �� ��� ��
� ��� �� ��.
��� ��� �� ��� ��
��.
�� ��� � ��(���, �� �
� �� ��� ��� � ��).
� 42� � �� � ��� ����(�� ��� � �� �� ��
�, ���, ��, �� �� �� � � �� ��� �� ���).
� 42. �� � ��
�� ��
�� �� ���
�
�� �� ��.
�� �� �� ��� ��. ��� �� �� ���� � �� ��.
ALTER TABLE
� 5 � �� 395
� 42. �� � �� (�)
�� ��
�� � �
�� �� ���
�
�� �� ��.
�� �� �� � � �� ��� ��. � �� �� �
� ��� �� � ��� �� �� �� � � ��� �� ��
� ��� ��� �� � �� ���� � �� ��.
��� ��� ��� �� � �� ���� � ��� ����.
� �, �� � � �� �� ��.
�� ��� ��
� �
�� �� ��. (���, ��� ����� �� ��.)
� ���� ��
� �
�� �� ��. (���, ��� ����� �� ��.)
� ��� �� ��� �� ��� �� �� �� � �� � ���
�� ��� ����. ��� ��� ��� �� �� �� ��� ��
��.
�� ���� ��
� �
�� �� ��.
v �� ��� ��� � � �� �� �� ���� �� ��� ��� �
�� � �� ��� ���� ��� ������(���, � ��� ��
��� � ��� ��� ����� �� ��).
v �� ��� ��� � �� ��� ���, ��� ��� ��� �� �� �
� ��� �� ��.
�
� 1�� � �� ��� � EQUIPMENT� ����� �����.
�� � ��
EQUIP_NO INTEQUIP_DESC VARCHAR(50)LOCATION VARCHAR(50)EQUIP_OWNER CHAR(3)
��(EQUIP_OWNER)� DEPARTMENT �� �� �� ��(DEPTNO)�
�� EQUIPMENT �� �� ��� �����. ��� DEPARTMENT ���
�� �� ��� �� �� �� �� ��(EQUIP_OWNER) �� �
�� �� ��� � �(null)� ���� ���. ��� ���
DEPTQUIP� �����. DEPARTMENT �� (DEPTNO)� ��� 1� �� �
�� ��� �����.
ALTER TABLE EQUIPMENTADD CONSTRAINT DEPTQUIPFOREIGN KEY (EQUIP_OWNER)REFERENCES DEPARTMENTON DELETE SET NULL
ALTER TABLE
396 iSeries� DB2 UDB SQL ��� V5R2
� 2� �� �� �� EQUIPMENT �� ����� �����.
v � � ��� � � EQUIPMENT �� � �����. � QUANTITY
�� ���.
ALTER TABLE EQUIPMENTADD COLUMN QUANTITY INT
v EQUIP_OWNER � �� ��� �� ‘ABC’� ����.
ALTER TABLE EQUIPMENTALTER COLUMN EQUIP_OWNERSET DEFAULT ’ABC’
v LOCATION � ����. � � � � �� �, �� �� ����� �
���.
ALTER TABLE EQUIPMENTDROP COLUMN LOCATION CASCADE
v SUPPLIER�� � ��� � ���, ��� LOCATION � ��, �
�� SUPPLIER � �� � ��� ���, ��� EQUIP_NO � 1�
�� � �� �� ����.
ALTER TABLE EQUIPMENTADD COLUMN SUPPLIER INTDROP COLUMN LOCATIONADD UNIQUE SUPPLIERADD PRIMARY KEY EQUIP_NO
v EQUIP_DESC � �� �� ��. ��� ��� 25� ����� ��
ALTER TABLE�� �� ��� �� ����.
ALTER TABLE EQUIPMENTALTER COLUMN EQUIP_DESCSET DATA TYPE VARCHAR(60)
ALTER TABLE
� 5 � �� 397
BEGIN DECLARE SECTIONBEGIN DECLARE SECTION�� SQL � ��� ��� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
���. RPG, Java�� REXX� ����� � ��.
����
��� ��� ����.
��
�� BEGIN DECLARE SECTION ��
�
�� �� ��� �� ��� �� �� � �� ������ ������
BEGIN DECLARE SECTION�� ���� � ����. ��� �� � �� �
��� �� ����. ��� SQL � ��� ��� ��� � �� ��.
SQL � ��� END DECLARE SECTION�� ����. END DECLARE
SECTION�� �� ��� ��� 668 ���� �END DECLARE SECTION��
�����.
BEGIN DECLARE SECTION� END DECLARE SECTION�� �� ����
, �� � ����.
DECLARE VARIABLE � INCLUDE�� ��� SQL�� � ��� �
�� � ��.
SQL � ��� ����� ��� SQL � �� �� �� ��� ��� �
�� ��� � ����. SQL � ��� ����� ��� ��� �����
�� ��� ��� ��� ���� �����.
�� ����� SQL� IBM SQL ��� �!�� SQL � ��� RPG� REXX
��� ��� �� �� ���� ���. SQL � ��� C++� �� ���
��� �� ����. SQL � ��� ��� �� � �� �� ��� ���
� ���. ��� ��� JAVA �� RPG�� � ��� ��� �� �
, REXX��� �� �� ����.
SQL � �� ��� �� ��� SQL � �� ��� �� ��� �� �
�� � ����.
BEGIN DECLARE SECTION
398 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
� ��� SQL � ��� ����� ��� � ����.
�
� 1C ������ ��� �� hv_smint(SMALLINT), hv_vchar24(VARCHAR(24)) �
hv_double(FLOAT)� �����.
EXEC SQL BEGIN DECLARE SECTION;static short hv_smint;static struct {
short hv_vchar24_len;char hv_vchar24_value[24];
} hv_vchar24;static double hv_double;
EXEC SQL END DECLARE SECTION;
� 2COBOL ������ ��� �� HV-SMINT(SMALLINT), HV-VCHAR24
(VARCHAR(24)), HV-DEC72(DECIMAL(7,2))� �����.
WORKING-STORAGE SECTION.EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 HV-SMINT PIC S9(4) BINARY.01 HV-VCHAR24.
49 HV-VCHAR24-LENGTH PIC S9(4) BINARY.49 HV-VCHAR24-VALUE PIC X(24).
01 HV-DEC72 PIC S9(5)V9(2) PACKED-DECIMAL.EXEC SQL END DECLARE SECTION END-EXEC.
BEGIN DECLARE SECTION
� 5 � �� 399
CALLCALL�� ������ �����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ������ REXX �� ������ :
– ������ ��� �� �� ��� �� *OBJOPR, *READ �
*EXECUTE
– �� �� �� �� �� �� ��� �� *EXECUTE
– CL �� �� ��� �� *USE
v ������ Java �� ������ :
– Java ��� ���� �� � ��� �� �� �� ��(*R)
– �� � ��� �� �� � ����� � �� ����� �� ��
� �� ��(*RX)
v ������ �� �������� REXX �� Java �� ������ �
– ������ ��� ����� ��� �� *EXECUTE
– ������ ��� ����� �� �� �� �� ��� �� *EXECUTE
v ������ SQL ������ :
– ������� EXECUTE ��
– SQL ������ �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � ������ �� EXECUTE ��� ����.
v ������ ����.
v ������� EXECUTE ��� �������.
v ������� *OBJOPR� *EXECUTE� ��� ��� �������.
��
�� CALL procedure-namehost-variable
�
CALL
400 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
�
( ),
host-variableconstantNULLspecial-registerDLVALUE ( arguments )cast-function-name ( constant )
host-variableUSING DESCRIPTOR descriptor-name
��
�
procedure-name �� host-variable
��� �������� ��� ��� �� �� ������� �� ��� �
����� �����. procedure-name� �� ��� �� ������ ���
� ���. ��� ��� ���
v �� ��� �� �� UCS-2 � ������ ����� ���
� ��� ���.
v ��� ��� �� �� ������� ���� ��� ��� �
�� ���� �� ���� ���� � �� ���.
v ������� ��� ��� ��� ���� ���� ���.
������� ��� �� ��� �� ��� ���� ����
� ���� ���. ��� ��� 54 ���� ���� �� ����� �
���� �����.
procedure-name� CREATE PROCEDURE� DECLARE PROCEDURE���
��� ������ ��� �� ��� iSeries� DB2 UDB ���
v CREATE PROCEDURE� DECLARE PROCEDURE�� �� ����,
� � �� ��� ��� �����.
v ����� ��� �� CREATE PROCEDURE� DECLARE
PROCEDURE��� �� ��.
��� ��
v �� ��� �� ����, � � �� ��� ��� �����.
v �� ��� iSeries� DB2 UDB�
– �� ������ �� ������� ���� �� ��.
– ����� ��� ���� � ��� ��� � �� �� ���
� �� �� ��. ��� �� �� �� C� �� ��.
– �� ��� GENERAL� �� ��.
CALL
� 5 � �� 401
v ������ ����� ��� ��� �� �� �� �� ���
INOUT� ��� �����. ��� ��� � �� ��� � IN�
� �� ��.
v ��� �� �� �� ��� �� �� ��.
�� ��� iSeries� DB2 UDB�� ��� �� CALL�� ��� �
�� �� ����.44
host-variable �� constant �� NULL �� special-register
������ ��� ��� �� ���� �����. n�� �� ����
�� n�� ��� �����.
CALL�� ��� � � �� �� ������ ��� ��� ��
��. ��� �� �� ��� ��� ��� ������ �� ��. ��
���� ��� ��� � ������ � �� �� OUT �� INOUT�
� ��� CALL�� �� ��� �� ��. �� ��� ��� �
�� �� ��� ��� 83 ���� ���� ���� �����.45
DLVALUE(arguments)
�� �� DLVALUE ��� �� �� ��� �����. DLVALUE �
�� �� DataLink ��� ���� ��� � ����. DLVALUE
�� ���, �� � �/� � � �� �� ��� ���. DLVALUE�
� �� ��� ��, ��� �� �� �� �� ��(CAST(? AS ��
�))�� ���. DLVALUE� �� � � �� ��� ��� host-variables
�� ���.
cast-function-name
� � �� ��� �� �, BLOB, CLOB, DBCLOB, DATE, TIME �
� TIMESTAMP �� ��� ��� ��� �� ��� � ����.
�� �� � cast-function� ��� ���� ��� ���.
parameter-type ��� ���
BLOB, CLOB �� DBCLOB� ��� �
�� � N
BLOB, CLOB �� DBCLOB *
DATE, TIME �� TIMESTAMP� ���
� �� � N
DATE, TIME �� TIMESTAMP *
BLOB, CLOB �� DBCLOB BLOB, CLOB �� DBCLOB *DATE, TIME �� TIMESTAMP DATE, TIME �� TIMESTAMP *�:
* � ��� ��� �� ��� ���� QSYS2� �� �� �� ��(�� �� �� ��
�� ���� ���.
44. �� �� �� ��� �� ��� � �� ��(leading zeros)� �����. �����, �� ��(leading zeros)� ��� ����.
45. CALL�� �� � � SQL EXECUTE�� �� ��� OUT � INOUT ��� ��� ����.
CALL
402 iSeries� DB2 UDB SQL ��� V5R2
constant
��� ��� �����. ��� �� �� �� � �� �� �
� � �� �� �� �� ��� ��� ���. BLOB, CLOB,
DBCLOB, DATE, TIME � TIMESTAMP �� ��� ��� �
���� ���.
host-variable
��� ��� ��� �����. ��� ��� �� �� �� � �
� �� �� � �� �� �� �� ��� ��� ���.
USING DESCRIPTOR descriptor-name
��� ��� �� ��� �� � SQLDA� �����.
CALL�� �� �� SQLDA� �� ��� ���� ���(REXX� �
� ��� ����. ��� ��� SQL Programming with Host Languages �
� �����).
v SQLDA� ��� SQLVAR � �� ��� SQLN
v SQLDA� �� ��� ����� �� �� ��� SQLDABC
v ��� �� � SQLDA�� ��� �� �� ��� SQLD
v �� �� ��� SQLVAR �
�� SQLVAR �� � � ��� SQLDA� ��� ���� ��� �
�� ���. ���, SQLDABC� �� 16 + SQLN*(80) �� �� ���
���. ��� 80� SQLVAR �� ����. LOB� �� �� ��
� � �� ��� �� SQLVAR ��� ��� SQLN�
�� �� �� �� ���� ���.
SQLD� �(0) �� �� �� SQLN �� �� �� ��� ���� �
��. CALL�� �� �� �� �� ��� ���. SQLDA� �� ��
� n �� ��� �� ���� n �� �� ��� �����.
(SQLDA� �� ��� 881 ���� �� C �SQLDA(SQL ��� ��)�� �
����.)
RPG/400� �� ��� � �� ��� ����. SQLDA� �� ��
� ��� ���� � ��� ���� ���� RPG/400 ������
��� � ��� ���� ���.
procedure-name� CREATE PROCEDURE� DECLARE PROCEDURE��� �
�� ������ ��� OUT�� INOUT ��� ��� ��� ��
�� ���.
CALL
� 5 � �� 403
procedure-name� CREATE PROCEDURE� DECLARE PROCEDURE��� �
�� ������ ��� ��� �� �� CREATE PROCEDURE�
DECLARE PROCEDURE��� ��� �� �� ��� ���.
��� host-variable� �� ��� 99 ���� ���� � 114 ���� ���� �
�� �� ���� �����. special-register� �� ��� 104 ���� ���
������ �����. NULL� ��� �����.
��� �� ������ REXX ������� CREATE PROCEDURE�
DECLARE PROCEDURE�� ��� � ������ ��� ���.
��� ��� REXX ����� �� CALL�� ��� � ����. �, �
� ��� ��� CALL� PREPARE� EXECUTE� ���� ���� ��
�.
SQL�� �� ������ ��� �� ������ ���� � ��� SQL
data-access� �� �� ��. ��� ��� � �� �� ��� ����.
NONECONTAINSREADSMODIFIES
�� ������ �� ����� �� ��� ��� ��� �� � �
�� � ��.
v ��� ������� SQL� �� �� � �� ��� ������ SQL� �
�� ��
v ��� ������ SQL ��� �� ��� ������ SQL ��� ���
��� ��
v ��� ������ SQL ��� ��� ��� ������ SQL ��� �
��� ��� ��
�� ��� iSeries Access ODBC( � ������ ���) ����� ���
����, iSeries Access Optimized SQL API� ��� ���� �� SQL
�� �� ������ JDBC��� ������ ��� � �� ��������
� ��. �� ��� �������� �� ���� ��� � ��� ��
��.
v ������� SET RESULT SETS�� ��� � SET RESULT SETS�� �
� ��� �����. �� ��� SET RESULT SETS�� ��� ��� �
��.
v SET RESULT SETS�� ������� ��� ��
CALL
404 iSeries� DB2 UDB SQL ��� V5R2
– WITH RETURN�� ��� ��� �� ������ � �� �
��� ��� �� � � ��� �� ��� �����. �� ��� ���
� ��� � ��.
– WITH RETURN�� ��� ��� �� ������ � �� �
��� ��� �� � WITH RETURN�� ��� ��� � ��� ��
��� �����. �� ��� ��� � ��� � ��.
� ��� ��� �� ��� �� � �� �� �� ��� ��� �
��.
CALL� ��
�����, ��� �� � �� ��� ��� ����� CALL�� ��
� ����. �����, ��� �� � �� ��� ������ ��� � �
�� �� ��� � ��. ������ �� �� � �� �� ��� �
�� ���, ��� 300 ����� �� � ����.
������ �� �� ��� �� �� ��� ������ ����� �
��. SQL CALL�� �� �� ��� �� � ��� �� �������
� � ����. �� ��, ���� ����� ����� PROCA� ��� �
������ ����� PROCB� �����. PROCA� PROCB� �� ��
��� ���� � �� , ���� ����� �� �� ��� ���� � �
���.
�
����� PGM1� ��� �� � �����.
CALL PGM1 (:hv1,:hv2)
CALL
� 5 � �� 405
CLOSECLOSE�� ��� ����. ��� #� � ���� ����� � �� �
��.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����. JAVA� ����� � ��.
����
��� ��� ����. ��� ��� � ��� ����� �� ��� 598 �
��� �DECLARE CURSOR�� �����.
��
�� CLOSE ��� ��
�
cursor-name
�� ��� �����. cursor-name� DECLARE CURSOR�� ��� ��
�� ��� ���� ���. CLOSE�� ��� ��� � ��� ���
���.
����� �� �� ��� ��� �� � �� ��� ����.
v ����� ���
– CLOSQLCSR(*ENDPGM)� ��� �� ��� ����� ��� ��
� �� ��� ����.
– CLOSQLCSR(*ENDSQL)� ��� � SQL ����� �� ��� �
� �� �, ����� � ��� �� �� ��� �� ��� ����.
– CLOSQLCSR(*ENDJOB)� ��� ����� ���� � ��� �
� �� ��� �� ��� ����.
– CLOSQLCSR(*ENDMOD)� ��� ��� �� ��� �� ��� �
� ��� ����.
– CLOSQLCSR(*ENDACTGRP)� ��� ����� �� ��� � �
� ��� � �� � �� ��� �� ��� ����.
CLOSE
406 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
v ����� HOLD ���� COMMIT� ROLLBACK�� ��� ��� ��
� � �����. HOLD ���� �� ��� COMMIT��� �� ��
��.
�: iSeries� DB2 UDB ������ ���� ��� ��� � �� ���.
�� �� �� SQL CLOSE�� ��� � ����. ��� ��� SQL �
�� � �� �����.
��� �� ����� ��� ��� ��� ��� � ����.
�
COBOL ������ �� C1� ��� EMPPROJACT �� � � �� �
�� � �� �� ��� � �� �� ��� ��� �����.
v EMP(CHAR(6))
v PRJ(CHAR(6))
v ACT(SMALLINT)
v TIM(DECIMAL(5,2))
����� ��� ����.
EXEC SQL BEGIN DECLARE SECTION END-EXEC.77 EMP PIC X(6).77 PRJ PIC X(6).77 ACT PIC S9(4) BINARY.77 TIM PIC S9(3)V9(2) PACKED-DECIMAL.
EXEC SQL END DECLARE SECTION END-EXEC....
EXEC SQL DECLARE C1 CURSOR FORSELECT EMPNO, PROJNO, ACTNO, EMPTIMEFROM EMPPROJACT END-EXEC.
EXEC SQL OPEN C1 END-EXEC.
EXEC SQL FETCH C1 INTO :EMP, :PRJ, :ACT, :TIM END-EXEC.
IF SQLSTATE = ’02000’PERFORM DATA-NOT-FOUND
ELSE PERFORM GET-REST UNTIL SQLSTATE IS NOT EQUAL TO ’00000’.
EXEC SQL CLOSE C1 END-EXEC.
GET-RESTEXEC SQL FETCH C1 INTO :EMP, :PRJ, :ACT, :TIM END-EXEC....
CLOSE
� 5 � �� 407
COMMENTCOMMENT�� �� ������ ���� ���� ��� �� ���
�����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
�, �, ��, ��, , �� �, �� ���� �� ���� ��� ��
�� ID� �� ��� ��� �� � �� �� ���.
v ��� �, �, ��, ��, �� ��� ����
– �, �, ��, ��, �� ��� ���� �� ALTER ��, �
– �, �, ��, ��, �� ��� ���� �� �� �� �� �� ��
� �� *EXECUTE
v �� ��
�� � ��� ���� ID� �, �, ��, ��, �� � �� ����
�� ALTER ��� ����.
v �, �, ��, ��, �� ��� ���� ���
v �, �, ��, �� ��� ���� �� ALTER ��� ����
v �, �, ��, ��, �� ��� ���� �� *OBJALTER �� *OBJMGT
� ��� ��� ����
��� �� ���� ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ��� �� � ��
– � �� ALTER �� �
– � �� �� �� �� �� �� *EXECUTE ��� ��
v �� ��
�� �� ���� ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v SYSFUNCS ���� ��
– ��� UPDATE ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
COMMENT
408 iSeries� DB2 UDB SQL ��� V5R2
������ �� ���� ��� ���� ID� �� ��� ��� �
� � �� �� ���.
v SYSPROCS ���� ��
– ��� UPDATE ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� �� ���� ��� ���� ID� �� ��� ��� ��
� �� �� ���.
v SYSPARMS ���� ��
– ��� UPDATE ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� UPDATE ��� ���
�.
v �� ���
v �� �� UPDATE ��� ����
v �� �� *OBJOPR� *UPD� ��� ��� ����
COMMENT
� 5 � �� 409
��
�� COMMENT ON �
�
ALIAS alias-name IS string-constantCOLUMN table-name.column-name
view-name.column-nameFUNCTION function-nameROUTINE ( )
,
parameter-typeSPECIFIC FUNCTION specific-name
ROUTINEINDEX index-namePACKAGE package-namePARAMETER routine-name.parameter-name
SPECIFIC FUNCTION specific-name.parameter-namePROCEDUREROUTINE
PROCEDURE procedure-nameROUTINE ( )
,
parameter-typeSPECIFIC PROCEDURE specific-name
ROUTINETABLE table-name
view-nameTRIGGER trigger-name
TYPE distinct-type-nameDISTINCT
multiple-columnsmultiple-parameters
��
COMMENT
410 iSeries� DB2 UDB SQL ��� V5R2
multiple-columns:
,COLUMN
table-name ( column-name IS string-constant )view-name
multiple-parameters:
PARAMETER SPECIFIC FUNCTION specific-namePROCEDUREROUTINE
ROUTINEroutine-name
FUNCTION ( )PROCEDURE ,
parameter-type
�
�
,
( parameter-name IS string-constant )
parameter-type:built-in-typedistinct-type-name AS LOCATOR
COMMENT
� 5 � �� 411
built-in-type:SMALLINTINTEGERINTBIGINT
(5,0)DECIMALDEC ( )
NUMERIC integer, integer
(53)FLOAT
(1)( integer )
REALPRECISION
DOUBLE(1)
CHARACTERCHAR ( ) FOR BIT DATA
integer FOR SBCS DATACHARACTER VARYING ( ) FOR MIXED DATACHAR integer CCSID integer
VARCHAR(1M)
CLOBCHAR LARGE OBJECT ( ) FOR SBCS DATA AS LOCATORCHARACTER LARGE OBJECT integer K FOR MIXED DATA
M CCSID integerG
(1)GRAPHIC
( ) CCSID integerinteger
VARGRAPHIC ( )GRAPHIC VARYING integer
(1M)DBCLOB
( ) CCSID integer AS LOCATORinteger K
MG
(1M)BLOBBINARY LARGE OBJECT ( ) AS LOCATOR
integer KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP(200)
DATALINK( ) CCSID integer
integerROWID
�:
1 �� �(REAL �� DOUBLE)� ��� ��� ������ ���� �� ��� �� ��
��� � ��� �� ��� ��� ��.
COMMENT
412 iSeries� DB2 UDB SQL ��� V5R2
�
ALIAS alias-name
�� ��� ��� �����. ��� �� ��� �� ��� ���� �
��.
COLUMN
�� � �� ��� ���� �����.
table-name.column-name �� view-name.column-name
�� ��� � �����. table-name �� view-name� �� ��
� �� �� �� ���� ��� �� �� ����� � ��.
column-name� � �� �� � ���� ���.
DISTINCT TYPE distinct-type-name
�� ��� �� �� �����. ��� �� ��� �� �� �
� ���� ���.
FUNCTION
�� �� �� ��� ���� �����. �� ��� �� �
����. ��, � ��� �� ���� ��� �� ��� � ����.
� ��� ��(��� SQL �)� ��� ����.
FUNCTION function-name
function-name� �� ��� �� � �� �� ���� ���. �
� �� �� ��� ��� �� � ����. ��� �� ��� �
��� ��� ��� �� � �� ��� ��� � ��.
FUNCTION function-name(parameter-type, ...)
function-name(parameter-type, ...) �� ��� �� ��� � ���
�� ���� ��� . ��� ��� ��� �� CREATE
FUNCTION�� ��� �� �� �� ���� ���. �� �� �
� �� ��� �� ��� �� � ���� ��� � ��
��. function-name()� ��� ��� �� 0 � ��� ���
���.
function-name
� ��� �����.
(parameter-type, ...)
�� ��� �����.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� �� ��� �
� �� � �� ��� ��� �� ����.
COMMENT
� 5 � �� 413
|
|
|
|
v � ��� �� �� �� ��� ��� � ������ ����
�� ����� �� �����.
v ��, ��� �� �� �� �� �� �� ��� � ��
CREATE FUNCTION�� ���(��� �� �����) �� ��
���� ���.
v ��, ��� �� ��� ����� ��� �� � ��� ��
� �� �� �� ��� �� �� ��. �� ��, ��
� ����.
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
��� ��� CREATE FUNCTION�� ����� �� �����
��� �� �� ���� ���. �� �� ��� ��� ��
�� ���� 541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� ��
�� �� ��� ��� � ������ ���� �� ����� �
� �����. �� ��� CREATE FUNCTION�� ��� �
� ����� ��� �� ���� ���.
SPECIFIC FUNCTION specific-name
specific-name� �� ��� �� �� �� ���� ���.
INDEX
�� ��� �� ��� ���� �����.
index-name
�� ��� ��� �����. ��� �� ��� �� ��� ���
� ���.
PACKAGE
�� ���� �� ��� ���� �����.
package-name
�� ��� ���� �����. ��� �� ��� �� ���� �
��� ���.
PARAMETER
�� ��� �� ��� ���� �����.
routine-name.parameter-name
�� ��� ��� �����. ��� ������ �� ��
COMMENT
414 iSeries� DB2 UDB SQL ��� V5R2
����. routine-name� �� ��� �� ������ �� ��
� parameter-name� ������ �� ��� ���� ���.
specific-name.parameter-name
�� ��� ��� �����. ��� ������ �� ��
����. specific-name� �� ��� �� ������ �� ��
� parameter-name� ������ �� ��� ���� ���.
PROCEDURE
�� ������ �� ��� ���� �����. �� ��� ��
���� �����. ��, ����� �� �� �� ���� �� �����
� ��� � ����. ����� �� ��(��� SQL �)� ��� ��
��.
PROCEDURE procedure-name
procedure-name� �� ��� �� � ������ �� ���� ��
�. ������ ������ �� ��� ��� ����. ��� ��
��� ���� ��� ��� ������ � �� �� ��� �
��.
PROCEDURE procedure-name(parameter-type, ...)
The procedure-name(parameter-type, ...)� �� ��� �� ��� ���
�� ��� ������ ���� ���. ��� ��� �� ���
CREATE PROCEDURE�� ��� �� �� ���� ���. ��
�� �, �� �� � ��� �� �� ����� ���� ��
� � �� ��. procedure-name()� ��� ��� ������ 0 �
��� ��� ���.
procedure-name
����� ��� �����.
(parameter-type, ...)
����� ��� �����.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� �� ��� �
� �� � �� ��� ��� �� ����.
v � ��� �� �� �� ��� ��� � ������ ����
�� ����� �� �����.
v ��, ��� �� �� �� �� �� �� ��� � ��
CREATE PROCEDURE�� ���(��� �� �����) �� �
� ���� ���.
COMMENT
� 5 � �� 415
v ��, ��� �� ��� ����� ��� �� � ��� ��
� �� �� �� ��� �� �� ��. �� ��, ��
� ����.
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
��� ��� CREATE PROCEDURE�� ����� �� ����
� ��� �� �� ���� ���. �� �� ��� ��� �
� �� ���� 541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� ��
�� �� ��� ��� � ������ ���� �� ����� �
� �����. �� ��� CREATE PROCEDURE�� ���
�� ����� ��� �� ���� ���.
SPECIFIC PROCEDURE specific-name
specific-name� �� ��� �� �� ������ ���� ���.
TABLE table-name �� view-name
�� ��� �� �� �����. ��� �� ��� �� �� �� ��
�� ��� �� �� ����� � ��.
TRIGGER trigger-name
�� ��� ��� �����. ��� �� ��� �� ��� ���
� ���.
IS
��� �� � ���.
string-constant
2000� �� �� ��� ��� � � ����. ���� SBCS ��
DBCS ��� � � ����.
multiple-columns�� �� �� � ��� � �� ���� �� � ��� ��� �� �
�� �� ���� �����.
column-name IS string-constant,column-name IS string-constant, ...
��� ����� ��, � ��� ��� �� �� � ���� , �
�� �� �� ��� ��� ���.
COMMENT
416 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
multiple-parameters������ �� �� � ��� ��� �� ���� ������,
�� �� �� ��� ��� �� ��� �� ���� �����.
parameter-name IS string-constant,parameter-name IS string-constant, ...
�� ��� ����� ��, � ��� ��� ������ �� �
�� ���� , ������ �� �� ��� ��� ���.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� ��
� ��� ��� � ����.
v � � PROGRAM� PACKAGE� ���� ��� � ����.
v � � DATA� DISTINCT� ���� ��� � ����.
�
� 1EMPLOYEE �� �� �� ����.
COMMENT ON TABLE EMPLOYEEIS ’Reflects first quarter 1981 reorganization’
� 2EMP_VIEW1 �� �� �� ����.
COMMENT ON TABLE EMP_VIEW1IS ’View of the EMPLOYEE table without salary information’
� 3EMPLOYEE �� EMPNO � �� �� ����.
COMMENT ON COLUMN EMPLOYEE.EMPNIS ’Highest grade level passed in school’
� 4DEPARTMENT �� � �� ����.
COMMENT ON DEPARTMENT(MGRNO IS ’EMPLOYEE NUMBER OF DEPARTMENT MANAGER’,ADMRDEPT IS ’DEPARTMENT NUMBER OF ADMINISTERING DEPARTMENT’)
� 5CORPDATA.PAYROLL ���� �� �� ����.
COMMENT ON PACKAGE CORPDATA.PAYROLLIS ’This package is used for distributed payroll processing.’
COMMENT
� 5 � �� 417
|
|
|
|
|
COMMITCOMMIT�� �� � � ��� � �� � � ��� ������ �� �
����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����. Java� ����� � ��.
�� ����� ��� ����� �� ��(commit) ���� ���
COMMIT� ���� ��� � ����. ������ ��� ���� ���
COMMIT� ������� ��� � ����.
����
��� ��� ����.
��
��WORK
COMMITHOLD
��
�
COMMIT�� COMMIT�� ��� �� � � ��� ��� �� � � ��
���. � ��� �� � �� SQL ����(DROP SCHEMA ��) � SQL
�� ��� �� ���� �����. SQL ���� � SQL �� ��� �
��� 361 ���� � 32 � 362 ���� � 33� �����.
�� �� � ��� ��� �� ��.
WORK
COMMIT WORK� COMMIT� �� ��� �����.
HOLD
��� ��� �����. ��� �� � ��� �� �� �� �
�� ��� �� ��� �� ��. �� � � ��� �� ����� ��
� �� �� ���� ���.
HOLD� ���
v ��� WITH HOLD�� �� ����, � �� � �� ����
� ��� ����.
v �� � � �� ���� LOCK TABLE�� �� ��� � ��� ��
��.
COMMIT
418 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
�� �� ��� ��� ��� �� ��� ���, ����� ��� ��
��� �� ��.
�� �� �� ����� �� ��. ��� ����� �� ��� ���
704 ���� �HOLD LOCATOR�� �����.
��� COMMIT� ��� ��� ��� � ����. � � ������� �
�� �� ��� COMMIT� ROLLBACK� ��� �� ��.
v ��� � ���
– ��� � ���� ��� ������� ��� � ��� COMMIT� �
�� ����. ��� SQL, Query Manager, ILE ����� ��� �
���� ��� ����� ���.
– ��� ���� COMMIT� ��� ���.
v �� ��� � � � ��� ��� � ���� � � ���
– � ��� ����� ��� �� ��� ����� �� ��.
– � ��� ����� ��� �� ��� ����� �� ��.
v � ��� �� ���� �� ��� � � ���� ��� ��� ���
����.
SELECT� FETCH�46�� ��� �� INSERT, DELETE � UPDATE�47� �
�� �, � �� �� �� � �� � � 4�� ���� ��
� � ����.
��� �� ��� DROP SCHEMA�� ��� ��� ���� � ���
COMMIT(*CHG), COMMIT(*CS), COMMIT(*ALL) �� COMMIT(*RR)� ��
� ������ ������ ��� � ����.
SQL� ��� �� ��� ��� �� �� ��.
v SQL� ��� ����� � ��� �� � �� �� �� ��� �� �
�� SQL� � �� ��� �����.
v SQL� ��� ����� � ��� �� �� �� �� ��� �� ���
SQL� � �� �� �� ��� �����.
46.� ���� �� ��� ��.
v � � � �� �� �� ���� � �� �� ���� �� �
v ��� CASCADE, SET NULL �� SET DEFAULT �� ��� � ��� ��� �, � �� �� �
47. COMMIT(*CHG) �� COMMIT(*CS)� ��� ��� � � �� ��� � ����.
COMMIT
� 5 � �� 419
|
|
v SQL� ��� ����� � ��� �� �� ��� ��� �� ���
�� �� ��� ��� SQL� � �� �� ��� �����.
v SQL� ��� ����� � ��� �� �� ��� ��� �� �� �
� ��� ��� ��� SQL� ����� �� ��� �����. SQL� �
�� � �� �� ��(STRCMTCTL) �� �����.
– CMTSCOPE(*ACTGRP) ��
– CRTSQLxxx, STRSQL �� RUNSQLSTM �� ��� COMMIT ���
��� � LCKLVL ��. REXX�� LCKLVL ��� SET OPTION
�� �� ��� ��� ���.
�
COMMIT(*CHG)� �� C ������� ���(COMM)� �� ���
EMPLOYEE �� � ��(EMPNO)�� �� ���� �����. � ��� � �
�� � �� �� � ��� �����. COMMIT WORK�� ��� �
�� ����� ��� ���� ������� ����� �� ���� ��
� �����.
void main (){
EXEC SQL BEGIN DECLARE SECTION;decimal(5,2) AMOUNT;char FROM_EMPNO[7];char TO_EMPNO[7];
EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;EXEC SQL WHENEVER SQLERROR GOTO SQLERR;...
EXEC SQL UPDATE EMPLOYEESET COMM = COMM - :AMOUNTWHERE EMPNO = :FROM_EMPNO;
EXEC SQL UPDATE EMPLOYEESET COMM = COMM + :AMOUNTWHERE EMPNO = :TO_EMPNO;
FINISHED:EXEC SQL COMMIT WORK;return;
SQLERR:...EXEC SQL WHENEVER SQLERROR CONTINUE; /* continue if error on rollback */
EXEC SQL ROLLBACK WORK;return;
}
COMMIT
420 iSeries� DB2 UDB SQL ��� V5R2
CONNECT(�� 1)CONNECT(TYPE 1)�� ��� �� � ��� ��� ������ ����
�� � ��� ��� ������ ��� �����. � ��� � ��� �
� ����. RDBCNNMTH(*RUW)� CRTSQLxxx �� ��� � ��
CONNECT�� �� ��. �� �� ��� ��� ���� 925 ����
�CONNECT(� 1) � CONNECT(� 2) ����� ��� ����. �� �
�� �� ��� ��� 31 ���� ������� �� �� �� � �� ��
���.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����. Java� REXX� ����� �
��.
������ ��� ���� ��� CONNECT� ��, � �� �����
�� ��� � ����.
����
��� ���� ID� �� ���� � �� ��� � ��� ���
(Distributed Database Programming �� ��� �� ��� �����).
������ ��� iSeries� DB2 UDB�� ��� �� �� ��� ��
�� �� ���� �� ��� ������ ���. ��� ��� �� ��
� �� ��.
v ���� �� ��. � USER�� �� ����� �� ��� ���
� ���� ���.
v TCP/IP� ��� �� �� ���� ��� � �� ��. � �� ��
�� ��� �� ����� �� ��� ���� ���� ���.
��
�� CONNECTTO server-name authorization
host-variableRESET
��
���:
USER authorization-name USING passwordhost-variable host variable
CONNECT(�� 1)
� 5 � �� 421
|
|
|
|
|
|
�
TO server-name �� host-variable
��� ��� �� ��� ��� �� ����� ��� �����. ��� �
�� ���
v �� ��� ��� �� ���.
v ��� ����� ��� �� � ��.
v ���� ��� �� ��� ���� ��� � �� ID� ��� �
�� ��� ���.
v ���� ��� ��� ��� ���� ��� ���� ���� � �� �
��.
server-name� �� ��� ������(RDB)�� authorization-name� ���
server-name� ��� authorization-name��� ���. ���
authorization-name� ��� authorization-name� �!�, ��� �� ��
����� ��� �� ��� ����.
CONNECT�� ��� � ��� ��� �� �� ����� ��� ����
�� ����� ��� ��� ���� � � ��� ��� � �� ���
��� ���.
RESET
CONNECT RESET� x� �� ���� CONNECT TO x� �����.
CONNECT ����� ��
� ��� CONNECT�� �� ��� �� ��� �� �� ��, � �
�, �� �� �� ��� ��� ��� ����. ��� � ��� ��
SQLCA� � ��.
USER authorization-name �� host-variable
��� ��� ��� � ��� ���� ��� �� �� ���
authorization-name�� host-variable� authorization-name� �����.
host-variable� ���
v �� ��� ���� ���.
v ��� ����� ��� �� � ��.
v ���� ��� ��� ���� ���� ��� � ���� ��� �
�� ��� ��� ���.
v ���� ��� ��� ��� ��� ���� ��� ���� ���� �
�� ���.
CONNECT(�� 1)
422 iSeries� DB2 UDB SQL ��� V5R2
USING password �� host-variable
��� ��� ��� � ��� ���� ��� ��� �� �� ���
password� host-variable� ��� �����.
��� ���� ��� �� ������ ���. �� ��� 128���. �
��� ��� ���.
host-variable� ���
v �� ��� ��� �� ���.
v ��� ����� ��� �� � ��.
v ��� ��� �� ��� ���� ��� ���.
v ��� ��� ��� ��� ���� ��� ���� ���� � �� �
��.
�� ��: CONNECT�� ��� :
v � ��� � ��, �� �� ��� � , �� ��� �� ���
�� ��.
v � ��� �� �� � �� ���� � �� , �� ��� ���
�� ��.
v ��� ��� CURRENT SERVER �� ����� ����.
v ��� �� ��� SQLCA� SQLERRP � SQLERRD(4) ��� ����. �
�� IBM ��� ������(RDB) ���� SQLERRP ��� �� ���
pppvvrrm ����.
– ppp� ��� �� ��� �����.
ARI for DB2 for VM� VSE
DSN for OS/390 � z/OS� DB2 UDB
QSQ for iSeries� DB2 UDB
� �� �� DB2 UDB ��� SQL
– vv� '04'� �� ��� �� ID��.
– rr� '01'� �� ��� �� ID��.
– m� '0'� �� � ��� �� ����.
�� �� ��� OS/390 � z/OS� DB2 UDB �� 7�� SQLERRP� ��
'DSN07010'��.
SQLCA� SQLERRD(4) ���� ��� ����� �� ��� �����
��� �� �� ����. CONNECT(� 1)�� SQLERRD(4)� ��
� 1� ���. � 1� ����� �� ��� � ��� �����.
CONNECT(�� 1)
� 5 � �� 423
|
|
���
– ��� �� ��� ���48 ��
– *RUW �� ���� ��� ������ ���� ���� ������ �
��� ��
– *RUW �� ���� ��� �� ����.
v ��� �� �� ��� SQLCA ��� SQLERRMC� ����. 871 ���
� �� B �SQL � ���� �����.
�� ��: CONNECT�� ��� �� SQLCA� SQLERRP ��� ��� �
�� ������ ������ �� ���� �� ��. �� ��� � � ��
��� �����. �� ��, ������ ����� NT� DB2 UDB UWO��
� � �� ‘SQL’��.
� ��� ����� ��� ��� ��� CONNECT�� ��� �� �
��� �� ��� �� ����. CONNECT�� �� �� ��� ��
v � ��� ������, ��� �� ����.
v � ��� � ��, �� �� ��� � , �� �� � �� ��
� �� ��� �� ��.
������ ��� �� ��� ������� CONNECT �� SET
CONNECTION�� ��� � ����.
�� ��:
v ��� � ���� ��� � �� � SQL ����� ��� ��� ��
����(RDB)� ����� �� ��.
– � ��� ����� ��� �
– ���� ��� �� � �� SQL ����� � �� SQL�� ��� �
v ���� � � ���� ��� SQL ����� ���� � ��� ��
� �� SQL ����� � �� SQL�� ��� � ��� ��� ������
(RDB)� ����� �� ��.
�: � ��� �� ��� � �� SQL�� CONNECT��� � �� ��
��.
48. �� � ��� SQL �� ��� �� ���� ��� � � ���� ‘��’�� ���, ����� APPC ���� ����� ���,
APPC� ��� TCP/IP� �� � ���� ��� �����.
CONNECT(�� 1)
424 iSeries� DB2 UDB SQL ��� V5R2
RDB� ��� � APPC� ��� ��� ��� ������ ���� ���
authorization-name� �� ���� ��� ��� ����. �� ���
authorization-name� �!� ��� ���� � ��� �� ��� �
��� ���.
TCP/IP� RDB� ��� � ��� ��� ��� � ����� �� �
�� ����. ADDSVRAUTE � �� -SVRAUTE �� ��� ���(��
���) CONNECT� ��� �� ���� ��, �� RDB� ��� � �
�� authorization-name � ��� ���� ��� � ����.
��� ADDSVRAUTE� CHGSVRAUTE ��� ���� QRETSVRSEC �
�� �� ‘0’� ��� ���� ‘1’� ���� ���. DRDA ��� � ��
��� � SERVER ��� �� RDB �� UPPER CASE��� ���. �
�� ��� � 2 CONNECT� � 2� �����.
��� ��� �� ��� ��� SQL ��� � �� �����. �� �
�� ���� �� ��� ������(RDB) ��� ��� ��� �� ��
� ���� ��� �� ��� ������(RDB)� ��� � ���(���
��� ) �� ��� ����. ��� ���� ��� � ���� ��
� �� �����. ��� ��� Distributed Database Programming �� ��
���.
�� ��: �� ��� �� ��� 30 ���� ���� �� � �� ���� �
����. CONNECT� ���� ���� � ��� �� �� ��� �
CONNECT ��� ����� ��� � ����.
������ ��� �� �� �� ��� �� CONNECT� ��� �� ��
��.
v CONNECT(� 1)�� ��� server-name� �� ��� ��� �����,
��� ��� ���� ����. ��� �� ��, �� ��� �� �
� , ��� ��� ����.
v CONNECT(� 2)�� ��� server-name� �� ��� ��� �����
CONNECT�� �� CONNECT�� �� �� ��.
CONNECT� CONNECT, COMMIT, DISCONNECT, SET CONNECTION,
RELEASE �� ROLLBACK ��� �� SQL� ��� �� ����� ��� �
����. ��� ��� CONNECT�� ��� �� ���� �� ��� ��
���.
��� ��� ��� �� �� �� ��� �����, CONNECT(� 1)�
� �����. �� CONNECT(� 2)�� ���� � ��� ��� �
���� ��� ��� ��� ��� ��� ���� ���.
CONNECT(�� 1)
� 5 � �� 425
��� ��� ������ � �� ����� ��� �� ��� ��� SQL �
�� � �� Distributed Database Programming �� �����.
�
DRDA� � TCP/IP ����� ��� ��� � ��� � �� ��� "
��� �� CONNECT � 2 ��� � 2� �����. � �� CONNECT
� 1�� �� ��.
� 1C ������ ��� JOE� �� TOROLAB3� �����. JOE� ��� XYZ1
��. ����� ��� �, ��� �� ID 3�� ��� �� product� ���
��.
void main (){char product[4] = " ";EXEC SQL BEGIN DECLARE SECTION;char username[11];char userpass[129];EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA ;
strcpy(username,"JOE");strcpy(userpass,"XYZ1";EXEC SQL CONNECT TO TOROLAB3
USER :username USING :userpass;if (strncmp(SQLSTATE, "00000", 5) ){ strncpy(product,sqlca.sqlerrp,3); }
...return;
}
CONNECT(�� 1)
426 iSeries� DB2 UDB SQL ��� V5R2
CONNECT(�� 2)CONNECT(� 2)�� ������ �� �� �� � ��� ��� ����
�� ���� �� � ��� ��� ��� �����. � ��� � ��� �
� ����. RDBCNNMTH(*DUW)� CRTSQLxxx �� ��� � ��
CONNECT�� �� ��. �� �� ��� ��� ���� 925 ����
�CONNECT(� 1) � CONNECT(� 2) ����� ��� ����. �� �
�� �� ��� ��� 31 ���� ������� �� �� �� � �� ��
���.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����. Java� REXX� ����� �
��.
������ ��� ���� ��� CONNECT� ������� ��� � ��
��.
����
��� ���� ID� �� ���� � �� ��� � ��� ���
(Distributed Database Programming �� ��� �� ��� �����).
��� iSeries� DB2 UDB�� ��� �� �� ��� ���� �� �
��� �� ��� ������ ���. ��� ��� �� ��� �� ��.
v USER� �� ��. USER� ��� USER�� �� ����� �� ���
���� ���� ���.
v TCP/IP� ��� �� �� ���� ��� � �� ��. � �� ��
�� ��� �� ����� �� ��� ���� ���� ���.
��
�� CONNECTTO server-name authorization
host-variableRESET
��
���:
USER authorization-name USING passwordhost-variable host variable
CONNECT(�� 2)
� 5 � �� 427
|
|
|
|
|
|
�
TO server-name �� host-variable
��� ��� �� ��� ��� �� ����� ��� �����. ��� �
�� ���
v �� ��� ��� �� ���.
v ��� ����� ��� �� � ��.
v ���� ��� �� ��� ���� ��� � �� ID� ��� �
�� ��� ���.
v ���� ��� ��� ��� ���� ��� ���� ���� � �� �
��.
CONNECT�� ��� � ��� ��� �� �� ����� ��� ����
�� ����� ��� ��� ���� ���.
S� ��� ��� � ����� ��� ���� �����. S� ����
�� ����� �� ��� ��� � ��.
RESET
CONNECT RESET� x� �� �� ��� CONNECT TO x� �����.
CONNECT ����� ��
� ��� CONNECT�� �� ��� �� ��� �� �� ��, � �
�, �� �� �� ��� ��� ��� ����. ��� � ���
SQLCA� ��� � ��.
�� SQLCA� SQLERRD(3) ��� � �� � � �� �� ��� ���
��. �� � � �� �� ��.
v 1 - ����� �� � �� � � �� ���� ��� � ����.
v 2 - ����� �� � �� � � �� ���� ��� � ����.
USER authorization-name �� host-variable
��� ��� ��� � ��� ���� ��� �� �� ���
authorization-name�� host-variable� �� authorization-name� �����.
host-variable� ���
v �� ��� ���� ���.
v ��� ����� ��� �� � ��. ���� ��� ��� ���� �
��� ��� � ���� ��� ��� ��� ��� ���.
v ���� ��� ��� ��� ��� ���� ��� ���� ���� �
�� ���.
CONNECT(�� 2)
428 iSeries� DB2 UDB SQL ��� V5R2
USING password �� host-variable
��� ��� ��� � ��� ���� ��� ��� �� �� ���
password� host-variable� ��� �����.
��� ���� ��� �� ������ ���. �� ��� 128���. �
��� ��� ���.
host-variable� ���
v �� ��� ��� �� ���.
v ��� ����� ��� �� � ��.
v ��� ��� �� ��� ���� ��� ���.
v ��� ��� ��� ��� ���� ��� ���� ���� � �� �
��.
�� ��: CONNECT�� ��� :
v �� S�� ��� �� �� � �� ��� ��. �� ��(�� )�
�� ��� ��.
v S� CURRENT SERVER �� ����� ����.
v �� S� �� ��� SQLCA� SQLERRP � SQLERRD(4) ��� ����.
��� IBM ��� ������(RDB) ���� SQLERRP ��� �� ���
pppvvrrm ����.
– ppp� ��� �� ��� �����.
ARI for DB2 for VM� VSE
DSN for OS/390 � z/OS� DB2 UDB
QSQ for iSeries� DB2 UDB
� �� �� DB2 UDB ��� SQL
– vv� '04'� �� ��� �� ID��.
– rr� '01'� �� ��� �� ID��.
– m� '0'� �� � ��� �� ����.
�� �� ��� OS/390 � z/OS� DB2 UDB �� 7�� SQLERRP� ��
'DSN07010'��.
SQLCA� SQLERRD(4) ���� �� S� ����� �� ��� ���
�� ��� �� �� ����. ��� CONNECT� �� SQLCA�
SQLERRD(4) ��� �� �� �� �����.
– 1 - ����� �� ��� � ����. ��� ��� ����.48
– 2 - ����� �� ��� � ����. ��� ��� ����.
CONNECT(�� 2)
� 5 � �� 429
– 3 - ����� �� ��� � ��� � � ����. ��� �� ��.
– 4 - ����� �� ��� � ��� � � ����. ��� ��� �
���.
– 5 - ����� �� ��� � ��� � � ����. ��� �� �� �
� ������ ���� ���� ���� ����.
v ��� �� �� ��� SQLCA ��� SQLERRMC� ����. 871 ���
� �� B �SQL � ���� �����.
�� ��: CONNECT�� ����� ��� ��� � ��� �� �� � �
��� ��� �� ����.
�� ��:��� ��� �� ������ ���� ��� authorization-name�
��� ��� ��� ����. �� ��� authorization-name� �!� �
�� ���� � ��� �� ��� ���� ���.
TCP/IP� RDB� ��� � ��� ��� ��� � ����� �� �
�� ����. ADDSVRAUTE � �� -SVRAUTE �� ��� ���(��
���) CONNECT� ��� �� ���� ��, �� RDB� ��� � �
�� authorization-name � ��� ���� ��� � ����.
��� ADDSVRAUTE� CHGSVRAUTE ��� ���� QRETSVRSEC �
�� �� ‘0’� ��� ���� ‘1’� ���� ���. DRDA ��� � ��
��� � SERVER ��� �� RDB �� UPPER CASE��� ���. �
�� ��� � 2 CONNECT� � 2� �����.
��� ��� �� ��� ��� SQL ��� � �� �����. �� �
�� ���� �� ��� ������(RDB) ��� ��� ��� �� ��
� ���� ��� �� ��� ������(RDB)� ��� � ���(���
��� ) �� ��� ����. ��� ���� ��� � ���� ��
� �� �����. ��� ��� Distributed Database Programming �� ��
���.
�
� 1TOROLAB1� TOROLAB2�� SQL�� �����. � �� CONNECT��
TOROLAB1 ��� ��� �� CONNECT�� � ��� �� ��� ��
��.
EXEC SQL CONNECT TO TOROLAB1;
(execute statements referencing objects at TOROLAB1)
CONNECT(�� 2)
430 iSeries� DB2 UDB SQL ��� V5R2
EXEC SQL CONNECT TO TOROLAB2;
(execute statements referencing objects at TOROLAB2)
� 2��� JOE� TOROLAB3� ��� ��� SHIBBOLETH� ��� ID
ANONYMOUS� SQL�� ���� ���. TOROLAB3� �� RDB ����
��� �� �� �� *IP� �����.
������� ��� �� ��� �� ���� ���.
� �� ��� ��� �� �� �� ��� OS/400� ��� � �
����.
CHGSYSVAL SYSVAL(QRETSVRSEC) VALUE(’1’)
� �� ��� �� ���� ��� �����.
ADDSVRAUTE USRPRF(JOE) SERVER(TOROLAB3) USRID(ANONYMOUS) +PASSWORD(SHIBBOLETH)
JOE� ��� ����� ��� � ��� ��� �����.
EXEC SQL CONNECT TO TOROLAB3;(execute statements referencing objects at TOROLAB3)
CONNECT(�� 2)
� 5 � �� 431
CREATE ALIASCREATE ALIAS�� �� ���� ������ �� �, � �� ��� ���
�����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� �� ��� ��
– DDM � ��(CRTDDMF) �� �� *USE
– ��� ��� �� �� �� *EXECUTE, *READ � *ADD
v �� ��
SQL ��� ��� ��� ��� �� �� �� ��� �� ��� ��
�� �� , � ��� ��� ���� ID� �� ��� ���� ID�
�� ��� ��� �� � �� �� ���.
v � ��� �� ��� ���� �� ��� �� *ADD
v �� ��
��
�� CREATE ALIAS alias-name FOR table-nameview-name ( member-name )
��
�
alias-name
��� �����. ��� �� ��� ���� ��� �� ��� �� �� �
�� �� ��, �, �, �� �� �� �� � ����.
SQL ��� ��� ��� ��� �� ��� ���� �� ��� ����
�� ��.
����� ��� ��� ���� �� ��� ���� �� ��. ���
�� ��� ��� ��� �� �� ��� ���� �� ��. �� �
�� �� ��� ��� � ��� ��� ��� �� �� �(*CURLIB)
� �� ��.
CREATE ALIAS
432 iSeries� DB2 UDB SQL ��� V5R2
�� ��� �� ����� ��� iSeries� DB2 UDB� ����� ���
��. �� �� ��� �� ��� 572 ���� �� �� �� ���� ��
���.
FOR table-name �� view-name
��� ��� �� ��� �� �� �����. �� ��� ��� � ��
��(��� �� ��� ��� � ����).
table-name�� view-name� ��� ��� � ��� �� �� ��� ��
� ����. �� �� ��� ��� � ��� �� � ��. �� �� �
�� ��� � ��� ��� � ��.
SQL ��� ���� table-name�� view-name� ��� ����, ���
� ��� �����. ��� ��� 47 ���� ��� ���� �����.
����� ���� table-name�� view-name� ��� �� ��� �
�� � ��� table-name�� view-name� ��� ��� �� �� ��
�� ��.
member-name
������ �� ��� �����.
��� ��� �� ��(DML) SQL�� ��� ��� � ����. �� �
�� ��� ��� *FIRST� �� ��.
������ � ��(OVRDBF) CL �� ��� ������ ���� ��
���� �� � ��� �� � ����. � � ������ �� ���
�� �� ��� ��� ���� � ���� � ��� � �� ��� � � �
� ��.
������ SQL�� ��� � ��� ��� � ����. � �, �� �
� ����� ��� ���, SQL�� ��� �� ����.
�� ��: ��� DDM ���� ��� ��� �� ��.
��� �� ��� ��� �� ����� �� ��. ��� �� �� ��� �
�� DB2 Multisystem �� �����.
�� ���: SQL�� ��� , ��� ��� ��� ��� ���� ��
� ��� �� ��� �����. ��� ��� ��� ��� ��� ��
� ��� �� ��� ����� ��� �����.
����� ���, ��� ��� ��� ��� ��� �� ��� ��
��� ��� �����.
CREATE ALIAS
� 5 � �� 433
|
|
|
|
|
�� ��: SQL�� ��� �� *PUBLIC� �� *EXCLUDE ��� ����
�� ��. ����� ��� ��� ���� �� ��(CRTAUT) ��� �
� ���� *PUBLIC� �� ���� �� ��.
��� ��� �� ���� ����(GRPPRF � �) �� ��� ���
(GRPAUT � �), � �� ���� ��� �� ��� ����.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ��� ��� ��� � ����.
v � � SYNONYM� ALIAS� ���� ��� � ����.
�
� 1PROJECT �� �� CURRENT_PROJECTS�� ��� �����.
CREATE ALIAS CURRENT_PROJECTSFOR PROJECT
� 2SALES �� JANUARY ��� SALES_JANUARY�� ��� �����. � �
�� 12 � ��� ����(� 1 ).
CREATE ALIAS SALES_JANUARYFOR SALES(JANUARY)
CREATE ALIAS
434 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
CREATE DISTINCT TYPECREATE DISTINCT TYPE�� �� �� �����. �� �� �� �
� �� � � �� ��� ���. ��� ���� ��� �� �� �
�� � ��� ���� �� ��� �� �� � ��� �
� ���(�� ��� ���� ��)� �� ��� �����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v �� �� ��� �� �� �� ��� �� *EXECUTE, *READ �
*ADD
v �� ��
��� ���� ID� �� ��� ��� �� � �� �� ���.
v SYSTYPES ���� ��
– ��� INSERT ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
SQL ��� ���, �� �� ��� �� �� �� ��� �� ��
� ���� �� , � ��� ��� ���� ID� �� ��� ���
� ID� �� ��� ��� �� � �� �� ���.
v � ��� �� ��� ���� �� ��� �� *ADD
v �� ��
CREATE DISTINCT TYPE
� 5 � �� 435
��
�� CREATEDISTINCT
TYPE distinct-type-name AS built-in-data-typeWITH COMPARISONS
��
built-in-data-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATACHARACTER VARYING ( integer ) FOR SBCS DATACHAR allocate-clause FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) allocate-clause FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC allocate-clause
( 1M )DBCLOB
( integer ) allocate-clauseKMG( 1M )
BLOBBINARY LARGE OBJECT ( integer ) allocate-clause
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP( 200 )
DATALINK( integer ) allocate-clause CCSID integer
ROWID
CREATE DISTINCT TYPE
436 iSeries� DB2 UDB SQL ��� V5R2
|||||
�
distinct-type-name
�� �� �����. ��� �� ��� ���� ��� �� ��� ��
�� ��� �� �� �� �� � ����.
SQL�� ��� �� �� ��� �� ��� ���� �� ��� ��
�� �� ��.
��� ��� ����� �� �� ���� �� ��� ���� ��
��. ��� �� �� �� �� �� �(*CURLIB)� �� �
�.
�� � ��� �� ����� ��� iSeries� DB2 UDB� �����
�����. �� �� ��� �� ��� 572 ���� �� �� �� ����
�����.
distinct-type-name� ��� �� �� ������ ��, ���� ��� �
�� �� ���� ����� �� ��� � ���� � ��.
= < > >=
<= <> ¬= ¬<¬< != !< !>
ALL FALSE ONLY TABLEAND FOR OR THENANY FROM OVERLAPS TRIM
BETWEEN IN PARTITION TRUEBOOLEAN IS POSITION TYPE
CASE LIKE RRN UNIQUECAST MATCH SELECT UNKNOWN
CHECK NODENAME SIMILAR WHENDISTINCT NODENUMBER SOMEEXCEPT NOT STRIPEXISTS NULL SUBSTRING
��� distinct-type-name� ��� ����� QSYS, QSYS2,QTEMP ��
SYSIBM� � � ����.
built-in-data-type
�� �� �� ��� ���� ��� �� �� �����. ��� �
� ���� ���. LONG VARCHAR �� LONG VARGRAPHIC� ��
� CREATE TABLE��� ��� � �� ��� �� �� ��� � �
���.
��, ��� �� ���� ����� ��� �� �� �� ���
�� �� ��. �� ��, ��� ����.
CREATE DISTINCT TYPE
� 5 � �� 437
|
|
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
�� �� ��� �� ����� � �� �� �� ��� �
� �� �� CCSID� �� ��. �� �� �� ��� ��� 541 �
��� �CREATE TABLE�� �����.
WITH COMPARISONS
�� �� �� ���� �� � ��� �� � �� ��
�� �����. WITH COMPARISONS� �����. �� WITH
COMPARISONS� �� ��� ���� DATALINK� ��� �� �� �
� �� �� ��.49 �� DB2 ��� ��� � WITH COMPARISONS
� ���� ���.
� �� LIKE �� ��� ����. �� ��� LIKE �� �
��� �� ��� ����� ���.
CREATE DISTINCT TYPE�� ����� ��� ������ ���� ���
��� �� �����.
v �� ��� �� ��� ��� �
v �� ��� �� ��� ��� �
v �� �� SMALLINT� INTEGER�� �� ��� ��� �
v �� �� REAL� DOUBLE�� �� ��� ��� �
v �� �� CHAR� VARCHAR�� �� ��� ��� �
v �� �� GRAPHIC� VARGRAPHIC�� �� ��� ���
�
��� �� �� ��� ��� �� �� ��(�� ����� ��� �
�� �� �� ��� ��� ��� � �� � ���).
CREATE FUNCTION distinct-type-name (source-type-name)RETURNS distinct-type-name
CREATE FUNCTION source-type-name (distinct-type-name)RETURNS source-type-name
CREATE DISTINCT TYPE�� �� �� �� �� ��, ��� �� ���
����, �� �� �� ��� ��� ��� �� ��� �� �� �
49.� � � �� ���� �� ����� ��� ����. � � �� SYSROUTINES ���� �� ��� ����.
CREATE DISTINCT TYPE
438 iSeries� DB2 UDB SQL ��� V5R2
|
|
|||||
� �� ����. ��� �� �� �� �� ��� �� �� ��
�� ��� ��, ��� �� �� �� ��(� 43� �����).
�� �� �� ��� ��� ��� �� ��� �� �� ���
�. ��� �� � ��� ��, ��� � ��� � �� �� �
� �� �� �� ����.
��� ��� �� �� �� ���� �� ���� �� ��. �� ���
�� � ��� �� �� �� ��� ��� � ��.
�� ��, T_SHOESIZE�� �� �� �� ���� ����� �����.
CREATE DISTINCT TYPE CLAIRE.T_SHOESIZE AS VARCHAR(2) WITH COMPARISONS
��� ��� � ������ ���� �� ��� �� �����. VARCHAR
� �� �� �� ��� ���, T_SHOESIZE� �� �� �� �
�� �����.
FUNCTION CLAIRE.VARCHAR (CLAIRE.T_SHOESIZE) RETURNS VARCHAR(2)
FUNCTION CLAIRE.T_SHOESIZE (VARCHAR(2) RETURNS CLAIRE.T_SHOESIZE
� VARCHAR� VARCHAR(2)� �� �� �� �� �� �
T_SHOESIZE� VARCHAR(2)� �� �� �� � ��� ����.
��� ��� �� ����� �� � ����. �� �� �� ��� �
�� �� �� �� DROP��� �� � ����� � ��.
�� �� �� �� �� �� � � �� ��� �� �� �� ��
��� ��� �� ��, � ��� �� � � �� �� �� ��
�� �����.
� 43. �� �� �� CAST �
�� �� �� ��� parameter-type � ��
SMALLINT distinct-type-name SMALLINT distinct-type-name
distinct-type-name INTEGER distinct-type-name
SMALLINT distinct-type-name SMALLINT
INTEGER distinct-type-name INTEGER distinct-type-name
INTEGER distinct-type-name INTEGER
BIGINT distinct-type-name BIGINT distinct-type-name
BIGINT distinct-type-name BIGINT
DECIMAL distinct-type-name DECIMAL(p,s) distinct-type-name
DECIMAL distinct-type-name DECIMAL(p,s)
NUMERIC distinct-type-name NUMERIC(p,s) distinct-type-name
NUMERIC distinct-type-name NUMERIC(p,s)
REAL distinct-type-name REAL distinct-type-name
CREATE DISTINCT TYPE
� 5 � �� 439
� 43. �� �� �� CAST � (�)
�� �� �� ��� parameter-type � ��
distinct-type-name DOUBLE distinct-type-name
REAL distinct-type-name REAL
FLOAT(n), ��� n
<= 24
distinct-type-name REAL distinct-type-name
distinct-type-name DOUBLE distinct-type-name
REAL distinct-type-name REAL
FLOAT(n), ��� n >
24
distinct-type-name DOUBLE distinct-type-name
DOUBLE distinct-type-name DOUBLE
DOUBLE ��
DOUBLE PRECISION
distinct-type-name DOUBLE distinct-type-name
DOUBLE distinct-type-name DOUBLE
CHAR distinct-type-name CHAR(n) distinct-type-name
distinct-type-name VARCHAR(n) distinct-type-name
CHAR distinct-type-name CHAR(n)
VARCHAR distinct-type-name VARCHAR(n) distinct-type-name
VARCHAR distinct-type-name VARCHAR(n)
CLOB distinct-type-name CLOB(n) distinct-type-name
CLOB distinct-type-name CLOB(n)
GRAPHIC distinct-type-name GRAPHIC(n) distinct-type-name
distinct-type-name VARGRAPHIC (n) distinct-type-name
GRAPHIC distinct-type-name GRAPHIC(n)
VARGRAPHIC distinct-type-name VARGRAPHIC (n) distinct-type-name
VARGRAPHIC distinct-type-name VARGRAPHIC (n)
DBCLOB distinct-type-name DBCLOB(n) distinct-type-name
DBCLOB distinct-type-name DBCLOB(n)
BLOB distinct-type-name BLOB(n) distinct-type-name
BLOB distinct-type-name BLOB(n)
DATE distinct-type-name DATE distinct-type-name
DATE distinct-type-name DATE
TIME distinct-type-name TIME distinct-type-name
TIME distinct-type-name TIME
TIMESTAMP distinct-type-name TIMESTAMP distinct-type-name
TIMESTAMP distinct-type-name TIMESTAMP
DATALINK distinct-type-name DATALINK distinct-type-name
DATALINK distinct-type-name DATALINK
ROWID distinct-type-name ROWID distinct-type-name
ROWID distinct-type-name ROWID
CREATE DISTINCT TYPE
440 iSeries� DB2 UDB SQL ��� V5R2
||||
||||
� 43. �� �� �� CAST � (�)
�� �� �� ��� parameter-type � ��
�:
* ��� UCS-2 �� �� �� ��.
DATALINK� DATALINK ��� ���� � ����.
�� � �� ������� �� �� �� ��� � NUMERIC � FLOAT�
��� ����. � DECIMAL � DOUBLE� ���� ���.
��� �� ��: �� �� *SQLUDT ���� �� ��.
�� �� ���: SQL�� ��� , �� �� ��� �� �� ��
� ���� ��� ��� �� ��� �����. ��� ��� �� �
� ��� ��� ��� ��� �� ��� ����� ��� ���
��.
����� ���, �� �� ��� ��� ��� ��� �� ���
����� ��� �����.
�� �� ��: SQL�� ��� , �� �� *PUBLIC� �� *EXCLUDE
��� ���� �� ��. ����� ��� ���� �� ��(CRTAUT)
��� �� ���� �� �� *PUBLIC� �� ���� �� ��.
�� �� ��� �� ���� ����(GRPPRF � �) �� ��� �
��(GRPAUT � �), � �� ���� �� �� �� ��� ����.
CREATE DISTINCT TYPE
� 5 � �� 441
|
|
|
|
|
|
|
�
� 1INTEGER �� �� ��� � SHOESIZE�� �� �� �����.
CREATE DISTINCT TYPE SHOESIZE AS INTEGER WITH COMPARISONS
� ��� ����� ��� � ��� �� �� ��. �
INTEGER(SHOESIZE)� �� � INTEGER� �� �� �� �
SHOESIZE(INTEGER)� �� � SHOESIZE� �� �� ����.
� 2DOUBLE �� �� ��� � MILES�� �� �� �����.
CREATE DISTINCT TYPE MILES AS DOUBLE WITH COMPARISONS
� ��� ����� ��� � ��� �� �� ��. �
DOUBLE(MILES)� �� � DOUBLE� �� �� �� �
MILES(DOUBLE)� �� � MILES� �� �� ����.
CREATE DISTINCT TYPE
442 iSeries� DB2 UDB SQL ��� V5R2
CREATE FUNCTION�� ���� ��� ��� �� �� ��� � CREATE FUNCTION�
� ��� � ����.
�� � �� ��� � ����.
v �� ���
� �� Java� C� �� ��� �� ��� ��� �� ����.
�� ����� �� � �� � �� ��� ��� ��� �����.
447 ���� �CREATE FUNCTION(�� ���)�� �����.
v �� �
� �� Java� C� �� ��� �� ��� � ��� ����. �
� ����� �� � �� � �� ��� ��� ��� �����.
465 ���� �CREATE FUNCTION(�� ���)�� �����.
v �� �
�� ��� �� ��� �� �(��, ��, �� �� SQL)� ��� �
�� �����. �� �� ��� �� �� �� ��� �� � �
���. 480 ���� �CREATE FUNCTION(���(sourced))�� �����.
�� �� �� �� �� �����.
v SQL ���
� �� �� SQL� ��� ��� �� ����. �� ��� �� �
�� � �� ��� �� ��. 488 ���� �CREATE FUNCTION(SQL
���)�� �����.
v SQL TABLE
� �� �� SQL� ��� � ��� ����. �� ��� �� �
�� � �� ��� �� ��. 497 ���� �CREATE FUNCTION(SQL
�)�� �����.
��� ��
��� � ��� ��� , ����� QSYS2, QSYS, QTEMP �� SYSIBM
� � � ����.
� ��� ��� ��� � ��� �� ��� � � ����.
= < > >=
<= <> ¬= ¬<¬< != !> !<
ALL FALSE ONLY TABLEAND FOR OR THEN
CREATE FUNCTION
� 5 � �� 443
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
||||||||||||||||
ANY FROM OVERLAPS TRIMBETWEEN IN PARTITION TRUEBOOLEAN IS POSITION TYPE
CASE LIKE RRN UNIQUECAST MATCH SELECT UNKNOWN
CHECK NODENAME SIMILAR WHENDISTINCT NODENUMBER SOMEEXCEPT NOT STRIPEXISTS NULL SUBSTRING
�� ���� �� � ��
�� �� � ��� �� �� ��� � � ��� �� ��� �
� �� �� ��� �����(76 ���� ��� �� ���� �����). �
� ��, �� � �� � �� ��� �� ��� �� �� �� ��
� �� �� �� � �� , ��� � �� �� ��� ����� �� �
��. �� ��� ��� ��� �� �� �� �� ��� �� ����
�.
v SMALLINT � INTEGER
v REAL � DOUBLE
v CHAR � VARCHAR
v GRAPHIC � VARGRAPHIC
iSeries� DB2 UDB� � �$���� � ��� � �� �$���� �!
� ��� �� �� �� ��� ����.
v FLOAT. � DOUBLE�� REAL� �����.
v NUMERIC. � DECIMAL� �����.
���� AS LOCATOR ��
� � ����� ��� � ���� � �� �� ��� �� ��.
�� �� � � ��� �� � ����. AS LOCATOR�� �� �
� �� ���� ����� ���� �����. LOB �� �� ���
� �� ��� LOB �� �� �� ���� AS LOCATOR� ���
� ����.
AS LOCATOR�� �� �� ��� � ��� ��� ��� � ��� �
�� , � ��� ��� � ���� ��� � ����.
AS LOCATOR� SQL �� �� ��� � ����.
���� �� � � �
�� ���� � �� ��� ��� ���. �� ��� � ��� �
� �� ��� ��� ��� ����. �� � �� ���� ��, �
� �� �� �� �� �� �� �� �� ��� ��� �� � � �
CREATE FUNCTION
444 iSeries� DB2 UDB SQL ��� V5R2
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
�� �� �����. � � �� ���� �� �� �� �� �� �� ��
�� �� ��� ��� �� �� �� ����.
�� �� �� �� ��� ��� � ������ ���� �� �� ��, �
��, �� �� CCSID �� ��� ����. ������ ���� �� �
(REAL� FLOAT � DOUBLE� FLOAT)� ���� ��� ����. ���
DECIMAL(11,2)� DECIMAL(4,3)� ��� �� �� CHAR(8)�
CHAR(35)� ��� � ��.
��� ����� � � �� ��� � �� ��� ����� ����
�. ��� � �� ��� � ��� � �� ��� ��� �� ���
�� ��� ��� �����.
CREATE FUNCTION PART (INT, CHAR(15) ...CREATE FUNCTION PART (INTEGER, CHAR(40) ...
CREATE FUNCTION ANGLE (DECIMAL(12,2)) ...CREATE FUNCTION ANGLE (DEC(10,7)) ...
��� � �
��� ��� ���� �� � �� ��� (�� �� �� ���� �
�), ��� ��� �� ����. ��� ��� � �� ���, �
�, ��� ���, ��� ���, �� �� �� � �� �� ���
� ����. � �, �� ���� ��� � ����.
SPECIFIC�� ��� ���, ��� �� ��.
�� �� �� �� ��
��� �� �� �� �� �� ��� ��� �� �� �� ��� ��
�� ���� � � ��� ��� ����.
�� �� ��� �� ��: �� �� ��� �� � � � ��� �� �
�� �� �� �����. �� ��, �� � �� � � � MONEY
� ��� ����� �� ROUND �� �� ��� �� �� ��� �
����.
� , � ��� �� � ROUND� ��� �� ROUND �� ��� �
� � ��� ����.
�� �� ��: �� �� �� ��� �� � ��� �� ��� �� ��
�����. � �� �� �� �� ��� �� �� �� ��� ��
��, �� �� �� ��. �� ��, �� ROUND �� �� ��� ���
��� �� ROUND �� �� ��� �� �� ��� � ����.
� , � ��� �� � ROUND� ��� �� ROUND �� ��� �
�� ����.
CREATE FUNCTION
� 5 � �� 445
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� �� �� ���, ��� �� ��� �� ��� �� ��� �
� �� ��� ��� ������� ���, ���� ����� ��
� �� ���� �� �� � ������ �� ������ ��� ��
�� ��� �� ��� �����.
CREATE FUNCTION
446 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
CREATE FUNCTION(� ���)�� ���� CREATE FUNCTION(�� ���)�� �� ��� �� ����
�. �� �� ��� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v SYSFUNCS ���� � � SYSPARMS ���� ��
– ��� INSERT ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
�� ������ �� ����� ��� ��� ���� ID� �� �
�� ��� �� � �� �� ���.
v SQL��� ��� �� ������ �� �����
– �� ������ �� ����� �� �� �� ��� ��� ��
*EXECUTE
– �� ������ �� ������ ��� �� *EXECUTE
– ������ �� ������ ��� �� *CHANGE. ���� �� �
� ���� ��/��� � ��� ��� �� �� ���� ���� �
� � � ��� ��� ���. ����� � ��� ��� �� �
���� ���� ���� �� ����.
v �� ��
SQL ��� ��� �� ��� �� �� �� ��� �� ��� ��
�� �� � ��� ��� ���� ID� �� ��� ���� ID� �
� ��� ��� �� � �� �� ���.
v � ��� �� ��� ���� �� ��� �� *ADD
v �� ��
CREATE FUNCTION(�� ���)
� 5 � �� 447
�� �� �����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
��
�� CREATE FUNCTION function-name
( ),
parameter-declaration
�
� RETURNS data-type2AS LOCATOR
data-type3 CAST FROM data-type4AS LOCATOR
option-list ��
parameter-declaration:data-type1
parameter-name AS LOCATOR
CREATE FUNCTION(�� ���)
448 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
option-list:
EXTERNAL
EXTERNAL NAME external-program-name
PARAMETER STYLESQL
PARAMETER STYLEDB2GENERALDB2SQLGENERALGENERAL WITH NULLSJAVA
�
�LANGUAGE C
C++CLCOBOLCOBOLLEFORTRANJAVAPLIRPGRPGLE
SPECIFIC specific-name
NOT DETERMINISTIC
ISDETERMINISTIC
�
�READS SQL DATA
NO SQLCONTAINS SQLMODIFIES SQL DATA
FENCED
NOT FENCED
CALLED ON NULL INPUT
RETURNS NULL ON NULL INPUT
EXTERNAL ACTION
NO EXTERNAL ACTION�
�NO SCRATCHPAD
100SCRATCHPAD
integer
NO FINAL CALL
FINAL CALL ALLOW PARALLELDISALLOW PARALLEL
NO DBINFO
DBINFO�
�STATIC DISPATCH
CREATE FUNCTION(�� ���)
� 5 � �� 449
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMPROWID
CREATE FUNCTION(�� ���)
450 iSeries� DB2 UDB SQL ��� V5R2
|||||
�
function-name
��� �� �� �����. ��� ��, ����, �� � � � �
�� �� �(�� �� ��, ���, ���� CCSID �� ����)��
�� ��� �� ��� �� �� ����� � ��.
SQL ��� � �� ��� �� ��� ���� �� ��� ���� �
� ��.
��� ��� � �� ���� �� ��� ���� �� ��. ����
��� ��� �� �� �� �(*CURLIB)� �� ��. �� ��
�� ��� �� QGPL� �� ��.
�����, � �� � ��� �� � ��� �� �� ��� �
� � ����.
�� ��� ������ ��� ����. ��� ��� 443 ���� �
�� ���� �����.
(parameter-declaration,...)
�� �� �� � ��� �� �� �����. ��� ����, �
��� ��� ��� � ����.
CREATE FUNCTION�� ��� � �� ��� ���� 90��.
PARAMETER STYLE SQL� ��� �� �� ��� �� ��
��, ������ �� ��� ��, SQLSTATE, ��, �� �� �
��� ��� � ��� ��� ��� ��. ��� ���� �
� ����� �� � ��� ��� ����� ��� ���
���� ���� �� ��.
parameter-name
� ��� ��� �����. � � �� �� ��� ��� ���
�.
data-type1
�� � �� �� � � ��� �� �� �����. �
� �� ��� � ����. �� �� ��� ��� �
�� ����� � ��� ��� ���. ��� ����, � ��
� ��� ��� � ����.
PARAMETER STYLE JAVA� ��� , �� ���(LOB) ��
�� �� ��� ��� ����.
�� ��� �� �� �� ����. � � �� ��� ���
�� ����� ���.
CREATE FUNCTION WOOFER ()
CREATE FUNCTION(�� ���)
� 5 � �� 451
|
|
|
|
CCSID� ��� ��� �� ��� �� �� CCSID� ��
��. CCSID� ��� ��� �� ��� � �� ���� ���
CCSID� �� CCSID� �� ��.
AS LOCATOR
� ��� �� �� ��� �� �� ������ �����. �
��� LOB �� ��� LOB �� �� ��� � �� ��
�� �� AS LOCATOR� ��� � ����.
RETURNS
�� ��� �����.
data-type2
��� �� �� �� �����.
�� �� �(LONG VARCHAR, LONG VARGRAPHIC �� DataLink
��)�� �� �(�� ��� ��� � ��)� ��� � ����.
CCSID� ���
v AS LOCATOR� ��� ��� �� ��� �� CCSID� ��
�� ��� �� ��.
v AS LOCATOR� ��� ����� ���� ��� CCSID� ��
CCSID� ���� ��� ��� CCSID� �� ��.
CCSID� ��� ��
v AS LOCATOR� ��� ��� �� ��� ��� CCSID ��
� ��� � �� �� ��� � CCSID� ���� ���
�� ��.
v AS LOCATOR� ��� ����� ���� ��� CCSID� �
� CCSID� ���� ��� ����� ���� ��� ��� CCSID
� �� ��. ��� ��� �� ���� ��� ��� ���
�� �� ��� ��� � �� CCSID� ����� ��� ��
�������. ��� �� �� � ��� ��� � � ���
��. � CCSID 13488(UCS-2 � ��� ��)� ��� �
� �������.
data-type3 CAST FROM data-type4
��� �� �� �(data-type4), �� ��� �� ���� �� �
� �(data-type3)� �����. �� �� �� � ����. �� �
�, �� ���� �� ������ ���� DATE ��� ���
�� ��� ���� ��� CHAR(10) �� ����.
CREATE FUNCTION GET_HIRE_DATE (CHAR6)RETURNS DATE CAST FROM CHAR(10)
CREATE FUNCTION(�� ���)
452 iSeries� DB2 UDB SQL ��� V5R2
data-type4 �� �� ����� �� data-type3�� ���� � �
�� ���. data-type3 �� �� �� ��� �� �� � � ��
��(�� � ���� �� ��� 77 ���� ��� � ��� ����
� �����).
CCSID ��� � data-type2� �� ��� �����.
AS LOCATOR
�� �� �� ��� �� �� ����� � � �����. ��
��� LOB �� �� ��� � �� ��� LOB �� ��
�� AS LOCATOR� ��� � ����.
SPECIFIC specific-name
�� �� � ��� �����. ��� ��� �� ����� �����
� �� ��. ����� � ��� �� ��� �� �� �� ���
��� �� ��� ����� � ��. ��� �� ��� ����
��� ���� ����. ��� ���� ��� ���� ��� ��
�.
�� ��� ��� ��� ���� �� ��. �� ��� �� �� �
����� �� �� �� ��� �� � ��� ��� � ��
� ��� �� �� ��.
LANGUAGE(�� �)
� �� �� ����� �� �����.
LANGUAGE� ��� �� LANGUAGE� �� ��� � �� ��
��� ��� ���� � ��� �� ��. ����� �� �� �
C� �� ��.
v ����� ��� ���� � ��� ��� � �� �� ��� ��
�
v ����� �� � �� �
C
�� ����� C� �� ��.
C++
�� ����� C++� �� ��.
CL
�� ����� CL�� ILE CL� �� ��.
COBOL
�� ����� COBOL� �� ��.
COBOLLE
�� ����� ILE COBOL� �� ��.
CREATE FUNCTION(�� ���)
� 5 � �� 453
FORTRAN
�� ����� FORTRAN�� �� ��.
JAVA
�� ����� JAVA� �� ��. ������ ���� ��� Java �
�� public static ���� ��� �� �� �����.
PLI
�� ����� PL/I�� �� ��.
RPG
�� ����� RPG� �� ��.
RPGLE
�� ����� ILE RPG� �� ��.
DETERMINISTIC �� NOT DETERMINISTIC
�� ����� ��� �����.
NOT DETERMINISTIC
�� ��� � ��� ��� � ����� �� �� ��� �
� ��� �����. NOT DETERMINISTIC� �� ����� �� �
�� � � �� ��� �� � ���� ���.
DETERMINISTIC
�� ��� � ��� ��� ����� �� �� ��� � � �
����.
CONTAINS SQL, READS SQL DATA, MODIFIES SQL DATA �� NO
SQL
�� SQL�� ��� � ���, �� �� ��� �����. ���
��� ���� ��� ��� SQL� � ��� ���� �����. 913
���� �� F �SQL�� ����� � �� ��� �� � ��� � ��
SQL� ���� �� ����� �����.
CONTAINS SQL
�� ��� �� ��� SQL�� ��� ����.
NO SQL
�� �� SQL�� ����.
READS SQL DATA
�� ��� ��� SQL�� ��� ����.
MODIFIES SQL DATA
�� �� ��� �� ��� ��� �� SQL�� ��� � ��
��.
CREATE FUNCTION(�� ���)
454 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FENCED �� NOT FENCED
�� �� SQL�� ��� ����� ���� ��� ����� ���
� ��� �����.
FENCED
�� ��� ����� ��� ���.
NOT FENCED
�� �� SQL�� ��� ����� �� ��. NOT FENCED ��
��� � ��� �� SQL ��� ����. ��� � � ���
�, � �� ��� �� � �� �� ��.
NULL INPUT
� ��� NULL� � �� ��� ��� ���� �����.
CALLED ON NULL INPUT
�� �� �����.
RETURNS NULL ON NULL INPUT
��� ��� �� ��� NULL �� � �� ��� ��� ��
��.
EXTERNAL ACTION �� NO EXTERNAL ACTION
�� ��� �� �� ��� ��� �����.
EXTERNAL ACTION
�� �� �� ��( � ����� � �)� �����. ��� ��
��� ��� � ��� ���� ���. EXTERNAL ACTION� �
� ��� � �� �� �� ��� � �� � ���� ��
�.
NO EXTERNAL ACTION
�� �� ��� ��� ����. �� ��� ��� � ���
��� ������.
� ��� �� ��� �� �����.
SCRATCHPAD
�� �� ��� ��� ��� ��� �����.
SCRATCHPAD integer
�� �� ��� ��� ��� ��� ��� � �����. ���
� � 1�� 16,000,000 ��� �� � ����. ��� ��� ���
��� ��� ��� 100 ����. �� � DB2SQL� ���
��� �� ���� ��� �!�� �� �� ��� �� ��.
CREATE FUNCTION(�� ���)
� 5 � �� 455
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PARALLEL� ��� ��� ��� ��� � ��� �� � ���
�� �� ��. DISALLOW PARALLEL� ��� 1 � ��� ��
� �� �� �� ��.
��� ��� � � SQL���. SQL�� �� �� ��� ���
� � � ��� ��� ����. �� ��, � UDFX�
SCRATCHPAD � �� ����� ��� � � ��� ��� �
� SQL�� UDFX� �� � � ��� �� ��.
SELECT A, UDFX(A) FROM TABLEBWHERE UDFX(A) > 103 OR UDFX(A) < 19
�� �� ����� ��� �� ��� ��� SQL�� ��
�� �� � ��� � �� ���� �� �� ��. �� ��� � ��
��� �����. �� ��, �� ��� ��� ��� � ���
��� ��� ��� SQL�� � �� ���� �� ��� ��� �
� �����. ���� ��� ��� �� �� ���� DISALLOW
PARALLEL�� �����.
SCRATCHPAD� PARAMETER STYLE DB2SQL �� PARAMETER
STYLE DB2GENERAL� �� ��� � ����.
NO SCRATCHPAD
�� ��� ��� ��� ��� � ��� �����.
FINAL CALL
�� �� �� ��� ����� �����. PARAMETER STYLE DB2SQL
� ���, FINAL CALL� ��� �� ��� � �� ��, �� ��
�� �� ��� ��� �� �� ��.
NO FINAL CALL
�� �� ��� ��� �����.
FINAL CALL
�� �� �� � �����. �� �� � �� ��� ��� �,
�� �� �� ��� �� ��� ����.
FINAL CALL� PARAMETER STYLE DB2SQL �� PARAMETER
STYLE DB2GENERAL� �� ��� � ����.
��� �� ��� ����.
�� ��
� SQL�� �� � ��� �� ��� � �� ��� ���
��. � �� ��� �� ����. SQL ��� �� ��
��� ����.
CREATE FUNCTION(�� ���)
456 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
�� ��
SQL ��� �� �� ��� ��� �����.
��� ��
�� ��� � � ��� ��� �� ��� �����. ��
��� �� ��� ����. ��� ��, ������ ���
� �� ��� ���.
��� �� �� ��� ����.
v ��� �: �� �� ���� ��� �� �� ���
��� .
v �� ���� �: �� �� ���� �� ��� .
v ����� �: ���� �� �� �� �� �� .
�� ��, �� �� ������ �� �� ��� ���
.
WITH HOLD� ��� ��� � �� �� ��� �
�, ��� �� ������� ��� � �� ��� ����
��. �� ���� ��� ��� ��, WITH HOLD� ��
� ��� � ��� ��� ���� �� ��� ������.
COMMIT ��� ��� ��� �� �� FINAL CALL� �� � ��
�� ����� ��� FINAL CALL �� ��� � ����.
PARALLEL
�� ��� ��� � ���� �����.
ALLOW PARALLEL
�� ��� ��� � ���� �����.
DISALLOW PARALLEL
�� ��� ��� � ���� �����.
�� �� � �� ��� ���� DISALLOW PARALLEL��.
v NOT DETERMINISTIC
v EXTERNAL ACTION
v FINAL CALL
v MODIFIES SQL DATA
v SCRATCHPAD
��� ��� ALLOW PARALLEL� �����.
DBINFO
�� ��� ������ ��� ��� ��� �����.
CREATE FUNCTION(�� ���)
� 5 � �� 457
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DBINFO
������ ���� �� ��� �� �� ��� �� ���� ��
� �����. � 44�� DBINFO ��� �� ��� �� ����.
DBINFO ��� �� ��� ��� QSYSINC.H� � SQLUDF�
����.
DBINFO� PARAMETER STYLE DB2SQL �� PARAMETER STYLE
DB2GENERAL� �� ��� � ����.
� 44. DBINFO ��
� � �� ��
��� ������ VARCHAR(128) �� ��� ��.
���� ID VARCHAR(128) ��� ���� ID.
CCSID �� INTEGER
INTEGER
INTEGER
INTEGER
CHAR(8)
��� CCSID ��. �� ��� CCSID� �����.
v SBCS CCSID
v DBCS CCSID
v Mixed CCSID
v � � CCSID � �� ��� CCSID ��
v ��
CCSID� CREATE FUNCTION�� ��� ����� ��� ��
� ���� �� ��� ��� ��� CCSID� ���� ���
�� ��. � ���� CCSID� ��� CCSID� �� ��� ��
�� ��� � ���� �� ����� ��� �� ��� ���.
�� VARCHAR(128)
VARCHAR(128)
VARCHAR(128)
��� �� �� UPDATE� SET � ���� ��� �� ��� ��
� �����.
v ����
v �� � ��
v ��
��� �� �� UPDATE� SET �� ���� �� � ��� ��
��.
�� � �� CHAR(8) ������ ���� �� �� � �� ��.
�$� INTEGER ��� �$� �.
NO DBINFO
�� ��� ������ ��� ��� � ��� �����.
STATIC DISPATCH
�� ���� ������ �����. �� �� ���� ���� ��.
EXTERNAL NAME external-program-name
�� SQL��� ��� � ��� ����, �� ���� �� Java �
�� �����. ��� �� ��� � ��� �� ����, �� ���
CREATE FUNCTION(�� ���)
458 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
� �� Java ��� ���� ���. �� ��� *SYS�� ��� ���
��� �� �� �� ��� � ������ �� ����� �� �
�� ��.
��� ��� ���� �� ��. ��� ��� � !� ��� ��� �
��.
external-program-name� ��� ��� �� ������ ��� ���
� �� ��.
����, �� ���� �� Java ��� �� ��� �� ��� ��
�� ��� �� ��� ���.
CONNECT, SET CONNECTION, RELEASE, DISCONNECT, COMMIT,
ROLLBACK � SET TRANSACTION�� �� �� ������ ���
����.
PARAMETER STYLE
��(��) �� ��� �� � ��� ��� �����.
SQL
��� � �� �� ��� �� ��. ��� �� ��� ��
��.
v �� N � ��� CREATE FUNCTION�� ��� � �
���.
v �� ��� �� �� ��
v � ��� ����� ��� �� N � ��
v ��� ����� ��� �� �� �
v SQLSTATE� �� CHAR(5) �� ��. �� SQLSTATE�
�� �� �� ��� �����. �� SQLSTATE� �� �����
�� ��� SQLSTATE��.
���� �� ����� �� �� ��� SQLSTATE� ���
���� ��� �� �� � ����.
v �� ��� ��� �� VARCHAR(517) � ��.
v �� ��� �� VARCHAR(128) � ��.
v ��� ���� �� VARCHAR(70) �� ��.
��� ��� ������ �� � ��� ���� SQLCA�
SQLERRMC ��� 6�� ���� �� � ����. ��� ���� �
��� ��� � ����. SQLERRMC� ��� ��� ��� �� �
�� ��� � QSQLMSG� ��� SQL0443� �� �� �� ��
� �����.
CREATE FUNCTION(�� ���)
� 5 � �� 459
|
|
|
|
|
|
|
|
|
|
|
|
��� ��� �� ��� ��� ��� �� �� � sqludf
� �����. �� �� C��� sqludf� QSYSINC/H� ����.
DB2GENERAL
� ��� Java ���� ���� ��� �� �� ��� ��
� �� �� �� � ��� ��� � �� ��. ��� � �
� �� ��� �� ��. ��� �� ��� �� ��.
v �� N � ��� CREATE FUNCTION�� ��� � �
���.
v �� ��� �� �� ��
DB2GENERAL� LANGUAGE� JAVA� �� �� ��.
GENERAL
��� � �� �� ��� �� ��. ��� �� ��� ��
��.
v �� N � ��� CREATE FUNCTION�� ��� � �
���.
��� �� �� �� �� � ��. �� ��, ��� ����.
return_val func(parameter-1, parameter-2, ...)
GENERAL� EXTERNAL NAME� �� ����� ��� �� ���
� ����.
GENERAL WITH NULLS
��� � �� �� ��� �� ��. ��� �� ��� ��
��.
v �� N � ��� CREATE FUNCTION�� ��� � �
���.
v �� ��� ����� �� �� �� �� ��.
v ��� ����� ��� �� �� �
��� �� �� �� �� � ��. �� ��, ��� ����.
return_val func(parameter-1, parameter-2, ...)
GENERAL WITH NULLS� EXTERNAL NAME� �� ����� �
�� �� �� ��.
JAVA
� ��� Java � � SQLJ �� ��� ��� �� �� ��
� �����. ��� � �� �� ��� �� ��. ��� ��
��� �� ��.
CREATE FUNCTION(�� ���)
460 iSeries� DB2 UDB SQL ��� V5R2
v �� N � ��� CREATE FUNCTION�� ��� � �
���.
��� �� �� �� �� � ��. �� ��, ��� ����.
return_val func(parameter-1, parameter-2, ...)
JAVA� LANGUAGE� JAVA� �� �� ��.
DB2SQL
��� � �� �� ��� �� ��. ��� �� ��� ��
��.
v �� N � ��� CREATE FUNCTION�� ��� � �
���.
v �� ��� �� �� ��
v � ��� ����� ��� �� N � ��
v ��� ����� ��� �� �� �
v SQLSTATE� �� CHAR(5) �� ��. �� SQLSTATE�
�� �� �� ��� �����. �� SQLSTATE� �� � �
� � ����.
– �� ������ ��� ��� SQL�� SQLSTATE
– �� ����� ��� SQLSTATE
���� �� ����� �� �� ��� SQLSTATE� ���
���� ��� �� �� � ����.
v �� ��� ��� �� VARCHAR(517) � ��.
v �� ��� �� VARCHAR(128) � ��.
v ��� ���� �� VARCHAR(70) �� ��.
v 0 - 3 � ��� ��:
– SCRATCH PAD� CREATE FUNCTION�� ��� ���
��� � VARCHAR(n) �� ��.
– FINAL CALL� CREATE FUNCTION�� ��� �� ��
�� INTEGER � ��.
– DBINFO� CREATE FUNCTION�� ��� �� dbinfo ���
�� ��.
��� ��� �� ��� ��� ��� �� �� � sqludf
� �����. �� �� C��� sqludf� QSYSINC/H� ����.
�� � �� �� ��� ��� ��� ���� ����. ��
�� C��� �� VARCHAR �� CHAR ��� NUL �� �����
�� ��. ��� ��� SQL ��� � �� �����.
CREATE FUNCTION(�� ���)
� 5 � �� 461
�� �
ILE �� ������ �� ����� ��� �� �� ��� � �� �
� ��� ������ �� ���� ���� ���� �����. *PGM�
� *SRVPGM ���� ��� �� � ����� �� ����� ��� �
���� � �� � ���� � ��.
�� �� ��� �� �� �� �� ��� � ����.
v �� ���� �� �� SYSIBM, QSYS �� QSYS2���� � ��.
v CREATE FUNCTION�� �� � �� ����� ��� ���.
v �� ����� ILE *PGM �� *SRVPGM ����� ���.
v �� ������ �� ������ ��� �� SQL�� ��� ���.
���� �� � ��� �� �� �� ��.
�� ��� ��� ��� ����.
v �� � ��� � �� ��� ����� �� ��� ��� � �
�.
v �� ��� ��� ���� ��� � � ��� �� ��.
v ��� �� ��� �� ��� � �� ��� � ��.
�� ��
�� �� ��� �� ������ �� ����� ���� � ���
� ���� �� ��. � �, �� ��� ����� ��� � ���� �
��� ����� ACTGRP(*CALLER)� ���� ���. ACTGRP(*NEW)
� ��� ����.
Java ��� ��
Java �� ��� � ���� ���� Developer Kit for Java (5722-JV1)� �
��� ���. ��� ��� -443� SQLCODE� �� CPDB521 ���� �
� ���� �� ��.
Java ������ ��� � ��� �� -443� SQLCODE� � ��. �
�� ��� ������ ��� ��� �� ���� �� ���� �� � ��
��.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� ��
� ��� ��� � ����.
CREATE FUNCTION(�� ���)
462 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
v � � VARIANT� NOT VARIANT� NOT DETERMINISTIC�
DETERMINISTIC� ���� ��� � ����.
v � � NULL CALL� NOT NULL CALL� CALLED ON NULL INPUT �
RETURNS NULL ON NULL INPUT� ���� ��� � ����.
v � � SIMPLE CALL� GENERAL� ���� ��� � ����.
v DB2GENRL �� DB2GENERAL� ���� ��� � ����.
� 1
�� �� ��� �� � �� ����� C� ����� �����.
output = 2 * input - 4
� �� � �� �(null)�� �� ��� ��� ���. � �� �� �
� ��� � �� � ��� �� �� ��� ��� CREATE FUNCTION
�� RETURNS NULL ON NULL INPUT� ��� ���. � �, �� �
� � ��� ��� �� �� ��� ���. �� ��� � �
�� ��� �� �� MINENULL1� ��� �����.
CREATE FUNCTION NTEST1 (INTEGER)RETURNS INTEGEREXTERNAL NAME ’MYLIB/NTESTMOD(nudft1)’SPECIFIC MINENULL1LANGUAGE CDETERMINISTICNO SQLPARAMETER STYLE DB2SQLCALLED ON NULL INPUTNO EXTERNAL ACTION
���� ��� ��� ����.
void nudft1(int *input, /* ptr to input arg */int *output, /* ptr to output arg */short *input_ind, /* ptr to input indicator */short *output_ind, /* ptr to output indicator */char sqlstate[6], /* sqlstate */char fname[140], /* fully qualified function name */char finst[129], /* function specific name */char msgtext[71]) /* msg text buffer */
{if (*input_ind == -1)*output_ind = -1;
else{
*output = 2*(*input)-4;*output_ind = 0;
}return;
}
CREATE FUNCTION(�� ���)
� 5 � �� 463
|
|
|
|
|
|
� 2
��� McBride(�� ��� ��� ��)� SMITH ���(schema)� CENTER�
� �� �� ����� �����. McBride� �� �� �� FOCUS98� �
����. � ����� �� ���� ��� ��� ��� � ��� �
�� �����. � ����� FLOAT �� �� �� ����. McBride�
�� ��� � ��� ��� ��� �� ��� � DECIMAL(8,4)�
�� �� �� �� ����.
CREATE FUNCTION SMITH.CENTER (FLOAT, FLOAT, FLOAT)RETURNS DECIMAL(8,4) CAST FROM FLOATEXTERNAL NAME CMODSPECIFIC FOCUS98LANGUAGE CDETERMINISTICNO SQLPARAMETER STYLE DB2SQLRETURNS NULL ON NULL INPUTNO EXTERNAL ACTIONSCRATCHPADNO FINAL CALL
CREATE FUNCTION(�� ���)
464 iSeries� DB2 UDB SQL ��� V5R2
CREATE FUNCTION(� ���)�� ���� CREATE FUNCTION(�� �)�� �� � �� �����. �
� �� �� ����.
� �� SELECT� FROM�� ��� � �� � �� � �� ��
SELECT� �� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v SYSFUNCS ���� � � SYSPARMS ���� ��
– ��� INSERT ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
�� ������ �� ����� ��� ��� ���� ID� �� �
�� ��� �� � �� �� ���.
v SQL��� ��� �� ������ �� �����
– �� ������ �� ����� �� �� �� ��� ��� ��
*EXECUTE
– �� ������ �� ������ ��� �� *EXECUTE
– ������ �� ������ ��� �� *CHANGE. ���� �� �
� ���� ��/��� � ��� ��� �� �� ���� ���� �
� � � ��� ��� ���. ����� � ��� ��� �� �
���� ���� ���� �� ����.
v �� ��
SQL ��� ��� �� ��� �� �� �� ��� �� ��� ��
�� �� � ��� ��� ���� ID� �� ��� ���� ID� �
� ��� ��� �� � �� �� ���.
CREATE FUNCTION(�� ���)
� 5 � �� 465
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v � ��� �� ��� ���� �� ��� �� *ADD
v �� ��
�� �� ����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
��
�� CREATE FUNCTION function-name
( ),
parameter-declaration
�
�
,
RETURNS TABLE ( column-name data-type2 )AS LOCATOR
option-list ��
parameter-declaration:data-type1
parameter-name AS LOCATOR
CREATE FUNCTION(�� ���)
466 iSeries� DB2 UDB SQL ��� V5R2
||||||||||||||||||||||||
|||||||||||||||||||||||||||||||
||
|||||||||||||||||||||||
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
option-list:EXTERNAL
EXTERNAL NAME external-program-name
PARAMETER STYLEDB2GENERALDB2SQL
�
�LANGUAGE C
C++CLCOBOLCOBOLLEFORTRANJAVAPLIRPGRPGLE
SPECIFIC specific-name
NOT DETERMINISTIC
ISDETERMINISTIC
�
�READS SQL DATA
NO SQLCONTAINS SQLMODIFIES SQL DATA
FENCED
NOT FENCED
CALLED ON NULL INPUT
RETURNS NULL ON NULL INPUT
EXTERNAL ACTION
NO EXTERNAL ACTION�
�NO SCRATCHPAD
100SCRATCHPAD
integer
NO FINAL CALL
FINAL CALLDISALLOW PARALLEL
NO DBINFO
DBINFO�
�STATIC DISPATCH
CARDINALITY integer
CREATE FUNCTION(�� ���)
� 5 � �� 467
|||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||
|||
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMPROWID
CREATE FUNCTION(�� ���)
468 iSeries� DB2 UDB SQL ��� V5R2
|||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||
�
function-name
��� �� �� �����. ��� ��, ����, �� � � � �
�� �� �(�� �� ��, ���, ���� CCSID �� ����)��
�� ��� �� ��� �� �� ����� � ��.
SQL ��� � �� ��� �� ��� ���� �� ��� ���� �
� ��.
��� ��� � �� ���� �� ��� ���� �� ��. ����
��� ��� �� �� �� �(*CURLIB)� �� ��. �� ��
�� ��� �� QGPL� �� ��.
�����, � �� � ��� �� � ��� �� �� ��� �
� � ����.
�� ��� ������ ��� ����. ��� ��� 443 ���� �
�� ���� �����.
(parameter-declaration,...)
�� �� �� � ��� �� �� �����. ��� ����, �
��� ��� ��� � ����.
CREATE FUNCTION(�� �)�� ��� � �� ��� ���� 90�
�. ��� ���� �� ����� �� � ��� ��� ��
��� ��� ��� ���� ���� �� ��.
parameter-name
� ��� ��� �����. � � �� �� ��� ��� ���
�.
data-type1
�� � �� �� � � ��� �� �� �����. �
� �� ��� � ����. �� �� ��� ��� �
�� ����� � ��� ��� ���. ��� ����, � ��
� ��� ��� � ����.
PARAMETER STYLE JAVA� ��� , �� ���(LOB) ��
�� �� ��� ��� ����.
�� ��� �� �� �� ����. � � �� ��� ���
�� ����� ���.
CREATE FUNCTION WOOFER ()
CCSID� ��� ��� �� ��� �� �� CCSID� ��
��. CCSID� ��� ��� �� ��� � �� ���� CCSID�
�� CCSID� �� ��.
CREATE FUNCTION(�� ���)
� 5 � �� 469
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AS LOCATOR
� ��� �� �� ��� �� �� ������ �����. �
��� LOB �� ��� LOB �� �� ��� � �� ��
�� �� AS LOCATOR� ��� � ����.
RETURNS TABLE
�� �� �� �����.
�� �� N��� � �, PARAMETER STYLE DB2GENERAL��
(255-(N*2))/2 �� � �� ���. PARAMETER STYLE DB2SQL�
, (247-(N*2))/2 �� � �� ���.
��
�� �� ��� �����. � � �� �� ��� ��� ����.
data-type2
��� �� �� �� �����.
�� �� �(LONG VARCHAR, LONG VARGRAPHIC �� DataLink
��)�� �� �(�� ��� ��� � ��)� ��� � ����.
DATE �� TIME� ��� , � �� �� ��� ISO ���� �
�� ���.
CCSID� ���
v AS LOCATOR� ��� ��� �� ��� �� CCSID� ��
�� ��� �� ��.
v AS LOCATOR� ��� ����� ���� ��� CCSID� ��
CCSID� ���� ��� ��� CCSID� �� ��.
CCSID� ��� ��
v AS LOCATOR� ��� ��� �� ��� ��� CCSID ��
� ��� � �� �� ��� � CCSID� ���� ���
�� ��.
v AS LOCATOR� ��� ����� ���� ��� CCSID� �
� CCSID� ���� ��� ����� ���� ��� ��� CCSID
� �� ��. ��� ��� �� ���� ��� ��� ���
�� �� ��� ��� � �� CCSID� ����� ��� ��
�������. ��� �� �� � ��� ��� � � ���
��. � CCSID 13488(UCS-2 � ��� ��)� ��� �
� �������.
AS LOCATOR
�� �� �� ��� � �� �� ����� � � �����.
CREATE FUNCTION(�� ���)
470 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LOB �� �� ��� � �� ��� LOB �� �� �
� AS LOCATOR� ��� � ����.
SPECIFIC specific-name
�� �� � ��� �����. ��� ��� �� ����� �����
� �� ��. ����� � ��� �� ��� �� �� �� ���
��� �� ��� ����� � ��. ��� �� ��� ����
��� ���� ����. ��� ���� ��� ���� ��� ��
�.
�� ��� ��� ��� ���� �� ��. �� ��� �� �� �
����� �� �� �� ��� �� � ��� ��� � ��
� ��� �� �� ��.
LANGUAGE(�� �)
� �� �� ����� �� �����.
LANGUAGE� ��� �� LANGUAGE� �� ��� � �� ��
��� ��� ���� � ��� �� ��. ����� �� �� �
C� �� ��.
v ����� ��� ���� � ��� ��� � �� �� ��� ��
�
v ����� �� � �� �
C
�� ����� C� �� ��.
C++
�� ����� C++� �� ��.
CL
�� ����� CL�� ILE CL� �� ��.
COBOL
�� ����� COBOL� �� ��.
COBOLLE
�� ����� ILE COBOL� �� ��.
FORTRAN
�� ����� FORTRAN�� �� ��.
JAVA
�� ����� JAVA� �� ��.������ ���� Java ��� �
��� ��� �� �� �����.
PLI
�� ����� PL/I� �� ��.
CREATE FUNCTION(�� ���)
� 5 � �� 471
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RPG
�� ����� RPG� �� ��.
RPGLE
�� ����� ILE RPG� �� ��.
DETERMINISTIC �� NOT DETERMINISTIC
�� ����� ��� �����.
NOT DETERMINISTIC
�� ��� � ��� ��� � ����� �� �� ��� �
� ��� �����. NOT DETERMINISTIC� �� ����� �� �
�� � � �� ��� � �� ���� ���.
DETERMINISTIC
�� ��� � ��� ��� ����� �� �� ��� � � �
����.
CONTAINS SQL, READS SQL DATA, MODIFIES SQL DATA �� NO
SQL
�� SQL�� ��� � ���, �� �� ��� �����. ���
��� ���� ��� ��� SQL� � ��� ���� �����. 913
���� �� F �SQL�� ����� � �� ��� �� � ��� � ��
SQL� ���� �� ����� �����.
CONTAINS SQL
�� �� �� �� ��� �� SQL�� ����.
NO SQL
�� �� SQL�� ����.
READS SQL DATA
�� ��� ��� �� SQL�� ����.
MODIFIES SQL DATA
�� �� ��� �� ��� ��� �� SQL�� ��� � ��
��.
FENCED �� NOT FENCED
�� �� SQL�� ��� ����� ���� ��� ����� ���
� ��� �����.
FENCED
�� �� ����� ��� ���. �� SQL ��� �� ��
FENCED� �� ��� ����. ��� SQL��� ��� �� �
� ��� �� ��� � �� ����.
CREATE FUNCTION(�� ���)
472 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NOT FENCED
�� �� SQL�� ��� ����� �� ��. NOT FENCED ��
��� � ��� �� SQL ��� ����. ��� � � ���
�, � �� ��� �� � �� �� ��.
NULL INPUT
� ��� NULL� � �� ��� ��� ���� �����.
CALLED ON NULL INPUT
�� �� �����.
RETURNS NULL ON NULL INPUT
� � OPEN�, �� �� � �� �� ��� �� � ��
��� �� � ��� � �(� �� �)� ��.
EXTERNAL ACTION �� NO EXTERNAL ACTION
�� ��� �� �� ��� ��� �����.
EXTERNAL ACTION
�� �� �� ��( � ����� � �)� �����. ��� ��
��� ��� � ��� ���� ���. EXTERNAL ACTION� �
� ��� � �� �� �� ��� � �� � ���� ��
�.
NO EXTERNAL ACTION
�� �� ��� ��� ����. �� ��� ��� � ���
��� ������.
SCRATCHPAD
�� �� ��� ��� ��� ��� �����.
SCRATCHPAD integer
�� �� ��� ��� ��� ��� ��� � �����. ���
� � 1�� 16,000,000 ��� �� � ����. ��� ��� ���
��� ��� ��� 100 ����. �� � DB2SQL� ���
��� �� ���� ��� �!�� �� �� ��� �� ��.
�� ��� � 1 � ��� ��� ��� ���.
��� ��� � � SQL���. SQL�� �� �� ��� ���
� � � ��� ��� ����. �� ��, � UDFX�
SCRATCHPAD � �� ����� ��� � ��� ��� �
� SQL�� UDFX� �� � ��� �� ��.
SELECT A.C1, B.C1FROM TABLE(UDFX(:hv1)) AS A, TABLE(UDFX(:hv1)) AS B
NO SCRATCHPAD
�� ��� ��� ��� ��� � ��� �����.
CREATE FUNCTION(�� ���)
� 5 � �� 473
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
FINAL CALL
�� ��� ��(� ��� � ��)� ��� ��� �����. � �
� , �� � ��� ��� FINAL CALL ���� ���� �� ���
��. �� � ��� � �� ��, � ��, �� ��, �� �� �� ��
��� �����.
FINAL CALL
�� ��� ��(� ��� � ��)� ��� � �����. �� �
����� �� ���� �� �����. NO FINAL CALL� ���
, ������ ���� � �� � �� �� ��(�, ��, ��)
� ��� � ����. � �, FINAL CALL� ���, � ��� ��,
��, � �� �� � �� ��� � �� �� ��� � ����. �
� �� ��� ���� �����. �� �� � �� ��� ���
�, �� �� �� ��� �� ��� ����.
��� �� ��� ����.
�� ��
� SQL�� �� � ��� �� ��� � �� ��� ���
��.
� ��
� SQL�� � � ��� � � ��� �����.
� ��
� SQL�� � ���� �� ��� � ��� �����.
�� ��
� SQL�� � � ��� �� � ��� �����.
��� ��
�� ��� � � ��� ��� �� ��� �����. ��
� ��, ������ ���� �� ��� ���.
��� �� �� ��� ����.
v ��� �: �� �� ���� ��� �� �� ���
��� .
v ����� �: ���� �� �� �� �� �� .
�� ��, �� �� ������ �� �� ��� ���
.
WITH HOLD� ��� ��� � �� �� ��� �
�, ��� �� ������� ��� � �� ��� ����
��.
CREATE FUNCTION(�� ���)
474 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
COMMIT ��� ��� ��� �� �� FINAL CALL� �� � ��
�� ����� ��� FINAL CALL �� ��� � ����.
NO FINAL CALL
�� ��� ��(� ��� � ��)� ��� � ��� �����. �
� � ��, �� ��, �� ��� �� �� ��.
DISALLOW PARALLEL
�� ��� ��� � ���� �����. � �� ��� ��� � ��
��.
DBINFO
�� ��� ������ ��� ��� ��� �����.
DBINFO
������ ���� �� ��� �� �� ��� �� ���� ��
� �����. � 45�� DBINFO ��� �� ��� �� ����.
DBINFO ��� �� ��� ��� QSYSINC.H� � SQLUDF�
����.
� 45. DBINFO ��
� � �� ��
��� ������ VARCHAR(128) �� ��� ��.
���� ID VARCHAR(128) ��� ���� ID.
CCSID �� INTEGER
INTEGER
INTEGER
INTEGER
CHAR(8)
��� CCSID ��. �� ��� CCSID� �����.
v SBCS CCSID
v DBCS CCSID
v Mixed CCSID
v � � CCSID � �� ��� CCSID ��
v ��
CCSID� CREATE FUNCTION�� ��� ����� ��� ��
� ���� �� ��� ��� ��� CCSID� ���� ���
�� ��. � ���� CCSID� ��� CCSID� �� ��� ��
�� ��� � ���� �� ����� ��� �� ��� ���.
�� VARCHAR(128)
VARCHAR(128)
VARCHAR(128)
��� �� �� UPDATE� SET � ���� ��� �� ��� ��
� �����.
v ����
v �� � ��
v ��
��� �� �� UPDATE� SET �� ���� �� � ��� ��
��.
�� � �� CHAR(8) ������ ���� �� �� � �� ��.
�$� INTEGER ��� �$� �.
CREATE FUNCTION(�� ���)
� 5 � �� 475
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|||
|||
|||
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
||
|
|
|
|
|
|||
|||
� 45. DBINFO �� (�)
� � �� ��
� � ��� ���
�
SMALLINT �� ″� � ���″ ��� ��� � � ���� 0� � �
� �.
�� CHAR(24) �� ��� ��� ����.
� � ��� Pointer(16 Bytes) � ��� ������ ���� �� ���� ��� � �� �� ��
�� ����. � n ��(n� ″� � ��� �� �: ��� ��
�)� � , n� 0� � ��, RETURNS TABLE�� �� �� ��
� �� ��� �� ����. �� � ��� � ��� ���
� � ��� �����. � 1� ��� � �� � ���, 2� ���
�� �� �����. �� ��� �� ����. SELECT COUNT(*)
FROM TABLE(TF(...))� �� ��� n� 0� ��� ���
�. ��� �� �� ��� �� QQ� � ����.
� �� ��� ��� �����. �� � �� �� �� � ��
�� �� ��� ����. �� ����� �� ����� �� ,
��� �� ���(���) ��. � ���� �� � �� ���
� � �� ���, �� ��� �� � ��� ��� � ����.
NO DBINFO
�� ��� ������ ��� ��� � ��� �����.
CARDINALITY integer
� ��� �� ���� � �� �� �� � �� �� ���� ���
��. ��� � � � � 0 - 2 147 483 647��.
CARDINALITY�� � �� �� ��� �� , ������ ����
� �� ���� �����.
�: �� ��� �� ��� ��� �� �� , � ��� ��� �
� �� end-of-table ��� �� �� , end-of-table ��� ���
� �� �� ��� � ���� ���. � � ��� �� ��, GROUP
BY � ORDER BY� ��� ��� ����. ���� � � UDF� ��
� �� �� ����.
STATIC DISPATCH
�� ���� ������ �����. �� �� ���� ���� ��.
EXTERNAL NAME external-program-name
�� SQL��� ��� � ��� ����, �� ���� �� Java �
�� �����. ��� �� ��� � ��� �� ����, �� ���
�, �� Java ��� ���� ���. �� ��� *SYS�� ��� ���
��� �� �� �� ��� � ������ �� ����� �� �
�� ��.
��� ��� ���� �� ��. ��� ��� � !� ��� ��� �
��.
CREATE FUNCTION(�� ���)
476 iSeries� DB2 UDB SQL ��� V5R2
|
|||
|||||
|||
||||||||||
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
external-program-name� ��� ��� �� ������ ��� ���
� �� ��.
����, �� ���� �� Java ��� �� ��� �� ��� ��
�� ��� �� ��� ���.
CONNECT, SET CONNECTION, RELEASE, DISCONNECT, COMMIT,
ROLLBACK � SET TRANSACTION�� �� �� ������ ���
����.
PARAMETER STYLE
��(��) �� ��� �� � ��� ��� �����.
DB2GENERAL
� ��� Java ���� ���� ��� �� �� ��� ��
� �� �� �� � ��� ��� � �� ��. ��� � �
� �� ��� �� ��. ��� �� ��� �� ��.
v �� N � ��� CREATE FUNCTION�� ��� � �
���.
v �� M ��� RETURNS TABLE�� ��� �� �� ��.
DB2GENERAL� LANGUAGE� JAVA� �� �� ��.
DB2SQL
��� � �� �� ��� �� ��. ��� �� ��� ��
��.
v �� N � ��� CREATE FUNCTION�� ��� � �
���.
v �� M ��� RETURNS TABLE�� ��� �� �� ��.
v � ��� ����� ��� �� N � ��
v RETURNS TABLE�� ��� �� �� � ����� ��� ��
M � ��
v SQLSTATE� �� CHAR(5) �� ��. �� SQLSTATE�
�� �� �� ��� �����. �� SQLSTATE� �� � �
� � ����.
– �� ������ ��� ��� SQL�� SQLSTATE
– �� ����� ��� SQLSTATE
���� �� ����� �� �� ��� SQLSTATE� ���
����� ��� �� �� � ����.
v �� ��� ��� �� VARCHAR(517) � ��.
v �� ��� �� VARCHAR(128) � ��.
CREATE FUNCTION(�� ���)
� 5 � �� 477
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v ��� ���� �� VARCHAR(70) �� ��.
v SCRATCH PAD� CREATE FUNCTION�� ��� ��� �
�� � VARCHAR(n) �� ��.
v �� �� �� INTEGER � ��.
v DBINFO� CREATE FUNCTION�� ��� �� dbinfo ��� �
� ��.
��� ��� �� ��� ��� ��� �� �� � sqludf
� �����. �� �� C��� sqludf� QSYSINC/H� ����.
�� � �� �� ��� ��� ��� ���� ����. ��
�� C��� �� VARCHAR �� CHAR ��� NUL �� �����
�� ��. ��� ��� SQL ��� � �� �����.
�� �
ILE �� ������ �� ����� ��� �� �� ��� � �� �
� ��� ������ �� ���� ���� ���� �����. *PGM�
� *SRVPGM ���� ��� �� � ����� �� ����� ��� �
���� � �� � ���� � ��.
�� �� ��� �� �� �� �� ��� � ����.
v �� ���� �� �� SYSIBM, QSYS �� QSYS2���� � ��.
v CREATE FUNCTION�� �� � �� ����� ��� ���.
v �� ����� ILE *PGM �� *SRVPGM ����� ���.
v �� ������ �� ������ ��� �� SQL�� ��� ���.
���� �� � ��� �� �� �� ��.
�� ��� ��� ��� ����.
v �� � ��� � �� ��� ����� �� ��� ��� � �
�.
v �� ��� ��� ���� ��� � � ��� �� ��.
v ��� �� ��� �� ��� � �� ��� � ��.
�� ��
�� �� ��� �� ������ �� ����� ���� � ���
� ���� �� ��. � �, �� ��� ����� ��� � ���� �
��� ����� ACTGRP(*CALLER)� ���� ���. ACTGRP(*NEW)
� ��� ����.
CREATE FUNCTION(�� ���)
478 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Java ��� ��
Java �� ��� � ���� ���� Developer Kit for Java(5722-JV1)� �
��� ���. ��� ��� -443� SQLCODE� �� CPDB521 ���� �
� ���� �� ��.
Java ������ ��� � ��� �� -443� SQLCODE� � ��. �
�� ��� ������ ��� ��� �� ���� �� ���� �� � ��
��.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� ��
� ��� ��� � ����.
v � � VARIANT� NOT VARIANT� NOT DETERMINISTIC�
DETERMINISTIC� ���� ��� � ����.
v � � NULL CALL� NOT NULL CALL� CALLED ON NULL INPUT �
RETURNS NULL ON NULL INPUT� ���� ��� � ����.
v DB2GENRL �� DB2GENERAL� ���� ��� � ����.
� 1
��� ��� �� ����� ��� � ��� �� �� ID� ��� �� �
�� ��� � �� �����. � �� ��� �� � ��� ��
�� ���� �� ���� ��.
�� �� �� ��� UDF� �� ��� �� ��� DETERMINISTIC� �
� ��. DOCMATCH���� ��� ��� RETURNS�� ����. � �
��� FINAL CALL� ���� ���. ��, � �� ��� DISALLOW
PARALLEL � �� ��� ��� � ����. DOCMATCH� �� ��� �
� ������, CARDINALITY 20� �� ���� optimizer� �� � ��
��.
CREATE FUNCTION DOCMATCH (VARCHAR(30), VARCHAR(255))RETURNS TABLE (DOCID CHAR(16))EXTERNAL NAME ’MYLIB/RAJIV(UDFMATCH)’LANGUAGE CPARAMETER STYLE DB2SQLNO SQLDETERMINISTICNO EXTERNAL ACTIONNOT FENCEDSCRATCHPADFINAL CALLDISALLOW PARALLELCARDINALITY 20
CREATE FUNCTION(�� ���)
� 5 � �� 479
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
CREATE FUNCTION(���(sourced))CREATE FUNCTION�� �� ��� ��� �� ��� � �� ��� �
�� �� �� ��� � �� ��.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v SYSFUNCS ���� � � SYSPARMS ���� ��
– ��� INSERT ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
�� �� ��� �� ��� ��� ���� ID� �� �� �� ���
�� � �� �� ���.
v ��� EXECUTE ��
v �� ��
��� ���� ID� �� � �� �� EXECUTE ��� ����.
v �� ����.
v ��� EXECUTE ��� �������.
v ��� *OBJOPR� *EXECUTE� ��� ��� �������.
�� �� ���� ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ��� �� ��� ��
– �� ���� ��(CRTSRVPGM) �� �� *USE
– ���� ��(CRTPGM) �� �� *USE
– �� ��� �� �� �� *EXECUTE � *ADD
v �� ��
CREATE FUNCTION( ��(sourced))
480 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
SQL ��� ��� �� ��� �� �� �� ��� �� ��� ��
�� �� � ��� ��� ���� ID� �� ��� ���� ID� �
� ��� ��� �� � �� �� ���.
v � ��� �� ��� ���� �� ��� �� *ADD
v �� ��
�� �� �����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
CREATE FUNCTION( ��(sourced))
� 5 � �� 481
|
|
|
|
|
|
|
|
|
|
|
��
�� CREATE FUNCTION function-name
( ),
parameter-declaration
�
�(1)
RETURNS data-typeAS LOCATOR SPECIFIC specific-name
�
�
SOURCE function-nameSPECIFIC specific-namefunction-name ( )
,
parameter-type2
��
parameter-declaration:data-type1
parameter-name AS LOCATOR
data-type:built-in-typedistinct-type-name
�:
1 RETURNS, SPECIFIC � SOURCE�� �� ��� ��� � ����.
CREATE FUNCTION( ��(sourced))
482 iSeries� DB2 UDB SQL ��� V5R2
�
function-name
��� �� �� �����. ��� ��, ����, �� � � � �
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP( 200 )
DATALINK( integer ) CCSID integer
ROWID
CREATE FUNCTION( ��(sourced))
� 5 � �� 483
|||||
�� �� �(�� �� ��, ���, ���� CCSID �� ����)��
�� ��� �� ��� �� �� ����� � ��.
SQL ��� � �� ��� �� ��� ���� �� ��� ���� �
� ��.
��� ��� � �� ���� �� ��� ���� �� ��. ����
��� ��� �� �� �� �(*CURLIB)� �� ��. �� ��
�� ��� �� QGPL� �� ��.
�� ��� �� �� ��� � ��� �� �� �� ��� �
��� �� �� �� ��� �� � ����. �����, � ��
� ��� �� � ��� �� �� ��� �� � ����.
�� ��� ������ ��� ����. ��� ��� 443 ���� �
�� ���� �����.
(parameter-declaration,...)
�� �� �� � ��� �� �� �����. ��� ����, �
��� ��� ��� � ����.
parameter-name
� ��� ��� �����. � � �� �� ��� ��� ���
�.
data-type1
�� � �� �� � � ��� �� �� �����. �
� �� ��� � ����. �� �� ��� ��� �
�� ����� � ��� ��� ���. ��� ����, � ��
� ��� ��� � ����. �� ��� �� �� �� ��� � ��
��.
�� ��� �� �� �� ����. � � �� ��� ���
�� ����� ���.
CREATE FUNCTION WOOFER ()
CCSID� ��� ��� �� ��� �� �� CCSID� ��
��. CCSID� ��� ��� �� ��� � �� ���� ���
CCSID� �� CCSID� �� ��.
AS LOCATOR
� ��� �� �� ��� �� �� ������ �����. �
��� LOB �� ��� LOB �� �� ��� � �� ��
�� �� AS LOCATOR� ��� � ����.
RETURNS
�� ��� �����.
CREATE FUNCTION( ��(sourced))
484 iSeries� DB2 UDB SQL ��� V5R2
|
|
data-type
��� �� �� �� �����.
�� �� �� ��� ���� � ���, �� �� �(LONG
VARCHAR, LONG VARGRAPHIC �� DataLink ��)�� �� �
(�� ��� ��� � ��)� ��� � ����(�� � ���� �
� ��� 77 ���� ��� � ��� ����� �����).
AS LOCATOR
�� �� �� ��� �� �� ����� � � �����. ��
��� LOB �� �� ��� � �� ��� LOB �� ��
�� AS LOCATOR� ��� � ����. AS LOCATOR�� SQL �
�� �� ��� ��� � ����.
SPECIFIC specific-name
�� �� � ��� �����. ��� ��� �� ����� �����
� �� ��. ����� � ��� �� ��� �� �� �� ���
��� �� ��� ����� � ��. ��� �� ��� ����
��� ���� ����. ��� ���� ��� ���� ��� ��
�.
�� ��� ��� ��� ���� �� ��. �� ��� �� �� �
����� �� �� �� ��� �� � ��� ��� � ��
� ��� �� �� ��.
SOURCE
��� �� �� ��� �����. ���(sourced) �� �� �(�
� �)� �� �� ��. �� �� �� ��� ��� COALESCE,
HASH, IFNULL, LAND, LOR, MAX, MIN, NODENAME, NODENUMBER,
NULLIF, PARTITION, POSITION, RRN, STRIP, SUBSTRING, TRIM,
VALUE � XOR, �� ��� ��� �� ��� �� �� ��� �
��. ���� ��� ��� �� �� � ����(�� �� ���
� � ���).
�� �� �� ��� ��� �� BLOB, CHAR, CLOB, DBCLOB,
DECIMAL, GRAPHIC, TRANSLATE, VARCHAR, VARGRAPHIC � ZONED
�� � � �� � ����.
���(sourced) �� ���� ��� �� ��� ��� ���(sourced)
�� ��� �� �� �����. ���(sourced) �� � ����
�� ��. �� ��, � A� � B� ��� ���, B� � C� ��
� ��� ��� �����. � C� ��� ���. � A� B�
� C� CREATE FUNCTION�� ��� �� �� �����.
��� �� ��� ���� �� �� ��� � �� ��.
CREATE FUNCTION( ��(sourced))
� 5 � �� 485
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FUNCTION function-name
function-name� �� ��� �� � �� �� ���� ���. �
� �� �� ��� ��� �� � ����. ��� �� ��� �
��� ��� ��� �� � �� ��� ��� � ��.
���� �� �� � ��� � �� �� ���� �� �
�. �� � �� ��� ���� �� �� ���� ���.
FUNCTION function-name(parameter-type2, ...)
function-name(parameter-type2, ...) �� ��� �� ��� � ���
�� ���� ���. ��� ��� �� ��� CREATE FUNCTION
�� ��� �� �� ���� ���. �� �� �� �� ��
�� ��� �� �� ��� �� � ���� ��� � ��
��.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� ��� � �
� ��� ��� � ����.
v � ��� �� �� �� ��� ��� � ������ ���� �
� ����� �� �����.
v ��, ��� �� �� �� �� �� �� ��� � �� CREATE
FUNCTION�� ���(��� �� �����) �� �� ���� �
��.
v ��, ��� �� ��� �� ��� �� � ��� ��� ���
�� �� ��� �� �� ��. ��� �� �� ��� ���
541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� �� �� �
� ��� ��� � ������ ���� �� ����� �� ����
�. �� ��� CREATE FUNCTION�� ��� �� �����
��� �� ���� ���.
SPECIFIC specific-name
specific-name� �� ��� �� �� �� ���� ���.
��� �� � �� �� �� �� �� �� ��� ���. �
� ��� �� �� �� �� �� ��� �!� ���� � ��
�, ��� ����. �� �� �� ��� �� �� ���(sourced) ��
��� ��� ���� � ��� ���.
CREATE FUNCTION( ��(sourced))
486 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CCSID� ��� � ��� CCSID� �� CCSID� ���� ��� �
�� CCSID� �� ��.
CCSID� ��� �� � ��� CCSID� �� CCSID� ���� �
��� ��� CCSID �� � ��� � �� �� ��� ��� �
CCSID� �� ��. ��� ��� �� ���� ��� ��� ��� �
� �� ��� ��� � �� CCSID� ����� ��� �� ������
�. ��� �� �� � ��� ��� � � �����. � CCSID
13488(UCS-2 � ��� ��)� ��� �� �������.
���(sourced) �� ��� � �� ��� �� �� ���� ����
�� ��. � �� ����� ��� �� ����� ��� � CREATE
FUNCTION�� �� � ���� ����� ���� �� ��.
�� �� ��� �� �� � ���(sourced) �(�� ��, PARAMETER
STYLE, STATIC DISPATCH, �)� �� ��.
� 1
�� INTEGER �� �� ��� � �� � HATSIZE� ����� ��
���. AVG �� ��� �� ��� �� �� ��� �����.
EXEC SQLCREATE FUNCTION AVG (HATSIZE) RETURNS HATSIZESOURCE AVG (INTEGER);
� 2
Smith� �� ���� �� ��� �� CENTER� ���� �� ����
� �� ��� � �� INTEGER ��� �� FLOAT �� � �
INTEGER ��� ���� ���. � CENTER� ��� �� �� ��
���.
EXEC SQLCREATE FUNCTION MYCENTERG (INTEGER, INTEGER)
RETURNS FLOATSOURCE SMITH.CENTER (INTEGER, FLOAT);
CREATE FUNCTION( ��(sourced))
� 5 � �� 487
CREATE FUNCTION(SQL ���)� CREATE FUNCTION(SQL ���)�� �� ���� SQL �� �����.
�� �� ��� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v SYSFUNCS ���� � � SYSPARMS ���� ��
– ��� INSERT ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� �� ��� ��
– �� ���� ��(CRTSRVPGM) �� �� *USE
– �� ��� �� �� �� *EXECUTE � *ADD
v �� ��
�� �� ����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
CREATE FUNCTION(SQL ���)
488 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
��
�� CREATE FUNCTION function-name
( ),
parameter-declaration
RETURNS data-type2 �
� LANGUAGE SQL option-list SQL-routine-bodySET OPTION-statement
��
parameter-declaration:parameter-name data-type1
option-list:
SPECIFIC specific-name
NOT DETERMINISTIC
ISDETERMINISTIC
READS SQL DATA
CONTAINS SQLMODIFIES SQL DATA
FENCED
NOT FENCED�
�CALLED ON NULL INPUT
RETURNS NULL ON NULL INPUT
EXTERNAL ACTION
NO EXTERNAL ACTION ALLOW PARALLELDISALLOW PARALLEL
STATIC DISPATCH
SQL-routine-body:SQL-control-statement
CREATE FUNCTION(SQL ���)
� 5 � �� 489
||||||||||||||||||||||||||||
||||||||||||||||||||
||
||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||
||||||||||||
|
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP( 200 )
DATALINK( integer ) CCSID integer
ROWID
CREATE FUNCTION(SQL ���)
490 iSeries� DB2 UDB SQL ��� V5R2
|||||
�
function-name
��� �� �� �����. ��� ��, ����, �� � � � �
�� �� �(�� �� ��, ���, ���� CCSID �� ����)��
�� ��� �� ��� �� �� ����� � ��.
SQL ��� � �� ��� �� ��� ���� �� ��� ���� �
� ��.
��� ��� � �� ���� �� ��� ���� �� ��. ����
��� ��� �� �� �� �(*CURLIB)� �� ��. �� ��
�� ��� �� QGPL� �� ��.
�����, � �� � ��� �� � ��� �� �� ��� �
� � ����.
�� ��� ������ ��� ����. ��� ��� 443 ���� �
�� ���� �����.
(parameter-declaration,...)
�� �� �� � ��� �� �� �����. ��� ����, �
��� ��� ��� � ����.
��� �� ��� �� 90��.
parameter-name
� ��� ��� �����. � � �� �� ��� ��� ���
�. �� ��� SQL �� ��� �� ���� ���.
data-type1
�� � �� �� � � ��� �� �� �����. �
� �� ��� � ����. �� �� ��� ��� �
�� ����� � ��� ��� ���.
�� ��� �� �� �� ����. � � �� ��� ���
�� ����� ���.
CREATE FUNCTION WOOFER ()
CCSID� ��� ��� �� ��� �� �� CCSID� ��
��. CCSID� ��� ��� �� ��� � �� ���� ���
CCSID� �� CCSID� �� ��.
RETURNS
�� ��� �����.
data-type2
��� �� �� �� �����.
CREATE FUNCTION(SQL ���)
� 5 � �� 491
|
|
|
�� �� �(LONG VARCHAR �� LONG VARGRAPHIC ��)��
�� �� ��� � ����.
CCSID� ��� � ��� CCSID� �� CCSID� ���� �
�� ��� CCSID� �� ��.
CCSID� ��� �� � ��� CCSID� �� CCSID� ���
� � ��� ��� CCSID �� � ��� � �� �� ���
��� � CCSID� �� ��. ��� ��� �� ���� ���
��� ��� �� �� ��� ��� � �� CCSID� ����
� ��� �� �������. ��� �� �� � ��� ���
� � �����. � CCSID 13488(UCS-2 � ��� ��)� �
�� �� �������.
SPECIFIC specific-name
�� �� � ��� �����. ��� ��� �� ����� �����
� �� ��. ����� � ��� �� ��� �� �� �� ���
��� �� ��� ����� � ��. ��� �� ��� ����
��� ���� ����. ��� ���� ��� ���� ��� ��
�.
�� ��� ��� ��� ���� �� ��. �� ��� �� �� �
����� �� �� �� ��� �� � ��� ��� � ��
� ��� �� �� ��.
LANGUAGE SQL
��� SQL ��� �����.
DETERMINISTIC �� NOT DETERMINISTIC
�� ����� ��� �����.
NOT DETERMINISTIC
�� ��� � ��� ��� � ����� �� �� ��� �
� ��� �����. NOT DETERMINISTIC� �� ����� �� �
�� � � �� ��� �� � ���� ���.
DETERMINISTIC
�� ��� � ��� ��� ����� �� �� ��� � � �
����.
CONTAINS SQL, READS SQL DATA �� MODIFIES SQL DATA
�� SQL�� ��� � ���, �� �� ��� �����. ���
��� ���� ��� ��� SQL� � ��� ���� �����. 913
���� �� F �SQL�� ����� � �� ��� �� � ��� � ��
SQL� ���� �� ����� �����.
CREATE FUNCTION(SQL ���)
492 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
CONTAINS SQL
�� ��� �� ��� SQL�� ��� ����.
READS SQL DATA
�� ��� ��� SQL�� ��� ����.
MODIFIES SQL DATA
�� �� ��� �� ��� ��� �� SQL�� ��� � ��
��.
FENCED �� NOT FENCED
�� �� SQL�� ��� ����� ���� ��� ����� ���
� ��� �����.
FENCED
�� ��� ����� ��� ���. �� SQL ��� �� ��
FENCED� �� ��� ����. ��� SQL��� ��� �� �
� ��� �� ��� � �� ����.
NOT FENCED
�� �� SQL�� ��� ����� �� ��. NOT FENCED ��
��� � ��� �� SQL ��� ����. ��� � � ���
�, � �� ��� �� � �� �� ��.
NULL INPUT
� ��� NULL� � �� ��� ��� ���� �����.
CALLED ON NULL INPUT
�� �� �����.
RETURNS NULL ON NULL INPUT
��� ��� �� ��� NULL �� � �� ��� ��� ��
��.
EXTERNAL ACTION �� NO EXTERNAL ACTION
�� ��� �� �� ��� ��� �����.
EXTERNAL ACTION
�� �� �� ��( � ����� � �)� �����. ��� ��
��� ��� � ��� ���� ���. EXTERNAL ACTION� �
� ��� � �� �� �� ��� � �� � ���� ��
�.
NO EXTERNAL ACTION
�� �� ��� ��� ����. �� ��� ��� � ���
��� ������.
CREATE FUNCTION(SQL ���)
� 5 � �� 493
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PARALLEL
�� ��� ��� � ���� �����.
ALLOW PARALLEL
�� ��� ��� � ���� �����.
DISALLOW PARALLEL
�� ��� ��� � ���� �����.
�� �� � �� ��� ���� DISALLOW PARALLEL��.
v NOT DETERMINISTIC
v EXTERNAL ACTION
v MODIFIES SQL DATA
��� ��� ALLOW PARALLEL� �����.
STATIC DISPATCH
�� ���� ������ �����. �� �� ���� ���� ��.
SET OPTION�
� ��� ��� ��� �����. �� �� ���� � � �� �� �
��� �� ��� ��.
SET OPTION DBGVIEW = *STMT
��� ��� 772 ���� �SET OPTION�� �����.
�� CLOSQLCSR, CNULRQD, DFTRDBCOL, DYNDFTCOL � NAMING�
CREATE FUNCTION��� ��� ����.
SQL-routine-body
�� ��� � �� SQL�� �����. SQL � ��� �� ��
� ��� 821 ���� � 6 � �SQL ����� �����.
CONNECT, SET CONNECTION, RELEASE, DISCONNECT, COMMIT,
ROLLBACK � SET TRANSACTION�� �� ������ �� ���
��� ��� ����.
SQL-routine-body� �� ��� , �� �� RETURN�� ��
�� ��� � RETURN�� ���� ���.
�� ���: SQL�� ��� , �� ��� �� ��� ���� ��
� ��� �� ��� �����. ��� ��� �� ��� ��� ��
� ��� �� ��� ����� ��� �����.
CREATE FUNCTION(SQL ���)
494 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
����� ���, �� ��� ��� ��� ��� �� ��� ��
��� ��� �����.
�� ��: SQL�� ��� �� *PUBLIC� �� *EXCLUDE ��� ���
� �� ��. ����� ��� ���� �� ��(CRTAUT) ��� ��
���� �� *PUBLIC� �� ���� �� ��.
�� ��� �� ���� ����(GRPPRF � �) �� ��� ���
(GRPAUT � �), � �� ���� �� �� ��� ����.
�� �
SQL �� ��� ������ ���� � SQL�� � C �� ��� �
� �� �� �� �� �����. *SRVPGM ���� CRTSRVPGM ��
��� �� ��. �� ����� ��� � ��� SQL ��� CREATE
FUNCTION�� ��� � �� ����. �� ����� ACTGRP
(*CALLER)� ��� �� ��.
�� ��� *SRVPGM ���� �� � ��� ��� ��� � �� �
�. �� ��� �� ������ ����� �� ���� �� ��. ��� �
� ��� �� ��. ����� ��� �� �� �� ���, ��� �
��� ��� ��� ��� � ��� �� ��. ��� ��� �� ��
��� ���, ��� � ��� ��� ��� ��� � ��� �� ��.
�� �� ��� �� ���� ���� �� ��. *SRVPGM ���
� ��� � � ����� �� ����� ��� ����� � �� � �
��� � ��.
�� ��� ��� ��� ����.
v �� � ��� � �� ��� ����� �� ��� ��� � �
�.
v �� ��� ��� ���� ��� � � ��� �� ��.
v ��� �� ��� �� ��� � �� ��� � ��.
��� �
�� ��� ��� �� ���, SQL ��� ��� � ��� , SQL �� �
� SQL ��� ��� � SQL ��� �� ��� �� �� ��� �� �
�. �� ���, �� ��� � ��� ��� ��� � SQL ���
��� ��� �� ��� �� ��. ��� ��� �� ��� � ��
��� � �� ��.
�� ��� , SQL �� � ��� �� ��� � � ���, ���
�� � SQL ��� �� �� ��� ��� �� ��� �����.
CREATE FUNCTION(SQL ���)
� 5 � �� 495
|
|
|
|
|
|
|
|
�� ��
SQL �� ��� � ��� ����� � ���� �� ��.
�� select�� �� ���� ��� � �� EXTERNAL ACTION ��
MODIFIES SQL DATA� ��� �� �� � �� ���� ��� �
����. ��� ��� ��� �� �� �� UDF� ��� � ����.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� ��
� ��� ��� � ����.
v � � VARIANT� NOT VARIANT� NOT DETERMINISTIC�
DETERMINISTIC� ���� ��� � ����.
v � � NULL CALL� NOT NULL CALL� CALLED ON NULL INPUT �
RETURNS NULL ON NULL INPUT� ���� ��� � ����.
� 1
SQL � NTEST1� ��� ��� �����.
output = 2 * input - 4
CREATE FUNCTION NTEST1 (p_input INTEGER)RETURNS INTEGERLANGUAGE SQLSPECIFIC MINENULL1func1_lab:BEGINDECLARE p_output INT;IF p_input IS NULL THENSET p_output = NULL;
ELSESET p_output = 2 * p_input - 4;
END IF;RETURN p_output;END
CREATE FUNCTION(SQL ���)
496 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
CREATE FUNCTION(SQL �)�� ���� CREATE FUNCTION(SQL �)�� SQL � �� �����.
�� �� �� �� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v SYSFUNCS ���� � � SYSPARMS ���� ��
– ��� INSERT ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� �� ��� ��
– �� ���� ��(CRTSRVPGM) �� �� *USE
– �� ��� �� �� �� *EXECUTE � *ADD
v �� ��
�� �� �����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
CREATE FUNCTION(SQL �)
� 5 � �� 497
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
��
�� CREATE FUNCTION function-name
( ),
parameter-declaration
�
�
,
RETURNS TABLE ( column-name data-type2 ) �
� LANGUAGE SQL option-list SQL-routine-bodySET OPTION-statement
��
parameter-declaration:parameter-name data-type1
option-list:
SPECIFIC specific-name
NOT DETERMINISTIC
ISDETERMINISTIC
READS SQL DATA
CONTAINS SQLMODIFIES SQL DATA
FENCED
NOT FENCED�
�CALLED ON NULL INPUT
RETURNS NULL ON NULL INPUT
EXTERNAL ACTION
NO EXTERNAL ACTIONDISALLOW PARALLEL �
�CARDINALITY integer
STATIC DISPATCH
SQL-routine-body:SQL-control-statement
CREATE FUNCTION(SQL �)
498 iSeries� DB2 UDB SQL ��� V5R2
||||||||||||||||||||||||
||||||||||||||||||||||
||||||||||||||||||||
||
||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||
||
||||||||||||
|
|
|
|
|
|
|
|
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP( 200 )
DATALINK( integer ) CCSID integer
ROWID
CREATE FUNCTION(SQL �)
� 5 � �� 499
|||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||
�
function-name
��� �� �� �����. ��� ��, ����, �� � � � �
�� �� �(�� �� ��, ���, ���� CCSID �� ����)��
�� ��� �� ��� �� �� ����� � ��.
SQL ��� � �� ��� �� ��� ���� �� ��� ���� �
� ��.
��� ��� � �� ���� �� ��� ���� �� ��. ����
��� ��� �� �� �� �(*CURLIB)� �� ��. �� ��
�� ��� �� QGPL� �� ��.
�����, � �� � ��� �� � ��� �� �� ��� �
� � ����.
�� ��� ������ ��� ����. ��� ��� 443 ���� �
�� ���� �����.
(parameter-declaration,...)
�� �� �� � ��� �� �� �����. ��� ����, �
��� ��� ��� � ����.
��� �� �� 90�� �� ��.
parameter-name
� ��� ��� �����. � � �� �� ��� ��� ���
�. �� ��� SQL �� ��� �� ���� ���.
data-type1
�� � �� �� � � ��� �� �� �����. �
� �� ��� � ����. �� �� ��� ��� �
�� ����� � ��� ��� ���.
�� ��� �� �� �� ����. � � �� ��� ���
�� ����� ���.
CREATE FUNCTION WOOFER ()
CCSID� ��� ��� �� ��� �� �� CCSID� ��
��. CCSID� ��� ��� �� ��� � �� ���� CCSID�
�� CCSID� �� ��.
RETURNS TABLE
�� �� �� �����.
�� �� N��� � �, (247-(N*2))/2 �� � �� ���.
CREATE FUNCTION(SQL �)
500 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��
�� �� ��� �����. � � �� �� ��� ��� ����.
data-type2
��� �� �� �� �����.
�� �� �(LONG VARCHAR �� LONG VARGRAPHIC ��)��
�� �� ��� � ����.
CCSID� ��� � ��� CCSID� �� CCSID� ���� �
�� ��� CCSID� �� ��.
CCSID� ��� �� � ��� CCSID� �� CCSID� ���
� � ��� ��� CCSID �� � ��� � �� �� ���
��� � CCSID� �� ��. ��� ��� �� ���� ���
��� ��� �� �� ��� ��� � �� CCSID� ����
� ��� �� �������. ��� �� �� � ��� ���
� � �����. � CCSID 13488(UCS-2 � ��� ��)� �
�� �� �������.
SPECIFIC specific-name
�� �� � ��� �����. ��� ��� �� ����� �����
� �� ��. ����� � ��� �� ��� �� �� �� ���
��� �� ��� ����� � ��. ��� �� ��� ����
��� ���� ����. ��� ���� ��� ���� ��� ��
�.
�� ��� ��� ��� ���� �� ��. �� ��� �� �� �
����� �� �� �� ��� �� � ��� ��� � ��
� ��� �� �� ��.
LANGUAGE SQL
��� SQL ��� �����.
DETERMINISTIC �� NOT DETERMINISTIC
�� ����� ��� �����.
NOT DETERMINISTIC
�� ��� � ��� ��� � ����� �� �� ��� �
� ��� �����. NOT DETERMINISTIC� �� ����� �� �
�� � � �� ��� � �� ���� ���.
DETERMINISTIC
�� ��� � ��� ��� ����� �� �� ��� � � �
����.
CREATE FUNCTION(SQL �)
� 5 � �� 501
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CONTAINS SQL, READS SQL DATA �� MODIFIES SQL DATA
�� SQL�� ��� � ���, �� �� ��� �����. ���
��� ���� ��� ��� SQL� � ��� ���� �����. 913
���� �� F �SQL�� ����� � �� ��� �� � ��� � ��
SQL� ���� �� ����� �����.
CONTAINS SQL
�� �� �� �� ��� �� SQL�� ����.
READS SQL DATA
�� ��� ��� �� SQL�� ����.
MODIFIES SQL DATA
�� �� ��� �� ��� ��� �� SQL�� ��� � ��
��.
FENCED �� NOT FENCED
�� �� SQL�� ��� ����� ���� ��� ����� ���
� ��� �����.
FENCED
�� �� ����� ��� ���. �� SQL ��� �� ��
FENCED� �� ��� ����. ��� SQL��� ��� �� �
� ��� �� ��� � �� ����.
NOT FENCED
�� �� SQL�� ��� ����� �� ��. NOT FENCED ��
��� � ��� �� SQL ��� ����. ��� � � ���
�, � �� ��� �� � �� �� ��.
NULL INPUT
� ��� NULL� � �� ��� ��� ���� �����.
CALLED ON NULL INPUT
�� �� �����.
RETURNS NULL ON NULL INPUT
� � OPEN�, �� �� � �� �� ��� �� � ��
��� �� � ��� � �(� �� �)� ��.
EXTERNAL ACTION �� NO EXTERNAL ACTION
�� ��� �� �� ��� ��� �����.
EXTERNAL ACTION
�� �� �� ��( � ����� � �)� �����. ��� ��
CREATE FUNCTION(SQL �)
502 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��� ��� � ��� ���� ���. EXTERNAL ACTION� �
� ��� � �� �� �� ��� � �� � ���� ��
�.
NO EXTERNAL ACTION
�� �� ��� ��� ����. �� ��� ��� � ���
��� ������.
DISALLOW PARALLEL
�� ��� ��� � ���� �����. � �� ��� ��� � ��
��.
CARDINALITY integer
� ��� �� ���� � �� �� �� � �� �� ���� ���
��. ��� � � � � 0 - 2 147 483 647��.
CARDINALITY�� � �� �� ��� �� , ������ ����
� �� ���� �����.
STATIC DISPATCH
�� ���� ������ �����. �� �� ���� ���� ��.
SET OPTION�
� ��� ��� ��� �����. �� �� ���� � � �� �� �
��� �� ��� ��.
SET OPTION DBGVIEW = *STMT
��� ��� 772 ���� �SET OPTION�� �����.
�� CLOSQLCSR, CNULRQD, DFTRDBCOL, DYNDFTCOL � NAMING�
CREATE FUNCTION��� ��� ����.
SQL-routine-body
�� ��� � �� SQL�� �����. SQL � ��� �� ��
� ��� 821 ���� � 6 � �SQL ����� �����.
CONNECT, SET CONNECTION, RELEASE, DISCONNECT, COMMIT,
ROLLBACK � SET TRANSACTION�� �� ������ �� ���
��� ��� ����.
SQL-routine-body� �� ��� , �� �� RETURN�� ��
�� ��� � ���� ���.
�� ���: SQL�� ��� , �� ��� �� ��� ���� ��
� ��� �� ��� �����. ��� ��� �� ��� ��� ��
� ��� �� ��� ����� ��� �����.
CREATE FUNCTION(SQL �)
� 5 � �� 503
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
����� ���, �� ��� ��� ��� ��� �� ��� ��
��� ��� �����.
�� ��: SQL�� ��� �� *PUBLIC� �� *EXCLUDE ��� ���
� �� ��. ����� ��� ���� �� ��(CRTAUT) ��� ��
���� �� *PUBLIC� �� ���� �� ��.
�� ��� �� ���� ����(GRPPRF � �) �� ��� ���
(GRPAUT � �), � �� ���� �� �� ��� ����.
�� �
SQL �� ��� ������ ���� � SQL�� � C �� ��� �
� �� �� �� �� �����. *SRVPGM ���� CRTSRVPGM ��
��� �� ��. �� ����� ��� � ��� SQL ��� CREATE
FUNCTION�� ��� � �� ����. �� ����� ACTGRP
(*CALLER)� ��� �� ��.
�� ��� *SRVPGM ���� �� � ��� ��� ��� � �� �
�. �� ��� �� ������ ����� �� ���� �� ��. ��� �
� ��� �� ��. ����� ��� �� �� �� ���, ��� �
��� ��� ��� ��� � ��� �� ��. ��� ��� �� ��
��� ���, ��� � ��� ��� ��� ��� � ��� �� ��.
�� �� ��� �� ���� ���� �� ��. *SRVPGM ���
� ��� � � ����� �� ����� ��� ����� � �� � �
��� � ��.
�� ��� ��� ��� ����.
v �� � ��� � �� ��� ����� �� ��� ��� � �
�.
v �� ��� ��� ���� ��� � � ��� �� ��.
v ��� �� ��� �� ��� � �� ��� � ��.
��� �
�� ��� ��� �� ���, SQL ��� ��� � ��� , SQL �� �
� SQL ��� ��� � SQL ��� �� ��� �� �� ��� �� �
�. �� ���, �� ��� � ��� ��� ��� � SQL ���
��� ��� �� ��� �� ��. ��� ��� �� ��� � ��
��� � �� ��.
�� ��� , SQL �� � ��� �� ��� � � ���, ���
�� � SQL ��� �� �� ��� ��� �� ��� �����.
CREATE FUNCTION(SQL �)
504 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� ��
SQL �� ��� � ��� ����� � ���� �� ��.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� ��
� ��� ��� � ����.
v � � VARIANT� NOT VARIANT� NOT DETERMINISTIC�
DETERMINISTIC� ���� ��� � ����.
v � � NULL CALL� NOT NULL CALL� CALLED ON NULL INPUT �
RETURNS NULL ON NULL INPUT� ���� ��� � ����.
�
��� �� ��� �� �� � �� �����.
CREATE FUNCTION DEPTEMPLOYEES (DEPTNO CHAR(3))RETURNS TABLE (EMPNO CHAR(6),
LASTNAME VARCHAR(15),FIRSTNAME VARCHAR(12))
LANGUAGE SQLREADS SQL DATANO EXTERNAL ACTIONDETERMINISTICDISALLOW PARALLELRETURN
SELECT EMPNO,LASTNAME,FIRSTNMEFROM EMPLOYEE
WHERE EMPLOYEE.WORKDEPT =DEPTEMPLOYEES.DEPTNO
CREATE FUNCTION(SQL �)
� 5 � �� 505
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
CREATE INDEX�� ���� CREATE INDEX�� �� ��� �����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� �� ��� ��
– � � ��(CRTLF) �� �� *USE
– ��� ��� �� �� �� *EXECUTE � *ADD
– ��� ��� �� �� �� ��� ��� �� SQL ���� �
� ��� �� *CHANGE
v �� ��
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� INDEX ��
v �� ��
��� ���� ID� �� � �� �� INDEX ��� ����.
v �� ���
v ��� INDEX �� ALTER ��� �������.
v ��� *OBJALTER �� *OBJMGT� ��� ��� �������.
SQL ��� ���, �� ��� �� �� �� ��� �� ��� ��
�� �� , � ��� ��� ���� ID� �� ��� ���� ID�
�� ��� ��� �� � �� �� ���.
v � ��� �� ��� ���� �� ��� �� *ADD
v �� ��
��
�� CREATEUNIQUE
WHERE NOT NULLENCODED VECTOR
INDEX index-name �
CREATE INDEX
506 iSeries� DB2 UDB SQL ��� V5R2
�
,ASC
ON table-name ( column-name )DESC
�
�DISTINCT
WITH integer VALUES
��
�
UNIQUE
�� ��� �� � �� �� ��� �� � ��� ���. ��
��� �� �� �� ��� �� �� � �� ��.
����� CREATE INDEX�� ��� ���� �� ��. �� �� �
� � �� �� �� ��� ��� ��� ����.
UNIQUE� ��� ��� �� �� � ��. �� ��, �� ��� �
� � �� �� ��, � �� �� ��� �� � ����.
UNIQUE WHERE NOT NULL
�� �� �� ��� �� � �� �� ��� �� � ���
���. � � ��� �� ��. ��� ��� UNIQUE� �����.
ENCODED VECTOR
�� ��� ���� �� ��(EVI)�� �������.
���� �� ��� �� ��� ��� � ��� � ����. ��� ��
� �� � ������ ���� �� �� ��. ��� ��� Database
Performance and Query Optimization �� �����.
index-name
��� �����. ��� �� ��� ���� � ��� �� �� ��
� �� ��, �, �, �� �� �� �� � ����.
SQL�� ��� ��� ��� �� ��� ���� �� ��� ���� �
� ��.
����� ��� ���� ���� �� ��� ���� �� ��. ��
� �� �� ��� ��� ��� �� �� ����� �� �� �
� ��.
�� ��� �� ����� ��� iSeries� DB2 UDB� ����� ���
��. �� �� ��� �� ��� 572 ���� �� �� �� ���� ��
���.
CREATE INDEX
� 5 � �� 507
ON table-name
��� ��� �� �����. table-name� �� ��� �� �� �(�� �
)� ���� ���.
(column-name, ... )
�� �� ��� � � ���� �����.
� column-name� �� � ��� ��� �� ����� ���. ��
� � �� ��� � ����. column-name� LOB� �� �� � �
� LOB �� DATALINK �� �� �� ����� � ��. �
�� 120� ����� �� �� ��� ��� 2000-n� ����� �
��. ���, n� �(null)� ��� ��� � ���.
ASC
�� ��� � �� ������ �����. �����.
DESC
�� ��� � �� ������ �����.
WITH integer DISTINCT VALUES
� � �� �� �� �����. � �� �� �� ��� �� ��� �
����.
���� �� ��� � � � �� ��� ��� �� ��� ���
� �� ��. ��� �� 256��.
���� �� �� ��� ���� �� ��� �� ��.
��� �� �� ��� ���, CREATE INDEX� �� �� �� ��� ���
��. �� � ��� ��� CREATE INDEX� ��� ��� �����. ��
� �� �� � �� ��� �� ��. ��� �� �� �� ��� ����
�.
�� �: SBCS� ��� ��� �� �� � �� ��� ��� ��� ��
� � �� �� ��� �� ��. *HEX ��� �� ��� �� SBCS �
�� ��� ��� �� �� �� ��� ��� � �� ��� ���.
�� ��: ��� �� � �� �� ��. ��� ��� � �� ��� �
�� �� �� �� � � ��(CRTLF) �� WAITFILE � WAITRCD
� �� ��� ��� ��� �� ��.
��� �� �� ��� ��� �� ��� �� ���� �� ��. ��� �
� �� ��� ��� DB2 Multisystem �� �����.
CREATE INDEX
508 iSeries� DB2 UDB SQL ��� V5R2
�� ���: SQL�� ��� , ���� ��� ���� ��� ���� �
�� ��� �� ��� �����. ��� ��� ��� ��� ��� �
�� ��� �� ��� ����� ��� �����.
����� ���, ��� ��� ��� ��� ��� �� ��� ��
��� ��� �����.
�� ��: SQL ��� ��� ���� *PUBLIC� �� *EXCLUDE ���
���� �� ��. ��� ��� ��� ���� �� ��(CRTAUT) �
�� �� ���� ��� *PUBLIC� �� ���� �� ��.
��� ��� �� ���� ����(GRPPRF � �) �� ��� ���
(GRPAUT � �), � �� ���� ��� �� ��� ����.
�
� 1PROJECT �� UNIQUE_NAM��� ��� �����. ��� ��� �� ��
�� ��(PROJNAME)� �� �� �� �� � ��� ��� �� ��
� � ���. �� ��� ������ �� ��.
CREATE UNIQUE INDEX UNIQUE_NAMEON PROJECT(PROJNAME)
� 2EMPLOYEE �� JOB_BY_DPT�� ��� �����. � ��(WORKDEPT) �
�� �� ��� �� ��(JOB)� �� ������ �����.
CREATE INDEX JOB_BY_DPTON EMPLOYEE (WORKDEPT, JOB)
CREATE INDEX
� 5 � �� 509
CREATE PROCEDURE
CREATE PROCEDURE�� �� ���� ������ �����.
�� ����� �� ��� � ����.
v ��
����� ����� C, COBOL �� Java� �� ��� �� �� �
�. �� ����� ������ � �� � �� ��� ��� �����
�� �����. 512 ���� �CREATE PROCEDURE(��)�� �����.
v SQL
������ SQL��� �� ��. ������ ��� ������ � �
� � �� ��� �� ��. 526 ���� �CREATE PROCEDURE(SQL)�
� �����.
���� �� � ��
iSeries� DB2 UDB� � �$���� ����� ��� � �� �$���
� �!� ��� �� �� �� ��� ����.
v FLOAT. � DOUBLE�� REAL� �����.
v NUMERIC. � DECIMAL� �����.
���� AS LOCATOR ��
� � ����� ��� ����� ���� � �� �� ��� �� ��.
�� �� � � ��� �� � ����. AS LOCATOR�� �
� � � �� ���� ����� ���� �����. LOB �� ��
��� � �� ��� LOB �� �� �� ���� AS LOCATOR�
��� � ����.
AS LOCATOR� SQL ������ �� ��� � ����.
���� ���� � � �
�� ���� � ������ ��� ��� ���. ������ ��� �
�� �� �� ��� ��� ��� ��������( ��� �� �� �
����� �� ��� ����). �� � �� ���� ��, �� ��
��� �� ��� ��� ������ � � ��� �� �����. � �
�� ���� ��� �� ��� �� ��� ��� ������ �� �
� ����.
CREATE PROCEDURE
510 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
����� � �
�� ��� ���� �� � ������ ��� (�� �� �� ��
� ��), ��� ��� �� ����. ��� ��� ������ �
�, ��� ���, ��� ���, �� �� � �� �� ������ �
� ��� � ����.
SPECIFIC�� ��� ���, ��� �� ��.
CREATE PROCEDURE
� 5 � �� 511
|
|
|
|
|
|
CREATE PROCEDURE(�)CREATE PROCEDURE(��)�� �� ��� �� ������ �����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v SYSPROCS ���� � � SYSPARMS ���� ��
– ��� INSERT ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
�� ����� ��� ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v SQL��� ��� �� �����
– �� ������ ��� �� *EXECUTE
– �� ����� �� �� �� ��� ��� �� *EXECUTE
v �� ��
�� �� �����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
CREATE PROCEDURE(��)
512 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
��
�� CREATE PROCEDURE procedure-name
( ),
parameter-declaration
option-list ��
parameter-declaration:IN
data-typeOUT parameter-name AS LOCATORINOUT
CREATE PROCEDURE(��)
� 5 � �� 513
|||||||||||||||||||||||||||||||||
||
||||||||||||||||||||||||||||||||||
||
|
option-list:
(1) EXTERNAL
EXTERNAL NAME external-program-name
PARAMETER STYLESQL
PARAMETER STYLEDB2GENERALDB2SQLGENERALGENERAL WITH NULLSJAVA
�
�DYNAMIC RESULT SETS 0
DYNAMIC RESULT SETS integer LANGUAGE CC++CLCOBOLCOBOLLEFORTRANJAVAPLIREXXRPGRPGLE
SPECIFIC specific-name�
�NOT DETERMINISTIC
DETERMINISTIC
MODIFIES SQL DATA
NO SQLCONTAINS SQLREADS SQL DATA
FENCED
NOT FENCED
PROGRAM TYPE MAIN�
�CALLED ON NULL INPUT NO DBINFO
DBINFO
OLD SAVEPOINT LEVEL
NEW SAVEPOINT LEVEL
COMMIT ON RETURN NO
COMMIT ON RETURN YES
�:
1 �� �� �� ��� ��� � ����.
CREATE PROCEDURE(��)
514 iSeries� DB2 UDB SQL ��� V5R2
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMPROWID
CREATE PROCEDURE(��)
� 5 � �� 515
|||||
�
procedure-name
������ �����. ��� ��, ��� ��, �� �� �� ��� �
� ������ ����� � ��.
SQL ��� � ������ ��� �� ��� ���� �� ��� ���
� �� ��.
��� ��� � ������ ���� �� ��� ���� �� ��. �
��� ��� ��� ������ �� �� �(*CURLIB)� �� ��.
(parameter-declaration,...)
������ �� �� � ��� �� �� �����. ������
��� �, ��, �� �� ��� � ����. ��� ����, �
��� ��� ��� � ����.
CREATE PROCEDURE� ��� � �� ��� ���� 255��.
GENERAL WITH NULLS� ��� ���� 254��. �� � SQL
� ��� 90 � ��� �� ��. ��� ���� �� �����
�� � ��� ��� ����� ��� ��� ���� ��
��.
IN ������� � ���� ��� �����. ��������
��� �� ��� �� � �� SQL ������� ��� ���
�.50
OUT
��� ������ �� �� ��� �����.
�� ��� �� ��� ��� � �� �� �� ��� ��
� ����.
INOUT
������ ��� � � �� ��� �����.
�� ��� �� ��� ��� � �� �� � � �� ���
��� ����.
parameter-name
��� �����. ��� ������ �� �� parameter-name� �
�� � ����.
data-type
��� �� �� �����.
50. � �� REXX�� �� ��� � ����� ���.
CREATE PROCEDURE(��)
516 iSeries� DB2 UDB SQL ��� V5R2
�� �� � �� ��� �� �� ��� ���. �� �� �
� ������ �� �� ����. �� �� �� ��� ��� 541
���� �CREATE TABLE� � SQL ��� � �� �����.
PARAMETER STYLE JAVA� ��� , �� ���(LOB) ��
�� �� ��� ��� ����.
CCSID� ��� ��� �� ��� �� �� CCSID� ��
��. CCSID� ��� ��� ������ ��� � �� ���� ��
� CCSID� �� CCSID� �� ��.
AS LOCATOR
� ��� �� �� ��� �� �� ������ �����. �
��� LOB �� ��� LOB �� �� ��� � �� ��
�� �� AS LOCATOR� ��� � ����.
LANGUAGE
�� ����� ��� �� �����. �� ����� REXX �����
�� � �� ��� ����.
LANGUAGE� ��� ��� LANGUAGE� ������ ��� � �� �
���� ��� ���� � ���� �� ��. ����� ��� ����
� ��� ��� � �� �� ��� �� ����� �� � ��
�, �� C� �� ��.
C �� ����� C� �� ��.
C++
�� ����� C++� �� ��.
CL
�� ����� CL� �� ��.
COBOL
�� ����� COBOL� �� ��.
COBOLLE
�� ����� ILE COBOL� �� ��.
FORTRAN
�� ����� FORTRAN�� �� ��.
JAVA
�� ����� JAVA� �� ��.
PLI
�� ����� PL/I� �� ��.
CREATE PROCEDURE(��)
� 5 � �� 517
|
|
REXX
�� ����� REXX �������.
RPG
�� ����� RPG� �� ��.
RPGLE
�� ����� ILE RPG� �� ��.
PARAMETER STYLE
��(��) �� ��� �� � ��� ��� �����.
SQL
CALL�� �� �� �� �� ��� ������ ���� ��
���. ��� �� ��� �� ��.
v �� N � ��� CREATE PROCEDURE�� ��� ��
��.
v ��� ����� ��� �� N � ��
v SQLSTATE� �� CHAR(5) �� ��. �� SQLSTATE� �
����� �� �� ��� �����. �� SQLSTATE� �� ��
��� �� �� ��.
���� �� ����� �� �� ��� SQLSTATE� ���
����� ��� �� �� � ����.
v �� ��� ������� �� VARCHAR(517) � ��.
v �� ��� �� VARCHAR(128) � ��.
v ��� ���� �� VARCHAR(70) �� ��.
��� ��� �� ��� ��� ��� �� �� � sqludf
� �����. �� �� C��� sqludf� QSYSINC/H� ����.
PARAMETER STYLE SQL� LANGUAGE JAVA� � ��� � �
���.
DB2GENERAL
������ Java ���� � ���� ��� �� �� ��� �
� � �����.
PARAMETER STYLE DB2GENERAL� LANGUAGE JAVA� � �
��� ���. JAVA�� ��� ��� �� ��� ��� ‘Developer
Kit for Java’ �� �����.
DB2SQL
CALL�� �� �� �� �� ��� ������ ���� ��
���. DB2SQL� �� �� ��� ��� ��� ��� � ��
� �� ��� SQL �� ���� �����.
CREATE PROCEDURE(��)
518 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
v DBINFO� CREATE PROCEDURE�� ��� dbinfo ��� �
� �� �
��� ��� �� ��� ��� ��� �� �� � sqludf
� �����. �� �� C��� sqludf� QSYSINC/H� ����.
PARAMETER STYLE DB2SQL� LANGUAGE JAVA� � ��� �
����.
GENERAL
������ CALL� ��� ��� �� � ������ �� �
� ����� �� � �����. �� ��� ����� ��� �� �
�� ����.
PARAMETER STYLE GENERAL� LANGUAGE JAVA� � ���
� ����.
GENERAL WITH NULLS
CALL�� �� �� �� �� ��� ������ ���� ��
���. � � �� ���� CALL�� � ��� �� ��� � �
���� �� ��. C� � int ���. ����� �
��� �� ��� ��� SQL ��� � �� �����.
PARAMETER STYLE GENERAL WITH NULLS� LANGUAGE JAVA
� � ��� � ����.
JAVA
������ Java �� SQLJ �� ��� ��� �� �� ���
�� � �����. INOUT � OUT ��� �� �� ���
� �� �� ��� �� ��. �� ���� � PARAMETER
STYLE JAVA ��� ��� Java ������ ���� ���.
PARAMETER STYLE JAVA� LANGUAGE JAVA� � ���� �
��. JAVA�� ��� ��� �� ��� ��� ‘Developer Kit for
Java’ �� �����.
�� � �� �� ��� ��� ��� ���� ����. ��
�� C��� �� VARCHAR �� CHAR ��� NUL �� �����
�� ��. ��� ��� SQL ��� � �� �����.
EXTERNAL NAME external-program-name
������ CALL�� �� ��� � ��� ����� �����. ����
�� ������ ��� � ��� �� ����� ���� ���. �� ��
� *SYS�� ������ ��� �� �� � ���� ������
��� � ����� �� � �� ��. ����� ILE �� �����
� � ����.
CREATE PROCEDURE(��)
� 5 � �� 519
|
|
|
|
|
|
|
��� ��� ���� �� ��. ��� ��� � !� ��� ��� �
��.
external-program-name� ��� ��� �� ������ ������� �
��� �� ��.
�� ����� ������ ��� �� ��� �� ������ ��� �
� ��� ���.
CONNECT, SET CONNECTION, RELEASE, DISCONNECT, COMMIT,
ROLLBACK � SET TRANSACTION�� ��� ���� �� �� ���
���� ��� ����. COMMIT � ROLLBACK�� ATOMIC SQL �
������ ��� ����.
DYNAMIC RESULT SETS integer
������� �� � �� �� ��� ���� �����. integer� 0�
� �� ��� ���. 0� ��� �� ��� �� ����. �� �
�� �� �� �� ��� �� � ���, ��� 100 � �������
���� ���� �� ��� �� � ����. SET RESULT SETS�� �
�� , �� �� �� � � � � SET RESULTS SET�� ��� �
� �� �� ���.
�� ����� ��� ��� � ����. �� ��� �� � ��� �
�� �� ��� �� ��� �� ��. �������� �� �
� 5 � FETCH NEXT ��� ����� �� ��� �� ��� 6�� �
�� �� ��.
�� ��� �� ��� �� �� � ��.
v ������ iSeries Access ���� ODBC �� JDBC ����, iSeries
�� �� JDBC �� SQL �� �� �������� �� ��.
v �� ����� ACTGRP(*NEW) �� ��� ����.
�� ��� �� ��� ��� 790 ���� �SET RESULT SETS�� ��
���.
SPECIFIC specific-name
������ �� � ��� �����. ��� ��� �� ����� ��
���� �� ��. ����� � ��� �� ��� �� �� ��
������ �� ��� ����� � ��. ��� �� ��� ��
�� ������� ���� ����. ��� ���� ������� �
��� ��� ���.
specific-name� ��� ��� ������� ��� ���. �� ��� �
� �� ������ �� �� �� ��� �� � ��� ��
� � ��� ��� �� �� ��.
CREATE PROCEDURE(��)
520 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DETERMINISTIC �� NOT DETERMINISTIC
������ ��� IN � INOUT ��� ��� ��� ������ ��� �
�� ��� ��� �����.
NOT DETERMINISTIC
������� �� ���� �� �� , ������ ��� IN �
INOUT ��� ��� ��� ������ �� ��� ��� ����.
DETERMINISTIC
������� �� ���� �� �� , ������ ��� IN �
INOUT ��� ��� ��� ������ ��� ��� �� ����.
CONTAINS SQL, READS SQL DATA, MODIFIES SQL DATA �� NO
SQL
����� �� � ������� ��� ���� ��� � �� SQL�(�
� )� �����. 913 ���� �� F �SQL�� ����� � �� ��
� �� � ��� � �� SQL� ���� �� ����� �����.
CONTAINS SQL
������� SQL ���� �� ��� �� SQL�� ��� � �
�� �����.
NO SQL
������ SQL�� ��� � ��� �����.
READS SQL DATA
������ SQL ���� ��� �� SQL�� �� � ��� �
����.
MODIFIES SQL DATA
������ ������ ��� �� ��� ��� �� SQL�� �
�� � ��� �����.
CALLED ON NULL INPUT
�� �� �(null)� ������ ���� �����.
FENCED �� NOT FENCED
� ��� �� ���� ��� � �� , iSeries� DB2 UDB� ��
��� ����.
PROGRAM TYPE MAIN
������ �� ��� �� � �����.
DBINFO
������ ���� �� ��� �� �� ��� ������ ���� �
CREATE PROCEDURE(��)
� 5 � �� 521
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� �����. � 46�� DBINFO ��� �� ��� �� ����. DBINFO
��� �� ��� ��� QSYSINC.H� � SQLUDF� ����.
DBINFO� PARAMETER STYLE DB2SQL� �� ��� � ����.
� 46. DBINFO ��
� � �� ��
��� ������ VARCHAR(128) �� ��� ��.
���� ID VARCHAR(128) ��� ���� ID.
CCSID �� INTEGER
INTEGER
INTEGER
INTEGER
CHAR(8)
��� CCSID ��. �� ��� CCSID� �����.
v SBCS CCSID
v DBCS CCSID
v Mixed CCSID
v � � CCSID � �� ��� CCSID ��
v ��
CCSID� CREATE PROCEDURE�� ��� ����� ��� ��
� ���� �� ��� ��� ��� CCSID� ���� ���
�� ��. � ���� CCSID� ��� CCSID� �� ��� ��
�� ��� � ���� �� ����� ��� �� ��� ���.
�� VARCHAR(128)
VARCHAR(128)
VARCHAR(128)
����� ��� ��� � ��.
�� � �� CHAR(8) ������ ���� �� �� � �� ��.
�$� INTEGER ��� �$� �.
OLD SAVEPOINT LEVEL �� NEW SAVEPOINT LEVEL
������� ��� �� � ��� ��� ��� ��� ��� �����.
OLD SAVEPOINT LEVEL
� ��� ��� ��� ����. SAVEPOINT�� OLD SAVEPOINT
LEVEL� ����� �� ����� ��� �� ����� ��� �
�� SAVEPOINT�� ������ ���� �� ��� ���� ��
��. ��� ��� ���.
NEW SAVEPOINT LEVEL
������� ��� �� � ��� ��� �� ��. ����� �� �
�� �� ���� � ������ ��� ���� � �� �� ���
���� �� ��. ���, ����� �� � ��� �� ��� ���
��� �� � �� ��� ��(�� ����� ��� �� �)� �� �
�� ��� ��� ����.
COMMIT ON RETURN
������ ���� �������� ���� ����� ���� ��
� �����.
CREATE PROCEDURE(��)
522 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NO
������ ���� ������ �� � ��� ��� ����. NO
� �����.
YES
������ ���� ������ ����� �� ��� �����.
������ ��� �� , ��� ��� ����.
�� ���� �� ������ ���� � ������� ��� ��
� ��.51
������ �� ��� �� , �� ��� ��� ��� �� ��
� ��� � �� WITH HOLD� ���� ���.
���� �
ILE �� ����� ��� �� ������ ��� � ������ �� ��
� ���� ���� ���� �����. *PGM ���� ��� � � ��
��� �� ����� ��� ����� � �� � ���� � ��.
�� �� ��� �� �� ������ �� ��� � ����.
v �� ���� �� �� SYSIBM, QSYS �� QSYS2���� � ��.
v CREATE PROCEDURE�� �� � �� ����� ��� ���.
v �� ����� ILE *PGM ����� ���.
v �� ������ ��� �� SQL�� ��� ���.
���� �� � ��� ������ � �� ��.
������ ��� ��� ��� ����.
v ������ ��� ��� � �� ��� ����� �� ��� ��
� � ��.
v �� ��� ��� ���� ��� � � ��� �� ��.
v ��� ������� ��� �� �� ������ ��� � ��� �
�� � ��.
51. �� ����� ACTGRP(*NEW)� ���� �� �� ��� ��� �� , � �� ��� �� ����� ��� ��� ��
� ��� �� ��.
CREATE PROCEDURE(��)
� 5 � �� 523
|
|
|
|
|
|
|
|
|
|
|
���� ��
DECLARE PROCEDURE�� ��� ������ �� ��� �� ������
���, ������� ��� ��� �� ��� �� �� CALL�� �� �
� ������ ��� DECLARE PROCEDURE�� �� CREATE
PROCEDURE�� � � �� ��.
CREATE PROCEDURE�� ������� ��� ��� �� ��� CALL�
� ��� �� � �� CALL��� �� ��.
�� ������ ��� �� ����� ��� � ��� � ���� ��
��. � �, ������ ��� ����� ��� � ���� ���� �
���� ACTGRP(*CALLER)� ���� ���.
Java ����� ��
Java ������ ��� � ���� ���� Developer Kit for Java (5722-JV1)
� ���� ���. ��� ��� -443� SQLCODE� �� CPDB521 ���
� �� ���� �� ��.
Java ������ ��� � ��� �� -443� SQLCODE� � ��. �
�� ��� ������ ��� ��� �� ���� �� ���� �� � ��
��.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� ��
� ��� ��� � ����.
v � � VARIANT� NOT VARIANT� NOT DETERMINISTIC�
DETERMINISTIC� ���� ��� � ����.
v � � NULL CALL� NOT NULL CALL� CALLED ON NULL INPUT �
RETURNS NULL ON NULL INPUT� ���� ��� � ����.
v � � SIMPLE CALL� GENERAL� ���� ��� � ����.
v DB2GENRL �� DB2GENERAL� ���� ��� � ����.
v DYNAMIC RESULT SET, RESULT SETS, RESULT SET� DYNAMIC
RESULT SETS� ���� ��� � ����.
�
COBOL ������ �� ����� PROC1� �����. CALL�� ��� �
����� ��� �� � LIB1� �� PGM1��� COBOL ����� �
� ��.
EXEC SQLCREATE PROCEDURE PROC1
(CHAR(10), CHAR(10))
CREATE PROCEDURE(��)
524 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EXTERNAL NAME LIB1.PGM1LANGUAGE COBOL GENERAL;
EXEC SQLCALL PROC1 (’FIRSTNAME ’,’LASTNAME ’);
CREATE PROCEDURE(��)
� 5 � �� 525
CREATE PROCEDURE(SQL)The CREATE PROCEDURE (SQL)�� �� ���� SQL ������ ���
��.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v SYSPROCS ���� � � SYSPARMS ���� ��
– ��� INSERT ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� �� ��� ��
– ���� ��(CRTPGM) ��� *USE
– ������ ��� �� ��� *EXECUTE � *ADD
v �� ��
SQL ��� ���, ������ ��� �� �� �� ��� �� ���
���� �� , � ��� ��� ���� ID� �� ��� ����
ID� �� ��� ��� �� � �� �� ���.
v � ��� �� ��� ���� �� ��� �� *ADD
v �� ��
�� �� ����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
CREATE PROCEDURE(SQL)
526 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
��
�� CREATE PROCEDURE procedure-name
( ),
parameter-declaration
�
� LANGUAGE SQL option-list SQL-routine-bodySET OPTION-statement
��
parameter-declaration:IN
parameter-name data-typeOUTINOUT
option-list:(1) DYNAMIC RESULT SETS 0
DYNAMIC RESULT SETS integer SPECIFIC specific-name
NOT DETERMINISTIC
DETERMINISTIC�
�MODIFIES SQL DATA
CONTAINS SQLREADS SQL DATA
FENCED
NOT FENCED
CALLED ON NULL INPUT OLD SAVEPOINT LEVEL
NEW SAVEPOINT LEVEL�
�COMMIT ON RETURN NO
COMMIT ON RETURN YES
�:
1 �� �� �� ��� ��� � ����.
CREATE PROCEDURE(SQL)
� 5 � �� 527
|
|
|
|
|
SQL-routine-body:SQL-control-statementALTER-statementCOMMENT-statementCOMMIT-statementCONNECT-statementCREATE ALIAS-statementCREATE DISTINCT TYPE-statementCREATE FUNCTION (External Scalar)-statementCREATE FUNCTION (External Table)-statementCREATE FUNCTION (Sourced)-statementCREATE INDEX-statementCREATE PROCEDURE (External)-statementCREATE SCHEMA-statementCREATE TABLE-statementCREATE VIEW-statementDECLARE GLOBAL TEMPORARY TABLE-statementDELETE-statementDISCONNECT-statementDROP-statementEXECUTE IMMEDIATE-statementGRANT-statementINSERT-statementLABEL-statementLOCK TABLE-statementRELEASE-statementRELEASE SAVEPOINT-statementRENAME-statementREVOKE-statementROLLBACK-statementSAVEPOINT-statementSELECT INTO-statementSET CONNECTION-statementSET PATH-statementSET SCHEMA-statementSET RESULT SETS-statementSET TRANSACTION-statementUPDATE-statementVALUES INTO-statement
CREATE PROCEDURE(SQL)
528 iSeries� DB2 UDB SQL ��� V5R2
|||||||||||
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP( 200 )
DATALINK( integer ) CCSID integer
ROWID
CREATE PROCEDURE(SQL)
� 5 � �� 529
|||||
�
procedure-name
������ �����. ��� ��, ��� ��, �� �� �� ��� �
� ������ ����� � ��.
SQL ��� � ������ ��� �� ��� ���� �� ��� ���
� �� ��.
��� ��� � ������ ���� �� ��� ���� �� ��. �
��� ��� ��� ������ �� �� �(*CURLIB)� �� ��. �
� �� �� ���, ������ QGPL� �� ��.
(parameter-declaration,...)
������ �� �� � ��� �� �� �����. ������
��� �, ��, �� �� ��� � ����. ��� ����, �
��� ��� ��� � ����.
SQL ������� ��� � �� ��� ���� 253��.
IN ������� � ���� ��� �����. ��������
��� �� ��� �� � �� SQL ������� ��� ���
�.
OUT
��� ������ �� �� ��� �����. ������
�� ��� ��� ��� ��� � ��.
INOUT
������ ��� � � �� ��� �����.
parameter-name
��� �����. ��� ������ �� �� parameter-name� �
�� � ����.
data-type
��� �� �� �����.
�� �� � �� ��� �� �� ��� ���. �� �� �
� ��� ��� 541 ���� �CREATE TABLE� � SQL ���
� �� �����.
CCSID� ��� ��� �� ��� �� �� CCSID� ��
��. CCSID� ��� ��� ������ ��� � �� ���� ��
� CCSID� �� CCSID� �� ��.
LANGUAGE SQL
��� SQL ������� �����.
CREATE PROCEDURE(SQL)
530 iSeries� DB2 UDB SQL ��� V5R2
DYNAMIC RESULT SETS integer
������� �� � �� �� ��� ���� �����. integer� 0�
� �� ��� ���. 0� ��� �� ��� �� ����. ����
�� �� �� �� ��� �� � ���, ��� 100 � �������
���� ���� �� ��� �� � ����. SET RESULT SETS�� �
�� , �� �� �� � � � � SET RESULTS SET�� ��� �
� �� �� ���.
�� ����� ��� ��� � ����. �� ��� �� � ��� �
�� �� ��� �� ��� �� ��. �������� �� �
� 5 � FETCH NEXT ��� ����� �� ��� �� ��� 6�� �
�� �� ��.
�� ��� ��� �� �� � ��.
v ������ iSeries Access ���� ODBC �� JDBC ����, iSeries
�� �� JDBC �� SQL �� �� �������� �� ��.
�� ��� �� ��� ��� 790 ���� �SET RESULT SETS�� ��
���.
SPECIFIC specific-name
������ �� � ��� �����. ��� ��� �� ����� ��
���� �� ��. ����� � ��� �� ��� �� �� ��
������ �� ��� ����� � ��. ��� �� ��� ��
�� ������� ���� ����. ��� ���� ������� �
��� ��� ���.
specific-name� ��� ��� ������� ��� ���. �� ��� �
� �� ������ �� �� �� ��� �� � ��� ��
� � ��� ��� �� �� ��.
DETERMINISTIC �� NOT DETERMINISTIC
������ ��� IN � INOUT ��� ��� ��� ��� ��� �
�� ��� �����.
NOT DETERMINISTIC
������� �� ���� �� �� , ������ ��� IN �
INOUT ��� ��� ��� ������ �� ��� ��� ����.
DETERMINISTIC
������� �� ���� �� �� , ������ ��� IN �
INOUT ��� ��� ��� ������ ��� ��� �� ����.
CONTAINS SQL, READS SQL DATA �� MODIFIES SQL DATA
����� �� � ������� ��� ���� ��� � �� SQL�(�
CREATE PROCEDURE(SQL)
� 5 � �� 531
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
� )� �����. 913 ���� �� F �SQL�� ����� � �� ��
� �� � ��� � �� SQL� ���� �� ����� �����.
CONTAINS SQL
������� SQL ���� �� ��� �� SQL�� ��� � �
�� �����.
READS SQL DATA
������ SQL ���� ��� �� SQL�� �� � ��� �
����.
MODIFIES SQL DATA
������ ������ ��� �� ��� ��� �� SQL�� �
�� � ��� �����.
CALLED ON NULL INPUT
�� �� �(null)� ������ ���� �����.
FENCED �� NOT FENCED
� ��� �� ���� ��� � �� , iSeries� DB2 UDB� ��
��� ����.
SET OPTION�
����� ��� ��� ��� �����. �� �� ���� � � �� �
����� ���� �� ��� ��.
SET OPTION DBGVIEW = *STMT
��� ��� 772 ���� �SET OPTION�� �����.
�� CLOSQLCSR, CNULRQD, DFTRDBCOL, DYNDFTCOL � NAMING�
CREATE PROCEDURE��� ��� ����.
OLD SAVEPOINT LEVEL �� NEW SAVEPOINT LEVEL
������� ��� �� � ��� ��� ��� ��� ��� �����.
OLD SAVEPOINT LEVEL
� ��� ��� ��� ����. SAVEPOINT�� OLD SAVEPOINT
LEVEL� ����� �� ����� ��� �� ����� ��� �
�� SAVEPOINT�� ������ ���� �� ��� ���� ��
��. ��� ��� ���.
NEW SAVEPOINT LEVEL
������� ��� �� � ��� ��� �� ��. ����� �� �
�� �� ���� � ������ ��� ���� � �� �� ���
���� �� ��. ���, ����� �� � ��� �� ��� ���
��� �� � �� ��� ��(�� ����� ��� �� �)� �� �
�� ��� ��� ����.
CREATE PROCEDURE(SQL)
532 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
COMMIT ON RETURN
������ ���� �������� ���� ����� ���� ��
� �����.
NO
������ ���� ������ �� � ��� ��� ����. NO
� �����.
YES
������ ���� ������ ����� �� ��� �����.
������ ��� �� , ��� ��� ����.
�� ���� �� ������ ���� � ������ ��� ��
� ��� ��.
������ �� ��� �� , �� ��� ��� ��� �� ��
� ��� � �� WITH HOLD� ���� ���.
SQL-routine-body
�� ��� � �� SQL�� �����. SQL ����� ��� ��
��� ��� 821 ���� � 6 � �SQL ����� �����.
CONNECT, SET CONNECTION, RELEASE, DISCONNECT, COMMIT,
ROLLBACK � SET TRANSACTION�� ��� ���� �� �� ���
���� ��� ����. COMMIT � ROLLBACK�� ATOMIC SQL �
������ ��� ����.
�� ���: SQL�� ��� , ������ ��� ������ ��� �
��� ��� ��� �� ��� �����. ��� ��� ������ �
�� ��� ��� ��� �� ��� ����� ��� �����.
����� ���, ������ ��� ��� ��� ��� �� ��� �
���� ��� �����.
����� ��: SQL ��� ��� ������ *PUBLIC� �� *EXCLUDE
��� ���� �� ��. ����� ��� ���� �� ��(CRTAUT)
��� �� ���� ������ *PUBLIC� �� ���� �� ��.
������ ��� �� ���� ����(GRPPRF � �) �� ��� ��
�(GRPAUT � �), � �� ���� ������ �� ��� ����.
���� �
SQL ������ ��� SQL� � SQL�� � C �� ��� �� �� �
� �� �� �����. ���� ���� GRTPGM ��� �� ��. �
CREATE PROCEDURE(SQL)
� 5 � �� 533
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
���� ��� � ��� SQL ��� CREATE PROCEDURE�� ��� �
�� ����. ����� ACTGRP(*CALLER)� ��� �� ��.
SQL ������ ��� � ������ �� ��� ���� ���� ��
��. *PGM ���� ��� � � ����� �� ����� ��� ���
�� � �� � ���� � ��.
������ ��� ��� ��� ����.
v ������ ��� ��� � �� ��� ����� �� ��� ��
� � ��.
v �� ��� ��� ���� ��� � � ��� �� ��.
v ��� ������� ��� �� �� ������ ��� � ��� �
�� � ��.
������� �� ������ �� �� �� �� ��� ���� ���
���� �� ��. ������� �� ����� ��� � ��� �� �
�. �� ��� �� �� � ��� �� ��� ��� �� ��. �� ��
� �� ���� ����� �� ��� ���� ��� �� � ��� �
� ��. � ��� ��� � ��� ��� ��� �� �� ��.
���� ��
DECLARE PROCEDURE�� ��� ������ �� ��� �� ������
���, ������� ��� ��� �� ��� �� �� CALL�� �� �
� ������ ��� DECLARE PROCEDURE�� �� CREATE
PROCEDURE�� � � �� ��.
CREATE PROCEDURE�� ������� ��� ��� �� ��� CALL�
� ��� �� � �� CALL��� �� ��.
SQL ������ SQL CALL�� ��� ���� ���. ��� � SQL �
����� ��� ����� � ���� �� ��.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� ��
� ��� ��� � ����.
v � � VARIANT� NOT VARIANT� NOT DETERMINISTIC�
DETERMINISTIC� ���� ��� � ����.
v � � NULL CALL� NOT NULL CALL� CALLED ON NULL INPUT �
RETURNS NULL ON NULL INPUT� ���� ��� � ����.
v DYNAMIC RESULT SET, RESULT SETS, RESULT SET� DYNAMIC
RESULT SETS� ���� ��� � ����.
CREATE PROCEDURE(SQL)
534 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
�
SQL ������ �� ��� �����. ������ ��� �� ��� �
��� � ��� ����. �� ���� ����� ���� �� ��.
v �� ��� ��� �� �����.
v �� �� ��� � ��� ����.
EXEC SQLCREATE PROCEDURE UPDATE_SALARY_1
(IN EMPLOYEE_NUMBER CHAR(10),IN RATE DECIMAL(6,2))
LANGUAGE SQLMODIFIES SQL DATAUPDATE EMPSET SALARY = SALARY + RATEWHERE EMPNO = EMPLOYEE_NUMBER
CREATE PROCEDURE(SQL)
� 5 � �� 535
CREATE SCHEMACREATE SCHEMA�� �� ���� ���� ��� ����� �, �, ��,
�� � �� �� �����. �� �� � �, �, ��, ��, � ��
�� ���� ��� ��� � ����. �, � � �� � ��� ����
� ��� � ����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v �� CL �� �� *USE ��� ��
– �� � ��(CRTLIB)
– WITH DATA DICTIONARY� ��� �� �� ��(CRTDTADCT)
v �� ��
��� ���� ID� �� ��� ��� �� � �� �� ���.
v CREATE SCHEMA(��� ����)�� � �� ��� � SQL�
v �� ��
AUTHORIZATION�� ��� ��� ���� ID� �� ��� ��� �
� � �� �� ���.
v ���� ��� ��� ��� ���� �� ��� �� *ADD
v �� ��
��
�� CREATE SCHEMA schema-nameAUTHORIZATION authorization-name
�
�IN ASP integer
ASP-nameWITH DATA DICTIONARY
�
CREATE SCHEMA
536 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|||||||||||||||||||||||||||||
||
�
COMMENT statementCREATE ALIAS statementCREATE DISTINCT TYPE statementCREATE INDEX statementCREATE TABLE statementCREATE VIEW statementGRANT(Table Privileges) statementGRANT(Distinct Type Privileges) statement
(1)LABEL statement
��
�:
1 ���, �����, � � ��� �� � �� CREATE SCHEMA�
�� ��� ����.
�
schema-name
���(schema)� ����� . � ��� ��� ���� ����� .
schema-name� ��� ��� ���� ID� ��� ���� ID��.
��� �� ��� �� ��� ���� ��� ����� � ��. ����
��� ��� ��� ��� ��� ��� �� �� ��� ���
��.
���� ��� �� ���� ����(GRPPRF � �) �� ��� ��
�(GRPAUT � �), � �� ���� ���� �� ��� ����.
authorization-name
��� ���� ID� �����. ���� ��� schema-name��. ���
�� ��� �� ��� ���� ��� ����� � ��.
IN ASP integer
���� ��� �� ���� �(ASP)� �����. ��� 1� 32 ��� �
��� ���. 1� ��� ���� ��� ASP� �� ��. �� ���
1� ASP� �� ��.
IN ASP ASP-name
���� ��� �� ���� �(ASP)� �����. ��� �� ��� ��
�� ���� �(pool)� ���� ���.
WITH DATA DICTIONARY
� �� ��� IDDU �� ��� ���� �� ��.
�� ��� ��� ��� ����� LOB� DATALINK � �� ��
� � ����.
CREATE SCHEMA
� 5 � �� 537
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
COMMENT �
�, � �� � ���� ��� �� ��� �����. ���� ��
�� ��� ����. 408 ���� �COMMENT�� COMMENT�� ��
���.
CREATE ALIAS�
���� ��� �����. 432 ���� CREATE ALIAS�� �����.
CREATE DISTINCT TYPE�
���� ��� �� �� �� �����. 435 ���� �CREATE
DISTINCT TYPE�� CREATE DISTINCT TYPE�� �����.
CREATE INDEX�
���� ��� �����. 506 ���� CREATE INDEX�� �����.
CREATE TABLE�
���� �� �����. 541 ���� CREATE INDEX�� �����.
CREATE VIEW�
���� �� �����. 590 ���� CREATE VIEW�� ����� .
GRANT(� ��)�
���� �� �� �� ��� �����. 698 ���� �GRANT(� ��)��
GRANT�� �����.
GRANT(��� �� ��)�
���� �� �� �� ��� �����. 684 ���� �GRANT(��
� ��)�� GRANT�� �����.
LABEL �
���� �, � �� � ���� ��� �� � ��� �����. ��
�� �� �� � ��� ����. 717 ���� LABEL�� �����.
��� ��: ���� ��� �� �� ��.
v �� �: ���� ��� �� � ��� ���� ���� �� � �
���.
v ����: ����� ���� �, �, �� � ���� ��� ���. ���
�� � ��� �� , WITH DATA DICTIONARY� ��� IDDU �
� ���� �� ��. ��� ��� SQL ��� � �� �����.
v ��� �� ���: �� QSQJRN� �� ��� QSQJRN0001� ���� ��
�, ��� ���� ��� �� �� �� ��� � �� ��. ���
��� iSeries Information Center� �� �� �� �����.
CREATE SCHEMA
538 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��� �� �� ��� ��� �� ��� �� ���� �� ��. ��� �
� �� ��� ��� DB2 Multisystem �� �����.
��� ���: ��� ���� ��� ��� �� �� ��.
v AUTHORIZATION�� ��� ��� ���� ID� ��� �� ��� �
� ���� ����.
v AUTHORIZATION�� ��� �� SQL ��� ��� ��� �� ��
� �� ���� ��� schema-name� �� ��� �� ��� ���
��(� ��� �� ��� ���� �� ).
v ��� ��� ��� �� ��� �� ���� ��� ��� ���
��� ��� ��� �� �� ��� �����.
��� ��: SQL ��� ��� ���� *PUBLIC� �� *EXCLUDE �
�� ���� ��� �� � �� �� �� CRTAUT(*EXCLUDE)� �
� �� ��. ��� ���� �� ��� �� �� �����. �� �
��� ���� �� ��� ��� ��� ��� �� ��(GRTOBJAUT)
CL �� ��� ��� ���� ��� ��� � ����.
����� ��� ��� � �� ���� ��� � QCRTAUT� �� ��
� *PUBLIC� ��� ��� ���� ��� �� �� CRTAUT(*SYSVAL)
� �� ��. ��� ��� �� ��� ��� iSeries �� ��� � SQL
��� � �� �����.
���� ��� �� ���� ����(GRPPRF � �) �� ��� ���
(GRPAUT � �), � �� ���� ���� �� ��� ����.
����: CREATE TABLE, CREATE INDEX, CREATE ALIAS, CREATE
DISTINCT TYPE �� CREATE VIEW�� ��� �, ��, ��, �� �
�� �� �� ��� ��� ���, � ��� ��� ��� ��� ��� ��
� ��� ��� ��� ���. ���(schema) �� ��� ��� �� ��
� ��� ����� �� ��� � ����. SQL�� ��� �� �, ��, �
�, �� � �� � ��� ��� ��� ���� ����� �� ��.
�� ��� SQL� ���� ��� ����.
SQL� ��:CREATE SCHEMA�� � CREATE TABLE, CREATE INDEX,
CREATE DISTINCT TYPE, CREATE VIEW, COMMENT, LABEL �� GRANT
�� �� ��� 65536��.
��� ���: COLLECTION � �� ��� ��� SCHEMA� ���� �
�� ��� � ����. � � �� ���� ��� � ����.
CREATE SCHEMA
� 5 � �� 539
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�
� 1�� �� �� �� ��� �� ��� �� ���� �����. ��� ���
JONES� ���(schema)� �� ��� �����.
CREATE SCHEMA INVENTORY
CREATE TABLE PART (PARTNO SMALLINT NOT NULL,DESCR VARCHAR(24),QUANTITY INT)
CREATE INDEX PARTIND ON PART (PARTNO)
GRANT ALL ON PART TO JONES
� 2SMITH� ���� ID� ��� ���� �����. �� �� � �� ��
�� �� �� �����.
CREATE SCHEMA AUTHORIZATION SMITH
CREATE TABLE SMITH.STUDENT (STUDNBR SMALLINT NOT NULL UNIQUE,LASTNAME CHAR(20),FIRSTNAME CHAR(20),ADDRESS CHAR(50))
COMMENT ON STUDENT (STUDNBR IS ’THIS IS A UNIQUE ID#’)
CREATE SCHEMA
540 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|||||||||
|
|
|
||||||||
|
CREATE TABLECREATE TABLE�� �� ���� �� �����. ���� � ��� � �
� � �� �� ���. ���� 1� �� �� �� �� �� � �
����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� �� ��� ��
– �� � ��(CRTPF) �� �� *USE
– �� ��� �� �� �� *EXECUTE � *ADD
– ��� �� *OBJOPR � *OBJMGT
– �� ��� �� �� �� ��� ��� �� SQL ���� ��
��� �� *CHANGE
v �� ��
SQL ��� ���, �� ��� �� �� �� ��� �� ��� ��
�� �� , � ��� ��� ���� ID� �� ��� ���� ID�
�� ��� ��� �� � �� �� ���.
v � ��� �� ��� ���� �� ��� �� *ADD
v �� ��
�� �� ���� ��� ���� ID� �� ��� ��� �� �� �
�� � �� �� �� ���.
v �� �� ��� �� ���� REFERENCES ��
v ��� � �� � � �� REFERENCES ��
v �� ��
v �� ��
��� ���� ID� �� � �� �� � �� �� REFERENCES ���
����.
v �� ����.
v �� �� REFERENCES ��� �������.
v �� �� *OBJREF�� *OBJMGT� ��� ��� �������.
CREATE TABLE
� 5 � �� 541
��� ���� ID� �� � �� �� � �� � �� REFERENCES �
�� ����.
v �� ����.
v � �� REFERENCES ��� �������.
v � �� *OBJREF� ��� ��� ����� �� �� *OBJMGT� ��
� ��� �������.
LIKE� �� AS ���� ��� ��� ���� ID� �� ��� � �
� ��� �� �� �� ��� �� � �� �� ���.
v �� �� �� SELECT ��
v �� �� �� ��
v �� ��
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ����.
v �� �� SELECT ��� �������.
v �� �� *OBJOPR � *READ ��� ���, � �� �� �� �����
�� �� �� �� �� *READ ��� ��� �������. �, � ��
� ��� �� �� � ��� �� ��� �� � ��� ��� �� ��
� �
�� �� ����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
CREATE TABLE
542 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
��
��
,
CREATE TABLE table-name ( column-definition )LIKE table-name
view-name copy-optionsunique-constraintreferential-constraintcheck-constraint
LIKE table-nameview-name copy-options
as-subquery-clause
�
�nodegroup-clause
��
column-definition:column-name
COLUMNFOR system-column-name
data-type �
�
default-clauseGENERATED ALWAYS (1)
GENERATED BY DEFAULT identity-options(2)
datalink-optionsNOT NULLcolumn-constraint
�:
1 GENERATED� � ROWID �� �(�� ROWID �� �� ��� � �)�� ID
� �� ��� � ����.
2 datalink-options� DATALINK� DATALINK� ��� � distinct-type� ���� ��� �
����.
CREATE TABLE
� 5 � �� 543
||||||
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATACHARACTER VARYING ( integer ) FOR SBCS DATACHAR allocate-clause FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) allocate-clause FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC allocate-clause
( 1M )DBCLOB
( integer ) allocate-clauseKMG( 1M )
BLOBBINARY LARGE OBJECT ( integer ) allocate-clause
KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP( 200 )
DATALINK( integer ) allocate-clause CCSID integer
ROWID
allocate�:ALLOCATE (integer)
CREATE TABLE
544 iSeries� DB2 UDB SQL ��� V5R2
|||||
default�:WITH
DEFAULTconstantUSERNULLCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMP
(1)cast-function-name ( constant )
USERCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMP
identity-options:
AS IDENTITY,
1 (2)( START WITH numeric-constant )
1INCREMENT BY numeric-constant
NO MINVALUEMINVALUE numeric-constantNO MAXVALUEMAXVALUE numeric-constantNO CYCLECYCLECACHE 20NO CACHECACHE integerNO ORDERORDER
�:
1 � ��� DEFAULT �� �� ��� ��� � �� ��� � ����.
2 � �� � �� �� ��.
CREATE TABLE
� 5 � �� 545
||||||||||||||||||||||||||||||||
datalink-options:LINKTYPE URL NO LINK CONTROL
FILE LINK CONTROL file-link-optionsMODE DB2OPTIONS
file-link-options:
(1)
INTEGRITY ALLREAD PERMISSION FSREAD PERMISSION DBWRITE PERMISSION FSWRITE PERMISSION BLOCKED
RECOVERY NOON UNLINK RESTOREON UNLINK DELETE
copy-options:
COLUMN ATTRIBUTES (2)
EXCLUDING IDENTITYINCLUDING COLUMN
DEFAULTSUSING TYPE DEFAULTS
as-subquery-clause:
,
( column-name )COLUMN
FOR system-column-name
�
� AS ( select-statement ) DEFINITION ONLYWITH NO DATA copy-optionsWITH DATA
�:
1 �� �� � � �� ����� ���� ���. � � ��� ������.
2 � �� � �� �� ��.
CREATE TABLE
546 iSeries� DB2 UDB SQL ��� V5R2
||||||||||
column-constraint:PRIMARY KEY
CONSTRAINT constraint-name UNIQUEreferences-clauseCHECK ( check-condition )
unique-constraint:
CONSTRAINT constraint-namePRIMARY KEYUNIQUE
(
,
column-name )
referential-constraint:
CONSTRAINT constraint-name
(1)FOREIGN KEY
,
( column-name ) references-clause
references�:REFERENCES table-name
,
( column-name )
�
�ON DELETE NO ACTION ON UPDATE NO ACTION (2)
ON DELETE RESTRICT ON UPDATE RESTRICTCASCADESET NULLSET DEFAULT
check-constraint:
CONSTRAINT constraint-nameCHECK ( check-condition )
nodegroup�:
IN nodegroup-name,
USING HASHINGPARTITIONING KEY ( column-name )
�:
1 �� ���� ��� � constraint-name(CONSTRAINT � �� ��)� FOREIGN KEY ��
� ��� � ����.
2 ON DELETE� ON UPDATE�� ��� �� �� ��� � ����.
CREATE TABLE
� 5 � �� 547
�
table-name
�� �����. ��� �� ��� ���� � ��� �� �� ���
�� ��, �, �, �� �� �� �� � ����.
SQL�� ��� �� ��� �� ��� ���� �� ��� ���� ��
��.
����� ��� �� ���� �� ��� ���� �� ��. ��� �
�� �� �� �� �(*CURLIB)� �� ��. �� �� �� ���, �
� QGPL� �� ��.
column-definition
� �� �����. � �� 8000 �� ��� ��� ���.
� ��� � �� � ��� 32766 �� ��� ��, VARCHAR��
VARGRAPHIC � ��� �� 32740 �� �� � ��. �� LOB� ��
� � � �� �� � ��� 15,728,640�� ��� � ��. �� ��
�� � �� �� �� ��� 569 ���� ��� �����.
column-name
�� � �����. column-name� ����� �� �� � ��� �
� system-column-name� �� �� ��� ��� � ����.
FOR COLUMN system-column-name
� �� OS/400 ��� �����. �� � ��� �� column-name�
�� �� ��� ��� � ����.
system-column-name� ��� �� column-name� ��
system-column-name� ���, ��� ��� �� ��. ��� ���
��� ��� �� ��� ��� 572 ���� � �� �� ���� ��
���.
data-type
� �� �� �����.
���
���� ��� �� �����.
SMALLINT
�� ���
INTEGER �� INT
� ���
BIGINT
� ���
CREATE TABLE
548 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DECIMAL(integer,integer) �� DEC(integer,integer)
DECIMAL(integer) �� DEC(integer)
DECIMAL �� DEC
� ���. � �� ��� �� ��� �, � ����, � � 1�� 31��
��. �� ��� �� ����(��� ���� ���). � � 0�
� �� �������.
DECIMAL(p,0)� � DECIMAL(p)�, ��� DECIMAL(5,0)� �
DECIMAL� ��� � ����.
NUMERIC(integer,integer)
NUMERIC(integer)
NUMERIC
�(zone) ���. � �� ��� �� ��� �, � ���� � � 1��
31����. �� ��� �� ����(��� ���� ���). �
� 0�� �� �������.
NUMERIC(p,0)� � NUMERIC(p), NUMERIC(5,0)� �
NUMERIC� ��� � ����.
FLOAT
���� �� ��� ��
FLOAT(integer)
��� �� �� ���� �� ���� �� ��� �� . �� ��
1�� 53��� � ��� ���. 1�� 24��� �� ����, 25�� 53
��� �� ����� �����. ���� 53��.
REAL
���� �� ����
DOUBLE PRECISION �� DOUBLE
���� �� ����
CHARACTER(integer) �� CHAR(integer)
CHARACTER �� CHAR
integer ��� �� �� �� ���� . ��� � � 1�� 32766�
���(�(null)� ��� 32765). FOR MIXED DATA� ��� �
� ��� �� �� ID(CCSID)� ��� � � 4�� 32766����
(�(null)� ��� 32765). �� ��� ��� 1 ��� ��� �
� ��.
CHARACTER VARYING (integer) �� CHAR VARYING (integer) ��
VARCHAR(integer )
�� �� integer� �� �� �� ���� � � 1�� 32740��
CREATE TABLE
� 5 � �� 549
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��(�(null)� ��� 32739). FOR MIXED DATA� ��� �
� ��� �� �� ID(CCSID)� ��� � � 4�� 32740����
(�(null)� ��� 32739).
CLOB(integer[K|M|G]) �� CHAR LARGE OBJECT(integer[K|M|G]) �
� CHARACTER LARGE OBJECT(integer[K|M|G])
CLOB �� CHAR LARGE OBJECT �� CHARACTER LARGE
OBJECT
��� �� ��� �� � ��� ���� . �� ��� � � 1�
� 2 147 483 647���� ���. FOR MIXED DATA �� �� ��
CCSID� ��� � � 4�� 2 147 483 647����. �� ���
��� 1�� ��(MB)� ��� �� ��. CLOB� ��� ��� �
�� � ����.
integer
��� ���� 2 147 483 647��. ���� �� ��� integer
��.
integer K
��� ���� 2 097 152��. ���� �� ��� integer� 1,024
���.
integer M
��� ���� 2 048��. ���� �� ��� integer� 1,048,576
���.
integer G
��� ���� 2��. ���� �� ��� integer� 1,073,741,824
���.
GRAPHIC(integer)
GRAPHIC
integer ��� �� �� � ���� � � � 1�� 16383��
��(�(null)� ��� 16382). �� ��� ��� 1 ��� ��
� �� ��.
VARGRAPHIC(integer) �� GRAPHIC VARYING(integer)
integer� �� ��� �� �� �� � ���� � � 1��
16370����(�(null)� ��� 16369).
DBCLOB(integer[K|M|G])
DBCLOB
��� �� ��� 2 �� �� � ��� ���� .
52.� ��� �� ���� ��� � �� ��. � VARCHAR(integer) �� VARGRAPHIC(integer)� ��� �� �� ��.
CREATE TABLE
550 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� ��� � � 1�� 1 073 741 823���� ���. �� ��� ��
� 1�� ��(MB)� ��� �� ��. DBCLOB� ��� ��� ��
� � ����.
integer
��� ���� 1 073 741 823��. ���� �� ��� integer
��.
integer K
��� ���� 1 028 576��. ���� �� ��� integer� 1,024
���.
integer M
��� ���� 1 024��. ���� �� ��� integer� 1,048,576
���.
integer G
��� ���� 1��. ���� �� ��� integer� 1,073,741,824
���.
BLOB(integer[K|M|G]) �� BINARY LARGE OBJECT(integer[K|M|G])
BLOB �� BINARY LARGE OBJECT
��� �� ��� 2� � ��� ���� . �� ��� � � 1�
� 2 147 483 647���� ���. �� ��� ��� 1�� ��(MB)
� ��� �� ��. BLOB� ��� ���� ��� � ����.
integer
��� ���� 2 147 483 647��. ���� �� ��� integer
��.
integer K
��� ���� 2 097 152��. ���� �� ��� integer� 1,024
���.
integer M
��� ���� 2 048��. ���� �� ��� integer� 1,048,576
���.
integer G
��� ���� 2��. ���� �� ��� integer� 1,073,741,824
���.
DATE
��
TIME
���
CREATE TABLE
� 5 � �� 551
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TIMESTAMP
�����
DATALINK(integer) �� DATALINK
��� �� ��� �� ��� . �� ��� � � 1�� 32717���
� ���. FOR MIXED DATA �� �� �� CCSID� ��� �
� 4�� 32717����. ��� ��� �� � �� URL� DataLink
�� � � � ��� ���� ���. �� ��� ��� 200� �
�� �� ��. DATALINK� ��� ��� ��� � ����.
DATALINK �� �� ��� � ��� ���� ���. DLVALUE
�� DATALINK �� �����. �� �� DATALINK ��� �
� ��� � ��� � ����.
v DLCOMMENT
v DLLINKTYPE
v DLURLCOMPLETE
v DLURLPATH
v DLURLPATHONLY
v DLURLSCHEME
v DLURLSERVER
�� ��� ��� ��� � � ����. ��� 1� �, �� � �� �
��� � � � ����.
ROWID
� ID� . ��� � �� ROWID �� �� ��.
distinct-type-name
� �� �� �� �(��� �� �� �)�� �����. � �
�� ���, ���� �� �� �� �� �� ��� ���, ���
��. �� � ��� ���� �� ��� �� � ��� SQL
�� ���� ��� �� ��.
ALLOCATE(integer)
VARCHAR, VARGRAPHIC � LOB �� �� � �� � �� ��
� ��� �����. ��� � �� �� �� ��� �� �� ��
�� �� ��� �� ��. ��� � �� � ��� �� �� ��
�� �� ��� �� , ��� � ���� /�� ��� ��� �
��. ��� �� � � 1��, �� � �� �� ��� �� ���� �
� ������. �� � �� ��� �� ��� ��� 569 ���� ��
� � ���� �����. FOR MIXED� ��� �� ��� �� ��
ID(CCSID)� ��� � � 4�� ���� �� ������. ��� �
CREATE TABLE
552 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
� ��� ��� 0� ��� ��� �� ��. VARGRAPHIC� �
�� DBCS �� UCS-2 �� ���. ��� ��� �� �� ���
ALLOCATE ��� ��� �� ���� ��� ALLOCATE ��� ��
� �� ��� �� ��.
FOR BIT DATA
� �� ���� �� ��� ��� ��, �� ��� ��� ���
��. FOR BIT DATA� CHARACTER �� VARCHAR ����
����. FOR BIT DATA � ��� �� �� ID(CCSID)� 65535
��. FOR BIT DATA� CLOB ��� ��� ����.
FOR SBCS DATA
� �� SBCS(1 �� �� ��) ��� �� ��� �����. �� �
�� � �� ��� �� ��� ��� �� �� ID(CCSID)� DBCS�
� � �� � ��� 4�� ���, FOR SBCS DATA� CHAR,
VARCHAR � CLOB � �� �����. FOR SBCS DATA�
CHARACTER, VARCHAR �� CLOB � ���� ����. FOR
SBCS DATA� ��� �� �� ID(CCSID)� �� ��� � �� ��
� �� ��� CCSID� �� �� ��.
FOR MIXED DATA
� �� SBCS ��� DBCS ��� � � �� ��� �����. ��
��� � �� ��� �� ��� CCSID� DBCS� � � �� � ��
� 3�� ��, FOR MIXED DATA� CHAR, VARCHAR � CLOB
� �� �����. �� FOR MIXED DATA � DBCS � ���
��� ����. FOR MIXED DATA� CHARACTER, VARCHAR �
� CLOB � ���� ����. FOR MIXED DATA� ��� �� �
� ID(CCSID)� �� ��� � �� ��� �� ��� CCSID� �� �
� ��.
CCSID ��
� �� CCSID ��� ��� �� ��� �����. ��� SBCS �
�� �� �� ID(CCSID)�� � SBCS ����. ��� ��� ��
��� �� �� ID(CCSID)�� � ��� ���� � ��� 3 ��
�� ���. �� � CCSID� SBCS CCSID�� ��� ��
CCSID�� ���. � � ��� �� �� ID(CCSID)� DBCS
�� UCS-2 CCSID�� ���. ��� �� �� ID(CCSID)� �
� ��� ��� CCSID� �� ��� � �� ��� �� ��� CCSID
� �� �� ��. �� CCSID ���� 899 ���� �� E ����
�� �� ID(CCSID) ��� �����.
DEFAULT
� �� ��� �� �����. � �� column-definition� � � �� ��
CREATE TABLE
� 5 � �� 553
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
� � ����. ROWID �� ID (AS IDENTITY� ��� )�� ���
�� ��� � ����. ������ ���� ROWID � ID � ���
�� �����. ��� � � ��� �� ��� ��� ��� �� ��.
v � ��� ��� �� ����.
v � �� ��� ���� � �� �� �� ����.
� �� ��� �
� 0
�� �� ��� ��
�� �� ��� ��� 0� ���
� INSERT �� �� �
�� INSERT �� �� ��
���� INSERT �� �� ����
�� �� DLVALUE(‘ ’,‘URL’,‘ ’)� ��� �
distinct-type �� �� �� �� ��� ��� �
column-definition�� NOT NULL� DEFAULT� ��� DEFAULT NULL�
��� ����.
constant
� �� ��� ��� ��� �����. ��� ��� 80 ���� ��
�� ��� ��� �� �� ��� �� � ��� � �� �� ���
� ���. �� ��� ��� SMALLINT, INTEGER, DECIMAL ��
NUMERIC � �� ����� � ��. �� ��� � ��� ���
� � �� ��� �� ���� �� � ����.
USER
INSERT �� UPDATE �� USER �� ����� �� � ��� �
�� �����. � �� �� �� �� USER� �� ������
�� �� CHAR� VARCHAR� �� ���.
NULL
� �� ��� ��� �� �����. NOT NULL� ��� ���
�� �� DEFAULT NULL� ����� � ��.
CURRENT_DATE
� �� ��� ��� �� �� �����. CURRENT_DATE� ��
� ��� �� DATE �� DATE� ��� �� ���� ��
�.
CURRENT_TIME
� �� ��� ��� �� ��� �����. CURRENT_TIME� ��
� � �� �� TIME �� TIME� ��� �� ���� ��
�.
CREATE TABLE
554 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|||
||
||
||
||
||
||
||
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CURRENT_TIMESTAMP
� �� ��� ��� �� ����� �����.
CURRENT_TIMESTAMP� ��� � �� �� TIMESTAMP�
� TIMESTAMP� ��� �� ���� ���.
cast-function-name
� ��� ��� �� �� �, BLOB, CLOB, DBCLOB, DATE, TIME
�� TIMESTAMP �� ��� ��� � �� ��� � ����.
�� �� � cast-function� ��� ���� ��� ���.
� �� ��� ���
BLOB, CLOB �� DBCLOB� ��� �
�� � N
BLOB, CLOB �� DBCLOB *
DATE, TIME �� TIMESTAMP� ���
� �� � N
N(N� ���� � ��� ��� �� ���
�) **
��
DATE, TIME �� TIMESTAMP *�� �� �� ��� � �� � N N(N� ���� � ��� ��� �� ���
�) **BLOB, CLOB �� DBCLOB BLOB, CLOB �� DBCLOB *DATE, TIME �� TIMESTAMP DATE, TIME �� TIMESTAMP *�:
* � ��� ��� �� ��� ���� QSYS2� �� �� �� ��(�� �� �� ��
�)� ���� ���.
** � ��� � �� �� � ��� ���� ���. ��� ���� ����� ��
�� �� ��� ��� ��� ���. ��� ���� � ��� ��� ��� �� ��
�� ��� ��� ��� ���.
constant
��� ��� �����. ��� �� �� �� � �� ��
�� � �� �� �� �� ��� ��� ���. BLOB,
CLOB, DBCLOB, DATE, TIME � TIMESTAMP �� ��
� ��� ����� ���.
USER
INSERT �� UPDATE �� USER �� ����� �� � �� �
�� ��� �����. � �� �� �� �� �� �� �
� �� �� USER �� ����� �� ��� �� ��
CHAR� VARCHAR� �� ���.
CURRENT_DATE
� �� ��� ��� �� �� �����. CURRENT_DATE�
��� � �� �� �� �� �� �� �� DATE�
�� ���.
CREATE TABLE
� 5 � �� 555
|
|
|
|
|
|
|
|
|||
|||
|||||
|||||||||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CURRENT_TIME
� �� ��� ��� �� ��� �����. CURRENT_TIME� �
�� � �� �� �� �� �� �� �� TIME� �
� ���.
CURRENT_TIMESTAMP
� �� ��� ��� �� ����� �����.
CURRENT_TIMESTAMP� ��� � �� �� �� �� �
� �� �� TIMESTAMP� �� ���.
GENERATED
������ ���� � �� �� �����. � ID � ��
(AS IDENTITY�� ��) GENERATED� ���� ���. � �� ��
ROWID� (�� ROWID� ��� � �)�� � �� ���� ���.
��� ����� � ��.
ALWAYS
�� �� �� � ������ ���� �� �� ���� ���
��. ALWAYS� �� ���.
BY DEFAULT
� �� �� ��� �� �� �� �� � ������ ���
� �� �� ���� �����. �� ���, ������ ���
� �� �����.
ROWID � �� ������ ���� ��� �� ����, � ��
��� OS/390 � z/OS� DB2 UDB �� iSeries� DB2 UDB�� ��
� �� � � ID�� ���.
ID � ������ ���� ��� �� ��� ID � �� ID
� �� ��� � ������ � ���� �� �� ��
�� � � ��� �� ����.
AS IDENTITY
� �� ID �� �����. �� �� ID � �� � ����. AS
IDENTITY� � �� �� ��� 0� �� ��� � �(��� 0�
SMALLINT, INTEGER, BIGINT, DECIMAL �� NUMERIC, � � ��
��� � �)� �� ��� � ����.
ID �� ����� NOT NULL��.
START WITH numeric-constant
ID � �� ��� � �� �� �����. � �� � � ��� �
�� ��� ��� � ���, ��� ���� 0� � �� ��
� ��� ���.
CREATE TABLE
556 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ID � ��� �� ����� ��� ����, ��� �� ���
�� MINVALUE, ����� MAXVALUE��. � �� ��
� ��� �� ���� ��� � ��� ��� �� ��� ����.
START WITH�� ��� �� ��� � � �� ��� ��� �
����. �� ��� � � MINVALUE � MAXVALUE� �� ��.
INCREMENT BY numeric-constant
ID � � � ��� ��� �����. � �� 0� � ��� �
�� � ��� � �� �� �� ��� �� , ��� ���� 0� �
�� ��� �� � ��� � ����. ���� 1��.
�� ���, ID � � ��� ������. �� ����, ID � �
��� ������.
MAXVALUE numeric-constant
� ID � �� ��� ���� � ��� �����. � �� � �
��� � �� ��� ��� � ���, ����� �� ���.
ID � ��� �� ����� ��� ��� �, � �� ����
� �� �� ���(DECIMAL� ���), �����
START WITH �(START WITH� ��� �� -1)��.
MINVALUE numeric-constant
� ID � �� ��� ���� � ��� �����. � �� � �
��� � �� ��� ��� � ���, ����� ��� ���.
ID � ��� �� ����� ��� ��� �, � �� ����
� START WITH �(START WITH� ��� �� -1), ��
��� �� �� ���(DECIMAL� ���)��.
CACHE �� NO CACHE
�� ��� �� �� ���� ��� ��� ��� �����. �� ��
��� ��� ��� �� �� �� ��� �����.
CACHE integer
������ ���� ��� ��� ���� ��� ID � ��
� �� �����. ��� � �� ���� 2��, ���� ��� �
�� � �� �� � ���. ���� 20��.
��� ��� ��, ��� ��� �� ID �� �� ���
��� ����. ���, CACHE� �� ��� �� ��� �� �
�� � �� ID � �� � �� �����.
NO CACHE
ID � �� ��� ��� ��� �����.
CREATE TABLE
� 5 � �� 557
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CYCLE �� NO CYCLE
��� ��� �� ���� ��� � � ID � � �� ���� �
�� �����.
CYCLE
����� ���� ��� � � � �� �� � ���� ���
��. � ��� ��� , ����� ��� ���� ��� � ��
���� �����. ����� ��� ���� ��� ��, ���
� �� ��. � ���� ���� �� ��� � � �����.
CYCLE� �� , ������ ���� ID � �� ���� �
�� � ����. ID � �� ���� �� � ��� ����
� � �� �� �� �� ��� ��� ����.
NO CYCLE
��� ����� ���� ��� � ID � �� �� ��� ��
� �����. ��� ��� ���.
ORDER �� NO ORDER
�� ���� ID �� ���� �����.
ORDER
�� ���� �� ���� �����.
NO ORDER
�� ���� �� ��� ��� ��� �����. ��� ��� �
��.
datalink-options
DATALINK �� �� ��� ��� �����.
LINKTYPE URL
URL(Uniform Resource Locator)� ��� �� �����.
NO LINK CONTROL
��� �� ���� ��� � ��� ��� �����. URL �
�� �� ��. ��� �� ��� ������ ���� ����.
FILE LINK CONTROL
��� �� ���� ���� � �����. ������ ���� �
�� �� � � ��� � ��� �� ��� ��� � ����.
FILE LINK CONTROL� ��� � �� � �� ��� � ����.
�, �� �� �� FILE LINK CONTROL �� URL� ��� � ��
��.
file-link-options
������ ���� ��� �� ��� ��� ��� �� ��
CREATE TABLE
558 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INTEGRITY
DATALINK �� �� � �� ��� ��� ��� �����.
ALL
DATALINK ��� ��� �� ������ ���� ��� �
� �� � ��� ��� ������ ��� �� �
��� �� ���.
READ PERMISSION
DATALINK �� ��� �� �� ��� ��� ��� ����
�.
FS
�� ��� ��� � ��� ��� �� �� ��. � � �
� �� ��� ��� �� ���� � ����.
DB
�� ��� ��� ������� �� �� ��. �� �� �
��� � ���� DATALINK � ��� ��� �� ��
� ��� ��� ��� �� �� ��. READ
PERMISSION DB� ��� WRITE PERMISSION BLOCKED
� ���� ���.
WRITE PERMISSION
DATALINK� ��� �� ��� ��� ��� ��� �����.
FS
�� ��� ��� � ��� ��� �� �� ��. � � �
� �� ��� ��� �� ���� � ����.
BLOCKED
�� ���� � ��. �� ������ ��� � �� �
����. �� ����� ��� �� � ���� ���.
�� ��, �� ��� ��� �� ��, DATALINK ��
�� ��� ��� ���� � � ��.
RECOVERY
������ ���� � � �� ��� ��� �� �� ��� �
��� ��� �����.
NO
�� ��� ��� ��� �����.
ON UNLINK
DATALINK �� �� �� �(��� �� �) �� ��
��� �����. WRITE PERMISSION FS� ��� �� ��� �
���.
CREATE TABLE
� 5 � �� 559
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RESTORE
�� ��� ��� � �� �� � ����, �� ���
� � �� ��� �� ���� �� ��� �� � �
����. ���� � ��� � �� ��� �� �� �
�� �� �� �� � ���� �� �����. �� AIX
� ���� ��� ��� ″dfmunknown″��. �� IFS�
��� ��� QDLFM��. INTEGRITY ALL� WRITE
PERMISSION BLOCKED� ��� �� �� ��� � ���
�.
DELETE
��� �� �� � �� ��� �����. READ
PERMISSION DB� WRITE PERMISSION BLOCKED� ��
� �� �� ��� � ����.
MODE DB2OPTIONS
� ��� ��� � �� �� ��� �����. DB2OPTIONS� ��
� ��� �� ��� ����.
v INTEGRITY ALL
v READ PERMISSION FS
v WRITE PERMISSION FS
v RECOVERY NO
NOT NULL
� ��� � ��� ���. NOT NULL� ��� � �(null)� �
� ��� �����.
column-constraint
CONSTRAINTconstraint-name
����� �����. constraint-name� CREATE TABLE��� �� �
��� �� �� ��� �� ����� ����� � ��.
�� ��� ��� � �� ��� ������ ���� �� �� �
�.
PRIMARY KEY
�� � ��� 1� �� ��� � ���� �����. ���,
PRIMARY KEY� C� ��� ��� ��� PRIMARY KEY(C)�
� ��� �� ��� � �����.
� �� � ��� ��� ����� �� UNIQUE �� ��
� ��� �� ��� ����� � �� . � LOB ��
DATALINK ���� � ��.
CREATE TABLE
560 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1� �� ��� NULL �� 1� �� ��� � ��� �� ��
� ��� � CHECK ��� ����� �� ��.
UNIQUE
�� � ��� � �� ��� � ���� �����. ���,
UNIQUE� C� ��� ��� ��� UNIQUE(C)�� ��� �� �
�� � �����.
� �� ��� � � �� ��� � �� PRIMARY KEY� ��
� ��� �� ����� � ��. � LOB �� DATALINK
���� � ��.
references�
column-definition� reference-clause� �� � ��� �� �� ���
� ���� �����. ���, reference�� C� ��� ��� �
�� C� �� ��� � FOREIGN KEY�� ��� reference�
� ��� � �����.
CHECK(check-condition)
column-definition� CHECK(check-condition)� check-condition�� ��
� ��� �� ����� ��� � ���� �����. ���,
CHECK� C� ��� ��� C ��� �� � �� �����
check-condition�� ��� � ����. ��� �� ����� ��� �
� ��� � �����.
FILE LINK CONTROL � ROWID �� DATALINK� CHECK ��
��� ��� � ����. �� �� ��� 567 ���� �check-constraint�
� �����.
LIKE
table-name �� view-name
��� �� �� ��� � � �� �� �����. table-name ��
view-name� �� ��� �� �� �� ���� ���.
LIKE� ��� n � ����� ��� ��, n� ��� �� ��
� ���. ��� ����(�� �� �� ��� � �� ) ��� �
� n � �� ��.
v �� (� ��� ��)
v �� �, ��, ��� � ���
v CCSID
LIKE �� table-name � ��� ��� �� �� �� �� ��� ��
� �� , ��� �� � ����(��� � � ID
�� �� copy-options� ��� ��� � ����).
CREATE TABLE
� 5 � �� 561
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v table-name� ��� view-name� ��� �� ��� �
v � ���
v ID �
v ��� � ���(717 ���� �LABEL� ��)
��� ���� ��� �� �� �� ��� �� � ����. �� �
� ��� �� �� 1� �, �� �� ��� ���� � ����. �
�� �� ����� ��� �� ��� �� �� � �� ��� ��
�� ��.
��� �� �� SQL ��� �� � �� � �� SQL ��
� ��. �� �� �� �� ��� ISO� �� ��.
as-subquery-clause
column-name
�� � �����. column-name� ����� �� �� � ��� �
� system-column-name� �� �� ��� ��� � ����.
FOR COLUMN system-column-name
� �� OS/400 ��� �����. �� � ��� �� column-name�
�� �� ��� ��� � ����.
system-column-name� ��� �� column-name� ��
system-column-name� ���, ��� ��� �� ��. ��� ���
��� ��� �� ��� ��� 572 ���� � �� �� ���� ��
���.
select-statement
�� � select-statement� ��� select-statement�� ��� �� ��
��� � ��� ��� ��� ���� �����. AS select-statement� �
�� �� �� n � ��� ����. ��� n� select-statement��� �
� �� � ���. ��� ����(�� �� �� ��� � �� )
��� �� n � �� ��.
v �� (� ��� ��)
v �� �, ��, ��� � ���
v CCSID
v � ���
v ��� � ���(717 ���� �LABEL� ��)
�� �� � ����(copy-options� ��� ��� � � ID ��
�� � ����).
CREATE TABLE
562 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v ��� �
v ID �
��� ���� ��� �� �� �� ��� �� � ����. �� �
� ��� �� �� 1� �� �� �� ���� � ����. ��� �
� ����� ��� �� ��� �� �� � �� ��� �� ��
��.
�� ����� ��� � select-statement� �� ���� � ��� ��
���. ���, ��� select-statement �� �� � � �� ���
� � �� � �� � . ��� , � � , � � � ��� �� � ,
select-statement� �� � ��� AS column-name�� � �
���� select-statement � ��� ���� ���.
select-statement� ��� ��� ��� �� ��(�� ��)� ���
� ����.
WITH DATA
select-statement� ���� �����. �� ��� �, select-statement� ��
� �� �� ���� � ��.
WITH NO DATA �� DEFINITION ONLY
select-statement� ��� ��� �����. ���, ���� �� �� � �
�� �� �� �� ����.
copy-options
INCLUDING IDENTITY COLUMN ATTRIBUTES
�� select-statement, table-name �� view-name� ��� � ID �(��
)� ���� �����. �����, �, �� �� select-statement� �
� � ��� �� � � ID �� �/����� �� �� � ��
�� � � ��� , ID � �� ��.
INCLUDING IDENTITY COLUMN ATTRIBUTES�� AS select-statement
�� ��� , ��� �� � �� � ID �� ��� ����.
v select-statement� �� ����� ID ��� �� ���(�, ��� �
�� � �� ��)� ��.
v select-statement� �� ����� �� ID � ��(�, �� ��).
v ID � �� ����� ���� ��.
v select-statement� �� ��(��)� ���.
INCLUDING IDENTITY� ��� �� , ��� ID � ����.
CREATE TABLE
� 5 � �� 563
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EXCLUDING IDENTITY COLUMN ATTRIBUTES
�� select-statement, table-name �� view-name� ��� � ID �(��
)� ��� ��� �����.
INCLUDING COLUMN DEFAULTS
�� select-statement, table-name �� view-name� ��� � ��� �� �
��� �����. ��� �� INSERT� �� ��� �� � � ��
� ���.
USING TYPE DEFAULTS� ��� , INCLUDING COLUMN DEFAULTS
� ��� ����.
INCLUDING COLUMN DEFAULTS� ��� �� , ��� �� ��
� ����.
EXCLUDING COLUMN DEFAULTS
�� select-statement, table-name �� view-name� ��� � ��� �� �
�� ��� �����.
USING TYPE DEFAULTS
�� ��� �� select-statement, table-name �� view-name� ��� � �
� �� ���� �����. � ��� ��� �� ����. ��� �
�� �� ��� ����.
� �� ��� �
� 0
�� �� ��� ��
�� �� ��� ��� 0� ���
� INSERT �� �� �
�� INSERT �� �� ��
���� INSERT �� �� ����
�� �� DLVALUE(‘ ’,‘URL’,‘’)� ��� �
distinct-type �� �� �� �� ��� ��� �
INCLUDING COLUMN DEFAULTS� ��� USING TYPE DEFAULTS
� ��� ����.
unique-constraint
CONSTRAINTconstraint-name
����� �����. constraint-name� CREATE TABLE��� �� ��
�� �� �� ��� �� ����� ����� � ��.
�� ��� ��� � �� ��� ������ ���� �� �� ��.
CREATE TABLE
564 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
||
||
||
||
||
||
||
|||
|
|
PRIMARY KEY(column-name,...)
��� � ��� 1� �� �����. �� �� 1� �� �� � ���
�. ���, � �� � � �� ��� � ��, �� �� 1� �� ���
� � �� ��� �� ��� ��� � ����. ��� �
CREATE TABLE�� �� ��� �� UNIQUE ����� ��� � ��
� ����. �� ��, UNIQUE(B,A)� �� ��� ��� PRIMARY
KEY(A,B)� ��� ����.
� column-name� �� � ��� ��� �� ����� ���. ��
� � � �� ����� � ��. � LOB �� DATALINK ����
� ��. ��� � �� 120� ����� �� �� ��� ��� 2000-n
� ����� � ��. ��� n� �(null)� ��� ��� � ���.
byte-counts� �� ��� ��� 570 ���� � 47� �����.
� ��� ��� ��� � �� � ��� �� �� ��� �� �
�. 1� �� ��� NULL �� 1� �� ��� � ��� �� ��
� ��� � CHECK ��� ����� �� ��.
UNIQUE(column-name,...)
��� � ��� � �� �����. UNIQUE�� � � �� ��� � �
���. ��� � CREATE TABLE�� �� ��� �� PRIMARY KEY�
UNIQUE ����� ��� � �� � ����. ��� � � ��� �
� �� ��� �� ���� � ��. �� ��, UNIQUE(A,B)�
UNIQUE(B,A)� ����.
� column-name� �� � ��� ��� �� ����� ���. ��
� � � �� ����� � ��. � LOB �� DATALINK ����
� ��. ��� � �� 120� ����� �� �� ��� ��� 2000-n
� ����� � ��. ��� n� �(null)� ��� ��� � ���.
byte-counts� �� ��� ��� 570 ���� � 47� �����.
��� � � ��� CREATE TABLE�� ��� �� �� ��. �
��� ��� ��� � �� � ��� �� �� ��� �� ��.
referential-constraint
CONSTRAINTconstraint-name
����� �����. constraint-name� CREATE TABLE��� �� ��
�� �� �� ��� �� ����� ����� � ��.
�� ��� ��� � �� ��� ������ ���� �� �� ��.
FOREIGN KEY
FOREIGN KEY�� � ��� �� ��� �����.
CREATE TABLE
� 5 � �� 565
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(column-name,...)
�� ��� �� �� ��� � �� ��. � column-name� ��
� ��� ��� �� ����� ���. �� � � � �� ��
��� � ��. � LOB �� DATALINK ���� � ��. ���
� �� 120� ����� �� ��� ��� 2000-n� ����� �
��. ��� n� �(null)� ��� ��� � ���.
REFERENCES table-name
REFERENCES�� ��� table-name� ��� �� ��� �� ��
� �� �� ���� ���. � � ���� � �� �� �� �� ��
��� � ��.
�� �, � � � � �� ��� ��� �� ����� �� �, �
� � � �� ��� �� ��� duplicate��. �� �� ��� ��
�� ���� ����.
T2� ��� � �� ���� T1� ��� �� �����.
��� �� �� T2� � �� �� �� ��� ���. �� �� n
�� � � �� n�� � ��� ��� �� �� ��� ��� �
��.
(column-name,...)
�� ��� � �� ��� � �� ��. � column-name� T2�
� ��� ��� �� ����� ���. �� � � � �� �
���� � ��. � LOB �� DATALINK ���� � ��.
��� � �� 120� ����� �� �� ��� ��� 2000-n�
����� � ��. ��� n� �(null)� ��� ��� � ��
�. byte-counts� �� ��� ��� 570 ���� � 47� ����
�.
�� ���� T2� 1� �� T2� �� UNIQUE ����� ��
�� ���� ���� ���. ��� 1� �� �� ��� ���
��� ���, foreign key�� �� ���� ��� ��� ��
�� ���. �� ���� ��� ��� T2� 1� �� ���
���. �� ���� ��� �� 1� � � ��� ����.
FOREIGN KEY�� ��� �� ��� T2� � �� T1� �� ��
� �����.
ON DELETE
� �� �� �� � � �� �� ��� �����. �� � ��
� ����.
v NO ACTION(���)
v RESTRICT
CREATE TABLE
566 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v CASCADE
v SET NULL
v SET DEFAULT
�� �� �� � ��� ��� ��� SET NULL� ����� �
��.
T1� FILE LINK CONTROL� �� DataLink � ��� CASCADE�
����� � ��.
� ��� T2� �� DELETE� ���� �� � ��� � ��
� �� T1� �� ����. p� T2� �� �� �����.
v RESTRICT� NO ACTION� ��� ��� �� �� �� �
� ����.
v CASCADE� ��� � ��� T1� �� p� �� � ��.
v SET NULL� ��� T1� �� p� � �� �� �� �� �
�� � �(null)� �� ��.
v SET DEFAULT� ��� T1� �� p� � �� �� �� ��
� � ��� ��� �� ��.
ON UPDATE
� �� �� �� � � �� �� ��� �����.
� ��� T2� �� UPDATE� ���� �� � ��� � ��
� �� T1� �� ����. p� T2� �� �� �����.
v RESTRICT� NO ACTION� ��� ��� �� �� �� �
� ����.
check-constraint
CONSTRAINT constraint-name
�� ����� �����. constraint-name� CREATE TABLE��� �� �
��� �� �� ��� �� ����� ����� � ��.
�� ��� ��� � �� ��� ������ ���� �� �� ��.
CHECK(check-condition)
�� ����� �����. check-condition� �� �� �� �� �� ��
� �� ��� ��� ���.
check-condition� �� � ���� search-condition��.
v �� � ��� � ����.
v FILE LINK CONTROL � ROWID �� DATALINK� ��� � ��
��.
CREATE TABLE
� 5 � �� 567
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v �� ��� ��� � ��.
– � ��
– Scalar-subselect
– �
– ��� ��
– �� ��
– LOB� �� !� �� ���(�� �)
– CURRENT TIMEZONE, CURRENT SCHEMA, CURRENT SERVER,
CURRENT PATH, � USER �� ����
– NOW, CURDATE, � CURTIME ��� �
– NODENAME ��� �
– �� �� ���� ����� ��� ��� �� ��
– ATAN2, DIFFERENCE, RADIANS, RAND � SOUNDEX ��� �
– DLVALUE, DLURLPATH, DLURLPATHONLY, DLURLSERVER ��
DLURLSCHEME ��� �
– DLURLCOMPLETE ��� �(FILE LINK CONTROL � READ
PERMISSION DB �� �� �� ��� )
search-condition� �� ��� ��� 154 ���� ��� ���� �����. LOB
�� � � ���� � �� ����� �� ��� ��� Database
Programming �� �����.
nodegroup�
IN nodegroup-name
�� �� ��� ��� �� ��� �����. ��� �� ��� �� ��
��� ���� ���. � �� ��� �� �� ��� �� �� ����
��� �� �� ��.
LOB� DATALINK � ��� ��� ��� � ����.
DB2 Multisystem ��� ��� �� ��� � ���� ���. ���
�� �� ��� ��� DB2 Multisystem �� �����.
PARTITIONING KEY(column-name,...)
�� �� �����. �� �� �� ��� �� ��� �� ��� ��
� � �� ��. � column-name� �� � ��� ��� �� ��
��� ���. �� � � � �� ����� � ��. PARTITIONING
KEY�� ��� ��� 1� �� � �� � �� �� �� ��. 1� �
� ���, �� ���, �, �� �� ����� � �� � �� � ��
�� �� ��.
CREATE TABLE
568 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� �� ��� � �� �� � ��� ��� � ����� ��
�. �� ���, �, �� � ���� � �� �� ��� � ����.
USING HASHING
�� �� ��� ��� ��� ��� � �� �� ��� ���� ��
���.
� ��: �� �� �� �� ��. �� ��� � �� ��� ��� ��
�� �� �� � ��(CRTLF) �� WAITFILE � WAITRCD � �� �
�� ��� ��� �� ��.
SQL �� �� �� �� ��� ��� ��� � ��� �� ���� �
� ��. � �� CHGPF � � REUSEDLT(*NO) �� ���� �� �
����. CHGPF �� �� ��� ��� iSeries Information Center� ���
�� �� CL �� ��� �����.
�� ��� � ���� ���� QSQJRN ���� ���� �� ��.
��� �� �� ��� �� ���� �� ��. ��� �� �� ��� ��
� DB2 Multisystem �� �����.
� ���: SQL�� ��� , �� ��� �� ��� ���� ��� ��
� �� ��� �����. ��� ��� �� ��� ��� ��� ��
� �� ��� ����� ��� �����.
����� ���, �� ��� ��� ��� ��� �� ��� ���
�� ��� �����.
� ��: SQL ��� ��� �� *PUBLIC� �� *EXCLUDE ��� ���
� �� ��. ����� ��� ���� �� ��(CRTAUT) ��� ��
���� �� *PUBLIC� �� ���� �� ��.
�� ��� �� ���� ����(GRPPRF � �) �� ��� ���
(GRPAUT � �), � �� ���� �� �� ��� ����.
�� ��
column-definition� ��� ��� �� �� � �� ����� ����.
v �� � �� ��� 32766�� VARCHAR, VARGRAPHIC �� LOB �
��� 32740��.
v LOB� ��� �� � �� ��� 3 758 096 383��. LOB� ���
��� �� � �� ��� 32766�� VARCHAR, VARGRAPHIC ��
VARGRAPHIC � ��� 32740��.
CREATE TABLE
� 5 � �� 569
|
|
|
|
|
|
|
|
|
� �� �/�� � ��� ��� ���� �� �� �� �� ��� � �
� � � ��� ��� �����.
�� �� ��� ��� �� � �� �� �� �� � �� ���.
��� ��� � ���, 8 � �� 1 ��� �����.
� 47. �� �� �� ��
� �� � �� �� � � � �� �
SMALLINT 2 2
INTEGER 4 4
BIGINT 8 8
DECIMAL(p, s) (p/2) + 1� �� �� (p/2) + 1� �� ��
NUMERIC(p, s) p p
FLOAT(����) 4 4
FLOAT(����) 8 8
CHAR(n) n n
VARCHAR(n) n+2 n+2
CLOB(n) 29+pad n+29
GRAPHIC(n) n*2 n*2
VARGRAPHIC(n) n*2+2 n*2+2
DBCLOB(n) 29+pad n*2+29
BLOB(n) 29+pad n+29
DATE 10 4
TIME 8 3
TIMESTAMP 26 10
DATALINK(n) n+24 n+24
ROWID 42 28
distinct-type �� �� �� �� � �� �� �� �� �
�:
pad� �� ��� � ��� 1�� 15��� ���.
������� �� �� ���
v �� ��� ��� � ���� � �� ���� �� iSeries �������
� �� ��. � �� ���� ��� � ��� ����� decimal
precision = CEILING(n/3.31)� , ��� n� ��� � ���. �� ���
� ��� SQL� ��� ��� ���� ��� � �� ��.
v SMALLINT ��� 4,0� �� ���� �� ��.
v INTEGER ��� 9,0� �� ���� �� ��.
v BIGINT ��� 19,0� �� ���� �� ��.
CREATE TABLE
570 iSeries� DB2 UDB SQL ��� V5R2
|||
LONG VARCHAR � LONG VARGRAPHIC��� � LONG VARCHAR � LONG VARGRAPHIC ��� ��� ��
������. VARCHAR(integer) � VARGRAPHIC(integer)� �� �� �
�� ����. VARCHAR(integer) � VARGRAPHIC(integer)� �� ��.
CREATE TABLE�� �� � ������ ���� LONG VARCHAR �
VARCHAR� � LONG VARGRAPHIC � VARGRAPHIC�� ����. �
� ��� ��� �� ��� �� �� ���� �� ��.
LONG VARCHAR52
��� ��� � �� ��� �� �� ��� ��� �� �� �� ��
�� .
LONG VARGRAPHIC52
�� ��� ��� ��� � �� ��� �� ��� �� �� � �
��� .
LONG � �� ��� ��� �� �� ��. ��� �� �����.
v m� �� � ����.
v i� LONG VARCHAR� LONG VARGRAPHIC� � �� �� � �
� �� ����.
v j� �� �� LONG VARCHAR � LONG VARGRAPHIC � ���.
v k� �(null)� ��� �� ���.
��� LONG VARCHAR � ��� INTEGER((m-24-i-((k+7)/8))/j)��.
LONG VARCHAR � ��� ��� � ��� 2� ��� � LONG
VARGRAPHIC � ��� �����. ��� �� ��� ����.
ID ��
�� ID � ���, ������ ���� �� �� �� � � �� �� �
� ���� ��� � ����. ���, ID � 1� �� �����. ID �
ROWID � � � ������ ���� ��� �� ��� ��
� ����. ROWID � direct-row ����� ����. ROWID ��
ROWID �� � �� �� �� � �� ����� ������ ����� �
40 �� VARCHAR �� ����. ��� ROWID �� �� �� ���
�� ��� ��� �� � ������ ��� ��� ����. � � �
��� ��� � �� ��� ����� ID � ��� �����. ID
�� �� � �� �� �� �� ROWID �� ��� �� ��
� ��� � ����.
�� �� ��(point-in-time)�� ��� (RMVJRNCHG� ���), ID �
�� ��� �� ��� ��� ��� �� � ����. �� ��, �� ��
1� �� ID � �� T1�� ����� ��� �� 100� ������ ��
CREATE TABLE
� 5 � �� 571
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� ��� �� 1000��� �� ����� ��� , �� T1�� �����
��� ��� � �� �� �� ��� ID �� 1001�� ID � �� 100
- 1001� ��� ����.
CYCLE� ���, � � ���� �� � ��� ��� �� ��
� GENERATED ALWAYS� �� ��� �� ��� � ����.
���� �� ��
���� ��� �, �, ���� ��� ��� � �� ���� ����. �
� ���� �� �� ��� �� ���� �� ��.
�� �� ��
�� �� ��� column-name� �� system-column-name� �� �
system-column-name� ��� ��� system-column-name� �� ��.
column-name� �� ��� �� �� �� 10��� ��, 10��
system-column-name� ��� �� �� ��.
v ��� � 5�� ��
v 5��� � �
�� ��, ��� ����.
The system-column-name for LONGCOLUMNNAME would be LONGC00001
��� ���
v �� �� �� � 5�� system-column-name� � 5�� �� ��. ��
�� �� ��� 5� ���� ��� ���� ��(_) ��� � ���. ��
�� ���� �(fold) ��. system-column-name�� �� ��� A-Z, 0-9,
@, #, $ � _��. �� ��� ��(_) ��� � ��. � ��� ���
� Q�� � ��.
v 5 ��� � �� 5 �� �� ����.
�� ��, ��� ����.
The system-column-name for "abc" would be ABC__00001The system-column-name for "COL2.NAME" would be COL2_00001The system-column-name for "C 3" would be C_3__00001The system-column-name for "??" would be Q____00001The system-column-name for "*column1" would be QCOLU00001
� �� �� ��
�, �, �� �� ��� ��� �� ��� � ����� �� ��.
v 10���� � ��
v ����� �� �� ��� � ��
CREATE TABLE
572 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
�� �� ��� �� ���� � SQL ���� ��� ����� �
� SQL�� ��� � ����. � �, SQL ��� iSeries� DB2 UDB� ��
�� �� , ����� �� ��� ���� ���.
��� �� ��� �� �� �� 10��� ��, 10�� ����� ��� ��
�� ��.
v ��� � 5�� ��
v 5��� � �
�� ��, ��� ����.
The system name for LONGTABLENAME would be LONGT00001
SQL ��� �� ��� �� ��� ����� ��� �� �� ��.
v ��� � 4�� ��
v 4 ��� � �
��
v �� �� ��� ��(_)� �� ��.
v �� ��� ���� � ��.
v �� ����� � � �� ��� ��� ��� � ���(″)� �� �
�.
�� ��, ��� ����.
The system name for "??" would be "__0001"The system name for "longtablename" would be "long0001"The system name for "LONGTableName" would be LONG0001The system name for "A b " would be "A_b0001"
SQL� �� �� �� ��� ����� � � �����. ��� �� ��
�� �� ���, ��� ��� �� ��� �� � ��.
� ��� ��� �� ��� ��� � ��� �� ��� ��� ����
��� �� ��� �� � � �� ��� �� ����. �� ��
″longtablename″� ��� ″long0001″�� ″long9999″��� �� �� ���� �
�� ″lon00001″� � ���.
�
� 1�� ��� ��� ��� ���, �� � �� ‘ROSSITER.INVENTORY’�
� ��� �� �����.
v � ��: Small integer(�� ��� ��)
CREATE TABLE
� 5 � �� 573
v ��: ��� 0�� 24� ��, � ��
v : ��, � ��
CREATE TABLE ROSSITER.INVENTORY(PARTNO SMALLINT NOT NULL,DESCR VARCHAR(24 ),QONHAND INT )
� 2�� � �� DEPARTMENT�� �� �����.
v �� ��: ��� 3� ��, �� ��� � ��.
v �� ��: ��� 0�� 36� ��, �� ��� � ��.
v ��� ��: ��� 6� ��, � ��
v �� ��: ��� 3� ��, �� ��� � ��.
v �: ��� 16� ��, � ��
CREATE TABLE DEPARTMENT(DEPTNO CHAR(3) NOT NULL,DEPTNAME VARCHAR(36) NOT NULL,MGRNO CHAR(6),ADMRDEPT CHAR(3) NOT NULL,LOCATION CHAR(16),PRIMARY KEY(DEPTNO) )
� 3� PRJ_LEADER� � ��� ��� �� � REORG_PROJECTS� ��
���.
CREATE TABLE REORG_PROJECTSLIKE PRJ_LEADER
CREATE TABLE
574 iSeries� DB2 UDB SQL ��� V5R2
CREATE TRIGGER
CREATE TRIGGER�� �� ���� ��� �����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� �� �� �� � ��� ���:
– � �� �� �� �� �� �� *EXECUTE
– � �� �� ALTER (*OBJALTER) �� WITH GRANT OPTION
privilege(*OBJMGT)
– � �� �� SELECT(*OBJOPR � *READ)
– BEFORE UPDATE ��� NEW �� ��� ��� SET ��� ��
�� � �� �� UPDATE (*UPD � *OBJOPR)
– ��� �� �� �� SELECT(*OBJOPR � *READ) �
INSERT(*OBJOPR � *ADD) ��
– �� � ��(ADDPFTRG) �� �� *USE
– SQL ��� �� ���� ��� ���� ��� ��� ����
�� � ��� ��� ���� ID� �� � *ALLOBJ � *SECADM
�� ��� �����.
v �� ��
��� ���� ID� ��� �� � �� �� ALTER ��� ����.
v �� ���
v �� �� ALTER ��� ����
v �� �� *OBJALTER �� *OBJMGT � �� ��� ��� ����
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � ��� UPDATE ��� ����.
v �� ���
CREATE TRIGGER
� 5 � �� 575
v �� � �� UPDATE ��� ����
v �� �� *OBJOPR� *UPD� ��� ��� ����
�� ��� ���� ID� �� ��� ��� �� � �� �� ��
�.
v ��� �� ��� ��
– ���� ��(CRTPGM) ��� *USE
v �� ��
SQL ��� ���, ��� ��� �� �� �� ��� �� ��� ��
�� �� , � ��� ��� ���� ID� �� ��� ���� ID�
�� ��� ��� �� � �� �� ���.
v *ALLOBJ � *SECADM �� ��
v �� ��
SQL-trigger-body� SQL��� ��� � �� �� ���� ID� �� �
��� �� SQL�� ��� � ��� ��� �� ���.
CREATE TRIGGER
576 iSeries� DB2 UDB SQL ��� V5R2
|
|
��
�� CREATE TRIGGER trigger-nameNO CASCADE
BEFOREAFTER
�
�
INSERT ON table-nameDELETEUPDATE
,
OF column-name
�
�
(1) (2) ROW AS
REFERENCING OLD correlation-nameROW AS
NEW correlation-nameAS
OLD TABLE table-identifierOLD_TABLE
ASNEW TABLE table-identifierNEW_TABLE
�
�
(3)FOR EACH STATEMENT
FOR EACH ROW
MODE DB2SQL
MODE DB2ROWtriggered-action ��
�:
1 �� �� � �� ��� � ����.
2 OLD TABLE� NEW TABLE� AFTER ��� ���� �� � ��
��� � ����.
3 FOR EACH STATEMENT� BEFORE ���� ��� � ����.
CREATE TRIGGER
� 5 � �� 577
�
trigger-name
��� ��� �����. ��� �� ��� ���� ��� �� ��� �
� �� ��� �� ��� �� � ����. QTEMP� trigger-name ��
� ���� ��� � ����.
SQL�� ��� ��� ��� �� ��� ���� �� ��� ����
�� ��.
����� ��� ��� ���� �� ��� ���� �� ��. ��
� �� ��� � �� �� ���� �� ��.
triggered-action:SQL-trigger-body
SET OPTION-statement WHEN ( search-condition )
SQL-trigger-body:SQL-control-statementALTER-statementCOMMENT statementCREATE ALIAS-statementCREATE DISTINCT TYPE-statementCREATE FUNCTION (External Scalar)-statementCREATE FUNCTION (External Table)-statementCREATE INDEX-statementCREATE PROCEDURE (External)-statementCREATE SCHEMA-statementCREATE TABLE-statementCREATE VIEW-statementDECLARE GLOBAL TEMPORARY TABLE-statementDELETE-statementDROP-statementEXECUTE IMMEDIATE-statementGRANT-statementINSERT-statementLABEL-statementLOCK TABLE-statementRELEASE-statementRELEASE SAVEPOINT-statementRENAME-statementREVOKE-statementSAVEPOINT-statementSELECT INTO-statementSET SCHEMA-statementSET PATH-statementSET TRANSACTION-statementUPDATE-statement
CREATE TRIGGER
578 iSeries� DB2 UDB SQL ��� V5R2
|||||||||||||
���� �� ����� ��� �� ��� �� ����� �� ��
� ������ ���� ����� �����. �� �� ��� �� ���
572 ���� �� �� �� ���� �����.
NO CASCADE
NO CASCADE� �� ���� ��� � �� iSeries� DB2 UDB�
�� ��� ����.
BEFORE
��� �� ��(before trigger)�� �����. ������ ���� �
��� �, � �� � ��� �� �� ���� ��� ��
triggered-action� �����. �� �� ��� triggered-action� �� �
� � � ���� triggered-action� �� ��� ����� ��� �
����.
AFTER
��� �� ��(after trigger)�� �����. ������ ���� � �
�� � , � �� � ��� �� �� ���� ��� ��
triggered-action� �����.
INSERT
��� � ���� �����. ������ ���� � ��� � �
�� �� ��� triggered-action� �����.
DELETE
��� � ���� �����. ������ ���� � ��� � �
�� �� ��� triggered-action� �����.
UPDATE
��� � ���� �����. ������ ���� � ��� � �
�� �� ��� triggered-action� �����.
���� column-name ���� ��� �� ALTER TABLE�� ��
� ��� ��� � � � �� �� � �� � ���
triggered-action� �����.
OF column-name, ...
��� ��� column-name � � �� ��� ���� � �� �
�� ���. �� �� ��� � ��� triggered-action� ���
��.
ON table-name
�� �� � �� �����. table-name� �� ��� �� �� �� �
��� ���� �, QTEMP� �� ��� ���� ����� � ��.
REFERENCING
�� ��� �� ��� � �� �� �� � ��� �����.
CREATE TRIGGER
� 5 � �� 579
|
|
Correlation-name� SQL ��� �� ��� ��� �� � ���� ��
�� �����. Table-identifier� ��� �� �� �� ��� �����.
SQL ��� �� ��� ��� � � � �� ��� �� � ��
correlation-name�� � ��� triggered-action�� ��� � ����.
OLD ROW AS correlation-name
SQL ��� ��� �� �� �� ��� ���� �����.
NEW ROW AS correlation-name
SQL �� �� � �� ��� BEFORE ��� SET ��� �� �
�� �� �� ��� ���� �����.
SQL ��� �� ��� ��� �� �� � ��� ��� �� ��� �
�� ��� ��� triggered-action�� ��� � ����.
OLD TABLE AS table-identifier
SQL ��� ��� �� ��� �� � �� ��� �� ��� �
��� ��� �����. �� �� ��� ��� SQL-trigger-body
� �� �� OLD TABLE�� ��� �� ��� �� ��
��.
NEW TABLE AS table-identifier
SQL �� �� � �� ��� BEFORE ��� SET ��� �� �
�� ��� �� � �� ��� ��� ��� ���� ��� ����
�.
�� ���� �� 2 � ��� OLD ROW� NEW ROW ��� 2 � �
�� OLD TABLE� NEW TABLE� � � ����. �� ��� �� �
�� ���.
OLD ROW correlation-name � OLD TABLE table-identifier� ��� �
��� DELETE ���� UPDATE ��� �� ����. DELETE �
�� OLD ROW correlation-name� �� �� �� ����, OLD
TABLE table-identifier�� �� � ��� ��� �����. UPDATE �
�� OLD ROW correlation-name�� UPDATE ��� ��� � �
� �� ���� OLD TABLE table-identifier�� �� � ��� �� �
����.
NEW ROW correlation-name � NEW TABLE table-identifier� ���
���� INSERT �� UPDATE ��� �� ����. ���
� NEW ROW correlation-name�� �� �� �� �� ���
� NEW TABLE table-identifier�� �� �� � ��� ��� ��
��� . BEFORE ��� �� � ��� BEFORE ���
triggered-action� SET��� �� ���� ��.
CREATE TRIGGER
580 iSeries� DB2 UDB SQL ��� V5R2
OLD TABLE� NEW TABLE� BEFORE ��� MODE DB2ROW� �
��� ��� � ����.
OLD ROW� NEW ROW� FOR EACH STATEMENT ��� ���� �
�� � ����.
OLD ROW� NEW ROW correlation-name ��� AFTER ����� �
�� � ����.
� ���� �� ��� �� �� ��� ��� ���� �����.
� : FOR EACH ROW
�� ��� � �� �� �� ��� �� �� ��� �� �
DB2ROW BEFORE DELETE OLD NONE
INSERT NEW
UPDATE OLD, NEW
AFTER DELETE OLD
INSERT NEW
UPDATE OLD, NEW
DB2SQL BEFORE DELETE OLD
INSERT NEW
UPDATE OLD, NEW
AFTER DELETE OLD OLD TABLE
INSERT NEW NEW TABLE
UPDATE OLD, NEW OLD TABLE, NEW
TABLE
� : FOR EACH STATEMENT
�� ��� � �� �� �� ��� �� �� ��� �� �
DB2SQL AFTER DELETE NONE OLD TABLE
INSERT NEW TABLE
UPDATE O L D T A B L E ,
NEW TABLE
�� �� �� �� �� ��� � �� � CCSID� ����.
triggered-action� ��� �� �� ��� ��� ��� � ��. �
�� �� ��� �� � ����.
�� �� �� �� ����. ��� � ����.
� correlation-name� � � � table-identifier� �� �� ����.
CREATE TRIGGER
� 5 � �� 581
FOR EACH ROW
������ ���� ��� ��� ��� � �� � �� ��
triggered-action� ���� �����. ��� ��� �� �� ���
�� triggered-action� ��� ����.
FOR EACH STATEMENT
������ ���� ��� ��� �� triggered-action� � �� �
��� �����. UPDATE �� DELETE FOR EACH STATEMENT �
�� ��� UPDATE� DELETE�� �� ��� �� ��� �� �
� ��� �� ��.
FOR EACH STATEMENT� BEFORE ��� �� ��� � ����.
FOR EACH STATEMENT� MODE DB2ROW ��� �� ��� � �
���.
MODE DB2SQL
MODE DB2SQL ��� �� � ��� �� �� �� ��.
MODE DB2ROW
MODE DB2ROW ��� � � ��� �� ��.
MODE DB2ROW� BEFORE � AFTER �� ��� � ����.
triggered-action
��� ��� � ��� ��� �����. triggered-action� � ��
� SQL�� � ���� �� ��� ��� ��� ���� �� ��.
SET OPTION�
�� ��� ��� ��� �����. �� �� ���� � � �� �
�� ���� �� ��� ��.
SET OPTION DBGVIEW = *LIST
��� ��� 772 ���� �SET OPTION�� �����.
�� CLOSQLCSR, CNULRQD, DFTRDBCOL, DYNDFTCOL �
NAMING� CREATE TRIGGER��� ��� ����.
OLD ROW� NEW ROW� ��� DATFMT, DATSEP, TIMFMT
� TIMSEP ��� ��� � ����.
WHEN (search-condition)
�, � �� � � ���� ��� ��� �����. ��� SQL�
� search-condition� ��� ��� �� �� ��. WHEN�� ��
� ��� SQL�� �� �� ��.
CREATE TRIGGER
582 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
SQL-trigger-body
�� ��� � �� SQL�� �����. SQL �� ��� ��
��� ��� 821 ���� � 6 � �SQL ����� �����.
CONNECT, SET CONNECTION, RELEASE, DISCONNECT, COMMIT,
ROLLBACK, SET TRANSACTION � SET RESULT�� �� ��
���� �� ��� ��� triggered-action�� ��� ����.
��� BEFORE ��� SQL-trigger-body�� INSERT, UPDATE,
DELETE, ALTER TABLE, COMMENT, �� CREATE�, DROP, ��
GRANT�, LABEL, RENAME �� �� REVOKE�� � � ���
�. SQL ��� ��� ������ �� �� ��� �� ���.
UNDO �� � ���� ��� � ����.
triggered-action�� ��� �� �, �, ��, �� �, ��� ��
� � ������ ��� ��� � �� ��� ��� ���. ��� �
�� �� �� ��� ��� � ��� ���. ���� QTEMP ��
�� ���� ��. QTEMP� ���� triggered-action��
��� � ��� � ���� �"(drop)��� �� ��� �"(drop)
�� ����.
��� ��� � triggered-action� CREATE �� ��� ��� �
� ��.
v �� ��� SQL ���� �� ��.
v �� ��� �� ��� ��� ����� �� ��.
v �� ��� ���(�� �� SELECT *, ���� �� INSERT,
UPDATE SET ROW)� �� �� ���� �� �� ��.
��� triggered-action� ����� �� ��.
triggered-action� ��� ������ ��� �� �� �� �� �
��� ��� �� �� ��� ��� ���� � �� �����
� ��� �� �� ��� � ����.
�� ���
�, � �� � ���� ��� ��� � ����. �� ��� ��
�� � ��� ��� ��� ����. ���,
v DELETE �� ���� �� ��� ON DELETE CASCADE� �� �
�� �� �� ��� � ����.
v UPDATE �� ���� �� ��� ON DELETE SET NULL�� ON
DELETE SET DEFAULT� �� ��� �� �� ��� � ����.
CREATE TRIGGER
� 5 � �� 583
|
|
|
|
|
|
|
|
|
|
�� ��� �� �� � � ����. ��� �� �� �� �
�� ��� �� ����� SQL�� ��� ��� ���� ��
��. ��� ��� � ��� ��� �� �, ��� ���� ��
��� � � ����. �� �� ��� � �� �, � �
� � ���� ������� �� ��� �� ���� ��� ��
�� ��� � ����. � ��� �� 200 �� � ���� � ����
�� ��� ����� �� � � �� �� ��.
���� ���� �� �� ��
�� �� ��� �� �� ��� ����� �� ��� ��� ���
����. ��� ��� �� ��� �� ����� ���� �����
�� �� ��� � ����� ���� � �� ���.
�� ��
�� �� SQL ��� �� ��� �� ��� ��� �� ��� � �
���. ��� ��� ��� �� ��. �� �� " � ��� ���
" � ��� ��� ��� ��� ��� �� ��.
�� 300 � ��� �� �� �� ��� � ����.
�� � �� �� � � � ��� � ��
��� ��� � � � �� ��� ��� �� ��� �� ��.
v ��� ���� ��� �� ��� UPDATE ��� ���
� �� �� �� ��� ���.
v triggered-action� SQL�� ��� �� ��� ��� ����
��� SQL�� ��� � ���� � ����.
v OLD_TABLE � NEW_TABLE �� ��� ��� � ����� �
� ��� ���� �� � ��� � ����.
� triggered-action� SQL�� �� ��� �� ��� ��� �
��� ��� SQL�� ��� � ���� � ����.
�� � � � ��� �� �� �� ��
triggered-action�� ��� �� �(� � )� �� �� ���� � ��
��. � � triggered-action� ��� ���� ���� � ��� ���.
triggered-action� ��� � ��� �� �� � ��� ��� ����. �
�� ��� �"(drop)� � �� ���� �� � �� ��� �� ��
� � ��� �� ���.
�� ���
��� ��� �, ��� �� ���� ���� ���.
�� � ����
OLD ROW �� NEW ROW� ��� triggered-action� SQL��� �
CREATE TRIGGER
584 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� �� �� �� � � ��� ��� ��� ISO, EUR, JIS, USA�
��� �� DDS� CRTPF CL �� ��� ����� � �� ���
� ��� � � �� ��� ���� ���. DDS ��� �� �� �
� �� �� ��� �� ��� ��� ����.
�� � � � ��� �� � � �� ��
triggered-action� ��� �, �� �� ��� �� ���� �� , �
�� ��� � ���� ��� ��� ��� ��� ��� ��. �
��� ��� ��� ��� �� INSERT, UPDATE �� DELETE �
�� ��� ���.
��� ��� � �� ����� ��� ��� ��� , ���
��� � ���� ��� ��� ��� ��� ��� ��. ��� �
�� ��� ��� ��� �� INSERT, UPDATE �� DELETE ���
��� ���.
�� � ���� ��
�� �� ��� � �� ��� ��� � �� ����. ��
� �� ��� � �� �� INSERT, UPDATE �� DELETE ��
� ��� � ����. ��� �� � ��� �� ����.
v triggered-action� SQL�� � �� ���, ��� �� ��� �
�� , � �� CRTDUPOBJ CL �� ��� ���
v triggered-action� SQL�� �� �� �� �� ���, ��
CRTDUPOBJ CL �� ��� ��� � ��� �� ��� ���
� �� � ��
v �� RSTOBJ �� RSTLIB CL �� ��� ��� �� �� ��
�, triggered-action� � �� �� , ��� �� ��� ��
�
�� �� ��� CREATE TRIGGER�� ��� ���� �� �
� �"(drop)�� ���. ��� �"� ���� �� ��� �� �
� � �� ��� �� � ��� � �� ��� �� � ���
�� ��� ��� ����.
�� � ���� ��
SQL-trigger-body�� ��� �� ��� SQLCODE -723� SQLSTATE
09000� ��� � ��.
SQL-trigger-body��� SIGNAL�� � � ����. SIGNAL�� ���
SQLCODE -438 � SQLSTATE� � ��.
�� ���� ���
��� ��� � SQL� � SQL�� � C �� ��� �� �� ��
�� �� �����. ���� ���� GRTPGM ��� �� ��. �
CREATE TRIGGER
� 5 � �� 585
|
|
|
|
|
|
|
|
|
|
|
|
���� ��� � ��� SQL ��� CREATE TRIGGER�� ��� �
�� ����. ����� ACTGRP(*CALLER)� ��� �� ��.
��� �� ��� ��� ���� �����.
�� ���
SQL�� ��� , ��� ��� ��� ��� ���� ��� �
�� �� ��� �����. ��� ��� ��� ��� ��� �
�� ��� �� ��� ����� ��� �����.
����� ���, ��� ��� ��� ��� ��� �� ��� �
���� ��� �����.
�� ��
�� ���� ��� ��� ��� ����.
v SQL ��� �� � �� ����� �� �� *EXCLUDE� ��� �
� , � ��� ��� ���� ��� ���� ��� ���
��� ��� �����. ��� ���� ��� ���� �� ��
����� ��� � ��� ���� ��� ���� ��. ���
���� �� ��� ��� ���� �� � ��� ��� �� ID�
�� ��� ��� �� �� �� ���� ���� ���
� �� ��� *ALLOBJ� *SECADM � ���� �� ����. �
�� ���� �� ��� ���� �� �� ����� ���
SQL CREATE TRIGGER�� ��� ��� ��� ����� ��
��� �����. �� ��� ���� ��� ��� ���� �
��� OWNER(*GRPPRF)� ��� �� �� ���� ����
��� �� .�� ����� ��� �� ���� ����
OWNER(*GRPPRF)� ��� ���� ��� ����� �� ��
�� ��� ��� ��� �� ��.
v System ��� �� � �� ����� �� �� *EXCLUDE� ���
�� , SQL CREATE TRIGGER�� ��� ��� ��� �� �� �
�� ������ ��� �����.
��� ��
�� ��� ��� � SET TRANSACTION�� ��� ��� �� �
� ��� � ��� ���� � ������ ����� �� �� ��
�� ���� ���. ���� �� SET TRANSACTION�� ���
SQL-trigger-body� SQL-control-statement� �� � ����. ���� SET
TRANSACTION�� ��� SQL-trigger-body� � ��� ��� ��
�� � ������ ����� �� �� � SET TRANSACTION��
��� �� ��� �� ��.
CREATE TRIGGER
586 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
��� ���� � ������ ����� No Commit(COMMIT
(*NONE) �� COMMIT(*NC)) ��� �� ��� ��� �� ��
�� ��� �� �� �� �� ������� ��� �� � � ��
� ��� ���� ����� ��� ����. ��� SQL-trigger-body�
ATOMIC� ��� ATOMIC ��� ���� � ������ ����
� No Commit(COMMIT(*NONE)�� COMMIT(*NC))� �� ��� ��
� �� �� ��� �� �� �� ��� ����. ��� �
��� � ������� No Commit (COMMIT(*NONE) ��
COMMIT(*NC))� �� ��� ��� �� ��� �� ������
� ��� ����� � ����.
�� � �� ��(ADDPFTRG) CL �� �� ��� ��� ���
CREATE TRIGGER�� �� ��� SQL ��� � �� �� ���
��� ��� SET TRANSACTION�� ��� � ���� ��
�� � �� ������� ��� ������ ���� � �� ���
�. �� ��� ��� ��� ������� � ���� ��� �� �
���. ��� ��� ��� � ��(ACTGRP(*NEW))�� ���
� ��� ��� ��� ������� �� � �� ��� �� �� SQL
��� ��� �� ��� ����. ��� � ���� ��� ���
��� �� �� �� ��� �� ������ ��� ��� ����
� ��� ����. CREATE TRIGGER�� �� ��� SQL ��� ��
���� � ���� ���� ����.
��� ������� �� �� �� ��� SQL �� �� �
�� � SQL ��� �� � � � ��. �� � �� � ��
� ���� �� � � �� ��� ��� ������� �
�� �� � � ��� ����� � �� �� �� �����. �� �
���� �� � ���� ��� �� ����� �� ��� SET
TRANSACTION� ��� ��� �� �� �� � � �����.
��� ������� �� �� �� ��� SQL �� �� ��
�� �� �� �� ��.
��� ���� � ������� No Commit(COMMIT(*NONE) �
� COMMIT(*NC)) �� ��� ��� INSERT, UPDATE �� DELETE
�� �� ��� �� ��� �� �� ��� �� �� � �
�� ��� ��� � SQL ��� ��� ����. � � �� ���
� �� ������. ��� ������� �� �� �� ���
�� � � �� �� ��� � �� ��� ��� � ����
, ��� INSERT, UPDATE �� DELETE�� �� ���� ���
��� ����.
CREATE TRIGGER
� 5 � �� 587
�
� 1��� ��� �� ��� ��� � ��� �����. ��� ��
EMPLOYEE �� ��� COMPANY_STATS �� �� �� �� �� ��
� � �� ������. COMPANY_STATS ��� ��� �� ����� �
���.
CREATE TABLE COMPANY_STATS(NBEMP INTEGER,NBPRODUCT INTEGER,REVENUE DECIMAL(15,0))
� ���� �� �� �� ��� ���� � � ��� �����.
� �� �� NEW_HIRE� ��� ��� ��� ��� ��� �� ��
�����. � ��� �� EMPLOYEE �� �� ��� COMPANY_STATS
�� NBEMP �� 1� �����.
CREATE TRIGGER NEW_HIREAFTER INSERT ON EMPLOYEEFOR EACH ROW MODE DB2SQLBEGIN ATOMICUPDATE COMPANY_STATS SET NBEMP = NBEMP + 1;END
�� �� FORM_EMP� ��� ��� �� ��� �� �� �����
�. � EMPLOYEE ��� �� �� ��� COMPANY_STATS �� NBEMP
�� 1� ������.
CREATE TRIGGER FORM_EMPAFTER DELETE ON EMPLOYEEFOR EACH ROW MODE DB2SQLBEGIN ATOMICUPDATE COMPANY_STATS SET NBEMP = NBEMP - 1;END
� 2�� �� �� ��� �� ��� �� � � � �� �� � � 10% �
�� �� � ��� �� ��� �� � ISSUE_SHIP_REQUEST� �
�� ��� REORDER� �����. ��� �� � ISSUE_SHIP_REQUEST
� ��� �� �� � �� � � � � ��� � � ����. � ��
�� ��� ��� ���� ����� �����.
�� �� PARTS �� ����. �� � � ��� ��� ON_HAND�
MAX_STOCKED � �� �� �� ��.
CREATE TRIGGER REORDERAFTER UPDATE OF ON_HAND, MAX_STOCKED ON PARTSREFERENCING NEW AS NROWFOR EACH ROW MODE DB2SQL
CREATE TRIGGER
588 iSeries� DB2 UDB SQL ��� V5R2
WHEN (NROW.ON_HAND < 0.10 * NROW.MAX_STOCKED)BEGIN ATOMIC
VALUES(ISSUE_SHIP_REQUEST(NROW.MAX_STOCKED - NROW.ON_HAND, NROW.PARTNO));END
� 3��� �� �� ��� � VALUES� � �� ��� ��� �� ��
� �2� ����� �����. � ���� �� � �� � �� ����
��� ��� ��� �����. WHERE�� �� �� �� �� � ��
�� � ��� �� ��� �� � ��.
CREATE TRIGGER REORDERAFTER UPDATE OF ON_HAND, MAX_STOCKED ON PARTSREFERENCING NEW TABLE AS NTABLEFOR EACH STATEMENT MODE DB2SQLBEGIN ATOMICSELECT ISSUE_SHIP_REQUEST(MAX_STOCKED - ON_HAND, PARTNO)FROM NTABLEWHERE ON_HAND < 0.10 * MAX_STOCKED;END
CREATE TRIGGER
� 5 � �� 589
CREATE VIEWCREATE VIEW�� �� ���� � ��� �� �� �� �����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� �� ��� ��
– � � ��(CRTLF) CL �� �� *USE
– �� ��� �� �� �� *EXECUTE � *ADD
– �� ��� �� �� �� ��� ��� �� SQL ���� �� �
�� �� *CHANGE
v �� ��
��� ���� ID� �� ��� ��� �� � �� �� ���.
v �� ��� �� ���� ��� �� ���� ��� �� �� ����
� ��� �� ��
– � �� ���� SELECT �� �
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ����.
v �� �� SELECT ��� �������.
v �� �� *OBJOPR � *READ ��� ���, � �� �� �� �����
�� �� �� �� �� *READ ��� ��� �������. �, � ��
� ��� �� �� � ��� �� ��� �� � ��� ��� �� ��
� �
CREATE VIEW
590 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
��
�� CREATE VIEW view-name �
�
,
( column-name )COLUMN
FOR system-column-name
�
�
AS fullselect,
WITH common-table-expression
�
�CASCADED
WITH CHECK OPTIONLOCAL
��
�
view-name
�� �����. ��� �� ��� ���� � ��� �� ��� ��
�, �, ��, �� �� �� �� � ����.
SQL�� ��� �� ��� �� ��� ���� �� ��� ���� ��
��.
����� ��� �� ���� �� ��� ���� �� ��. ��� �
��� � ��� � �� FROM �(�� �� � ����� �� � ���
� FROM � )� ��� � �� �� �� ���� �� ��.
� ��� �� ����� ��� iSeries� DB2 UDB SQL� ����� �
����. �� �� ��� �� ��� 572 ���� �� �� �� ���� �
����.
(column-name, ... )
�� � �����. �� ���� ��� ���� �� �� �� �
� �� �� �� ���� ���� ���. � column-name �
system-column-name� ��� ��� ��� ���. �� ����
��� ��� �� � �� ��� ���� � ����� ��� ��
���.
� ��� ���� ��� ��, ��� ��� �� �� ��� ��
� ���, ��(� ��� ��) ���� ���� ���. ��� �
� � �� ��� 339 ���� ��� ���� �����.
CREATE VIEW
� 5 � �� 591
|
|
|
|
|
|
|
|
FOR COLUMN system-column-name
� �� OS/400 ��� �����. �� � ��� �� �� column-name
� �� �� ��� ��� � ����.
system-column-name� ��� �� column-name� ��
system-column-name� ���, ��� ��� �� ��. ��� ���
��� ��� �� ��� ��� 572 ���� � �� �� ���� ��
���.
AS fullselect
�� �����. �� ��� ����� �� �� ��� � ��� ��
��.
common-table-expression� � �!� �� ��� � ��� � �� �
���� �����. ��� ��� 353 ���� �common-table ����� �
����.
����� ��� ��� ��� � ��. ����� �� ��� 350 ���
� �fullselect�� �����.
WITH CASCADED CHECK OPTION
�� �� �� �� �� �� �� ��� ��� ���� �����.
�� ��� �!� �� �� � �� ��� ��� � �� ���.
WITH CHECK OPTION ��� ���:
v �� �� �� �����.
v �� ��� � ��� ���.
v � ��� WHERE�� scalar-subselect� ��.
v �� ��� ��� �� ���.
WITH CHECK OPTION� �� ��� �� ���� �� �� ��
� �� ��� ��� �� ��.
WITH CHECK OPTION� ��� �� ��� �� ��� � �� �
��� ��� ��� ����. �� WITH CHECK OPTION� � �
� �� �� �� ����� �� �� ��� ��� � �� ��
����. � ��� ��� �� ��� �� ��� �!� �� �� ��
�� �� � ��.
� V��� WITH CHECK OPTION� V� �� �� ����� ��
� ��� �� �� �� ��. ���, ���� �� V�� ��� WITH
CHECK OPTION� � �� ��� ���� V� �� �� ��� � ��
�� ��. �� ��, ��� ���� �� �����.
CREATE VIEW
592 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE VIEW V1 AS SELECT COL1 FROM T1 WHERE COL1 > 10
CREATE VIEW V2 AS SELECT COL1 FROM V1 WITH CHECK OPTION
CREATE VIEW V3 AS SELECT COL1 FROM V2 WHERE COL1 < 100
V1� WITH CHECK OPTION� �� V1� WITH CHECK OPTION� ��
�� �� �� �� ��� V1� ��� �� INSERT�� �����.
INSERT INTO V1 VALUES(5)
V2� WITH CHECK OPTION� �� ��� V2 ��� �!� �� ��
���� V2� ��� �� INSERT�� ����� ��� �����.
INSERT INTO V2 VALUES(5)
V3� WITH CHECK OPTION� �� V2� ��� WITH CHECK
OPTION� ���� V3� ��� �� INSERT�� ����� ��� ��
���.
INSERT INTO V3 VALUES(5)
V3� ��� �!� ����(V3�� WITH CHECK OPTION� ����) V2
� ��� �!� ���(V2�� WITH CHECK OPTION� ����), V3� �
�� �� INSERT�� �����.
INSERT INTO V3 VALUES(200)
WITH LOCAL CHECK OPTION
�� WITH LOCAL CHECK OPTION�� ��� � �� � �� � ���
�!� ��� �� �� �� ���� �� ���� WITH LOCAL
CHECK OPTION� WITH CASCADED CHECK OPTION� �����. �
� �� WITH CASCADED CHECK OPTION�� WITH LOCAL CHECK
OPTION� �� ��� �� �� �� ����� �� �� �� ��
��.
WITH LOCAL CHECK OPTION� �� �� �� � WITH LOCAL
CHECK OPTION �� WITH CASCADED CHECK OPTION� �� � �
� �� ��� ���� �����. ���, WITH CASCADED CHECK
OPTION� �� �� �� � �� � �� �� ��� ���� �
����.
CASCADED� LOCAL� ���� �� �� �� ��� � ����. x� y�
LOCAL�� CASCADED� ���� ��� ���� �� �����.
v T0� ��� V1
v V1 WITH x CHECK OPTION� ��� V2
v V2� ��� V3
CREATE VIEW
� 5 � �� 593
v V3 WITH y CHECK OPTION� ��� V4
v V4� ��� V5
�� �� INSERT� UPDATE �� �� ��� � �� ��� �����.
� 48. INSERT � UPDATE �� �� ��� ��� �
INSERT ��
UPDATE ���
�
x = LOCAL
y = LOCAL
x = CASCADED
y = CASCADED
x = LOCAL
y = CASCADED
x = CASCADED
y = LOCAL
V1 �� �� �� ��
V2 V2 V2 V1 V2 V2 V1
V3 V2 V2 V1 V2 V2 V1
V4 V4 V2 V4 V3 V2 V1 V4 V3 V2 V1 V4 V2 V1
V5 V4 V2 V4 V3 V2 V1 V4 V3 V2 V1 V4 V2 V1
� �� �: ��� � ��� �� ��� ���.
v �� ����� � �� �� � �� � �� �� �����.
v �� ����� GROUP BY � �� HAVING �� � ����.
v �� ����� �� ����� �� � ����.
v �� ����� UNION �� UNION ALL ���� � ����.
v �� ����� DISTINCT �� � ����.
���� �: �� � ��� �� ��� ���.
v �� � �����.
v � �� �� �� �� ��� ��� �� ��. �, ��� �� ��
� ����� �� ���, ��� �, �� �� � � �����
���� � ��.
� �� SELECT�� �� ���� �� ��� �� �� � �� ���
�� UPDATE�� ��� �� � � ����. �, ��� �� �� � ��
��� �� ���, ��� �, �� �� � � ����� ���
� � ��.
�� � � ��� �� � �����.
�� �� �: �� ��� � � � ��� �� �� � �����.
�� �� � �� � ��� �� �� ����. �� �� �� INSERT,
UPDATE �� DELETE�� ���� � � ����.
��� � ��� �� �� ����.
CREATE VIEW
594 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� �: �� CREATE VIEW�� ��� � �� �� ��� �� ��. �
� �� ��� � ����� SBCS ��� ��� ��� ��� �� �� ��
��. �� ��� � � �� ���� � ������ �� ��. ��� �
�� �� �� ��� ��� ��� �� ��� �� ��.
� ��: �� ��� � � �� �� ��. �� ��� � �� ���
��� �� �� �� � � ��(CRTLF) �� WAITFILE � WAITRCD
� �� ��� ��� ��� �� ��.
��� �� �� ��� �� �� ��� �� ����� �� ��. �� �
��� �� �� �� ��� � ��� �� �� ��� ��� ��� ��
� �� CREATE VIEW�� ��� ������ �� ��. ��� �� ��
��� ��� DB2 Multisystem �� �����.
� ���: SQL�� ��� , �� ��� �� ��� ���� ��� ��
� �� ��� �����. ��� ��� �� ��� ��� ��� ��
� �� ��� ����� ��� �����.
����� ���, �� ��� ��� ��� ��� �� ��� ���
�� ��� �����.
� ��: SQL ��� ��� �� *PUBLIC� �� *EXCLUDE ��� ���
� �� ��. ����� ��� ���� �� ��(CRTAUT) ��� ��
���� �� *PUBLIC� �� ���� �� ��.
�� ��� �� ���� ����(GRPPRF � �) �� ��� ���
(GRPAUT � �), � �� ���� �� �� ��� ����.
��� �� �� �� ��� ��� SELECT ��� �����. ��� �
���� ��� �� �� ��� SELECT ��� ��� ��� ��� ��� �
�� SELECT ��� �� ���� ��� � ����.
��� ��� INSERT, UPDATE � DELETE ��� ��� �� ����. �
� �� ��� ���, ��� ����� � �� FROM��� ��� �� ��
�� ��� �� �� �� ��� ��� ��� �����. �� ��� ���
� �� �� � � ��� ��� � ����.
ID : �� ��� fullselect� �� ��� �� ID ���� �� �� ID
��� �/����� �� ��� ��� , �� � ID � �
��. �� �� , �� � ID �� ��� ���� ����. �� ��, �
�� ����.
v � ��� �� ����� ID ��� �� ���(�, ��� � � �
� ��)� ��.
CREATE VIEW
� 5 � �� 595
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v � ���� ��� �� ��.
v � ��� �� ID � ���� ���� ��.
v � ���� UNION� ��.
� ����: � �� SELECT�� �� ���� �� ��� �� �� �
�� ��� �� UPDATE�� ��� �� � � ����. �, ��� �� �
� � ����� �� ���, ��� �, �� �� � � �����
���� � ��.
�� �� ��� �� �� � �� 32 ��� �� �� ��� �
����.
�� 8000 ��� � ���� � ����. ��� ��� � �, �� �
�, WHERE�� ��� � �� ���.
� �� ��: SELECT * FROM view-name� ��� � ��� ��� ���
� �����.
�
� 1‘MA’ ��� ��� ���� ��(PROJNO)� �� �� �� �� PROJECT
�� �� MA_PROJ�� �� �����.
CREATE VIEW MA_PROJAS SELECT * FROM PROJECT
WHERE SUBSTR(PROJNO, 1, 2) = ’MA’
� 2� 1� �� �� �����. � � ���� ��(PROJNO), ���� ��
(PROJNAME) � ����� ���� ��(RESPEMP) � �����.
CREATE VIEW MA_PROJ2AS SELECT PROJNO, PROJNAME, RESPEMP FROM PROJECT
WHERE SUBSTR(PROJNO, 1, 2) = ’MA’
� 3� 2� �� �� �� ��� ���� IN_CHARGE� ��� �� � �
����.
CREATE VIEW MA_PROJ (PROJNO, PROJNAME, IN_CHARGE)AS SELECT PROJNO, PROJNAME, RESPEMP FROM PROJECT
WHERE SUBSTR(PROJNO, 1, 2) = ’MA’
�: �� � ��� ��� �� �� � � ��� � MA_PROJ ��
�� �� �� ��� ���.
CREATE VIEW
596 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
� 4PROJECT �� � � (PROJNO, PROJNAME, DEPTNO, RESPEMP)� ��
��(RESPEMP)� ��� ��� �(LASTNAME)� �� �� PRJ_LEADER�
�� �� �����. EMPLOYEE� EMPNO� PROJECT� RESEMP� ���
EMPLOYEE ��� ��� ����.
CREATE VIEW PRJ_LEADERAS SELECT PROJNO, PROJNAME, DEPTNO, RESPEMP, LASTNAME
FROM PROJECT, EMPLOYEEWHERE RESPEMP = EMPNO
� 5� 4��� �� �����. � � PROJNO, PROJNAME, DEPTNO, RESEMP
� LASTNAME ��� ���� � �(SALARY + BONUS +COMM)� �
����. �� 1 �� � �� ��(PRSTAFF)� �� ����� �����.
CREATE VIEW PRJ_LEADER (PROJNO, PROJNAME, DEPTNO, RESPEMP, LASTNAME, TOTAL_PAY)AS SELECT PROJNO, PROJNAME, DEPTNO, RESPEMP, LASTNAME, SALARY+BONUS+COMM
FROM PROJECT, EMPLOYEEWHERE RESPEMP = EMPNO AND PRSTAFF > 1
CREATE VIEW
� 5 � �� 597
DECLARE CURSORDECLARE CURSOR�� ��� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
���. Java� ����� � ��.
����
� ��� ��� ��� ����� ��� ����. � � ��� ��
OPEN �� FETCH� ���� ��� ���� ID� �� ��� ���
�� � �� �� ���.
v ��� SELECT�� ��� � �� ��
– � �� ���� SELECT �� �
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ����.
v �� �� SELECT ��� �������.
v �� �� *OBJOPR � *READ ��� ���, � �� �� �� �����
�� �� �� �� �� *READ ��� ��� �������. �, � ��
� ��� �� �� � ��� �� ��� �� � ��� ��� �� ��
� �
��� SELECT�� ��� ����.
v statement-name�� ��� �� select�
v ��� select-statement
statement-name� ���
v ����� ���� � DYNUSRPRF(*OWNER)� CRTSQLxxx �� ��
� ����, ��� ���� ID� �� �� ���� ID��. ��� ��
� 58 ���� ����� ID � ������� �����.
DECLARE CURSOR
598 iSeries� DB2 UDB SQL ��� V5R2
|
|
v DLYPRP(*YES)� CRTSQLxxx �� ��� �� select�� �� �
���� ��� �� ��.
v DLYPRP(*YES) ��� �� ����� �� ��� � ���� �
�� �� ��.
select�� ���
v SQL ��� �� USRPRF(*OWNER) �� USRPRF(*NAMING)� CRTSQLxxx
�� �����, ��� ���� ID� SQL ������ ���� ��
��.
v ��� ��� �� USRPRF(*OWNER) �� USRPRF(*NAMING)�
CRTSQLxxx �� ����� ��� ���� ID� �� �� ���� ID
��.
v REXX�� ��� ���� ID� �� �� ���� ID��.
v ��� � ���� ��� �� ��.
��
�� DECLARE cursor-nameINSENSITIVE SCROLL
DYNAMIC
�
� CURSOR FORWITH HOLDWITH RETURN
select�statement-name
��
�
cursor-name
��� �����. ��� �� ����� �� �� ��� ��� ���
� ��.
INSENSITIVE
�� ��� �� � � �� �� �� � ��� �� ��� �, �
�� �� �� ��� ��� ��� �����. INSENSITIVE� ��
� ��� � ��� �� ���� �� ��� �� ��. �� SELECT
��� FOR UPDATE�� ��� � �� ������� ��(ALWCPYDTA
(*OPTIMIZE) �� ALWCPYDTA(*YES))� ��� ��� ����.
SCROLL
��� ����� � ��� �����. ��� �� � ��� �� ���
DECLARE CURSOR
� 5 � �� 599
�, � � �� �� ���� ��� ��� ��� ����. DYNAMIC
� ��� ��� ��� �� ����. �� SELECT��� FOR UPDATE
�� ��� � ����.
DYNAMIC SCROLL
���� ���� � ��� �� ������ ����� �� ��� �
, � � �� �� ���� ��� �� ��� ��� � ���
��. � � �� �� � � DYNAMIC� ��� ��� �, � �
�� �� ���� ��� ��� ����.
v �� ���� ��� ��. �� ���� ��� �� � �� ��.
– INSENSITIVE� ������.
– ORDER BY�� ��� � ���� � �� �� 2000 ��� ��� �
– ORDER BY � GROUP BY�� �� �� �� ��� � � ��� �
– ORDER BY � GROUP BY�� ��� �� ��, FILE LINK CONTROL
� READ PERMISSION DB� �� �� �� ��� �� DLVALUE,
DLURLPATH, DLURLPATHONLY, DLURLSERVER, DLURLSCHEME �
� DLURLCOMPLETE ��� � � �� � �
– UNION �� DISTINCT�� ��� �
– ORDER BY �� GROUP BY�� � �� �� �� �� � ��� �
– JOINDFT �� �� ��(DDS) � �� �� ��� � �� �� �
� ��� �
– � � ������ � ��� ��� � � �� ��� �
– DECLARE CURSOR� select�� GROUP BY�� �� CURRENT �
� RELATIVE ���� ��� FETCH�� ��� �
v � ��� � ��
– �� ��� ��� �� � ��� ��� �� ��� ����.
– No IN, = ANY, = SOME �� <> ALL � ��� �� ��� ��� �
� �� ��.
WITH HOLD
��� �� ��� ��� �� ��� ���. ��� ��� ��� �� �
�� ��� �� ��� WITH HOLD �� ��� �� ��� ��
��� ����� ����.
WITH HOLD� ��� � �� ��� �� �� � � �� � ���
�, ��� ���� � ��� �� ��� �����. ���� ���
� UPDATE� DELETE�� ��� � �� �� FETCH�� �����.
�� ��� ����� CONNECT(� 1)� �� ��� �� ����. ��
� ��� �� ��� ��� ��� �� ����� ����. WITH HOLD
DECLARE CURSOR
600 iSeries� DB2 UDB SQL ��� V5R2
� ��� ��� ��� ��� ��� �� �� � ��� ���, ��
� �� ��� ��� ����� ����.
�� �� �� ��� �� ��� ��� WITH HOLD �� �� ��
� �����.
WITH RETURN
� �� ��� ��������� �� ��� ��� ��� �����. WITH
RETURN� DECLARE CURSOR�� ������ �� �� ��� � �
� �� � �����. �� �� ��� � �� ������ �
� ����.
SQL ����� ��� SQL ������ ��� � �� � �� WITH
RETURN�� ��� �� ��� SQL ��������� �� ��� �
����. SQL ������ �� �� � ���� SQL ������ ���
� ����. �� �����(LANGUAGE SQL� ��� ��� �� �)
�� WITH RETURN�� �� �� �� ����� ��� � �� �
�� � �� ��� � ��.
�� ��� ������ �� ������ �� � �� �� ��� ��
�� ���� �� ��� �� ��.
select-statement
��� SELECT�� �����. ��� ��� 352 ���� �select��� ��
���.
select-statement� �� ��(REXX ��)� ��� ��� ��� �
�� �� ��� � � ����. RPG, PL/I � REXX ��� ��� �
�� ��� ��� �� �� ����� DECLARE CURSOR�� ���
� ���. ��� �� �� RPG � PL/I� DECLARE CURSOR�� ��
� ����. REXX�� �� ��� ��� �� � ���� �
�� ��� ���.
statement-name
��� SELECT�� ��� � statement-name� �� ��� �� select
���. statement-name� �� ����� �� DECLARE CURSOR�� �
�� statement-name� ��� �� ���� ���. �� ��� �� ��
� 728 ���� �PREPARE�� �����.
DECLARE CURSOR�� ���� ��� ��� �� ��� ���� ���.
��� �� �: � ��� ��� ���� � �� �� ���� �� ����
�. �� ��� SELECT�� �� ��� �����.
DECLARE CURSOR
� 5 � �� 601
|
|
��� ��� � � �� ��� ���.
v �� ����� � �� �� � �� � �� �� �����.
v �� ����� GROUP BY � �� HAVING �� � ����.
v �� ����� �� ����� �� � ����.
v �� ����� UNION �� UNION ALL ���� � ����.
v �� ����� DISTINCT �� � ����.
v select��� ORDER BY�� �� �� FOR UPDATE OF� �� DYNAMIC
SCROLL� �� ��.
v select��� FOR READ ONLY �� � ����.
v select��� FETCH FIRST n ROWS ONLY �� � ����.
v �� fullselect� ��� �� �� ��� ����.
v DYNAMIC � � �� ��� � select��� SCROLL � ��
� ����.
v �� ����� FOR UPDATE OF�� ��� ���� DATALINK �
� ����.
��� ��� �� �� ��� �� ���� �� �� � �� ��� � ��
� ������.
v ��� � �����.
v �� � �� �� �� ��� ��� �� ��. �, ��� �� ��
� ����� �� ���, ��� �, �� �� � � �����
���� � ��.
��� � ��� �� �� ����.
ORDER BY� ��� FOR UPDATE OF� ��� FOR UPDATE OF�� �
� � ORDER BY�� ��� � �� � ����.
FOR UPDATE OF�� ��� �� � �� subselect� SELECT�� ��
� �� � ����.
��� ��: cursor-name� � � ��� �� ���� �, �� � � �
� ������. ��� �� �� �� ���� ��� ���� ���
��� � ����. �� ��, �� ��� �� ������ ��� ����
� ��� ����� �� � ��� ��� � ����.
cursor-name� � � ��� �� ����� ��� ���� �� ��. �� �
�, �� ����� �� ���� � ��� ���� ��� �� ���
� � �� ���� �� � ��� ��� � ����.
DECLARE CURSOR
602 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CLOSQLCSR(*ENDJOB), CLOSQLCSR(*ENDSQL) �� CLOSQLCSR
(*ENDACTGRP)� CRTSQLxxx �� ��� ��� ��� ���� ��� �
� ����� ��� ������ ��� � ����.
v CLOSQLCSR(*ENDJOB)� ��� ��� ���� ��� �� ����� �
��� ��� ��� � ����.
v CLOSQLCSR(*ENDSQL)� ��� ���� ��� �� ��� SQL ���
�� ��� ��� ��� ���� ��� �� ����� ���� �� ��
� � ����.
v CLOSQLCSR(*ENDACTGRP)� ��� ��� � ��� ��� ���
� ��� �� ��� �� ���� �� ��� � ����.
��� � � � ��� �� ������� ���, ������ ��� � �
��� ��� ��� ���� � ��� ��� �� ��� ��� �
����. �� ��, CONNECT(� 2)�� ��� ����� � X� � Y
� �� ��� ����� �����.
EXEC SQL DECLARE C CURSOR FOR...EXEC SQL CONNECT TO X;EXEC SQL OPEN C;EXEC SQL FETCH C INTO...EXEC SQL CONNECT TO Y;EXEC SQL OPEN C;EXEC SQL FETCH C INTO...
�� OPEN C�� �� C� �� ���� ��� ��� ��� ����
����.
SELECT�� ��� � �� ��. �� ��� �� �� ��, �� ��
��� ��� � ����. �� SELECT�� ��� � ��� ��� �
����. �� ��� ��� � ��.
� ��: ��� ���� �� � ������ ���� �� �� �����
���� �� � ����. ��� UPDATE �� DELETE�� ��� ���
�� , FOR READ ONLY� ��� ���.
�� ��: ALWCPYDTA ��� ��� DYNAMIC SCROLL ��� �� �
� ��. �, � � �� �� ��� ��� � �� ��� ��
� ��� � ��� ��� ��� �� ��� �� ��� ����.
REXX ��: ��� ��� REXX ����� �� DECLARE CURSOR�� �
�� DECLARE CURSOR� PREPARE � EXECUTE� ���� �� �
��.
DECLARE CURSOR
� 5 � �� 603
�
� 1C1� � DEPARTMENT�� ��� ��� � �� ��� ����. ���
DECLARE CURSOR �� �����.
EXEC SQL DECLARE C1 CURSOR FORSELECT DEPTNO, DEPTNAME, MGRNO
FROM DEPARTMENTWHERE WHERE ADMRDEPT = ’A00’;
� 2C2� STMT2�� ��� ��� ����.
EXEC SQL DECLARE C2 CURSOR FOR STMT2;
� 3C3� � EMPLOYEE� ��� �� ��� ��� ����. �� ��� ��
�� ��� �� ��� � ��� ���.
EXEC SQL DECLARE C3 CURSOR WITH HOLD FORSELECT *FROM EMPLOYEEFOR UPDATE OF WORKDEPT, PHONENO, JOB, EDLEVEL, SALARY;
�� � ����� ��� ��, ��� ��� �� � FOR UPDATE
�� ��� � ����. � � �� �� ��� � �� � ����. � �
�� ���� ���, ��� �� �� ��� ��� � ����.
� 4PL/I ������ �� C1� ��� EMPPROJACT �� � � �� � �
� � �� ����(PROJNO)� �� �� ��� � �� ��� �� EMP
(CHARACTER(6)), PRJ (CHARACTER(6)), ACT (SMALLINT) � TIM
(DECIMAL(5,2))� �����. ����� �� �� ��� ��
SEARCH_PRJ(CHARACTER(6))�� �����.
EXEC SQL BEGIN DECLARE SECTION;DCL EMP CHAR(6);DCL PRJ CHAR(6);DCL SEARCH_PRJ CHAR(6);DCL ACT BINARY FIXED(15);DCL TIM DEC FIXED(5,2);DCL SELECT_STMT CHAR(200) VARYING;
EXEC SQL END DECLARE SECTION;
SELECT_STMT = ’SELECT EMPNO, PROJNO, ACTNO, EMPTIME ’ ||’FROM EMPPROJACT ’ ||’WHERE PROJNO = ?’;
.
.
.
DECLARE CURSOR
604 iSeries� DB2 UDB SQL ��� V5R2
|
|
||||
|
|
|
|
||||
|
EXEC SQL PREPARE SELECT_PRJ FROM :SELECT_STMT;
EXEC SQL DECLARE C1 CURSOR FOR SELECT_PRJ;
EXEC SQL OPEN C1 USING :SEARCH_PRJ;
EXEC SQL FETCH C1 INTO :EMP, :PRJ, :ACT, :TIM;
IF SQLSTATE = ’02000’ THENCALL DATA_NOT_FOUND;
ELSE DO WHILE (SUBSTR(SQLSTATE,1,2) = ’00’| SUBSTR(SQLSTATE,1,2) = ’01’);EXEC SQL FETCH C1 INTO :EMP, :PRJ, :ACT, :TIM;
END;
EXEC SQL CLOSE C1;...
� 6DECLARE CURSOR�� �� �� C1� SELECT� ��� �����. C1� �
��� ���� ����.
EXEC SQL DECLARE C1 DYNAMIC SCROLL CURSOR FORSELECT DEPTNO, DEPTNAME, MGRNOFROM CORPDATA.TDEPTWHERE ADMRDEPT = ’A00’;
� 74 �� �� ��� � ��� �� �� (RR) �� ��� ���
�� ��� ��� �����.
DECLARE CURSOR1 CURSOR FORSELECT COL1, COL2, COL3, COL4FROM TBLNAME WHERE COL1 = :varnameWITH RR
DECLARE CURSOR
� 5 � �� 605
DECLARE GLOBAL TEMPORARY TABLEDECLARE GLOBAL TEMPORARY TABLE�� �� ������ ������
� �� �� �� �����. �� �� � ��� ��� ����� ���
����. � ��� ���� �� �� ��� �� � ����. ��� ��
� �� ��� �� �� ��� � ��� �� �� �� ���� � ��
� ����. ������ ����� ���, �� �� � ��.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
LIKE �� AS ��� �� ��� ��� ���� ID� �� ��� LIKE
�� AS ��� �� ��� �� �� �� ��� �� � �� �� ��
�.
v �� �� �� SELECT ��
v �� �� �� ��
v �� ��
�� �� ����, ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ���� ��� � �� ��
– �� �� �� USAGE ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� �� USAGE ���
����.
v �� �� ����.
v �� �� �� USAGE ��� �������.
v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.
DECLARE GLOBAL TEMPORARY TABLE
606 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��
�� DECLARE GLOBAL TEMPORARY TABLE table-name �
�
,
( column-definition )LIKE table-name
view-name copy-optionsLIKE table-name
view-name copy-optionsas-subquery-clause
�
� (1)
WITH REPLACEON COMMIT DELETE ROWS
ON COMMIT PRESERVE ROWSON ROLLBACK DELETE ROWS
NOT LOGGEDON ROLLBACK PRESERVE ROWS
��
�:
1 � �� � �� �� ��.
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 607
|||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||
|
|
|
|
|
column-definition:column-name
COLUMNFOR system-column-name
data-type �
�
NOT NULLdefault-clause
GENERATED ALWAYS (1)
GENERATED BY DEFAULT identity-options(2)
datalink-options
�:
1 GENERATED� � ID � �� ��� � ����.
2 datalink-options� DATALINK� DATALINK� ��� � distinct-type� ���� ��� �
����.
DECLARE GLOBAL TEMPORARY TABLE
608 iSeries� DB2 UDB SQL ��� V5R2
|||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||
|
|
||
||
|
||
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 52 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATACHARACTER VARYING ( integer ) FOR SBCS DATACHAR allocate-clause FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) allocate-clause FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC allocate-clause
( 1M )DBCLOB
( integer ) allocate-clauseKMG( 1M )
BLOBBINARY LARGE OBJECT ( integer ) allocate-clause
KMG
DATETIMETIMESTAMP
( 200 )DATALINK
( integer ) allocate-clause CCSID integer
allocate�:ALLOCATE (integer)
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 609
|||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||
default�:WITH
DEFAULTconstantUSERNULLCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMPcast-function-name ( constant )
USERCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMP
identity-options:
AS IDENTITY,
1 (1)( START WITH numeric-constant )
1INCREMENT BY numeric-constant
NO MINVALUE
MINVALUE numeric-constantNO MAXVALUE
MAXVALUE numeric-constantNO CYCLE
CYCLECACHE 20
NO CACHECACHE integerNO ORDER
ORDER
�:
1 � �� � �� �� ��.
DECLARE GLOBAL TEMPORARY TABLE
610 iSeries� DB2 UDB SQL ��� V5R2
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||
||
�
table-name
�� �� �����. ���� ����� ��� SESSION��� ���.
���� ��� �� , SESSION� ����� �� ��. �� ��
�� �, �, �� �� ��� �� ���� �� ����� SESSION���
���.
v �� �� �� �� SESSION.table-name�� �� ��. �� �� �
� ��� �� �� �� � �� ��� ��� �� ����.
v SESSION.table-name� �� ��� ��� ������ ���� �� �,
�, �� �� ���� SESSION.table-name� ��� ��� ���.
�� �� � QTEMP�� ��� ���.
column-definition
� �� �����. � �� 8000 �� ��� ��� ���.
datalink-options:LINKTYPE URL NO LINK CONTROL
copy-options:
,COLUMN ATTRIBUTES (1)
EXCLUDING IDENTITYINCLUDING COLUMN
DEFAULTSUSING TYPE DEFAULTS
as-subquery-clause:
( column-name )COLUMN
FOR system-column-name
�
� AS ( select-statement ) DEFINITION ONLYWITH NO DATA copy-optionsWITH DATA
�:
1 � �� � �� �� ��.
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 611
|||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||
|
|
||
||
|
|
|
|
|
|
|
|
|
|
|
|
|
� ��� � �� � ��� 32766 �� ��� ��, VARCHAR��
VARGRAPHIC � ��� �� 32740 �� �� � ��. �� LOB� ��
� � � �� �� � ��� 3.5�� ���� ��� � ��. �� ��
�� � �� �� �� ��� 569 ���� ��� �����.
column-name
�� � �����. column-name� ����� �� �� � ��� �
� system-column-name� �� �� ��� ��� � ����.
FOR COLUMN system-column-name
� �� OS/400 ��� �����. �� � ��� �� column-name�
�� �� ��� ��� � ����.
system-column-name� ��� �� column-name� ��
system-column-name� ���, ��� ��� �� ��. ��� ���
��� ��� �� ��� ��� 572 ���� � �� �� ���� ��
���.
data-type
� �� �� �����.
���
�� �� �� �����. �� �� ��541 ���� �CREATE TABLE�
� �����.
FILE LINK CONTROL� �� ROWID �� DATALINK � �� ��
�� �� ��� � ����.
NOT NULL
� ��� � ��� ���. NOT NULL� ��� � �(null)� �
� ��� �����.
DEFAULT
� �� ��� �� �����. � �� column-definition� � � �� ��
� � ����. ID (AS IDENTITY� ��� )�� ��� �� ��� �
����. ������ ���� ID � ��� �� �����. ��� � �
��� �� ��� ��� ��� �� ��.
v � ��� ��� �� ����.
v � �� ��� ���� � �� �� �� ����.
� �� ��� �
� 0
�� �� ��� ��
�� �� ��� ��� 0� ���
� INSERT �� �� �
DECLARE GLOBAL TEMPORARY TABLE
612 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
||
||
||
||
� �� ��� �
�� INSERT �� �� ��
���� INSERT �� �� ����
�� �� DLVALUE(‘ ’,‘URL’,‘ ’)� ��� �
distinct-type �� �� �� �� ��� ��� �
column-definition�� NOT NULL� DEFAULT� ��� DEFAULT NULL�
��� ����.
constant
� �� ��� ��� ��� �����. ��� ��� 80 ���� ��
�� ��� ��� �� �� ��� �� � ��� � �� �� ���
� ���. �� ��� ��� SMALLINT, INTEGER, DECIMAL ��
NUMERIC � �� ����� � ��. �� ��� � ��� ���
� � �� ��� �� ���� �� � ����.
USER
INSERT �� UPDATE �� USER �� ����� �� � ��� �
�� �����. � �� �� �� �� USER �� ����� ��
��� �� �� CHAR� VARCHAR� �� ���.
NULL
� �� ��� ��� �� �����. NOT NULL� ��� ���
�� �� DEFAULT NULL� ����� � ��.
CURRENT_DATE
� �� ��� ��� �� �� �����. CURRENT_DATE� ��
� ��� �� DATE �� DATE� ��� �� ���� ��
�.
CURRENT_TIME
� �� ��� ��� �� ��� �����. CURRENT_TIME� ��
� � �� �� TIME �� TIME� ��� �� ���� ��
�.
CURRENT_TIMESTAMP
� �� ��� ��� �� ����� �����.
CURRENT_TIMESTAMP� ��� � �� �� TIMESTAMP�
� TIMESTAMP� ��� �� ���� ���.
cast-function-name
� ��� ��� �� �� �, BLOB, CLOB, DBCLOB, DATE, TIME
�� TIMESTAMP �� ��� ��� � �� ��� � ����.
�� �� � cast- funct ion� ��� ���� ��� ��� .
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 613
||
||
||
||
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
� �� ��� ���
BLOB, CLOB �� DBCLOB� ��� �
�� � N
BLOB, CLOB �� DBCLOB *
DATE, TIME �� TIMESTAMP� ���
� �� � N
N(N� ���� � ��� ��� �� ���
�) **
��
DATE, TIME �� TIMESTAMP *�� �� �� ��� � �� � N N(N� ���� � ��� ��� �� ���
�) **BLOB, CLOB �� DBCLOB BLOB, CLOB �� DBCLOB *DATE, TIME �� TIMESTAMP DATE, TIME �� TIMESTAMP *�:
* � ��� ��� �� ��� ���� QSYS2� �� �� �� ��(�� �� �� ��
�)� ���� ���.
** � ��� � �� �� � ��� ���� ���. ��� ���� ����� ��
�� �� ��� ��� ��� ���. ��� ���� � ��� ��� ��� �� ��
�� ��� ��� ��� ���.
constant
��� ��� �����. ��� �� �� �� � �� ��
�� � �� �� �� �� ��� ��� ���. BLOB,
CLOB, DBCLOB, DATE, TIME � TIMESTAMP �� ��
� ��� ����� ���.
USER
INSERT �� UPDATE �� USER �� ����� �� � �� �
�� ��� �����. � �� �� �� �� �� �� �
� �� �� USER �� ����� �� ��� �� ��
CHAR� VARCHAR� �� ���.
CURRENT_DATE
� �� ��� ��� �� �� �����. CURRENT_DATE�
��� � �� �� �� �� �� �� �� DATE�
�� ���.
CURRENT_TIME
� �� ��� ��� �� ��� �����. CURRENT_TIME� �
�� � �� �� �� �� �� �� �� TIME� �
� ���.
CURRENT_TIMESTAMP
� �� ��� ��� �� ����� �����.
CURRENT_TIMESTAMP� ��� � �� �� �� �� �
� �� �� TIMESTAMP� �� ���.
DECLARE GLOBAL TEMPORARY TABLE
614 iSeries� DB2 UDB SQL ��� V5R2
|||
|||
|||||
|||||||||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GENERATED
������ ���� � �� �� �����. � ID � ��
(AS IDENTITY�� ��) GENERATED� ���� ���.
ALWAYS
�� �� �� � ������ ���� �� �� ���� ���
��. ALWAYS� �� ���.
BY DEFAULT
� �� �� ��� �� �� �� �� � ������ ���
� �� ���� �����. �� ���, ������ ���� �
� �����.
ID � ������ ���� ��� �� ��� ID � �� ID
� �� ��� � ������ � ���� �� �� ��
�� � � ��� �� ����.
AS IDENTITY
� �� ID �� �����. �� �� ID � �� � ����. AS
IDENTITY� � �� �� ��� 0� �� ��� � �(��� 0�
SMALLINT, INTEGER, BIGINT, DECIMAL �� NUMERIC, � � ��
��� � �)� �� ��� � ����.
ID �� ����� NOT NULL��.
START WITH numeric-constant
ID � �� ��� � �� �� �����. � �� � � ��� �
�� ��� ��� � ���, ��� ���� 0� � �� ��
� ��� ���.
ID � ��� �� ����� ��� ����, ��� �� ���
�� MINVALUE, ����� MAXVALUE��. � �� ��
� ��� �� ���� ��� � ��� ��� �� ��� ����.
START WITH�� ��� �� ��� � � �� ��� ��� �
����. �� ��� � � MINVALUE � MAXVALUE� �� ��.
INCREMENT BY numeric-constant
ID � � � ��� ��� �����. � �� 0� � ��� �
�� � ��� � �� �� �� ��� �� , ��� ���� 0� �
�� ��� �� � ��� � ����. ���� 1��.
�� ���, ID � � ��� ������. �� ����, ID � �
��� ������.
MAXVALUE numeric-constant
� ID � �� ��� ���� � ��� �����. � �� � �
��� � �� ��� ��� � ���, ����� �� ���.
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 615
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ID � ��� �� ����� ��� ��� �, � �� ����
� �� �� ���(DECIMAL� ���), �����
START WITH �(START WITH� ��� �� -1)��.
MINVALUE numeric-constant
� ID � �� ��� ���� � ��� �����. � �� � �
��� � �� ��� ��� � ���, ����� ��� ���.
ID � ��� �� ����� ��� ��� �, � �� ����
� START WITH �(START WITH� ��� �� -1), ��
��� �� �� ���(DECIMAL� ���)��.
CACHE �� NO CACHE
�� ��� �� �� ���� ��� ��� ��� �����. �� ��
��� ��� ��� �� �� �� ��� �����.
CACHE integer
������ ���� ��� ��� ���� ��� ID �� �
�� �����. ��� � �� ���� 2��, ���� ��� ���
� �� �� � ���. ���� 20��.
��� ��� ��, ��� ��� �� ID �� �� ���
��� ����. ���, CACHE� �� ��� �� ��� �� �
�� � �� ID � �� � �� �����.
NO CACHE
ID � �� ��� ��� ��� �����.
CYCLE �� NO CYCLE
��� ��� �� ���� ��� � � ID � � �� ���� �
�� �����.
CYCLE
����� ���� ��� � � � �� �� � ���� ���
��. � ��� ��� , ����� ��� ���� ��� � ��
���� �����. ����� ��� ���� ��� ��, ���
� �� ��. � ���� ���� �� ��� � � �����.
CYCLE� �� , ������ ���� ID � �� ���� �
�� � ����. ID � �� ���� �� � ��� ����
� � �� �� �� �� ��� ��� ����.
NO CYCLE
��� ����� ���� ��� � ID � �� �� ��� ��
� �����. ��� ��� ���.
DECLARE GLOBAL TEMPORARY TABLE
616 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ORDER �� NO ORDER
�� ���� ID �� ���� �����.
ORDER
�� ���� �� ���� �����.
NO ORDER
�� ���� �� ��� ��� ��� �����. ��� ��� �
��.
datalink-options
DATALINK �� �� ��� ��� �����.
LINKTYPE URL
URL(Uniform Resource Locator)� ��� �� �����.
NO LINK CONTROL
��� �� ���� ��� � ��� ��� �����. URL �
�� �� ��. ��� �� ��� ������ ���� ����.
LIKE
table-name �� view-name
��� �� �� ��� � � �� �� �����. LIKE �� ���
table-name �� view-name� �� ��� �� �� �� ���� ���.
LIKE� ��� n � ����� ��� ��, n� ��� �� ��
� ���. ��� ����(�� �� �� ��� � �� ) ��� �
� n � �� ��.
v �� (� ��� ��)
v �� �, ��, ��� � ���
v CCSID
LIKE �� table-name � ��� ��� �� �� �� �� ��� ��
� �� , ��� �� � ����(��� � � ID
�� �� copy-options� ��� ��� � ����).
v table-name� ��� view-name� ��� �� ��� �
v ID �
v � ���
v ��� � ���(717 ���� �LABEL� ��)
��� �� �� SQL ��� �� � �� � �� SQL ��
� ��. �� �� �� �� ��� ISO� �� ��.
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 617
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��� ���� ��� �� �� �� ��� �� � ����. �� �
� ��� �� �� 1� �� �� �� ���� � ����. ��� �
� ����� ��� �� ��� �� �� � �� ��� �� ��
��.
as-subquery-clause
column-name
�� � �����. column-name� ����� �� �� � ��� �
� system-column-name� �� �� ��� ��� � ����.
FOR COLUMN system-column-name
� �� OS/400 ��� �����. �� � ��� �� column-name�
�� �� ��� ��� � ����.
system-column-name� ��� �� column-name� ��
system-column-name� ���, ��� ��� �� ��. ��� ���
��� ��� �� ��� ��� 572 ���� � �� �� ���� ��
���.
select-statement
�� � select-statement� ��� select-statement�� ��� �� ��
��� � ��� ��� ��� ���� �����. AS select-statement� �
�� �� �� n � ��� ����. ��� n� select-statement��� �
� �� � ���. ��� ����(�� �� �� ��� � �� )
��� �� n � �� ��.
v �� (� ��� ��)
v �� �, ��, ��� � ���
v CCSID
v � ���
v ��� � ���(717 ���� �LABEL� ��)
�� �� � ����(copy-options� ��� ��� � � ID ��
�� � ����).
v ��� �
v ID �
��� ���� ��� �� �� �� ��� �� � ����. �� �
� ��� �� �� 1� �� �� �� ���� � ����. ��� �
� ����� ��� �� ��� �� �� � �� ��� �� ��
��.
DECLARE GLOBAL TEMPORARY TABLE
618 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� ����� ��� � select-statement� �� ���� � ��� ��
���. ���, ��� select-statement �� �� �� � �� ���
� � �� � �� � . ��� , � � , � � � ��� �� � ,
select-statement� �� � ��� AS column-name�� � �
���� select-statement � ��� ���� ���.
select-statement� ��� ��� ��� �� ��(�� ��)� �
� ����.
WITH DATA
select-statement� ���� �����. �� ��� �, select-statement� ��
� �� �� ���� � ��.
WITH NO DATA �� DEFINITION ONLY
select-statement� ��� ��� �����. ���, ���� �� �� � �
�� �� �� �� ����.
copy-options
INCLUDING IDENTITY COLUMN ATTRIBUTES
�� select-statement, table-name �� view-name� ��� � ID �(��
)� ���� �����. �����, �, �� �� select-statement� �
� � ��� �� � � ID �� �/����� �� �� � ��
�� � � ��� , ID � �� ��.
INCLUDING IDENTITY COLUMN ATTRIBUTES�� AS select-statement
�� ��� , ��� �� � �� � ID �� ��� ����.
v select-statement� �� ����� ID ��� �� ���(�, ���
� � �� ��)� ��.
v select-statement� �� ����� �� ID � ��(�, �� ��).
v ID � �� ����� ���� ��.
v select-statement� �� ��(��)� ���.
INCLUDING IDENTITY� ��� �� , ��� ID � ����.
EXCLUDING IDENTITY COLUMN ATTRIBUTES
�� select-statement, table-name �� view-name� ��� � ID �(��
)� ��� ��� �����.
INCLUDING COLUMN DEFAULTS
�� select-statement, table-name �� view-name� ��� � ��� �� �
��� �����. ��� �� INSERT� �� ��� �� � � ��
� ���.
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 619
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
USING TYPE DEFAULTS� ��� , INCLUDING COLUMN DEFAULTS
� ��� ����.
INCLUDING COLUMN DEFAULTS� ��� �� , �� ��� ��
��� ����.
EXCLUDING COLUMN DEFAULTS
�� select-statement, table-name �� view-name� ��� � ��� �� �
�� ��� �����.
USING TYPE DEFAULTS
�� ��� �� select-statement, table-name �� view-name� ��� � �
� �� ���� �����. � ��� ��� �� ����. ��� �
�� �� ��� ����.
� �� ��� �
� 0
�� �� ��� ��
�� �� ��� ��� 0� ���
� INSERT �� �� �
�� INSERT �� �� ��
���� INSERT �� �� ����
�� �� DLVALUE(‘ ’,‘URL’,‘ ’)� ��� �
distinct-type �� �� �� �� ��� ��� �
INCLUDING COLUMN DEFAULTS� ��� USING TYPE DEFAULTS
� ��� ����.
WITH REPLACE
�� �� �� ��� ���� �� ��� �� �� � ��� ��
� �� �� ��� �����(��� �� �� �� � �).
WITH REPLACE� ��� �� , ��� ��� �� ��� �� ��
� �� ��� �� �� ���� �� ���� ���.
ON COMMIT
COMMIT ��� ��� � ��� �� �� ��� ��� �����.
�� ��� �� �� �� �� No Commit(NC)� � �� COMMIT
HOLD ��� ��� ON COMMIT�� ��� ����.
DELETE ROWS
WITH HOLD ��� ��� � �� �� �� �� � ��. �
�� ��� ���.
PRESERVE ROWS
�� �� ��� ���.
DECLARE GLOBAL TEMPORARY TABLE
620 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|||
||
||
||
||
||
||
||
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NOT LOGGED
� ��� � � ���� ��� ���� . ROLLBACK(��
ROLLBACK TO SAVEPOINT) ��� ���� �� �� � (���)�
� �� , ���� ��� ����. �� �� � (�� ���) ��
� ��� , �� �� � ��. �� �� � (�� ���)�� ��
, �� �� � �� �� ��.
ON ROLLBACK
ROLLBACK ��� ��� � ��� �� �� ��� ��� �����.
�� ��� �� �� �� �� No Commit(NC)� � ��
ROLLBACK HOLD ��� ��� ON ROLLBACK�� ��� �
���.
DELETE ROWS
�� �� �� �� ���. ��� ��� ���.
PRESERVE ROWS
�� �� ��� ���.
v ����, �� � �: P� ������ ����� ���� T� P� ���
��� ������ �� �� �� ����� �����.
– P� ����� DECLARE GLOBAL TEMPORARY TABLE�� ���,
T� � ���� �� ��.
– P� �� ����� T� ��� � �� �� ��� T� �� ���� �
����.(DECLARE GLOBAL TEMPORARY�� SQL �, SQL ����
� �� ��� ����� ��� , �� �� �� � � �����
� ����� ���� ����.)
T� �� ���� �� , T� ��� T� �� � ��� �� ���
��� ���� �� ��� T� �� �� ����� � ��. T
� �� ������ ���� ��� ���, T� � ����� �
� �� �� ��.
– T� ON COMMIT DELETE ROWS�� � �����, �� ��� P�
�� � � ���� P� ���� � ���� T� �� WITH HOLD
��� �� �� �� �� �� � ��.
– T� ON ROLLBACK DELETE ROWS�� � �����, �� ���
P� �� � � ��� �� �� � ��.
– T� �� ������ ����� ���, T� �� �� �� ��
��.
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 621
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v �� � ���: �� ��� ��� ��� ��� ��� ��� ���
��.
v �� � ��: �� �� �� ���� �, PUBLIC�� �� �� �� �
�� � �� �� ��� ����� �� ��.
v � SQL� � ��� �� � ��: � SQL�� �� �� �� ����
�. DECLARE GLOBAL TEMPORARY TABLE ��� SQL��� �� �
� �� ����, �� ����� �� ����� SESSION�� ���� �
��.
SESSION� � �� ���� ���� ������ ����� � ��� �
� DECLARE GLOBAL TEMPORARY TABLE�� � �� �� ,
������ ���� ���� �� �� �� ��� ���� �����. �
����� ���� �� �� �� � ��� �����.
v ��� �� � �� �� ����:
– �� �� �� ALTER TABLE, COMMENT, CREATE TRIGGER,
GRANT, LABEL, LOCK, RENAME �� REVOKE�� ��� � ���
�.
– �� �� �� �� ����� � �� ��� � ����.
– �� �� �� CREATE INDEX �� CREATE VIEW��� ��� ,
SESSION� �� �� �� ���� ���(�� �� � QTEMP).
�
� 1�� ��, ��, ���, ���� �� ��� �� �� �� �� ����
�.
DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP_EMP(EMPNO CHAR(6) NOT NULL,
SALARY DECIMAL(9, 2),BONUS DECIMAL(9, 2),COMM DECIMAL(9, 2))
ON COMMIT PRESERVE ROWS
� 2�� � USER1.EMPTAB� ��� � �� � � � �� �� � � �
� ID � , �� �� ��� �� � �(ID � )� �� �� ��
�����.
DECLARE GLOBAL TEMPORARY TABLE TEMPTAB1LIKE USER1.EMPTABINCLUDING IDENTITYON COMMIT PRESERVE ROWS
DECLARE GLOBAL TEMPORARY TABLE
622 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
||||
� ���, ������ ���� SESSION� TEMPTAB1� ��� ���� �
����.
DECLARE GLOBAL TEMPORARY TABLE
� 5 � �� 623
|
|
DECLARE PROCEDUREDECLARE PROCEDURE�� �� ������ �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
���. REXX� ����� � ��.
����
��
��
�� DECLARE procedure-name PROCEDURE
( ),
parameter-declaration
option-list ��
parameter-declaration:IN
data-typeOUT parameter-name AS LOCATORINOUT
DECLARE PROCEDURE
624 iSeries� DB2 UDB SQL ��� V5R2
option-list:
(1) EXTERNAL
EXTERNAL NAME external-program-name
PARAMETER STYLESQL
PARAMETER STYLEDB2GENERALDB2SQLGENERALGENERAL WITH NULLSJAVA
�
�DYNAMIC
RESULT SET integerSETS
LANGUAGE CC++CLCOBOLCOBOLLEFORTRANJAVAPLIREXXRPGRPGLE
SPECIFIC specific-name�
�NOT DETERMINISTIC
DETERMINISTIC
MODIFIES SQL DATA
NO SQLCONTAINS SQLREADS SQL DATA
FENCED
NOT FENCED
PROGRAM TYPE MAIN�
�CALLED ON NULL INPUT NO DBINFO
DBINFO
�:
1 �� �� �� ��� ��� � ����.
DECLARE PROCEDURE
� 5 � �� 625
data-type:built-in-typedistinct-type-name
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC
NUMERIC ( integer ), integer
( 53 )FLOAT
( integer )REAL
PRECISIONDOUBLE
( 1 )CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATETIMETIMESTAMP
( 200 )DATALINK
CCSID integer( integer )
ROWID
DECLARE PROCEDURE
626 iSeries� DB2 UDB SQL ��� V5R2
|||||
�
procedure-name
������ �����. � ��� �� ����� �� �� ������ �
�� ����� � ��.
(parameter-declaration,...)
������ �� �� � ��� �� �� �����. ������
��� �, ��, �� �� ��� � ����. ��� ����, �
��� ��� ��� � ����.
SQL ������� ��� � �� ��� ���� 255��.
IN
������� � ���� ��� �����. ��������
��� �� ��� �� � SQL ������� ��� �� ��
��.53
OUT
��� ������ �� �� ��� �����.
�� ��� �� ��� ��� � �� �� �� ��� ��
� ����.
INOUT
������ ��� � � �� ��� �����.
�� ��� �� ��� ��� � �� �� � � �� ���
��� ����.
parameter-name
��� �����. ��� ������ �� �� parameter-name� �
�� � ����.
data-type
��� �� �� �����.
�� �� � �� ��� �� �� ��� ���. �� �� �
� SQL ������ �� ����. �� �� �� ������ ��
�� ����. �� �� �� ��� ��� 541 ���� �CREATE
TABLE� � SQL ��� � �� �����.
CCSID� ��� ��� �� ��� �� �� CCSID� ��
��. CCSID� ��� ��� ������ ��� � �� ���� ��
� CCSID� �� CCSID� �� ��.
53. � �� REXX�� �� ��� � ����� ���.
DECLARE PROCEDURE
� 5 � �� 627
AS LOCATOR
� ��� �� �� ��� �� �� ������ �����. �
��� LOB �� ��� LOB �� �� ��� � �� ��
�� �� AS LOCATOR� ��� � ����.
DYNAMIC RESULT SETS integer
������� �� � �� �� ��� ���� �����. integer� 0�
� �� ��� ���. 0� ��� �� ��� �� ����. ����
�� �� �� �� ��� �� � ���, ��� 100 � �������
���� ���� �� ��� �� � ����. SET RESULT SETS�� �
�� , �� �� �� � � � � SET RESULTS SET�� ��� �
� �� �� ���.
������ iSeries Access ����� SQL �� �� ������� ��
� �� ��� � ��. �� ��� �� ��� ��� 790 ���� �SET
RESULT SETS�� �����.
LANGUAGE
�� ����� ��� �� �����. �� ����� REXX �����
�� � �� ��� ����.
LANGUAGE� ��� ��� LANGUAGE� �� ����� ��� ���
� � ���� �� ��. ����� ��� ���� � ��� ��� �
�� �� ��� �� �� C� �� ��.
C
�� ����� C� �� ��.
C++
�� ����� C++� �� ��.
CL
�� ����� CL� �� ��.
COBOL
�� ����� COBOL� �� ��.
COBOLLE
�� ����� ILE COBOL� �� ��.
FORTRAN
�� ����� FORTRAN�� �� ��.
JAVA
�� ����� JAVA� �� ��.
PLI
�� ����� PL/I�� �� ��.
DECLARE PROCEDURE
628 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
REXX
�� ����� REXX �������.
RPG
�� ����� RPG� �� ��.
RPGLE
�� ����� ILE RPG� �� ��.
SPECIFIC specific-name
������ �� ��� ��� ��� �� ��� �����. �
�� �� ��� ���� � specific-name� procedure-name� ���
���.
���� ��� ��� procedure-name� ��� �� ��� ���� ��
��. ���� ��� ���� procedure-name� ��� �� ��� ��
�� ��� ���.
specific-name� ��� ��� ������� ��� ���.
DETERMINISTIC �� NOT DETERMINISTIC
������ ��� IN � INOUT ��� ��� ��� ��� ��� �
�� ��� �����.
NOT DETERMINISTIC
������� �� ���� �� �� , ������ ��� IN �
INOUT ��� ��� ��� �� ��� ��� ����.
DETERMINISTIC
������� �� ���� �� �� , ������ ��� IN �
INOUT ��� ��� ��� ��� ��� �� ����.
CONTAINS SQL, READS SQL DATA, MODIFIES SQL DATA �� NO
SQL
����� �� � ������� ��� ���� ��� � �� SQL�(�
� )� �����. 913 ���� �� F �SQL�� ����� � �� ��
� �� � ��� � �� SQL� ���� �� ����� �����.
CONTAINS SQL
������� SQL ���� �� ��� �� SQL�� ��� � �
�� �����.
NO SQL
������ SQL�� ��� ��� �����.
READS SQL DATA
������ SQL ���� ��� �� SQL�� �� � ��� �
����.
DECLARE PROCEDURE
� 5 � �� 629
|
|
|
|
|
|
|
|
|
|
|
|
|
MODIFIES SQL DATA
������ ������ ��� �� ��� ��� �� SQL�� �
�� � ��� �����.
CALLED ON NULL INPUT
�� �� �(null)� ������ ���� �����.
FENCED �� NOT FENCED
� ��� �� ���� ��� � �� , iSeries� DB2 UDB� ��
��� ����.
PROGRAM TYPE MAIN
������ �� ��� �� � �����.
DBINFO
������ ���� �� ��� �� �� ��� ������ ���� �
�� �����. � 49�� DBINFO ��� �� ��� �� ����. DBINFO
��� �� ��� ��� QSYSINC.H� � SQLUDF� ����.
DBINFO� PARAMETER STYLE DB2SQL� �� ��� � ����.
� 49. DBINFO ��
� � �� ��
��� ������ VARCHAR(128) �� ��� ��.
���� ID VARCHAR(128) ��� ���� ID.
CCSID �� INTEGER
INTEGER
INTEGER
INTEGER
CHAR(8)
��� CCSID ��. �� ��� CCSID� �����.
v SBCS CCSID
v DBCS CCSID
v Mixed CCSID
v � � CCSID � �� ��� CCSID ��
v ��
CCSID� DECLARE PROCEDURE�� ��� ����� ��� ��
� ���� �� ��� ��� ��� CCSID� ���� ��
� �� ��. � ���� CCSID� ��� CCSID� �� ��� ��
�� ��� � ���� �� ����� ��� �� ��� ���.
�� VARCHAR(128)
VARCHAR(128)
VARCHAR(128)
����� ��� ��� � ��.
�� � �� CHAR(8) ������ ���� �� �� � �� ��.
�$� INTEGER ��� �$� �.
EXTERNAL NAME external-program-name
������ CALL�� �� ��� � ��� ����� �����. ����
�� ��� �� ����� ���� ���. ����� ILE �� ����
� � � ����.
DECLARE PROCEDURE
630 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
��� ��� ���� �� ��. ��� ��� � !� ��� ��� �
��.
external-program-name� ��� ��� �� ������ ������� �
��� �� ��.
PARAMETER STYLE
��(��) �� ��� �� � ��� ��� �����.
SQL
CALL�� �� �� �� �� ��� ������ ���� ��
���. ��� �� ��� �� ��.
v �� N � ��� DECLARE PROCEDURE�� ��� �
���.
v ��� ����� ��� �� N � ��
v SQLSTATE� �� CHAR(5) �� ��. �� SQLSTATE� �
����� �� �� ��� �����. �� SQLSTATE� �� ��
��� �� �� ��.
���� �� ����� �� �� ��� SQLSTATE� ���
���� ��� �� �� � ����.
v �� ��� ������� �� VARCHAR(517) � ��.
v �� ��� �� VARCHAR(128) � ��.
v ��� ���� �� VARCHAR(70) �� ��.
��� ��� �� ��� ��� ��� �� �� � sqludf
� �����. �� �� C��� sqludf� QSYSINC/H� ����.
PARAMETER STYLE SQL� LANGUAGE JAVA� � ��� � �
���.
DB2GENERAL
������ Java ���� � ���� ��� �� �� ��� �
� � �����.
PARAMETER STYLE DB2GENERAL� LANGUAGE JAVA� � �
��� ���. JAVA�� ��� ��� �� ��� ��� ‘Developer
Kit for Java’ �� �����.
DB2SQL
CALL�� �� �� �� �� ��� ������ ���� ��
���. DB2SQL� �� �� ��� ��� ��� ��� � ��
� �� ��� SQL �� ���� �����.
v DBINFO� DECLARE PROCEDURE�� ��� dbinfo ��� �
� ��
DECLARE PROCEDURE
� 5 � �� 631
|
|
|
|
|
|
��� ��� �� ��� ��� ��� �� �� � sqludf
� �����. �� �� C��� sqludf� QSYSINC/H� ����.
PARAMETER STYLE DB2SQL� LANGUAGE JAVA� � ��� �
����.
GENERAL
CALL� �� ��� ������ ��� ��� ������ �
� �� ����� �� � �����. �� ��� ����� ��� �
� ��� ����.
PARAMETER STYLE GENERAL� LANGUAGE JAVA� � ���
� ����.
GENERAL WITH NULLS
GENERAL� ��� CALL�� �� �� �� �� ��� ���
��� ���� �����. � � �� ���� CALL�� � ���
�� ��� � ����� �� ��. C� � int ��
�. ����� � ��� �� ��� ��� SQL ��� � ��
�����.
PARAMETER STYLE GENERAL WITH NULLS� LANGUAGE JAVA
� � ��� � ����.
JAVA
������ Java �� SQLJ �� ��� ��� �� �� ���
�� � �����. INOUT � OUT ��� �� �� ���
� �� �� ��� �� ��. �� ���� � PARAMETER
STYLE JAVA ��� ��� Java ������ ���� ���.
PARAMETER STYLE JAVA� LANGUAGE JAVA� � ���� �
��. JAVA�� ��� ��� �� ��� ��� ‘Developer Kit for
Java’ �� �����.
�� � �� �� ��� ��� ��� ���� ����. ��
�� C��� �� VARCHAR �� CHAR ��� NUL �� �����
�� ��. ��� ��� SQL ��� � �� �����.
procedure-name� � � ��� �� ���� �, ��� � �� ���
���. ���, �� ��� �� ������ ��� ������ ��� �
�� ����� �� DECLARE PROCEDURE�� �� ��� ����.
DECLARE PROCEDURE�� ������ ��� �� CALL�� �����.
DECLARE PROCEDURE
632 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
DECLARE PROCEDURE� ��� � �� ��� ���� 255��.
GENERAL WITH NULLS� ��� ���� 254��. �� � SQL�
��� 90 � ��� �� ��. ��� ���� �� ����� �
� � ��� ��� ����� ��� ��� ���� �� ��.
DECLARE PROCEDURE�� �� CALL��� �� ��. ������� ��
� ��� �� ��� CALL��� ���� �� CALL��� ��� ��
��.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� �
��� ��� � ����.
v � � VARIANT� NOT VARIANT� NOT DETERMINISTIC�
DETERMINISTIC� ���� ��� � ����.
v � � NULL CALL� NOT NULL CALL� CALLED ON NULL INPUT �
RETURNS NULL ON NULL INPUT� ���� ��� � ����.
v � � SIMPLE CALL� GENERAL� ���� ��� � ����.
v DB2GENRL �� DB2GENERAL� ���� ��� � ����.
�
C ������ �� ����� PROC1� ����. CALL�� ��� ���
��� ��� �� � LIB1� �� PGM1��� COBOL ����� ��
��.
EXEC SQLDECLARE PROC1 PROCEDURE
(CHAR(10), CHAR(10))EXTERNAL NAME LIB1.PGM1LANGUAGE COBOL GENERAL;
EXEC SQLCALL PROC1 (’FIRSTNAME ’,’LASTNAME ’);
DECLARE PROCEDURE
� 5 � �� 633
|
|
|
|
|
|
|
|
|
DECLARE STATEMENTDECLARE STATEMENT�� ���� ���� � �� ��. � ��� �
� SQL�� ��� � ��� ��� ����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
���. � ��� Java �� REXX��� ��� � ����.
����
��� ��� ����.
��
�� DECLARE
,
statement-name STATEMENT ��
�
statement-name
�� SQL�� ��� � ������ ��� � ��� ��� �
���.
�
�� �� C ������ DECLARE STATEMENT�� ��� ��� ����
�.
EXEC SQL INCLUDE SQLDA;void main (){EXEC SQL BEGIN DECLARE SECTION;char src_stmt[32000];char sqlda[32000]EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA ;
strcpy(src_stmt,"SELECT DEPTNO, DEPTNAME, MGRNO \FROM DEPARTMENT \WHERE ADMRDEPT = ’A00’");
EXEC SQL DECLARE OBJ_STMT STATEMENT;
(Allocate storage from SQLDA)
EXEC SQL DECLARE C1 CURSOR FOR OBJ_STMT;
EXEC SQL PREPARE OBJ_STMT FROM :src_stmt;
DECLARE STATEMENT
634 iSeries� DB2 UDB SQL ��� V5R2
|
|
EXEC SQL DESCRIBE OBJ_STMT INTO :sqlda;
(Examine SQLDA) (Set SQLDATA pointer addresses)
EXEC SQL OPEN C1;
while (strncmp(SQLSTATE, "00000", 5) ){EXEC SQL FETCH C1 USING DESCRIPTOR :sqlda;
(Print results)
}
EXEC SQL CLOSE C1;return;}
DECLARE STATEMENT
� 5 � �� 635
DECLARE VARIABLEDECLARE VARIABLE�� ��� ��� � ��� ��� �� ��
ID(CCSID)� ��� ��� ��� � �� ��.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
���. Java� REXX� ����� � ��.
����
��� ��� ����.
��
�� DECLARE
,
host-variable VARIABLEFOR SBCS DATAFOR MIXED DATACCSID integerFOR BIT DATADATETIMETIMESTAMP
��
�
host-variable
����� ��� ��� � ��� ��� ��� �����. ����� �
�� host-variable� �� ��� � ����. host-variable ��� � ��� �
�� DECLARE VARIABLE�� ��� �� ����.
FOR BIT DATA
host-variable� �� ��� �� ��� ��� �� ��� �� ��� ��
� �����. FOR BIT DATA ��� ��� ��� �� �� ID(CCSID)�
65535��. FOR BIT DATA� � host-variable� �� ��� � ���
�.
FOR SBCS DATA
��� ��� �� SBCS(1 �� �� ��) ��� �� ��� �����. �
����� ����� �� ��� ��� �� �� ID(CCSID) �� DBCS
� � � �� ��� ��� ��� 4�� ���, FOR SBCS DATA� ��
���. FOR SBCS DATA� ��� �� �� ID(CCSID)� ������ �
���� �� ��� CCSID �� �� �� ��. FOR SBCS DATA� �
host-variable� �� ��� � ����.
DECLARE VARIABLE
636 iSeries� DB2 UDB SQL ��� V5R2
|
|
FOR MIXED DATA
��� ��� �� SBCS ��� DBCS ��� � � �� ��� �����.
������ ���� �� ��� ��� �� �� ID(CCSID) �� DBCS
� � � �� ��� ��� ��� 3�� ��, FOR MIXED DATA� ���
��. FOR DBCS DATA� ��� �� �� ID(CCSID)� ������ �
���� �� ��� CCSID �� �� �� ��. FOR MIXED DATA�
� host-variable� �� ��� � ����.
CCSID integer
��� ��� �� ��� �� �� ID(CCSID) �� ��� � ���
�����. ��� SBCS ��� �� �� ID(CCSID)�� ��� ��� SBCS
����. ��� ��� �� ��� �� �� ID(CCSID)�� ��� ���
��� ����. �� ��� ��� ��� ��� �� �� ID(CCSID)�
SBCS �� ��� CCSID�� ���.
��� � ��� �� �� ��� ��� ��� �� �� ID(CCSID)�
DBCS �� UCS-2 CCSID�� ���. �� CCSID ���� 899 ����
�� E ���� �� �� ID(CCSID) ��� �����. CCSID 13488� �
�� UCS-2 ��� ������. CCSID� ��� ���� � ���
��� CCSID ��� �� DBCS CCSID� �� ��.
DATE
��� ��� �� � ��� ��� �����.
TIME
��� ��� �� � ��� ���� �����.
TIMESTAMP
��� ��� �� � ��� ������ �����.
�� � ���� SQL�� �� ������ ����� DECLARE
VARIABLE�� ��� � ����.
v ��� �� COBOL�� RPG�� DECLARE VARIABLE�� ��� ���
��� ��� SQL� � DECLARE VARIABLE�� ��� ���.
v DATE, TIME �� TIMESTAMP� C�� �� ��� �� ���� �� ��
� C �� ��� � �����.
�� ���� �� �� ���� ����.
v ��� ��� �� ��� �� ���
v ��� � ��� �� ���
v ��� �� ��� ��� �� ���
DECLARE VARIABLE
� 5 � �� 637
|
|
|
|
|
v ��� �� �� ��� �� ���
v SQL�� DECLARE VARIABLE�� �� ��� ��� SQL� ��
DECLARE VARIABLE�� ��
v FOR BIT DATA, FOR SBCS DATA �� FOR MIXED DATA�� � �
�� ��� �� ���
v SBCS �� ��� ��� �� �� ID(CCSID)� � ��� ��� �� �
��
v DBCS �� UCS-2 ��� �� �� ID(CCSID)� �� ��� ��� �� �
��
v DATE, TIME �� TIMESTAMP� ��� � ��� ��� �� ���
v DATE, TIME �� TIMESTAMP� �� ��� ��� ��� ��� ���
�, �� �� ���� �� ��� ��� ��
�
���� C ���� �� fred � pete� ��� ��� �� jean � dave�
CCSID 37� SBCS ��� ����.
void main (){EXEC SQL BEGIN DECLARE SECTION;char fred[10];EXEC SQL DECLARE :fred VARIABLE FOR MIXED DATA;
decimal(6,0) mary;char pete[4];EXEC SQL DECLARE :pete VARIABLE FOR MIXED DATA;
char jean[30];char dave[9];EXEC SQL DECLARE :jean, :dave VARIABLE CCSID 37;
EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;...
}
DECLARE VARIABLE
638 iSeries� DB2 UDB SQL ��� V5R2
DELETEDELETE�� �� ��� �� ����. ��� �� �� �� �� ���
� ��� �� �� ���.
� ���� �� ��� ����.
v ��� DELETE ��� � ��� �� �� � �� ��(����� �
� ��� �� ���).
v ���� DELETE ��� �� � �� �� � �� ��(��� ��
�� �� ���).
��
��� DELETE�� ������ ����� �� ����� �� � ��
��. ���� DELETE� ������ ����� ��� ���. ���
DELETE � ���� DELETE� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� �� ��
– �� �� �� DELETE ��
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� DELETE ��� ����.
v �� ���
v �� �� DELETE ��� �������.
v �� �� *OBJOPR� *DLT� ��� ��� �������.
��� ���� ID� �� � �� �� DELETE ��� ����.54
v �� �� DELETE ��� �������.
v �� �� *OBJOPR � *DLT ��� ���, � �� �� �� ����� �
� �� � �� �� �� �� *DLT ��� ��� �������. �, �
��� ��� � �� �� � ��� �� ��� � �� �� � ���
��� � �� �� � �
��� DELETE� search-condition� �� �� � �� ��� �� ���, �
�� ���� ID� �� ��� ��� �� � �� �� ���.
54. �� ��� � ��� �� �� DELETE ��� ��� ��� ����. �� �� ��� ��� subselect� �� ��� � ��
�� �� DELETE ��� ���, ��� DELETE ���� �����.
DELETE
� 5 � �� 639
v �� �� �� SELECT ��
v �� ��
search-condition� � ��� �� ���, ��� ���� ID� �� ��
� ��� �� � �� �� ���.
v � ��� ��� � �� ��
– � �� ���� SELECT �� �
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ����.
v �� �� SELECT ��� �������.
v �� �� *OBJOPR � *READ ��� ���, � �� �� �� �����
�� �� �� �� �� *READ ��� ��� �������. �, � ��
� ��� �� �� � ��� �� ��� �� � ��� ��� �� ��
� �
��
��� DELETE�� DELETE FROM table-name
view-name correlation-clause�
�WHERE search-condition isolation-clause
��
���� DELETE�� DELETE FROM table-name
view-name correlation-clause�
� WHERE CURRENT OF cursor-name ��
isolation�:
DELETE
640 iSeries� DB2 UDB SQL ��� V5R2
WITH NCURCSRSRR
�
FROM table-name �� view-name
��� �� �� �� �� �����. ��� ��� �� �� �� ��
�� ��, ���� �, ���� �� � �� �� �� �� ����� �
��. �� �� �� �� ��� 594 ���� ��� �����.
correlation-clause
�� � � �� �� ��� ��� � search-condition ��� ���
� ����. correlation-clause� �� ��� 335 ���� � 4 � �����
�����. correlation-name� �� ��� 108 ���� ������ ��
���.
WHERE
�� �� �����. �� ��� �� ��� ��� ��� ��� �
����. �� ��� �� �� �� �� � ��.
search-condition
154 ���� ��� ���� ��� �� ����. � ��� ��� �
� ��� � column-name� �� �� � ���� ���.
search-condition� �� �� � �� �� , �� �� search-condition
� ��� �� ���.
�� ��� � ��� ���, � ��� search-condition� ��
search-condition� ��� � ��� � ��� ��� ��� ��� ��
��� �� � ����. ���, �� �� ��� �� � ��� � �
�� � ��, �� �� ��� �� � ��� � �� � �� ��
�� ���.
� ��� DELETE�� ��� �� CASCADE, SET NULL �� SET
DEFAULT � ��� �� � �� ��� � ��� �� ��
�� �� �� ��.
CURRENT OF cursor-name
� ��� ��� ��� �����. cursor-name� DECLARE CURSOR
�� � ��� �� �� ��� ���� ���.
��� �� �� ��� SELECT�� FROM��� ���� , ��
� ���� �� ��� ��� � ��. �� �� ���� �� ���
598 ���� �DECLARE CURSOR�� �����.
DELETE
� 5 � �� 641
DELETE�� ��� ��� �� ��� � � �� � ��.
� �� ��� ���� �� � � ����. �� �� ��� ���
��� � ��� ����.
isolation-clause
� ��� �� ��� �� ��� �����. isolation-clause� ��� �
� ��� ��� �� ��. isolation-clause� �� ��� isolation��
�����.
DELETE ��
��
��� �� ��� �� �� �� � ��� ��� ��� �� ��.
��� �� ��� ���� � �� �� �� �� ��� ���
��.
�� ��
��� �� ��� �� �� �� � ��� �� ��� RESTRICT �� NO
ACTION� � ��� ��� �� �� � �� DELETE�
RESTRICT �� NO ACTION� � ��� ��� �� �� ��
�� �� � ����.
RESTRICT� NO ACTION � ��� �� � ��� �� � ���, �
�� �� � ��. ��� �� �� ��� ��� ����.
v SET NULL � ��� ��� �� �� �� �� � �� � �
��� �� ��.
v SET DEFAULT � ��� ��� �� �� �� �� � ���
��� �� ��.
v CASCADE� � ��� ��� ��� � � ��� ���
�� �� �� ��� �����.
�� ��(RESTRICT � ��� �� �� �� ��)� �� ��� ��
��. � �� �� �� �� �� �� ��� ��� ���
�� � � ��� ������.
�� ����
�� ����� SET NULL �� SET DEFAULT� � ���� ��� �
��� �� , � ��� �� �� ��� ��� � ����. �
�� �� � ��� � �� � � � �� ��� ��� ��� �
�� � �� ��� �� �� ����� �� ��� �� � � � ��
�, �� �� ����.
DELETE
642 iSeries� DB2 UDB SQL ��� V5R2
� ��� ��� � ��� �� , � ��� �� ���, �� ��
��, ��� �� SQL�� �� ��(�� ��� � �� �� �� ���
SQL�� �� NC� � ).
��� ��� �� ��� ��� � �� � ��� ��� ��� ����
DELETE�� �� �� �����. �� �� �� ���� ��� ��� ���
� ��� ���� DELETE ��� � � ����.
v �� ��� ������ ����
v �� �� UR �� NC� ��� �� ������ ����
���� �� �� ������ ����� �� �� ��� ��� � ����.
��� �� ��� ��� COMMIT, ROLLBACK � LOCK TABLE�� �� �
�� 24 ���� ��� ���� �����.
������ ����� �� � �� ��� �� �� �� � ��� ���
� �� � � ����. C� �� � R � �� ����(OPEN, C� �
� DELETE, �� ��� �� DELETE �� ��� DELETE� ���). R�
�� �� �� ��� ��� INSERT, UPDATE � DELETE ��� ���, C�
��� �� FETCH ��� R� C� �� ��� ����. �� ��, ���
R’� C� �� � ���, R’� �� ���� �� �� ��� ���.
DELETE�� ��� �� � �� SQLCA� SQLERRD(3)� � ��.
SQLERRD(3)� �� CASCADE � ���� ��� ��� �� � ��
� ����.
SQLCA� SQLERRD(5)� �� ��� �� ��� �� � �� �����.
CASCADE � ��� ��� �� �� SET NULL �� SET DEFAULT
� ��� ��� �� �� NULL�� ��� ��� ��� �� ��.
SQLCA� ��� 871 ���� �� B �SQL � ���� �����.
COMMIT(*RR), COMMIT(*ALL), COMMIT(*CS) �� COMMIT(*CHG)� ��
�� � �� 4000000 �� �� DELETE��� �� �� � ����.
�� � ��� ��, CASCADE, SET NULL �� SET DEFAULT �� ��
� � ��� ��� ��� �� ���� �, � �� �� �� �
�.
��� ��� REXX ������ DELETE�� ��� � ����. � �,
�� ��� ��� DELETE� PREPARE� EXECUTE� ���� �� �
��.
DELETE
� 5 � �� 643
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ���� ��� � ����.
v � � NONE� NC� �� ���� ��� � ����.
v � � CHG� UR� �� ���� ��� � ����.
v � � ALL� RS� �� ���� ��� � ����.
�
� 1DEPARTMENT ��� ��(DEPTNO) ‘D11’� ����.
DELETE FROM DEPARTMENTWHERE DEPTNO = ’D11’
� 2DEPARTMENT ��� �� ��� ����(�, �� ���).
DELETE FROM DEPARTMENT
� 3Java ���� ��� ��� ��� �� HOSTDEPT (java.lang.String)� ��
�� ��(DEPTNO)� �� �� � ����(MAJPROJ� NULL)� �� ��
‘ctx’� PROJECT ��� ����.
#sql [ctx] { DELETE FROM PROJECTWHERE DEPTNO = :HOSTDEPT AND MAJPROJ IS NULL };
� 4 � ��(JOB)� ��� � ��� Java ����� ��� ��� �� �
� ‘ctx’� EMPLOYEE ��� �� ��� ����.
#sql iterator empIterator implements sqlj.runtime.ForUpdate( ... );
empIterator C1;
#sql [ctx] C1 = { SELECT * FROM EMPLOYEEWHERE JOB = ’RETIRED’ };
#sql { FETCH C1 INTO ... };while ( !C1.endFetch() ) {
System.out.println( ... );...
if ( condition for deleting row ) {#sql [ctx] { DELETE FROM EMPLOYEE
WHERE CURRENT OF C1 };}#sql { FETCH C1 INTO ... };
}C1.close();
DELETE
644 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
DESCRIBEDESCRIBE�� �� ��� �� ��� ����. �� ��� �� ���
728 ���� �PREPARE�� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����.
����
��� ��� ����. �� ��� ��� � ��� ����� �� ���
728 ���� �PREPARE�� �����.
��
�� DESCRIBE statement-name INTO descriptor-name �
�USING NAMES
SYSTEM NAMESLABELSANYBOTHALL
��
�
statement-name
���� ��� �����. DESCRIBE�� ��� ��� ���� �
� ��� ���� ���.
INTO descriptor-name
881 ���� �� C �SQLDA(SQL ��� ��)�� ��� �� SQLDA(SQL
��� ��)� �����. DESCRIBE�� ��� �� SQLDA� �� ��
� ���� ���(REXX� �� ��� ����. ��� ��� SQL
Programming with Host Languages �� �����).
SQLN SQLDA� ��� SQLVAR� � �� �����. DESCRIBE�� �
�� �� SQLN� 0 �� �� �� ��� ���� ���.
� ��� �� ��� � � �� ��� 884 ���� �SQLVAR �
� � � ���� �����.
DESCRIBE�� ��� � ��� �� ������ ���� �� SQLDA� ��
� �����.
�� ������ ��� �� �� ��
DESCRIBE
� 5 � �� 645
SQLDAID � 6 ��� ‘SQLDA’(5� ��� �� ��� ��)� �� �
�.
7�� �� SQLDOUBLED� SQLDA� �� �� ��� ���
�� �, �, � � SQLVAR� �� �� ‘2’, ‘3’ �� ‘4’�
�� ��. � ��� LOB, �� �, �� � ����� ��
� � �� ��. ��� ��� SQLDOUBLED� �� ���
�� ��.
SQLDA� DESCRIBE �� ��� ��� �� ��� ��� ��
2�� ��� ���� �� ��.
8�� ��� �� ��� �� ��.
SQLDABC SQLDA� ��
SQLD �� ��� SELECT�, �� ���� �� , ��� ��
�� 0��.
SQLVAR SQLD� �� 0�� SQLN� ��� ��, SQLVAR �� �
�� �� ����.
SQLD �� n�� n� 0 �� ��� SQLN� ��� �� ��
�, �� SQLVAR� � �� n �� ��� SQLVAR� � �
� ��� ���� � �� � ��� �, SQLVAR�
�� ��� ���� �� � ��� , �� ��� �
�� ��. SQLVAR �� ��� �� �� ��� 882 �
��� �SQLVAR ���� �� ���� �����.
USING
SQLDA� � SQLNAME ��� ��� �� �����. ��� �� ���
SQLNAME� �� 0�� �� ��.
NAMES
� ��� �����. ��� ��� ���. ��� select-list� ���
�� �� �� ��� DESCRIBE� ��� ��� � ��.
SYSTEM NAMES
� ��� ��� �����.
LABELS
� �� � �����( �� � LABEL��� �� ��). �� �
� 20 ��� � ��.
ANY
�� � �����. � �� � ��� ��� � �� ��.
BOTH
� �� � ��� �� �����. � �� ��� �� ��
DESCRIBE
646 iSeries� DB2 UDB SQL ��� V5R2
�� ��� ��, � SQLVAR� � �� � �� �� �� �
�� ��� � �����. SQLVAR �� ��� ���� SQLN�
2*n �� 3*n�� �����(���, n� �� �� ���). SQLVAR
� � n� ��� ��� ��. �� �� � �� n� �
�� �� � ��. �� �� �� �� � SQLVAR
��� �� ��� � ��. �� �� �� �� �
SQLVAR ��� � �� ��� � ��.
ALL
�� , �� � ��� ��� �����. � �� ��� ��
�� �� ��� ��, � SQLVAR� � � �� � �� �
� �� ��� ��� � �����. SQLVAR �� ��� ���
� SQLN� 3*n �� 4*n�� �����(���, n� ���� ��
�). SQLVAR� � n� ��� ��� ��� ��. �� �
� � �� n� ��� �� � ��. � �� �� � �� n�
��� ��� ��. �� �� �� �� � SQLVAR
��� �� ��� �� ��� SQLVAR� � �� ��� �
��. �� �� �� �� � SQLVAR ��� � �� ���
�� ��� SQLVAR� � �� ��� � ��.
�� ��� �� ��� PREPARE�� INTO�� ��� �� � ����.
SQLDA ��
DESCRIBE� PREPARE INTO�� ��� �� SQLN �� SQLDA� ��
� SQLVAR� � �� ��� � 0 �� �� �� ��� ����
, SQLN �� � � ��� ����� ���� ���(REXX��
SQLDA� �� ����� ��� ��� ����). �� SELECT�� ����
��� ��� SQLVAR� � �� � ��� ���� � ��. �� �
��, USING BOTH� USING ALL� ��� � LOB� �� ��
� SQLVAR� � �� �� �, � � �� � ��� ���. ��� �
�� 884 ���� �SQLVAR �� � � ���� �����.
�� �� ��� �� � ��� �� ��� ��� SQLN� �� �
�� �� � ��� � � �� �� ��. ��� ��� SQLN� � �
� �� ��.
SQLDA� ��� ��� �� � � ��� ��� �� ��.
DESCRIBE
� 5 � �� 647
� � ��: ��� SQLVAR� ��� SQLDA� ��� �������
��� � �� �� ���� �����. ���, SQLVAR� �� ����� �
�� � ���� � �� � � ����. ��� �, ������� � SQLDA�
����� ��� � ����.
���� ����� ��� �� ���� �� ��� �� ��, � � � �
� ��� �� �� � ����� �����.
� ��: �� � ��� �� ���� �� ��� �����.
1. SQLVAR� �� �� SQLDA(�, SQLN� 0� SQLDA)� DESCRIBE��
�����. SQLD� �� �� �� �� �� ����. ���
SQLVAR� ��� � ��� ��� 1/2, 1/3 �� 1/4��. SQLVAR �
�� ���� �� ����. �� �� SQLSTATE� 01005�
SQLVAR �� �� SQLD� �� �� �, � � �� � ���� ��
�. ��� ��� 884 ���� �SQLVAR �� � � ���� �����.
2. SQLD� �� �� ��� SQLVAR� ��� �� � SQLDA� ��
���.
3. ��� SQLDA� ��� DESCRIBE�� �� �����.
� � � � �� � �� ���� ��� � � � � ��� DESCRIBE�� �
� �� ��.
� � ��: �� ���� � �� ��� ���� �� �� SQLDA�
�����. SQLDA� �� ��� DESCRIBE� ��� ��� � � SQLDA�
��� DESCRIBE� �� �����. ��� SQLDA� SQLVAR� �
�� �� DESCRIBE� � �� ���� �� SQLD� �� �����.
� � � � �� � � �����. ���� �� SQLDA� �� �� �
�� �� � ��.
�
C ������ SQLVAR �� �� SQLDA� DESCRIBE�� �����.
SQLD� 0�� ��, � �� ��� SQLVAR� ��� � �� �� SQLDA
� ���, � SQLDA� ��� DESCRIBE�� �����.
EXEC SQL BEGIN DECLARE SECTION;char stmt1_str [200];EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLDA;
EXEC SQL DECLARE DYN_CURSOR CURSOR FOR STMT1_NAME;
... /* code to prompt user for a query, then to generate *//* a select-statement in the stmt1_str */
EXEC SQL PREPARE STMT1_NAME FROM :stmt1_str;
DESCRIBE
648 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
... /* code to set SQLN to zero and to allocate the SQLDA */EXEC SQL DESCRIBE STMT1_NAME INTO :sqlda;
... /* code to check that SQLD is greater than zero, to set *//* SQLN to SQLD, then to re-allocate the SQLDA */
EXEC SQL DESCRIBE STMT1_NAME INTO :sqlda;
... /* code to prepare for the use of the SQLDA */EXEC SQL OPEN DYN_CURSOR;
... /* loop to fetch rows from result table */EXEC SQL FETCH DYN_CURSOR USING DESCRIPTOR :sqlda;...
DESCRIBE
� 5 � �� 649
DESCRIBE TABLE
DESCRIBE TABLE�� �� �� �� ��� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� �� ��
– �� �� �� *OBJOPR ��� ��
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��
�� DESCRIBE TABLE host-variable INTO descriptor-name �
�USING NAMES
SYSTEM NAMESLABELSANYBOTHALL
��
�
host-variable
��� ��� �� �� �����. DESCRIBE TABLE�� ��� �
v ��� ��� �� �� �� ���� ���.
v ��� ��� �� ��� �� UCS-2 � ��� ���� ����
� ��� ��� � ��.
v host-variable� �� �� � ��� ���� ��� , ��� ���
���� �� ���� ���� � � ���.
v � ��� ��� ��� ��� ����� ���.
DESCRIBE TABLE�� ��� � ��� �� ������ ���� ��
SQLDA� ��� �����.
INTO descriptor-name
881 ���� �� C �SQLDA(SQL ��� ��)�� ��� �� SQLDA(SQL
DESCRIBE TABLE
650 iSeries� DB2 UDB SQL ��� V5R2
��� ��)� �����. DESCRIBE TABLE�� ��� �� SQLDA� �
� �� ��� ���� ���(REXX� �� ��� ����. ��� ���
SQL Programming with Host Languages �� �����).
SQLN SQLDA� ��� SQLVAR� � �� �����. DESCRIBE TABLE
�� ��� �� SQLN� 0 �� �� �� ��� ���� �
��. � ��� �� ��� � � �� ��� 884 ����
�SQLVAR �� � � ���� �����.
�� ������ ��� �� �� ��
SQLDAID � 6 ��� ‘SQLDA’(5� ��� �� ��� ��)
� �� ��.
7�� �� SQLDOUBLED� SQLDA� �� �� �
�� ��� �� �, �, � � SQLVAR� �� ��
‘2’, ‘3’ �� ‘4’� �� ��. � ��� LOB, �
� �, �� � ����� ��� � �� �
�. ��� ��� SQLDOUBLED� �� ��� ��
��. SQLDA� DESCRIBE �� ��� ��� �� �
�� ��� �� 2�� ��� ���� �� �
�.
SQLDABC SQLDA� ��
SQLD ��� �� �� �� � �
SQLVAR SQLD� �� 0�� SQLN� ��� ��, SQLVAR
�� ��� �� ����.
SQLD �� n�� n� 0 �� ��� SQLN� ��� �
� ���, �� SQLVAR� � n� �� ���
SQLVAR� � �� ��� �� �� � �� � �
�� �, SQLVAR� �� ��� �� ��
�� � ��� �, �� ��� � ���
��. SQLVAR �� ��� �� �� ���
882 ���� �SQLVAR ���� �� ���� ��
���.
USING
SQLDA� � SQLNAME ��� ��� �� �����. ��� �� ���
SQLNAME� �� 0�� �� ��.
NAMES
� ��� �����. ��� ��� ���.
DESCRIBE TABLE
� 5 � �� 651
SYSTEM NAMES
� ��� ��� �����.
LABELS
� �� � �����( �� � LABEL��� �� ��). �� �
� 20 ��� � ��.
ANY
�� � �����. � �� � ��� ��� � �� ��.
BOTH
� �� � ��� �� �����. � �� ��� �� ��
�� ��� ��, � SQLVAR� � �� � �� �� �� �
�� ��� � �����. SQLVAR �� ��� ���� SQLN�
2*n �� 3*n�� �����(���, n� �� �� ���). SQLVAR
� � n� ��� ��� ��. �� �� � �� n� �
�� �� � ��. �� �� �� �� � SQLVAR
��� �� ��� � ��. �� �� �� �� �
SQLVAR ��� � �� ��� � ��.
ALL
�� , �� � ��� ��� �����. � �� ��� ��
�� �� ��� ��, � SQLVAR� � � �� � �� �
� �� ��� ��� � �����. SQLVAR �� ��� ���
� SQLN� 3*n �� 4*n�� �����(���, n� ���� ��
�). SQLVAR� � n� ��� ��� ��� ��. �� �
� � �� n� ��� �� � ��. � �� �� � �� n�
��� ��� ��. �� �� �� �� � SQLVAR
��� �� ��� �� ��� SQLVAR� � �� ��� �
��. �� �� �� �� � SQLVAR ��� � �� ���
�� ��� SQLVAR� � �� ��� � ��.
DESCRIBE TABLE�� ��� �� SQLDA� ��� SQLVAR� � �� �
�� � SQLN �� 0�� �� �� ��� ���� , SQLN ��
� � ��� ����� ���� ���. �� �� ��� ���
SQLVAR� � �� � ��� ���� � ��. �� ���, USING BOTH�
USING ALL� ��� � LOB� �� �� � SQLVAR� �
�� �� �, � � �� � ��� ���. ��� ��� 884 ����
�SQLVAR �� � � ���� �����.
DESCRIBE TABLE
652 iSeries� DB2 UDB SQL ��� V5R2
�� �� ��� �� � ��� �� ��� ��� SQLN� �� �
�� �� � ��� � � �� �� ��. ��� ��� SQLN� � �
� �� ��.
SQLDA� ��� � ��� � �� � � �� ��� 647 ���� �SQLDA
���� �����.
�
C ������ SQLVAR �� �� SQLDA� DESCRIBE�� �����.
SQLD� 0�� ��, � �� ��� SQLVAR� ��� � �� �� SQLDA
� ���, � SQLDA� ��� DESCRIBE�� �����.
EXEC SQL BEGIN DECLARE SECTION;char table_name[201];EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLDA;
EXEC SQL DECLARE DYN_CURSOR CURSOR FOR STMT1_NAME;
.../*����� �� �� �� ���� ���� �� */
.../*SQLN� 0�� ���� SQLDA� ���� �� */EXEC SQL DESCRIBE TABLE :table_name INTO :sqlda;
... /* code to check that SQLD is greater than zero, to set *//* SQLN to SQLD, then to re-allocate the SQLDA */
EXEC SQL DESCRIBE TABLE :table_name INTO :sqlda;
.
.
.
DISCONNECTDISCONNECT�� ��� �� ��� �� � ��� ��� �����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����. Java� REXX� ����� �
��.
DISCONNECT� ���� ��� � ����. �� ������ ��� ���
� ��� DISCONNECT� �� ������� ��� � ����.
����
��� ��� ����.
DESCRIBE TABLE
� 5 � �� 653
|||||||||||||||||
|
|
|
��
�� DISCONNECT server-namehost-variableCURRENT
SQLALL
��
�
server-name �� host-variable
��� ��� �� ��� ��� �� ����� ��� �����. ��� �
�� ���
v �� ��� ��� �� ���.
v ��� ����� ��� �� � ��.
v ���� ��� �� ��� ���� ��� � �� ID� ��� �
�� ��� ���.
v ���� ��� ��� ��� ���� ��� ���� ���� � �� �
��.
DISCONNECT�� ��� � ��� ��� �� ��� ��� �� ����
� ��� �� �� �� �� ��� ��� ���� ���. ��� ��
� ��� ��� ��� � ����.
CURRENT
� ��� �� ��� �����. � ��� ��� ��� ��� ���.
�� ��� ��� ��� ��� ��� ���.
ALL �� ALL SQL
� ��� �� ��� ��(��� ��� �� ��� � )� ����
�. ��� ��� � ��� ��� ���, ��� �� �� ����.
�� ��� ��� ��� ��� � ����.
��� ��� �� �� � �� SQL�� ��� � ��� ��� ����
, �� ��� ��� �� ��� ���� ���. ��� ����� ��� �
��� RELEASE�� �����. �� ��� �� ��� ��� �� �
���.
DISCONNECT�� ����� ��� ��� � ��� �� ��. �� ���
��� � ��� �� ��� ��.
DISCONNECT
654 iSeries� DB2 UDB SQL ��� V5R2
DISCONNECT�� ����� ��� ��� � ��� �� �� � � ���
��� �� ����.
CONNECT(� 1) ��� ����� DISCONNECT� ��� � �� �� ��
��.
DISCONNECT� ��� �� ��� �� , ��� �� ��� ����.
ROLLBACK� DISCONNECT�� ���� ��� ���� ����.
��� ��� ��� ���� �� ��� �����. � �� �� ��
� �� ��� ��� ��� �� ���, �� ��� ��� ��� ��� �
�� ���.
�� �� ��� �� DISCONNECT�� ���� ���. DISCONNECT�� �
�� �� ��� ��� ��� ��� SQL�� CONNECT �� SET
CONNECTION��� ���.
DISCONNECT ALL� �� ���� ��� �����. ��� WITH HOLD��
��� � ��� ��� ��� �� ��.
�
� 1: TOROLAB1�� ��� � �� �� ����. �� �� �� �� ��
� �����.
EXEC SQL DISCONNECT TOROLAB1;
� 2: �� ��� � �� �� ����. �� �� �� �� ��� �����.
EXEC SQL DISCONNECT CURRENT;
� 3: ��� ��� � �� �� ����. �� �� �� �� ��� ����
�.
EXEC SQL DISCONNECT ALL;
DISCONNECT
� 5 � �� 655
DROPDROP�� ���� ����. �� ���� � �� ����� �
� �� ��� �� � ��. ���� �� �� ��� ��� ��
���� � ��.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
�, �, ��, �� �� ���� ��� ��� ���� ID� �� ��
��� �� � � �� ��� ��� ��� ���.
v ��� �� ��� ��
– �� ���� �� *OBJOPR � *OBJEXIST ��� ��
– ���� � �� �� �� � �� �� �� �� �, �� �
� �� �� *OBJOPR � *OBJEXIST ��� ��
– �� ���� �� �� �� �� �� *EXECUTE ��� ��
v �� ��
���� ��� ��� ���� ID� �� ��� �� � � �� ��� �
�� ��� ���.
v ��� �� ��� ��
– �� �� �� �� *OBJEXIST, *OBJOPR, *EXECUTE � *READ �
�� ��.
– ���� �� �� ���� �� *OBJOPR� *OBJEXIST ��� �� �
�� ���� �� �� �� �� � , �� � � �� ��
*OBJOPR� *OBJEXIST ��� ��.
– ���� �� ��� ��� �� �� � ��� � �� �� ��.
�� �� ���� �� ��� �� �� ��� �� *OBJMGT ��
��� �� ���� �� � �� ��� �� ��. ��� ��� iSeries �
� �� �� �����.
v �� ��
�� �� �"(drop)�� ��� ���� ID� �� ��� ��� ��
� �� �� ���.
v ��� �� ��� ��
– �� �� �� �� *OBJOPR � *OBJEXIST ��� ��
DROP
656 iSeries� DB2 UDB SQL ��� V5R2
– SYSTYPES, SYSPARMS � SYSROUTINES ���� �� �� DELETE
��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
�� ��� ��� ���� ID� �� �� ��� �� � � �� �
�� ��� ��� ���.
v ��� �� ��� ��
– SQL �� �� �� ��� ���� ���� �� *OBJEXIST
��� ��
– SYSFUNCS � SYSPARMS ���� �� �� DELETE ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
������ ��� ��� ���� ID� �� �� ��� �� � � �
� ��� ��� ��� ���.
v ��� �� ��� ��
– SQL ������ �� ������ ��� ���� ���� ��
*OBJEXIST ��� ��
– SYSPROCS � SYSPARMS ���� �� �� DELETE ��
– �� � QSYS2�� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� DELETE ��� ����.
v �� ���
v �� �� DELETE ��� �������.
v �� �� *OBJOPR� *DLT� ��� ��� �������.
��� �"(drop)�� ��� ���� ID� �� ��� ��� �� �
�� �� ���.
v ��� ��� ����.
– �� � �� �(RMVPFTRG) �� �� ��� �� *USE
– ��� � ��
- � �� �� ALTER �� �
- � �� �� �� �� �� �� ��� �� *EXECUTE
– �"(drop)� ��� SQL ���
- �� ���� ���� �� ��� �� *OBJEXIST �
DROP
� 5 � �� 657
- ��� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� � �� �� ALTER ��� ����.
v �� ����.
v �� �� ALTER ��� �������.
v �� �� *OBJALTER� *OBJMGT� ��� ��� �������.
��
��
DROP ALIAS alias-nameFUNCTION function-nameROUTINE ( )
,
parameter-typeSPECIFIC FUNCTION specific-name
ROUTINEINDEX index-namePACKAGE package-name
PROCEDURE procedure-nameROUTINE ( )
,
parameter-typeSPECIFIC PROCEDURE specific-name
ROUTINESCHEMA schema-name
RESTRICTCASCADE
TABLE table-nameRESTRICTCASCADE
TRIGGER trigger-nameTYPE distinct-type-name
DISTINCT RESTRICTCASCADE
VIEW view-nameRESTRICTCASCADE
��
parameter-type:built-in-typedistinct-type-name AS LOCATOR
DROP
658 iSeries� DB2 UDB SQL ��� V5R2
built-in-type:SMALLINTINTEGERINTBIGINT
(5,0)DECIMALDEC ( )
NUMERIC integer, integer
(53)FLOAT
(1)( integer )
REALPRECISION
DOUBLE(1)
CHARACTERCHAR ( ) FOR BIT DATA
integer FOR SBCS DATACHARACTER VARYING ( ) FOR MIXED DATACHAR integer CCSID integer
VARCHAR(1M)
CLOBCHAR LARGE OBJECT ( ) FOR SBCS DATA AS LOCATORCHARACTER LARGE OBJECT integer K FOR MIXED DATA
M CCSID integerG
(1)GRAPHIC
( ) CCSID integerinteger
VARGRAPHIC ( )GRAPHIC VARYING integer
(1M)DBCLOB
( ) CCSID integer AS LOCATORinteger K
MG
(1M)BLOBBINARY LARGE OBJECT ( ) AS LOCATOR
integer KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP(200)
DATALINK( ) CCSID integer
integerROWID
�:
1 �� �(REAL �� DOUBLE)� ��� ��� ������ ���� �� ��� �� ��
��� � ��� �� ��� ��� ��.
DROP
� 5 � �� 659
�
ALIAS alias-name
�� ��� �����. alias-name� �� ��� �� ��� ���� ��
�. ��� ��� ����� � ��.
��� �"� �� � ��� ��� ��� ������ ��� ��� �
�� ����. ��� �, ���, �����, ���� �� ��� ���
�� ��� ���� � ��� �"� � ����. ��� ��� ��� �
�� �� ��� ����� �� � ��. � �� ��� ��� ��� �
�� � ��.
FUNCTION
�� �� �����. �� ��, � �� �� �� ���� �� �
� �� ��� � ����. � ��(� �)� �� ��� ��� ��
��. ��� �� ����� � ��. ��� SQL ��� ���
(sourced) ��� � �� ��� �� ����(*SRVPGM) �� � �
�. �� �� �� CREATE FUNCTION�� ��� ���� �� �
� ����� ��� ��� ����� � ��. � �� �� �� ��
�� � ��.
CREATE DISTINCT TYPE�� ��� ����� ��� �� �� �
����.
�� �� �� ��� � �� �"� � ����. �� CREATE
FUNCTION�� SOURCE��� ����� �� �� �� ���.
�� �, ���, �����, ����, �� �� �� ����� ���
���� � ��� �"� � ����. �� ��� ��� ��� �� �
�� ����� �� � ��. � �� �� ��� ��� ��� �
��.
FUNCTION function-name
function-name� �� ��� �� � �� �� ���� ���. ���
�� ��� ���� ��� ��� �� � �� ��� ��� � �
�.
FUNCTION function-name(parameter-type, ...)
function-name(parameter-type, ...) �� ��� �� ��� � ���
�� ���� ��� . ��� ��� ��� �� CREATE
FUNCTION�� ��� �� �� �� ���� ���. �� �� �
� �� �� �� ��� �� �� � ���� ��� � �
� ��. function-name()� ��� ��� �� 0 � ��� ���
���.
DROP
660 iSeries� DB2 UDB SQL ��� V5R2
function-name
� ��� �����.
(parameter-type, ...)
�� ��� �����.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� �� ��� �
� �� � �� ��� ��� �� ����.
v � ��� �� �� �� ��� ��� � ������ ����
�� ����� �� �����.
v ��, ��� �� �� �� �� �� �� ��� � ��
CREATE FUNCTION�� ���(��� �� �����) �� ��
���� ���.
v ��, ��� �� ��� ����� ��� �� � ��� ��
� �� �� �� ��� �� �� ��. �� ��, ��
� ����.
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
��� ��� CREATE FUNCTION�� ����� �� �����
��� �� �� ���� ���. �� �� ��� ��� ��
�� ���� 541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� ��
�� �� ��� ��� � ������ ���� �� ����� �
� �����. �� ��� CREATE FUNCTION�� ��� �
� ����� ��� �� ���� ���.
SPECIFIC FUNCTION specific-name
specific-name� �� ��� �� �� �� ���� ���.
INDEX index-name
�� ��� �����. index-name� �� ��� �� ��� ���� ��
�. ��� ��� ����� � ��.
��� �, ���, �����, ���� �� ��� ����� ��� �
��� �"� � ����. ��� ��� ��� ��� �� ��� ����
� �� � ��.
DROP
� 5 � �� 661
PACKAGE package-name
�� ���� �����. package-name� �� ��� �� ���� ���
� ���. ��� ���� ����� � ��. �� ���� �� �� ��
�� � ��.
���� �, ���, �����, ���� �� ��� ����� ���
���� �"� � ����. ��� ��� ��� ��� �� ��� ���
�� �� � ��. � �� ���� ��� ��� ��� � ��.
PROCEDURE
�� ������ �����. ������ ��, ����� �� �� �� �
��� �� �� ������ ��� � ����. ����� ��(� �)�
�� ��� ��� ����.
������ �, ���, �����, ����, �� �� �� �����
��� ���� �"� � ����. ������ ��� ��� ��� ��
��� ����� �� � ��. � �� ������ ��� ��� ��
� � ��.
PROCEDURE procedure-name
procedure-name� �� ��� �� � ������ �� ���� ��
�. ������ ������ �� ��� ��� ����. ��� ��
��� ���� ��� ��� ������ � �� �� ��� �
��.
PROCEDURE procedure-name(parameter-type, ...)
The procedure-name(parameter-type, ...)� �� ��� �� ��� ���
�� ��� ������ ���� ���. ��� ��� �� ���
CREATE PROCEDURE�� ��� �� �� ���� ���. ��
�� �, �� �� � ��� �� �� ����� ���� ��
� � �� ��. procedure-name()� ��� ��� ������ 0 �
��� ��� ���.
procedure-name
����� ��� �����.
(parameter-type, ...)
����� ��� �����.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� �� ��� �
� �� � �� ��� ��� �� ����.
v � ��� �� �� �� ��� ��� � ������ ����
�� ����� �� �����.
DROP
662 iSeries� DB2 UDB SQL ��� V5R2
v ��, ��� �� �� �� �� �� �� ��� � ��
CREATE PROCEDURE�� ���(��� �� �����) �� �
� ���� ���.
v ��, ��� �� ��� ����� ��� �� � ��� ��
� �� �� �� ��� �� �� ��. �� ��, ��
� ����.
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
��� ��� CREATE PROCEDURE�� ����� �� ����
� ��� �� �� ���� ���. �� �� ��� ��� �
� �� ���� 541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� ��
�� �� ��� ��� � ������ ���� �� ����� �
� �����. �� ��� CREATE PROCEDURE�� ���
�� ����� ��� �� ���� ���.
SPECIFIC PROCEDURE specific-name
specific-name� �� ��� �� �� ������ ���� ���.
��� ������ ���� � SYSPROCS� SYSPARMS�� � ��. �
����� SQL ������ ��� ������ ��� ����(*PGM)
��� �� � ��. �� ������ �� �� ��� � ��.
SCHEMA schema-name
�"� ���� �����. schema-name� �� ��� �� ���� ���
��. ��� ���� � ��. ���� � ���� ��� DROP�� �
" ��� ��� �� �" ��(CASCADE, RESTRICT �� �� �� �
�). � ���� �� ��� �� �� ��� � ��� ��
DROP ��� �����.
DROP SCHEMA� �� ��� *NONE� �� ����.
CASCADE� RESTRICT� ��
�� ���� �, ���, �����, ����, � �� ��� ���
��� �� ���� �"�� �����. � ���� ��� ��� �
�� �� ��� ����� �� � ��. � �� ���� ��� �
�� ��� � ��.
CASCADE
���� ��� �� ��� �"(drop)�� �����. � ���� �
DROP
� 5 � �� 663
� ���� �, ���, ����� �� ����� ��� � ���
� ��� ��� ��� �� ��� ����� �� � ��. � ��
���� ��� ��� ��� � ��.
RESTRICT
�� ���� SQL ��� ��� ��� ���� �"� � ��� �
����. � ���� �� ���� �, ���, ����� �� ����
� ��� � ���� ��� ��� ��� �� ��� �����
�� � ��. � �� ���� ��� ��� ��� � ��.
TABLE table-name
�� �� �����. table-name� �� ��� �� �� �� ���� �
��� �� ����� � ��. ��� �� ����� � ��. �� ��
�� �� ��, ���� � ��� �" ��.
CASCADE� RESTRICT� ��
�� ����, ��, �� �� �� ��� ��� �"�� ����
�. � �� ��� �� ��� �� �" ��. �� �, ���, ��
���, ���� �� ��� ��� � �� ��� ��� ��
� � �� ��� ����� �� � ��. � �� �� ��� �
�� ��� � ��.
CASCADE
�� ����, ��, �� �� �� ��� ��� �"�� ����
�. � �� ��� �� ��, �� � �� �" ��. �� �, ��
�, ����� �� ����� ��� � �� ��� ��� ��
� � �� ��� ����� �� � ��. � �� �� ��� �
�� ��� � ��.
RESTRICT
�� ����, ��, �� �� �� ��� �� �"� � ���
�����. �� �, ���, ����� �� ����� ��� �
�� ��� ��� ��� � �� ��� ����� �� � ��.
� �� �� ��� ��� ��� � ��.
TRIGGER trigger-name
�"� ��� �����. trigger-name� �� ��� �� ��� ����
���. ��� ��� ����� � ��. ��� SQL ��� �
��� ��� ���� ���� ����� � ��.
DISTINCT TYPE distinct-type-name
�� �� �� �����. distinct-type-name� �� ��� �� �
� ���� ���. ��� �� ����� � ��.
DROP
664 iSeries� DB2 UDB SQL ��� V5R2
CASCADE� RESTRICT� ��
�� �� ��� ����, ��, � � �� �� � �� �
� � ��� �� ��.
�� �"� �� ��� � �� �� �� ����� �� � R
�� �"� �� �� ��� �� DROP�� �� ��.
DROP ROUTINE R
�"� �� ��� �� ��T� ��� �� DROP�� ��
��.
DROP TRIGGERT
� ��� � � �� ������ ���� �"� � ����. �
� �� �� �� ��� �� � �� ������ �"� ���
� �� �� �� ����� �" ��. �� ���� ���
��� ��� � �� ��� ��� ��� �� ��� ���
�� �� � ��. � �� �� ��� ��� ��� � ��.
CASCADE
�� ����, �, ��, �����, �, �� �� ��� ����
� �"�� �����. � �� ��� �� ����, �, ��, �
����, �, �� � �� �" ��. �� ���� ������ ��
� � �� ��� ��� ��� �� ��� ����� �� �
��. � �� �� ��� ��� ��� � ��.
RESTRICT
�� ����, (�� ���� � ��� �� �) �, ��, �
����, �, �� �� ��� ��� �"� � ��� ����
�. �� ���� ������ ��� � �� ��� ���
��� �� ��� ����� �� � ��. � �� �� ��� �
�� ��� � ��.
VIEW view-name
�� �� �����. vie-name� �� ��� �� �� ���� ����
�� ����� � ��. ��� �� ����� � ��. �� �� � �
� �� �� ��� � ��.
CASCADE� RESTRICT� ��
�� ��� �� ��� ����� �"�� �����. � �� �
�� �� �� �" ��. �� �, ���, �����, ���� ��
���� ��� � �� ��� ��� ��� �� ��� ��
��� �� � ��. � �� �� ��� ��� ��� � ��.
DROP
� 5 � �� 665
CASCADE
�� ��� �� ��� ����� �"�� �����. � �� �
�� �� ��� �� �" ��. �� �, ���, ����� �� �
����� ��� � �� ��� ��� ��� �� ��� ��
��� �� � ��. � �� �� ��� ��� ��� � ��.
RESTRICT
�� ��� �� �� ��� �"� � ��� �����. ��
�, ���, ����� �� ������ ��� �� ��� ���
��� �� ��� ����� �� � ��. � �� �� ��� ��
� ��� � ��.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ��� ��� ��� � ����.
v � � SYNONYM� ALIAS� ���� ��� � ����.
v � � DATA� DISTINCT� ���� ��� � ����.
v � � PROGRAM� PACKAGE� ���� ��� � ����.
v � � COLLECTION� SCHEMA� ���� ��� � ����.
�
� 1MY_IN_TRAY�� ��� �� �"���. � �� �� �� ��� ���
�� �� �� � ��� ���.
DROP TABLE MY_IN_TRAY RESTRICT
� 2MA_PROJ�� ��� �� �"���.
DROP VIEW MA_PROJ
� 3��� PERS.PACKA� ���� ����.
DROP PACKAGE PERS.PACKA
� 4�� ��� ��� �� �� DOCUMENT� �"���.
DROP DISTINCT TYPE DOCUMENT RESTRICT
DROP
666 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
� 5���� ��� SMITH��, ��� CHEM�� ������ � �� ��
ATOMIC_WEIGHT�� �����. ATOMIC_WEIGHT� �"���.
DROP FUNCTION CHEM.ATOMIC_WEIGHT RESTRICT
� 6���� ��� SMITH��, SMITH ���� CENTER �� ����� ���
��. �"� � ���� ��� � ��� ��� CENTER� �"���.
DROP FUNCTION CENTER (INTEGER, FLOAT) RESTRICT
� 7���� ��� SMITH��, JOHNSON ���(shema)� FOCUS97�� ����
��� � �� CENTER �� ����� �����. �� � ����
��� ���� ��� CENTER� �"���.
DROP SPECIFIC FUNCTION JOHNSON.FOCUS97
� 8���� ��� SMITH��, BIOLOGY ���� OSMOSIS ������ ���
�� �����. OSMOSIS� �"���.
DROP PROCEDURE BIOLOGY.OSMOSIS
� 9���� ��� SMITH��, ���� ���� BONUS ��� ��� ����
�. BONUS� �"���.
DROP TRIGGER BONUS
DROP
� 5 � �� 667
END DECLARE SECTIONEND DECLARE SECTION�� SQL � ��� �� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
���. RPG, Java� REXX� ����� � ��.
����
��� ��� ����.
��
�� END DECLARE SECTION ��
�
END DECLARE SECTION�� ��� �� ��� ��� ������ ���
� ��� �� �� � �� �� �� ��� � ����. � ��� ��
� SQL � ��� �� �����. SQL � ��� BEGIN DECLARE
SECTION��� �����. BEGIN DECLARE SECTION�� �� ��� ��
� 398 ���� �BEGIN DECLARE SECTION�� �����.
BEGIN DECLARE SECTION� END DECLARE SECTION�� �� ����
, �� � ����.
SQL�� � �� �� ����� � ��. �, DECLARE VARIABLE ��
INCLUDE�� ����.
SQL � ��� ����� ��� SQL � �� �� �� ��� ��� �
�� ��� � ����. SQL � ��� ��� ��� ����� �� �� �
�� ��� ���� ��� � ����.
RPG� REXX� ��� �� ��� �� �� SQL � ��� ��� ��
����� IBM SQL ��� �!�� �� ���. SQL � ��� ��� ��
� �� �� ��� ���� ���. ��� ��� RPG�� � ��� ���
�� � , REXX��� �� �� ����.
SQL � �� ��� �� ��� SQL � �� ��� �� ��� �� �
�� � ����.
� ��� SQL � ��� ����� ��� � ����.
END DECLARE SECTION
668 iSeries� DB2 UDB SQL ��� V5R2
|
|
�
END DECLARE SECTION�� �� �� ��� 398 ���� �BEGIN DECLARE
SECTION�� �����.
END DECLARE SECTION
� 5 � �� 669
EXECUTEEXECUTE�� �� SQL�� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����.
����
���� ��� EXECUTE� �� ��� SQL�� �� ��� ����. ��
��, EXECUTE� ��� INSERT�� ��� � ���
���� ��� ���� INSERT� �� ��� �����.
����� ���� � DYNUSRPRF(*OWNER)� CRTSQLxxx �� ��
� ����, ��� ���� ID� �� �� ���� ID��. ��� ��� 58
���� ����� ID � ������� �����.
��
�� EXECUTE statement-name
,
USING host-variableUSING DESCRIPTOR ����
��
�
statement-name
��� �� ��� �����. state-name� ��� �� �� ��� �
��� ���. SELECT�� �� ��� � ����.
USING
�� ��� �� ��(�� ��)� ��� �� �� ��� ��� �
��� � ���. �� ��� �� ��� 728 ���� �PREPARE�� �
����. �� ��� �� ��� � �� USING�� �
��� ���. �� ��� �� ��� USING� �����.
host-variable,...
��� �� � ��� � ��� ��� ����� ��� � ���
�� �� �� � �� �����. ��� ��� �� ��� �� ��
��� �� ��� �� ��. ��� �� �� ��� �� ��
��� �� ���� ���. n �� ��� �� ���� n ��
�� ��� �����.
EXECUTE
670 iSeries� DB2 UDB SQL ��� V5R2
DESCRIPTOR descriptor-name
��� ��� �� ��� �� � SQLDA� �����.
EXECUTE�� �� �� SQLDA� ��� �� ��� ���� ��
�(REXX� �� ��� ����. ��� ��� SQL Programming with
Host Languages �� �����).
v SQLDA� ��� SQLVAR� � �� ��� SQLN
v SQLDA� �� ��� ����� �� �� ��� SQLDABC
v ��� �� � SQLDA� ��� ��� �� ��� SQLD
v �� �� ��� SQLVAR �
�� SQLVAR �� � � ��� SQLDA� ��� ���� ���
��� ���. LOB �� �� �� ��� �� ���� SQLVAR
��� � ��� �� ���� ���. SQLVAR� �� ���
� SQLDA� �� ��� �� � SQLVAR � �� �� ��� �� �
�� 881 ���� �� C �SQLDA(SQL ��� ��)�� �����.
SQLD� �(0) �� �� �� SQLN �� �� �� ��� ���
� ���. �� �� ��� �� �� ��� �� ���� ���.
SQLDA� �� ��� n �� ��� �� ���� n �� ��
��� �����.
RPG/400� �� ��� � �� ��� ����. SQLDA� �� ��
� ��� ���� � ��� ���� ���� RPG/400 ������
��� � ��� ���� ���.
��� � ��
�� ��� ��� �� ��� �� � �� ��� �� ��� ���
�� ��. �� ��� ��� ��� ��� �� ��� ��� ������
��� �� ��� �� ����. � �� ��� �� ��� ��
CAST ���� ��� ���. � �� ��� �� ��� ��
�� ��� ��� �� �� ��. �� ��� ��� ��� ��� 732 �
��� � 57� �����.
�� �� P� ��� ��� ��� V� �����. � �� ��� �
��� ��� ��� � V� P� �� �� ��� �� ��. � �� ���
�� ��.
v V� ��� ���� ���.
EXECUTE
� 5 � �� 671
v V� �� ���� �� �� ��� ���� �� ��� ���� �
��.
v V� �� ��� �� ��� �� ��� �� ���� �� ��
��.
v ��� �(null)� � � �� � V� �� ���� ���.
� � � �� ��� � ��� ��� �� ��� �� ��.
v V� ���� � ��� ��� �� ��� �� �� �� ��(���
�� ��).
�� ��� ��� � P � ��� �� P� �� �� ��� ���. ��
��, V� CHAR(6)�� ��� CHAR(8)� P � ��� �� � ��
�� � � V ���.
�
COBOL ����� ��� � �� �� ��� �� INSERT�� �� �
�� ��� �����.
EXEC SQL BEGIN DECLARE SECTION END-EXEC.77 EMP PIC X(6).77 PRJ PIC X(6).77 ACT PIC S9(4) COMP-4.77 TIM PIC S9(3)V9(2).01 HOLDER.
49 HOLDER-LENGTH PIC S9(4) COMP-4.49 HOLDER-VALUE PIC X(80).
EXEC SQL END DECLARE SECTION END-EXEC....MOVE 70 TO HOLDER-LENGTH.MOVE "INSERT INTO EMPPROJACT (EMPNO, PROJNO, ACTNO, EMPTIME)
- "VALUES (?, ?, ?, ?)" TO HOLDER-VALUE.EXEC SQL PREPARE MYINSERT FROM :HOLDER END-EXEC.
IF SQLCODE = 0PERFORM DO-INSERT THRU END-DO-INSERT
ELSE PERFORM ERROR-CONDITION.
DO-INSERT.MOVE "000010" TO EMP.MOVE "AD3100" TO PRJ.MOVE 160 TO ACT.MOVE .50 TO TIM.EXEC SQL EXECUTE MYINSERT USING :EMP, :PRJ, :ACT, :TIM END-EXEC.
END-DO-INSERT....
EXECUTE
672 iSeries� DB2 UDB SQL ��� V5R2
EXECUTE IMMEDIATEEXECUTE IMMEDIATE�:
v ��� �� ��� ������ ����� ��� SQL�� ����.
v SQL�� �����.
EXECUTE IMMEDIATE� PREPARE�� EXECUTE�� �� �� �����
�. � ��� ��� ��� ��� �� ��� � �� SQL�� �
� ��� � ����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����.
����
���� ��� EXECUTE IMMEDIATE� �� ��� SQL�� �� ��� �
���. �� ��, EXECUTE IMMEDIATE�� ��� INSERT�� ��� �
��� ���� ��� ���� 708 ���� �INSERT�� �����.
����� ���� � DYNUSRPRF(*OWNER)� CRTSQLxxx �� ��
� ����, ��� ���� ID� �� �� ���� ID��. ��� ��� 58
���� ����� ID � ������� �����.
��
�� EXECUTE IMMEDIATE host-variablestring-expression
��
�
host-variable
�� ��� � ��� �� ��� � ��� �� �� UCS-2 � �
�� ��� �����. ��� ��� �� �� CLOB� DBCLOB��
� ����� ��� ��� ��� ���.
string-expression
string-expression� �� ���� ��� �� PL/I string-expression��.
�� ���� ��� SQL ���� ��� ����. string-expression� PL/I
��� �� ��.
��� ��� �� �� ��� ���� �� statement string��� ���.
EXECUTE IMMEDIATE
� 5 � �� 673
�� ���� �� SQL� � ��� ���.55
ALTER DROP REVOKECALL GRANT ROLLBACKCOMMENT INSERT SET PATHCOMMIT LABEL SET TRANSACTIONCREATE LOCK TABLE UPDATEDELETE RENAME
�� ����� ��� � ��� ����.
v EXEC SQL� ��� END-EXEC �� ����(;)�� ���
v ��� ��� �� ��� �
v �� ��� �
EXECUTE IMMEDIATE�� ��� � ��� �� ���� ��� �� �
�� �� ��. �� �� SQL�� ��� �� , ��� �� �� ���
SQLCA� �� ��. �� SQL���� �� � ��� �� �� ���
SQLCA� �� ��.
��� SQL�� � �� ��� �� EXECUTE IMMEDIATE�� ��
� ��� PREPARE� � EXECUTE�� ��� �� � �����.
�
��� �� Qstring�� SQL�� ��� � C� �����.
void main (){
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
char Qstring[100] = "INSERT INTO WORK_TABLE SELECT * FROM EMPPROJACTWHERE ACTNO >= 100";
EXEC SQL END DECLARE SECTION END-EXEC.EXEC SQL INCLUDE SQLCA;
.
.
.EXEC SQL EXECUTE IMMEDIATE :Qstring;
return;}
55. select�� ��� � ����. select�� ���� �� ��� PREPARE, DECLARE CURSOR � OPEN�� �����.
EXECUTE IMMEDIATE
674 iSeries� DB2 UDB SQL ��� V5R2
FETCHFETCH�� ���� � �� ��� �� �����. � ��� � �� �
� �� �� � �� �� �� � �� , ��� ��� �� ��
�� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����. REXX �������� �� � ��� ��� ���
�.
����
��� ��� � ��� ���� ��� ���� 598 ���� �DECLARE
CURSOR�� �����.
��
�� FETCHNEXTPRIORFIRSTLAST
(1)BEFORE
(2)AFTERCURRENTRELATIVE host-variable
integer
FROMcursor-name �
�single-fetchmultiple-row-fetch
��
single-fetch:
,
INTO host-variableINTO DESCRIPTOR descriptor-name
multiple-row-fetch:FOR host-variable
integerROWS �
FETCH
� 5 � �� 675
� INTO host-structure-arrayUSING DESCRIPTOR descriptor-name INTO row-storage-area
row-storage-area:: host-identifier-1
INDICATOR: host-identifier-2
�:
1 BEFORE� ��� �� ��� �� �� � ���� ��� ���
���.
2 AFTER� ��� �� ��� �� �� � ���� ��� ��� �
��.
�
� � NEXT, PRIOR, FIRST, LAST, BEFORE, AFTER, CURRENT �
RELATIVE� ��� ��� �� �����. � � � � NEXT�� SCROLL
� �� �� ��� ��� � ����.
NEXT
����� ��� �� ��� �� ��� ��� �����. ��� ��
��� ��� �� NEXT� �����.
PRIOR
����� ��� �� ��� �� ��� ��� �����.
FIRST
���� � �� ��� ��� �����.
LAST
���� ��� ��� ��� �����.
BEFORE
���� � �� � � ��� �����.
AFTER
���� ��� � �� ��� �����.
CURRENT
��� �� ���� �� �� �� ������. ��� DYNAMIC
SCROLL�� �� �� �� �� ���� �� ���� �� �
�� ��� � ��.
RELATIVE
Host-variable �� integer� �� � k� �� ��. RELATIVE� k>0�
�� � ��� k � �� k<0� �� � � k �� �� �� ��
FETCH
676 iSeries� DB2 UDB SQL ��� V5R2
�� ��� �����. host-variable� ��� ��� 0 ��� � �
���� ����� ��� � �� ���� ���.
� 50. �� ���� ��
�� ��
RELATIVE +1 NEXT
RELATIVE -1 PRIOR
RELATIVE 0 CURRENT
FROM
� � �� �� �� � � ���. ��� � ��� ��� �� �
� �� �����. ���� ��� ��� �� FROM � �� ��
� � ����.
cursor-name
�� ��� ��� ��� �����. cursor-name� 599 ���� ������
DECLARE CURSOR�� �� ��� �� �� ��� ���� ���.
FETCH�� ��� � ��� � ��� ��� ���.
�� �� �� � ���� ��� ��� ����� �� ��� ���
�. � � ��� �� �� , � ��� ����� �� ����. ���
�� ��� ��� 24 ���� ��� ���� �����.
single-fetch
INTO host-variable,...
��� �� � ��� � ��� ��� ����� ��� � � ���
��� �� �� ��� �����. INTO� �� ���� ��� ��� ��
�� ��� �� ��� �� ��. �� �� � �� �� ���� � ��
��� ��� ���, �� �� �� ��� ��� ��� ����
�� �� ��� �� ��.
INTO DESCRIPTOR descriptor-name
0 �� � � ��� ��� �� �� ��� ��� � SQLDA� �
����.
FETCH�� �� �� SQLDA� ��� �� ��� ���� ���(REXX�
�� ��� ����. ��� ��� ��� �� SQL ��� �� ���
��).
v SQLDA� ��� SQLVAR � �� ��� SQLN
v SQLDA� �� ��� ����� �� �� ��� SQLDABC
v ��� �� � SQLDA�� ��� �� �� ��� SQLD
v ��� �� ��� SQLVAR � �
FETCH
� 5 � �� 677
�� SQLVAR �� � � ��� SQLDA� ��� ���� ��� ���
���. ���, SQLDABC� �� 16 + SQLN*(80) �� �� ��� ���. �
�� 80� SQLVAR �� ����.
SQLD� �(0) �� �� �� SQLN �� �� �� ��� ���� ���.
��� ��� 881 ���� �� C �SQLDA(SQL ��� ��)�� �����.
multiple-row-fetch
FOR k ROWS
host-variable �� integer� ��� k� � �����. host-variable� ��
� ��� 0 ��� � ��� ����� ����� ���
� �� ���� ���. k� 1 - 32767 ��� ��� ���. ��� �� �
�(NEXT �)� �� ��� �� ����, ��� ��� �� �� ��.
�� ��, ��� �� ��� ��� �� k-1 �� �� ��(��� ����
� ��). �� �� �, ��� ����� ��� �� ���.
�� ��, FETCH PRIOR FROM C1 FOR 3 ROWS� �� �, �� � �
�� �� ���� �����. ��� �� �� ���. FETCH RELATIVE
-1 FROM C1 FOR 3 ROWS� ��� ��� ����. FETCH FIRST
FROM C1 FOR :x ROWS� � x � �� �� ��, ��� � �� x
� �" ���.
�� � ��� ����� ��� SQLCA� �� � � ��� �� ��.
v SQLERRD(3)� ��� �� �� �����.
v SQLERRD(4)�� ��� �� ��� �� ����.
v SQLERRD(5)�� ��� �� ��� � +100� ����.56
INTO host-structure-array
host-structure-array� ��� �� � ��� �� ��� ��� ��� �
� �����.
�� � �� ��� � �� �� ���, �� ��� �� �� ��
� ���� ��� �� �� ��. �� �� � �� �� ��� � ��
��� ���, �� �� �� ��� �� ��� ��� ���� �
� �� ��� ��� �� ��. ��� �� �� ��� �� �� ��
���� ���.
USING DESCRIPTOR descriptor-name
row-storage-area� �� �� ��� ��� ��� ��(0 �� � )�
�� �� ��� ��� � SQLDA� �����.
FETCH�� �� �� SQLDA� ��� �� ��� ���� ���.
56. �� � �� ��� � �� �� , �� � �� �� ��� SQLERRD(5)� +100� � ����.
FETCH
678 iSeries� DB2 UDB SQL ��� V5R2
v SQLDA� ��� SQLVAR� � �� ��� SQLN
v SQLDA� �� ��� ����� �� �� ��� SQLDABC
v ��� �� � SQLDA� ��� ��� �� ��� SQLD
v ��� ��� �� ��� SQLVAR �
SQLDA� � �� ��� �(SQLNAME �)� FETCH�� ��� ���� �
�� � , ����� � ��.
�� SQLVAR �� � � ��� SQLDA� ��� ���� ��� �
�� ���. ���, SQLDABC� �� 16 + SQLN*(80) �� �� ���
���. ��� 80� SQLVAR �� ����. LOB� �� �� ��
� � �� ��� �� SQLVAR ��� ��� SQLN�
�� �� �� �� ���� ���.
SQLD� �(0) �� �� �� SQLN �� �� �� ��� ���� �
��. ��� ��� 881 ���� �� C �SQLDA(SQL ��� ��)�� ��
���.
FETCH�� ��� � � �� SQLVAR ��� SQLDATA ��� � ��
�� ��� ����� � �� � �� �� �� ���, ��
SQLVAR ��� SQLDATA ��� � �� �� ��� ����� ��
� �� �� �� ��� ���� �� �����. � �� �(null)��
SQLVAR ��� SQLIND ��� � �� ����� �� ���, ��
��� SQLVAR ��� SQLIND ��� �� ����� �� ���
���� ����� �� �����. SQLDA� 16 �� �� ���� �
��.
INTO row-storage-area
��� ��� � ��� host-idendifier-1� �� �� ����� ��
� �����. �� SQLDA�� ��� ���� �� ��� � ��.
host-identifier-1� ��� �� �� ��� ��� �� �� ���.
host-identifier-2� ��� ����� ��� �����. ISQLVAR ��
SQLTYPE� ���� � ID� ��� ���� ���. ������ ��
���� � ��. host-identifier-2� �� � �� � ��� �� �� �
����� ��� � �� ��� �� ���.
INTO�� �� ��� SQLDA�� ��� n �� ��� ��� ��� ���
�� n �� � �����. � ��� ��� �� �� ��� � ��� �
��� ���.
��� �� � ��� 41 ���� � 2 � �� ���� ��� ��� �� ��
����. ��� �� �� �� �� � ��� SQLCA� SQLWARN3 ��
FETCH
� 5 � �� 679
� 'W'� �� ��. �� � ��� ��� � �� �� �� ���
����. � �� �(null)� ����� ��� ���� ���. �� ��
� �� �� ��� ��� �� � �� �� �� ��� ��� ���
�. ��� �� ��� �� ��� �� ����.
�� SELECT�� SELECT ������ ���(0�� �� �� ��)�� �� �
�� �� �� �� ��� �� ��� ����. � �� ��
��� ����� ��� ���� ���. ��� ��� �� ��� ����.
� � � � ����� ��� -2� �� ��. ��� ��� �� ��
�� ��� �� � ��(� � � ��� � SQLCODE� ���).
����� ��� ��� ��� SQLCA� SQLCODE ��� �� �� �
��. ��� ��� �� ��� �� ��� ��, ��� �� � � �� ��
� ��� �� ���� ����.
LOB� �� � �� �� ��� ��� ��� �� �� � ��� �
�� � ����.
� ��� �� �� � �� �����.
v � �
v � �
v ��� � �� �
��� � �� �� �� � �� ��� �� ���� ���. UPDATE� �
� DELETE�� ��� ��� �� �� ��� ���. FETCH�� ��� �
� ��� ��� ��� � ����.
��� ��� ��� � �� ��� ��� �� �� ����.
��� ��� ��� ��� ��� ��� � �� ��� �� ��� 'W'�
SQLCA� SQLWARN1� �� ��. ����� ��� ��� ��� �� ��
� ��� ��� ��� ����� ��� � ��.
��� ��� ��� C NUL �� ��� ���� ��� NUL ���� ��� �
�� �� �� ��� �� ��.
v *CNULRQD ��� CRTSQLCI �� CRTSQLCPPI �� ��(��
CNULRQD(*YES) ��� SET OPTION�� ��)� ��� ����.
– ��� �� ��.
– ��� ��� NUL �����.
– � ‘W’� SQLCA� SQLWARN1� �� ��.
FETCH
680 iSeries� DB2 UDB SQL ��� V5R2
v *NOCNULRQD ��� CRTSQLCI �� CRTSQLCPPI �� ��(��
CNULRQD(*NO) ��� SET OPTION�� ��)� ��� ����.
– NUL ���� �� ����.
– � ‘N’� SQLCA� SQLWARN1� �� ��.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ���� ��� � ����.
v USING DESCRIPTOR� �� ����� INTO DESCRIPTOR� ���� �
�� � ����.
�
� � FORUM� ARCHIVE ��� ��� �� � ����.
��: FORUM RECEIVED SOURCE TOPIC ENTRY_TEXT
��: char(8)
�� ��
����
�� ��
char(8)
�� ��
char(64)
�� ��
varchar(4000)
�� ��
��: �� �� � �
�� ��
� �� ��
� �� ���
ID
� �� � � ���� �
�� ���
FORUM ��� ��� ��� �� � � ����. � �� ��
� ��� �� , � �� � ��� ��� � ����. ��
� �� ��� �� �� � �� ��� �� ARCHIVE �� �� ��.
�� PL/I ����� � �� �� ���� ��� � �� ��. ����
� �� � � �� ��� ����� ��� � ����. �� �(��
TOPIC �� ��� ��)� �� ��� TOPIC ��� �� � �� ����
���� � �� �� ��. � �� �� ��� ����.
v 1(�� � ��� �� TOPIC �� ��� ����.)
v 2(�� �� �� ��� ARCHIVE �� ������.)
v 3(�� �� �� ��� ��� �� ����.)
FETCH
� 5 � �� 681
|
|
|
|
CLEANUP: PROC OPTIONS(MAIN);DCL NOT_END BIT(1);EXEC SQL BEGIN DECLARE SECTION;DCL ACTION BINARY FIXED(15); /* 1=chg-topic 2=archive 3=delete */DCL SRCH_FORUM CHAR(8);DCL SRCH_TOPIC CHAR(66) VARYING;DCL NEW_TOPIC CHAR(64) VARYING;DCL FORUM CHAR(8);DCL TSTMP CHAR(26);DCL PERSON CHAR(8);DCL TOPIC CHAR(64) VARYING;DCL TXT CHAR(2000) VARYING;EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;
EXEC SQL WHENEVER NOT FOUND CONTINUE;EXEC SQL WHENEVER SQLWARNING CONTINUE;EXEC SQL WHENEVER SQLERROR GOTO ERRCHK;
EXEC SQL CONNECT TO TOROLAB3;GET LIST (ACTION, SRCH_FORUM, SRCH_TOPIC, NEW_TOPIC);SRCH_TOPIC = ’%’ || SRCH_TOPIC || ’%’;EXEC SQL DECLARE CUR CURSOR FOR
SELECT * FROM FORUMWHERE FORUM = :SRCH_FORUM AND TOPIC LIKE :SRCH_TOPICFOR UPDATE OF TOPIC;
EXEC SQL OPEN CUR;
NOT_END = ’1’B;DO WHILE (NOT_END);
EXEC SQL FETCH CUR INTO :FORUM, :TSTMP, :PERSON, :TOPIC, :TXT;IF SQLSTATE = ’02000’ THEN
NOT_END = ’0’B;ELSE DO;
SELECT;WHEN (ACTION = 1) /* change topic value */
EXEC SQL UPDATE FORUMSET TOPIC = :NEW_TOPICWHERE CURRENT OF CUR;
WHEN (ACTION = 2) /* archive entry to another table */DO;
EXEC SQL INSERT INTO ARCHIVEVALUES (:FORUM, :TSTMP, :PERSON, :TOPIC, :TXT);
EXEC SQL DELETE FROM FORUM WHERE CURRENT OF CUR;END;
WHEN (ACTION = 3) /* delete topic */EXEC SQL DELETE FROM FORUM WHERE CURRENT OF CUR;
END; /* select */END; /* else do */
END; /* do while */
FINISHED:EXEC SQL CLOSE CUR;EXEC SQL COMMIT WORK;RETURN;
ERRCHK:DISPLAY (’Unexpected Error -changes will be backed out’);PUT SKIP LIST (SQLCA);
EXEC SQL WHENEVER SQLERROR CONTINUE; /* continue if error on rollback */EXEC SQL ROLLBACK WORK;RETURN;
END; /* CLEANUP */
FETCH
682 iSeries� DB2 UDB SQL ��� V5R2
FREE LOCATORFREE LOCATOR�� ���� ��� ��� ��� ��� ����.
��
� ��� ������ ����� �� �� ����. ������ �� �
����. � ��� ���� �� � �� �����. � � �� ��
� ��� �� USING�� ��� EXECUTE�� ���� ���. FREE
LOCATOR�� EXECUTE IMMEDIATE�� � ��� � ����.
����
��� ��� ����.
��
�� FREE LOCATOR
,
host-variable ��
�
host-variable,...
���� ��� � ��� ��� ����� ��� � � ��� ��
� ��� �����. ����� ��� ��� ��� ���. ���� ��
�� 2� � ��� ����, �� � ��� ���� �� 2 �� ��
� ��� ������ ���.
��� ���� �� ��� ����� ��� ���. �� ��, ����� �
�� � � CALL, FETCH, SELECT INTO, SET �� �� VALUES INTO
�� �� ���� , ��� FREE LOCATOR�� �� ��� ��
� ���. ��� ��� ��� ����.
FREE LOCATOR�� ��� ��� �� ��� ���� � ���
��� �� ��� ����� ��� ����.
�
���� RESUME, HISTORY � PICTURE � �� �� ��� �� �
���� ����� ����� �����. COBOL�� �� ��� CLOB ��
�� �� LOCRES� LOCHIST, ��� BLOB ���� �� LOCPIC� ���
��.
EXEC SQL FREE LOCATOR :LOCRES, :LOCHIST, :LOCPIC END-EXEC.
FREE LOCATOR
� 5 � �� 683
|
|
|
|
GRANT(��� �� ��)� ��� GRANT�� �� �� �� ��� �����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� � �� ��
– ��� ��� �� ��
– �� �� �� *OBJMGT ��� ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
WITH GRANT OPTION� ��� ��� ���� ID� �� �� �
�� �� � � �� ��� ��� � ��� ���.
v �� �� ��
v �� ��
��
�� GRANT
PRIVILEGESALL
,
ALTERUSAGE
ON TYPEDISTINCT
�
�
,
distinct-type-name
,
TO authorization-namePUBLIC
�
�WITH GRANT OPTION
��
GRANT(��� �� ��)
684 iSeries� DB2 UDB SQL ��� V5R2
�
ALL �� ALL PRIVILEGES
� ��� ��� �����. ��� ��� ��� ���� ID� ���
�� �� �� �� �� ����� ����. �� �� �� ALL
PRIVILEGES� ��� �� *ALL� ��� ��� ��� �� ��� �
�� ����.
ALL� ��� �� � �� � � � � ��� ���� ���.
� � �� ��� ��� �����.
ALTER
COMMENT�� ��� ��� �����.
USAGE
�, �, ������ �� �� ��� ��� �����.
ON DISTINCT TYPE distinct-type-name
��� ��� �� �� �� �����. distinct-type-name� �� ��
� �� �� ���� ���.
TO
��� ���� ���� �����.
authorization-name,...
� ��� ���� ID� ����. ��� authorization-name� �
�� ��� ����.
PUBLIC
��� ��(���� ID)� ��� �����.
��� ��� �� �� �� ��� ���� ���� �� ����
�� ��. �� ��, ALTER� PUBLIC� ���� USAGE�
HERNANDEZ� ��� � � �� ��� �� HERNANDEZ�
ALTER ��� �� ����.
WITH GRANT OPTION
��� authorization-name� ON�� ��� �� �� �� ��� �� �
���� ��� � ����.
WITH GRANT OPTION� ��� ��� authorization-name� �� �
� �����(����, ��� �� *OBJMGT���) �� ��� �� �� �,
ON�� ��� �� �� �� ��� �� ����� ��� � ����.
GRANT � REVOKE�� SQL ���� �� ��� ��� ��� ���
�. �� ���� SQL ��� ��� ��� ��� �����.
GRANT(��� �� ��)
� 5 � �� 685
|
|
|
|
|
� 51. �� �� ��� ���� ��� ��
SQL ��
��� �� �� � ���� ��� ��
� ��� ��
ALL(ALL� �� �� ��� ��� ����
ID� �� ���� ��� �� )
*OBJALTER
*OBJOPR
*EXECUTE
*OBJMGT(�� ��)
ALTER *OBJALTER
USAGE *EXECUTE
*OBJOPR
WITH GRANT OPTION *OBJMGT
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ���� ��� � ����.
v � � DATA� DISTINCT� ���� ��� � ����.
�
�� � SHOE_SIZE� �� USAGE ��� JONES�� �����. � GRANT
�� �� � SHOE_SIZE� ��� ��� �� ��� ��� JONES��
��� ����.
GRANT USAGEON DISTINCT TYPE SHOE_SIZETO JONES
GRANT(��� �� ��)
686 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
GRANT(� �� ����� ��)� � ��� GRANT�� � �� ������ �� ��� �����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� ��� � �� ������ �� ��� �� ��� ����.
– ��� ��� �� ��
– �� ������ �� *OBJMGT ��� ��
– �� ������ �� �� �� �(�� Java ��� ����)�
�� *EXECUTE ��� ��
v �� ��
WITH GRANT OPTION� ��� ��� ���� ID� �� �� �
�� �� � � �� ��� ��� � ��� ���.
v �� ������ �� ��
v �� ��
GRANT(�� �� ����� ��)
� 5 � �� 687
��
�� GRANT
PRIVILEGESALL
,
ALTEREXECUTE
ON �
�
,
FUNCTION function-nameROUTINE ( )
,
parameter-typeSPECIFIC FUNCTION specific-name
ROUTINEPROCEDURE procedure-name<ROUTINE ( )
,
parameter-typeSPECIFIC PROCEDURE specific-name
ROUTINE
�
�
,
TO authorization-namePUBLIC WITH GRANT OPTION
��
parameter-type:built-in-typedistinct-type-name AS LOCATOR
GRANT(�� �� ����� ��)
688 iSeries� DB2 UDB SQL ��� V5R2
built-in-type:SMALLINTINTEGERINTBIGINT
(5,0)DECIMALDEC ( )
NUMERIC integer, integer
(53)FLOAT
(1)( integer )
REALPRECISION
DOUBLE(1)
CHARACTERCHAR ( ) FOR BIT DATA
integer FOR SBCS DATACHARACTER VARYING ( ) FOR MIXED DATACHAR integer CCSID integer
VARCHAR(1M)
CLOBCHAR LARGE OBJECT ( ) FOR SBCS DATA AS LOCATORCHARACTER LARGE OBJECT integer K FOR MIXED DATA
M CCSID integerG
(1)GRAPHIC
( ) CCSID integerinteger
VARGRAPHIC ( )GRAPHIC VARYING integer
(1M)DBCLOB
( ) CCSID integer AS LOCATORinteger K
MG
(1M)BLOBBINARY LARGE OBJECT ( ) AS LOCATOR
integer KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP(200)
DATALINK( ) CCSID integer
integerROWID
�:
1 �� �(REAL �� DOUBLE)� ��� ��� ������ ���� �� ��� �� ��
��� � ��� �� ��� ��� ��.
GRANT(�� �� ����� ��)
� 5 � �� 689
�
ALL �� ALL PRIVILEGES
� ��� ��� �����. ��� ��� ��� ���� ID� ���
�� ������ �� �� �� ����� ����. �� ������
�� ALL PRIVILEGES� ��� �� *ALL� ��� ��� ��� ��
��� ��� ����.
ALL� ��� �� � �� � � � � ��� ���� ���.
� � �� ��� ��� �����.
ALTER
COMMENT�� ��� ��� �����.
EXECUTE
�� ������ ��� ��� �����.
FUNCTION
��� ��� �� �� �����. ��, � ��� �� ���� ���
�� ��� � ����. � ��(� �)� �� ��� ��� ����.
FUNCTION function-name
function-name� �� ��� �� � �� �� ���� ���. �
� �� �� ��� ��� �� � ����. ��� �� ��� �
��� ��� ��� �� � �� ��� ��� � ��.
FUNCTION function-name(parameter-type, ...)
function-name(parameter-type, ...) �� ��� �� ��� � ���
�� ���� ���. ��� ��� �� ��� CREATE FUNCTION
�� ��� �� �� ���� ���. �� �� �, �� �� �
��� ��� �� � ���� ��� � �� ��. function-name()
� ��� ��� �� 0 � ��� ��� ���.
function-name
� ��� �����.
(parameter-type, ...)
�� ��� �����.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� �� ��� �
� �� � �� ��� ��� �� ����.
v � ��� �� �� �� ��� ��� � ������ ����
�� ����� �� �����.
GRANT(�� �� ����� ��)
690 iSeries� DB2 UDB SQL ��� V5R2
v ��, ��� �� �� �� �� �� �� ��� � ��
CREATE FUNCTION�� ���(��� �� �����) �� ��
���� ���.
v ��, ��� �� ��� ����� ��� �� � ��� ��
� �� �� �� ��� �� �� ��. �� ��, ��
� ����.
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
��� ��� CREATE FUNCTION�� ����� �� �����
��� �� �� ���� ���. �� �� ��� ��� ��
�� ���� 541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� ��
�� �� ��� ��� � ������ ���� �� ����� �
� �����. �� ��� CREATE FUNCTION�� ��� �
� ����� ��� �� ���� ���.
SPECIFIC FUNCTION specific-name
specific-name� �� ��� �� �� �� ���� ���.
PROCEDURE
��� ��� �� ������ �����. ��, ����� �� �� ��
���� �� ������ ��� � ����. ����� ��(� �)� ��
��� ��� ����.
PROCEDURE procedure-name
procedure-name� �� ��� �� � ������ �� ���� ��
�. ������ ������ �� ��� ��� ����. ��� ��
��� ���� ��� ��� ������ � �� �� ��� �
��.
PROCEDURE procedure-name(parameter-type, ...)
The procedure-name(parameter-type, ...)� �� ��� �� ��� ���
�� ��� ������ ���� ���. ��� ��� �� ���
CREATE PROCEDURE�� ��� �� �� ���� ���. ��
�� �, �� �� � ��� ��� �� ����� ���� ��
� � �� ��. procedure-name()� ��� ��� ������ 0 �
��� ��� ���.
procedure-name
����� ��� �����.
GRANT(�� �� ����� ��)
� 5 � �� 691
(parameter-type, ...)
����� ��� �����.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� �� ��� �
� �� � �� ��� ��� �� ����.
v � ��� �� �� �� ��� ��� � ������ ����
�� ����� �� �����.
v ��, ��� �� �� �� �� �� �� ��� � ��
CREATE PROCEDURE�� ���(��� �� �����) �� �
� ���� ���.
v ��, ��� �� ��� ����� ��� �� � ��� ��
� �� �� �� ��� �� �� ��. �� ��, ��
� ����.
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
��� ��� CREATE PROCEDURE�� ����� �� ����
� ��� �� �� ���� ���. �� �� ��� ��� �
� �� ���� 541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� ��
�� �� ��� ��� � ������ ���� �� ����� �
� �����. �� ��� CREATE PROCEDURE�� ���
�� ����� ��� �� ���� ���.
SPECIFIC PROCEDURE specific-name
specific-name� �� ��� �� �� ������ ���� ���.
TO
��� ���� ���� �����.
authorization-name,...
� ��� ���� ID� ����. ��� authorization-name� �
�� ��� ����.
PUBLIC
��� ��(���� ID)� ��� �����.
GRANT(�� �� ����� ��)
692 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
��� ��� �� ������ �� ��� ���� ���� �� �
��� �� ��. �� ��, ALTER� PUBLIC� ���� EXECUTE�
HERNANDEZ� ��� � � �� ��� �� HERNANDEZ�
ALTER ��� �� ����.
WITH GRANT OPTION
��� authorization-name�� ON�� ��� �� ������ �� ���
�� ����� ��� � ����.
WITH GRANT OPTION� ��� ��� authorization-name� �� �
� �����(�� ��, ��� �� *OBJMGT���) �� ��� �� ��
�, ON�� ��� �� ������ �� ��� �� ����� ��� �
����.
SQL �� �� �� ������ ��� ��� �� ����(*PGM) �� �
� ����(*SRVPGM) ����� �� ��. Java �� �� ������ �
�� ��� ��� �� ��� jar �� �� ��.
GRANT � REVOKE�� SQL ���� �� ��� ��� ��� ���
�. �� ���� SQL ��� ��� ��� ��� �����.
� 52. Java� � �� ������ ��� ���� ��� ��
SQL ��
��� ����� �� � ���� ���
�� � ��� ��
ALL(ALL� �� �� ��� ��� ����
ID� �� ���� ��� �� )
*OBJALTER
*OBJOPR
*EXECUTE
*OBJMGT(�� ��)
ALTER *OBJALTER
EXECUTE *EXECUTE
*OBJOPR
WITH GRANT OPTION *OBJMGT
� 53. Java �� ������ ��� ���� ��� ��
SQL ��
Java ��� ����� �
� � ���� ��� �� �
��� ��
Java ��� ����� �
� � ���� ��� �� �
��� ��
ALL(ALL� �� �� ���
��� ���� ID� �� �
��� ��� �� )
*RWX *OBJEXIST
*OBJALTER
*OBJMGT(�� ��)
ALTER *R *OBJALTER
EXECUTE *RX *EXECUTE
WITH GRANT OPTION *RWX *OBJMGT
GRANT(�� �� ����� ��)
� 5 � �� 693
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ���� ��� � ����.
v RUN � �� EXECUTE� ���� ��� � ����.
�
CORPDATA.PROCA ������ �� EXECUTE ��� PUBLIC� �����.
GRANT EXECUTEON PROCEDURE CORPDATA.PROCA
TO PUBLIC
GRANT(�� �� ����� ��)
694 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
GRANT(��� ��)� ��� GRANT�� ���� �� ��� �����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� ��� � ���� �� ��� �� ��� ����.
– ��� ��� �� ��
– ���� �� *OBJMGT ��� ��
– ���� �� �� �� �� �� *EXECUTE ��� ��
v �� ��
WITH GRANT OPTION� ��� ��� ���� ID� �� �� �
�� �� � � �� ��� ��� � ��� ���.
v ���� ��
v �� ��
��
�� GRANT
PRIVILEGESALL
,
ALTEREXECUTE
ON PACKAGE
,
package-name �
�
,
TO authorization-namePUBLIC WITH GRANT OPTION
��
�
ALL �� ALL PRIVILEGES
� ��� ��� �����. ��� ��� ��� ���� ID� ���
GRANT(��� ��)
� 5 � �� 695
���� �� �� �� ����� ����. ���� �� ALL PRIVILEGES
� ��� �� *ALL� ��� ��� ��� �� ��� ��� �
���.
ALL� ��� �� � �� � � � � ��� ���� ���.
� � �� ��� ��� �����.
ALTER
COMMENT � LABEL�� ��� ��� �����.
EXECUTE
����� ��� ��� ��� �����.
ON PACKAGE package-name
��� ��� �� ���� �����. package-name� �� ��� �� �
��� ���� ���.
TO
��� ���� ���� �����.
authorization-name,...
� ��� ���� ID� ����. ��� authorization-name� �
�� ��� ����.
PUBLIC
��� ��(���� ID)� ��� �����.
��� ��� ��� ���� �� ��� ���� ���� �� ���
� �� ��. �� ��, ALTER� PUBLIC� ���� EXECUTE�
HERNANDEZ� ��� � � �� ��� �� HERNANDEZ�
ALTER ��� �� ����.
WITH GRANT OPTION
��� authorization-name� ON�� ��� ���� �� ��� �� ���
�� ��� � ����.
WITH GRANT OPTION� ��� ��� authorization-name� �� �
� �����(�� ��, ��� �� *OBJMGT���) �� ��� �� ��
�, ON�� ��� ���� �� ��� �� ����� ��� � ����.
GRANT � REVOKE�� SQL ���� �� ��� ��� ��� ���
�. �� ���� SQL ��� ��� ��� ��� �����.
GRANT(��� ��)
696 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
� 54. ���� ��� ������ ��� ��
SQL ��
��� �� � ���� ��� �� �
��� ��
ALL(ALL� �� �� ��� ��� ����
ID� �� ���� ��� �� )
*OBJALTER
*OBJOPR
*EXECUTE
*OBJMGT(�� ��)
ALTER *OBJALTER
EXECUTE *EXECUTE
*OBJOPR
WITH GRANT OPTION *OBJMGT
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ���� ��� � ����.
v RUN � �� EXECUTE� ���� ��� � ����.
v � � PROGRAM� PACKAGE� ���� ��� � ����.
�
CORPDATA.PKGA ���� �� EXECUTE ��� PUBLIC� �����.
GRANT EXECUTEON PACKAGE CORPDATA.PKGA
TO PUBLIC
GRANT(��� ��)
� 5 � �� 697
|
|
|
|
GRANT(� ��)� ��� GRANT�� �� �� �� ��� �����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� ��� � �� �� �� ��� �� ��� ����.
– ��� ��� �� ��
– �� �� �� *OBJMGT ��� ��
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
WITH GRANT OPTION� ��� ��� ���� ID� �� �� �
�� �� � � �� ��� ��� � ��� ���.
v �� ��
v �� ��
��
�� GRANT
PRIVILEGESALL
,
ALTERDELETEINDEXINSERTREFERENCES
,
( column-name )SELECTUPDATE
,
( column-name )
TABLEON �
GRANT(� ��)
698 iSeries� DB2 UDB SQL ��� V5R2
�
,
table-nameview-name
,
TO authorization-namePUBLIC WITH GRANT OPTION
��
�
ALL �� ALL PRIVILEGES
� ��� ��� �����. ��� ��� ��� ���� ID� ���
�� �� �� �� �� ����� ���� . �� �� �� ALL
PRIVILEGES� ��� �� *ALL� ��� ��� ��� �� ��� �
�� ����.
ALL� ��� �� � �� � � � � ��� ���� ���.
� � �� ��� ��� �� ��� ON�� ��� ��� �� ���
�� ��. �� ��, UPDATE, DELETE � INSERT ��� �� �� ��
��� ����.
ALTER
�� �� ALTER TABLE � DROP TRIGGER�� ��� ��� ����
�. �� �� �� �� COMMENT � LABEL �� ��� ��� ����
�.
DELETE
DELETE�� ��� ��� �����. �� �� ��� DELETE� ��� �
����.
INDEX
CREATE INDEX�� ��� ��� �����. ��� � ��� ��� � �
���.
INSERT
INSERT�� ��� ��� �����. �� ��� �� ��� INSERT
� ��� � ����.
REFERENCES
�� �� � � � �� ����� ��� ��� �����. ���� �
�� �� ALL PRIVILEGES� ��� �� �� �� � ��
REFERENCES� ��� ��� �� ���� ON�� ��� � ��
�� � ��� � ��� �� ����� ��� � ����. ALTER
TABLE�� �� ��� ��� �� ����. � ��� �� ��� �� �
�� �� �� ��� �� ����.
REFERENCES(column-name,...)
���� ��� � ���� � ��� �� ����� ��� ���
GRANT(� ��)
� 5 � �� 699
|
|
|
|
�����. � column-name� ���� �� ����� ON�� ��� � �
� � ���� ���. � ��� �� � ��� � ��� �� �� ��
�� ����.
SELECT
SELECT� �� CREATE VIEW�� ��� ��� �����.
UPDATE
UPDATE�� ��� ��� �����. ���� ��� �� ALL
PRIVILEGES� ��� �� �� �� � �� UPDATE� ���
��� �� ���� ON�� ��� � ��� ���� �� � �� �
����. ALTER TABLE�� �� ��� ��� �� ����. �� ��
� �� ��� UPDATE� ��� � ����.
UPDATE(column-name,...)
���� ��� �� �� ��� UPDATE�� ��� ��� ��
���. � column-name� ���� �� ����� ON�� ��� � ��
�� � ���� ���. �� ��� �� �� UPDATE� ��� �
����.
ON table-name �� view-name,...
��� ��� �� �� �� �����. table-name �� view-name� ��
��� �� �� �� ���� ��� �� �� ����� � ��.
TO
��� ���� ���� �����.
authorization-name,...
� ��� ���� ID� ����. ��� authorization-name� �
�� ��� ����.
PUBLIC
��� ��(���� ID)� ��� �����.
��� ��� �� �� �� ��� ���� ���� �� ���� �
� ��. �� ��, SELECT� PUBLIC� ���� UPDATE�
HERNANDEZ� ��� � � �� ��� �� HERNANDEZ�
SELECT ��� �� ����.
WITH GRANT OPTION
��� authorization-name� ON�� ��� �� �� �� ��� �� ��
��� ��� � ����.
WITH GRANT OPTION� ��� ��� authorization-name� �� �
� �����(�� ��, ��� �� *OBJMGT���) �� ��� �� ��
�, ON�� ��� �� �� �� ��� ��� � ����.
GRANT(� ��)
700 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
GRANT�� REVOKE�� SQL ���� �� ��� ��� ��� ���
�. �� �� SQL ��� �� ��� � � ��� ��� ��� ��� ���
��. �� � SQL ��� ����. ��� ��� ��� ��� ��
��� ��� ����.
� 55. �� ��� ���� ��� ��
SQL ��
� �� � ���� ��� �� � ��
� ��
ALL(ALL� GRANT �� ��� ��� ��
�� ID� �� ���� ��� �� )
*OBJALTER57
*OBJMGT(�� ��)
*OBJOPR
*OBJREF
*ADD
*DLT
*READ*UPD
ALTER *OBJALTER58
DELETE *OBJOPR
*DLT
INDEX *OBJALTER58
INSERT *OBJOPR
*ADD
REFERENCES *OBJREF58
SELECT *OBJOPR
*READ
UPDATE *OBJOPR
*UPD
WITH GRANT OPTION *OBJMGT
�� �� �� SQL ��� ��� � � ��� ��� ��� ��� ����
�. �� � SQL ��� ����. �� � � ��� ��� ��� �
�� ��� ��� ����. ��� � � ��� ��� �� �� �� ��
� ��� ��� � , �� ��� � ��� ��� �� �� ��
��� �� ��.59
�� � ��� �� �� ��� *DLT, *ADD � *UPD ��� ��� �
��� subselect� �� � �� �� ��� �� ��. *READ ��� ��� �
��� ��� �� �� �� �� ��.
57. SQL INDEX � ALTER ��� ��� ��� �� *OBJALTER� �����. INDEX� ALTER ��� � ���� ����� ���
��� ��� ����.
58. WITH GRANT OPTION� ��� ���� ALTER � REFERENCES ��� �� ��� � �� ��� � ����.
59. ��� ���� ���� �� �� �� ��� �� �� �� ������ ��� � � �� � ��� ��� �� ��� ���
��� �� ��.
GRANT(� ��)
� 5 � �� 701
SQL ��� ��� ��� ��� �� �� � �� � �� ���
� �� �� �� �� ��� �� ��� ��� ��� ����.
GRANT� �� REVOKE� �� �� ��� ��� ���� ���. ��� �
� ���� ��� ��� ��� ����.
� 56. �� ��� ���� ��� ��
SQL ��
� � � ���� ��
� � ��� ��
��� �� � � � �
��� ��� � ��� �
�
ALL(ALL� GRANT ��
REVOKE� ��� ����
ID� �� ���� ���
�� )
*OBJALTER
*OBJMGT(�� ��)
*OBJOPR
*OBJREF
*ADD
*DLT
*READ*UPD
*ADD
*DLT
*READ*UPD
ALTER *OBJALTER 60 ��
DELETE *OBJOPR
*DLT
*DLT
INDEX �� �� �� ��
INSERT *OBJOPR
*ADD
*ADD
REFERENCES *OBJREF 60 ��
SELECT *OBJOPR
*READ
*READ
UPDATE *OBJOPR
*UPD
*UPD
WITH GRANT OPTION *OBJMGT ��
�
� 1����� ��� ��� ���(KATHLEEN ����) � WESTERN_CR� �
� ���� �� ��� PUBLIC� �����.
GRANT ALL ON KATHLEEN.WESTERN_CRTO PUBLIC
� 2CALENDAR �� ��� ��� ��� ROANNA� EMMA� �� �� �
� ��� ��� �� � ��� ���. ROANNA� EMMA� ��� ��� �
� �� �� ��� ����.
60. WITH GRANT OPTION� ��� ���� ALTER � REFERENCES ��� �� ��� � �� ��� � ����.
GRANT(� ��)
702 iSeries� DB2 UDB SQL ��� V5R2
GRANT SELECT, INSERT ON CALENDARTO ROANNA, EMMA
� 3TABLE1� VIEW1� �� ��� FRED�� �����. GRANT�� ���
� TABLE1� VIEW1 �� �� ���� ���.
GRANT UPDATE(column_1, column_2)ON TABLE1, VIEW1TO FRED WITH GRANT OPTION
GRANT(� ��)
� 5 � �� 703
HOLD LOCATORHOLD LOCATOR ��� LOB ���� ��� �� � � ���� �� ��
� ��� ���.
��
� ��� ������ ����� �� �� ����. ������ �� �
����. � ��� ���� �� � �� �����. � � �� ��
� ��� �� USING�� ��� EXECUTE�� ���� ���. HOLD
LOCATOR�� EXECUTE IMMEDIATE�� � ��� � ����.
����
��� ��� ����.
��
�� HOLD LOCATOR
,
host-variable ��
�
host-variable,...
��� �� ���� ��� � ��� ��� ��� � ��� ��� �
����. ����� ��� ��� ��� ���. ���� �� �� 2�
� ��� ����, �� � ��� ���� �� 2 �� �� � ���
������ ���.
HOLD LOCATOR ��� ��� �, ��� �� ���� � ���� ��
� � �� ��� ����.
��� ���� �� ��� ����� ��� ���. �� ��, ����� �
�� � � CALL, FETCH, SELECT INTO, SET �� �� VALUES INTO
�� �� ���� , ��� FREE LOCATOR�� �� ��� ��
� ���. ��� ��� ��� ����.
HOLD LOCATOR�� ��� ��� �� ��� ���� � ��
� ��� �� ��� ����� �� ����.
�� �� ��� ��� ��� �� LOB ���� ��� ��� �� � �
��(��� ��� � ���).
v SQL FREE LOCATOR�� ���� ��� �� ��.
HOLD LOCATOR
704 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v SQL ROLLBACK�� �� ��.
v SQL ��� �����.
�
���� RESUME, HISTORY � PICTURE � �� � �� ��� �� �
�� �� ����� ����� ����� �����. �� ��� CLOB �
��� �� LOCRES� LOCHIST, ��� BLOB ���� �� LOCPIC � �
� ��� ���.
HOLD LOCATOR :LOCRES,:LOCHIST,:LOCPIC
HOLD LOCATOR
� 5 � �� 705
|
|
|
|
|
|
|
|
|
INCLUDEINCLUDE�� ��� ��� �� ����� ����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
���. Java� REXX� ����� � ��.
����
��� ���� ID�� ��� �� �� �� �� ��� �� *OBJOPR �
*READ� ��� ���.
��
�� INCLUDE SQLCASQLDAmember-name
��
�
SQLCA
SQLCA(SQL � ��)� � ��� �����. � ����� INCLUDE
SQLCA� � �� ��� � ����. ����� ��� SQLCODE ��
��� SQLSTATE� � Include SQLCA� ��� ��� ���.
SQLCA� C, COBOL � PL/I� �� ��� � ����. SQLCA� ���
�� �� SQLCODE �� SQLSTATE� ����� ��� ���. ��
� ��� 368 ���� �SQL � ���� �����.
SQLCA� RPG ����� ��� � ����. RPG ������� ��
� (pre-compiler)� ���� SQLCA� ���.
SQLCA� ��� 871 ���� �� B �SQL � ���� �����.
SQLDA
SQLCA(SQL ��� ��)� � � ��� �����. INCLUDE SQLDA� C,
COBOL, PL/I � ILE RPG/400� ��� � ����.
SQLDA� �� ��� 881 ���� �� C �SQLDA(SQL ��� ��)�� �
����.
member-name
CRTSQLxxx �� INCFILE ��� ��� ��� �� ��� ��
���.
INCLUDE
706 iSeries� DB2 UDB SQL ��� V5R2
|
|
��� �� ��� � ��, INCLUDE�� ��� �� SQL�� � �
����. COBOL�� INCLUDE member-name� DATA DIVISION ��
PROCEDURE DIVISION ��� ��� ����� � ��.
����� ���� � INCLUDE�� ����� �� ��.
INCLUDE�� ��� ������ �� ���� � � ��� �� ��
�� ���.
SRCFILE ��� ��� �� �� CCSID� INCFILE ��� ��� �
� �� CCSID� �� INCLUDE�� ��� �� �� CCSID� ��
��.
�
C ����� SQL � ��� ����.
EXEC SQL INCLUDE SQLCA;
INCLUDE
� 5 � �� 707
INSERTINSERT�� �� �� �� ����. �� �� �� �� �� � �
�� �� � ��.
� ��� �� � �� ��� ����.
v VALUES� ��� INSERT ��� ��� ��� �� ��� � �� �
� �� �� �� � �����.
v SELECT� ��� INSERT ��� �� �� �� �� ��� � ��� �
� �� �� �� � �����.
v n ROWS� ��� INSERT ��� host-structure-array� ��� �� ��� �
� �� � � �� �� � �����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� n ROWS ��� ��� ��� ���� �� � �� ������ ��
���� ����� �� �� ����� ���. REXX �������� n
ROWS ��� ��� ����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� �� ��
– �� �� �� INSERT ��
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� INSERT ��� ����.
v �� ���
v ��� INSERT ��� �������.
v ��� *OBJOPR� *ADD� ��� ��� �������.
��� ���� ID� �� �� INSERT ��� ���61
v �� �� INSERT ��� ��
v �� �� *OBJOPR � *ADD ��� ��� ��, � ��� ���� � ��
FROM �� � �� �� �� �� *ADD ��� ��� �� , ��� ��
61. �� ��� � �� �� INSERT ��� ��� ��. �� �� �� subselect�� ��� � �� �� �� INSERT ��� �
�� INSERT ��� ����.
INSERT
708 iSeries� DB2 UDB SQL ��� V5R2
� � � ��� � �� FROM�� �� � �� �� �� �� *ADD ���
��� ���� ���� ��� ����
subselect� ��� ��� ���� ID� �� �� ��� �� � �
�� ��� ��� � ��� ���.
v subselect� ��� � �� �� �� ��� �� ��� ����.
– � �� ���� SELECT �� �
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ����.
v �� �� SELECT ��� �������.
v �� �� *OBJOPR � *READ ��� ��� � �� �� �� �����
�� �� �� �� �� *READ ��� ��� �������. �, � ��
� ��� �� �� � ��� �� ��� �� � ��� ��� �� ��
� �
INSERT
� 5 � �� 709
��
�
INTO table-name �� view-name
� ��� ���� �����. ��� �� ��� �� �� �� ���
� ���� �, ���� �� � �� �� �� �� ����� � ��.
������ �� � �� �� �� � ����.
v ��, ��� �� ��� �
v �� �� �� � ��� �� �
� ��� ���� � � � �� �� �� ���� ����
� ���� �� � ����� � ��.
(column-name,...)
� �� ��� � �����. � ��� �� �� � ��� ���
�� INSERT INTO table-nameview-name
,
( column-name )
OVERRIDING SYSTEM VALUEOVERRIDING USER VALUE
�
�
VALUES expressionNULL isolation-clauseDEFAULT
,
( expression )NULLDEFAULT
insert-multiple-rowsisolation-clause
select-statement
��
insert-multiple-rows:integerhost-variable
ROWS VALUES ( host-structure-array )
isolation–clause:WITH NC
URCSRSRR
INSERT
710 iSeries� DB2 UDB SQL ��� V5R2
� �� ����� ���. �� � � � �� ����� � ��. �
�� ��� �� � � ����� � ��.
���� ��� �� �� �� � ���� ��� ��� ��� ��
�� ����� �� ��. � ���� ��� �� � ���� ��
� �� ��� �� ��� � ���� � ����.
INSERT�� ������� �� ��� �� �� ����� ��� � �
�� � ��� ����� ��� � � ��. � �� ��
INSERT�� ��� ����� ��� � � ��.
OVERRIDING SYSTEM VALUE �� OVERRIDING USER VALUE
ROWID �� ID � �� ���� ��� ��� ��� �� �� ���
� ��� �����. OVERRIDING SYSTEM VALUE� ��� , INSERT
�� ��� �� ��� ���� GENERATED ALWAYS� ��� � �
� ��� ���. OVERRIDING USER VALUE� ��� , INSERT��
��� �� ��� ���� GENERATED ALWAYS �� GENERATED BY
DEFAULT� ��� � �� ��� ���.
OVERRIDING SYSTEM VALUE
VALUES �� ��� � �� GENERATED ALWAYS� ��� � �
� �� ���� ��� �� ���� �����. ���� ��� ��
��� ����.
OVERRIDING USER VALUE
VALUES �� ��� � �� GENERATED ALWAYS �� GENERATED
BY DEFAULT� ��� � �� �� ���� ��� �� ���� �
����. � ���� ��� �� �� ��� �� �� �����.
OVERRIDING SYSTEM VALUE �� OVERRIDING USER VALUE� �
�� �� ,
v ROWID �� ID (GENERATED ALWAYS� ��� )�� �� ��
� � ����.
v ROWID �� ID (GENERATED BY DEFAULT� ��� )�� ��
��� � ����. �� ��� , �� �� � �� ��. � � BY
DEFAULT� ��� ROWID � ��� �� ��� OS/390 � z/OS� DB2
UDB �� iSeries� DB2 UDB� �� ��� � � ID �� �� �
� � ����. BY DEFAULT� ��� ID � �� �� �, ���
��� ���� ��� ID � � ������ � ��� � �� �
�� �� � � ��� �� ����. � ������ �
��� �� , ������ ���� NO CYCLE� �� � �
� ���� ��� � �� ����� � �� ��� � ����.
�� ��� ������ ���� ��� ��� �� �� ��.
INSERT
� 5 � �� 711
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VALUES
� ���� ���� ��� �� � �����.
VALUES� �� �� �� ���� �� ��� �� ��� ���. � �
� �� ���� � �� � ��, �� �� �� � �� �
��� � �� �� ��.
expression
�� ������� ���� �����. expression� 127 ���� ��
����� ��� �� �� �����. �� ��� ���
� ��.
expression� �� ��� ��� ��� ��� ��� ��� � ��
��. � �� � ��� ��� ��� �� � ��� � ��� �� �
�� � ��� ��� ��� ��� ���� ���. ��� �� �
��� ��� ��� �� ��� �� �� ��� �� ��� �� ��.
host-variable� �� ��� � 2 �� �����.
NULL
��� � �� �����. NULL� ��� � ���� ���� ��
�.
DEFAULT
��� �� � �����. �� �� ��� �� � ��� ���
�� �� ��.
v WITH DEFAULT�� ��� �� ���� � �� ��
� �� ����(541 ���� �CREATE TABLE�� ��
column-definition�� default� ��).
v WITH DEFAULT� �� NOT NULL�� ��� �� � �
� �� NULL��.
v NOT NULL�� ��� WITH DEFAULT�� ��� ��
DEFAULT NULL� ��� �� � �� DEFAULT � ��
��� � ����.
v � ROWID �� ID ��, ������ ���� ��� �� ���
��.
GENERATED ALWAYS� ��� ROWID �� ID � �� ,
OVERRIDING USER VALUE �� ��� ��� �� �� �� �
��� ��� � �� ��� ���� �� � DEFAULT� ����
���.
select-statement
���� ��� ���� ��� � ��� �����. INSERT� � ��
� ������ FOR READ ONLY, FOR UPDATE � OPTIMIZE�� �
INSERT
712 iSeries� DB2 UDB SQL ��� V5R2
|
|
� ����. ORDER BY�� ���� ��� , �� ORDER BY� �
�� � �� �� � ��. ���� �� ��� 352 ���� �select��
� �����.
���� ��� � �� �� � �� �� �� �� �� �� �
���. �� �� �� SQLCODE� +100�� ��� SQLSTATE�
'02000'�� �� ��.
INSERT� �� ���� ���� �� subselect� �� ���� ��� �
� �� �� �� ���� �� �� ��.
���� �� � �� ���� �� ��� �� ��� ���. ���
� �� �� ���� � �� � ��, �� �� �� � �
� ���� � �� � ��.
isolation-clause
INSERT�� ��� �� ��� �����. isolation�� �� ��� 358 �
��� �isolation��� �����.
insert-multiple-rows
integer �� host-variable ROWS
�� �� �� �����. ��� ��� ��� ��� ��� 0�
���� , ����� ��� � � ����.
VALUES(host-structure-array)
��� ��� � ���� ��� � ��� �����. host-structure-array�
��� �� �� � ��� �� ����� ��� ���.
host-structure-array �� � �� ��� ��� � ����.
��� ��� �� ��� �� ���� �� ��� �� ��� ���. �
� � �� ��� ��� � �� �� ���, �� �� ��� ��
� �� �� ��� ���� ��� �� �� ��. �� ��� ���
� �� ��� �� � �� � ���, ��� ��� �� ��� ��
�� � ��� ���� ��� � �� ��.
��� ��� �� �� ��� 120 ���� �C, C++, COBOL, PL/I � RPG
� ��� �� ��� �����.
LOB� � �� �� �� iSeries ��� ��� ��� �� �� �
�� ��� ����.
INSERT ��
��� �
���� �� � �� �� �� � ��� ���. ��� ���
�� �� � ���� �� ���. �� �� �����, ��
INSERT
� 5 � �� 713
� �� �� �� �� ��� �� � ��. � �� �� �� �
� �� �� � ��� �� �� ��� ���.
��
� �� � 2 �� ��� �� ��� ��� � �� ��.
���
��� � �� ��� �� �� �� � �� �� � ����� � �
� �� �� �� � �� �� ��� �� ��� ����� ��
� ���.
� �� �� � ����� COMMIT(*NONE)� ��� �� � �
�� ��� �� ��. �� � �� � ��� �� �� �� �
� �� ��� ��� ��� ����. COMMIT(*NONE)� ��� �
�� �� ��� ��� �� ��.
��� � �� ��� �� �� �� � ��� �� ����� �� �
� �� � �� �� � �� ����� ��� � � �� �����
���.
�� ����� ��� ��� �� ��. �� � �� � ��� �
� �� �� ��� ����.
�� ��� �� �� �� �� ����� WITH CHECK OPTION�
��� ���. ��� ��� 590 ���� �CREATE VIEW�� �����.
��
��� � �� ��� �� �� �� � ��� �� ��� ��
��. ��� �� ��� ���� � � �� �� �� ��� �
����.
�� ��
�� �� �� �(null)� � � �� ���� � �� �� � � �
� ��� ���.
�� ����(RESTRICT � ��� �� �� ����� ��)� ��� �
�� �� ��. �� � �� � ��� �� �� �� �� ��
��� ��� ��� ����.
� �� �� ����� �� COMMNIT(*NONE)� ��� �� INSERT
�� ��� �� ��� �� ��� ��� �� ��� �� � ��
� �� ��. � �, �� �� �� � �� �� �� ���� ��� �
���. COMMIT(*NONE)� ��� ���� ��� ����.
INSERT
714 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
INSERT�� ��� ��, SQLCA� SQLERRD(3) �� ������ ���� �
� �� ���. SQLERRD(3)� �� ��� ��� �� �� � ��
� ����.
COMMIT(*RR), COMMIT(*ALL), COMMIT(*CS) �� COMMIT(*CHG)� ��
� INSERT�� ����� ��� �� � ��� ��� ��� ��
��. �� �� �� ���� ��� ��� ���� ��� ���� �� ��
���� � ����.
v �� �� ��� ������ ����
v �� �� ��, SELECT INTO� �� � ��� �� COMMIT(*NONE) �
� COMMIT(*CHG)� ��� �� ������ ����
���� �� �� ������ ����� �� �� ��� ��� � ����.
��� �� ��� ��� COMMIT, ROLLBACK � LOCK TABLE�� ���
�����. �� 24 ���� ��� ��� � ������ ��� �� ��
���.
COMMIT(*RR), COMMIT(*ALL), COMMIT(*CS) �� COMMIT(*CHG)� ��
� �� INSERT��� �� 500,000,000 � �� �� ��� �
���. �� �� ��� ��� �� �� � ��� ���� �, � �
� �� �� �� ��.
REXX ����� ���� INSERT�� ��� ��� ��� � ����. � �
, INSERT� �� ��� ��� PREPARE � EXECUTE� �����
� ���.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ���� ��� � ����.
v � � NONE� NC� �� ���� ��� � ����.
v � � CHG� UR� �� ���� ��� � ����.
v � � ALL� RS� �� ���� ��� � ����.
�
� 1DEPARTMENT �� �� ��� ����.
v �� ��(DEPTNO)� ‘E31’
v ���(DEPTNAME)� ‘ARCHITECTURE’
v �� �� ‘00390’� ��(MGRNO)� ��
v (ADMRDEPT) �� ‘E01’� ��
INSERT
� 5 � �� 715
|
|
|
|
|
|
|
|
|
|
|
|
INSERT INTO DEPARTMENTVALUES (’E31’, ’ARCHITECTURE’, ’00390’, ’E01’)
� 2� 1��� �� DEPARTMENT �� ��� ��� ��� ���� ���
����.
INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT)VALUES (’E31’, ’ARCHITECTURE’, ’E01’)
� 3EMPPROJACT �� ��� � �� � MA_EMPPROJACT� �����. ‘MA’
� ��� ��� ���� ��(PROJNO)� EMPPROJACT �� �� �
MA_EMPPROJACT� �����.
CREATE TABLE MA_EMPPROJACTLIKE EMPPROJACT
INSERT INTO MA_EMPPROJACTSELECT * FROM EMPPROJACT
WHERE SUBSTR(PROJNO, 1, 2) = ’MA’
� 4C ���� ��� ��� �� ����� PROJECT �� �����. ���
���� ���� ��(PROJNO), �����(PROJNAME), �� ��(DEPTNO) �
�� ��(RESPEMP)� ����. �� �� ���� �� �(PRSTDATE)�
�����. NULL �� �� ��� � �����.
EXEC SQL INSERT INTO PROJECT (PROJNO, PROJNAME, DEPTNO, RESPEMP, PRSTDATE)VALUES (:PRJNO, :PRJNM, :DPTNO, :REMP, CURRENT DATE);
� 5PL/I ������ � �� ��� DEPARTMENT �� 10 �� �����.
��� �� � DEPT�� �� ��� �� ����.
DCL 1 DEPT(10),3 DEPT CHAR(3),3 LASTNAME CHAR(29) VARYING,3 WORKDEPT CHAR(6),3 JOB CHAR(3);
EXEC SQL INSERT INTO DEPARTMENT 10 ROWS VALUES (:DEPT);
� 6Read Uncommitted(UR, CHG) ��� ��� ��� ����� EMPPROJACT
�� ����.
INSERT INTO EMPPROJACTVALUES (’000140’, ’PL2100’, 30)WITH CHG
INSERT
716 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|||||
LABELLABEL�� �, �, ��, ��� �� � �� ���� ��� �� � ��
� �����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� ��� �, �, �� �� ���� :
– �, �, �� �� ���� �� ALTER ��
– �, �, �� �� ���� �� *EXECUTE ��� ��
v �� ��
��� �� � ��� ���� ID� �, � �� ���� �� ALTER ��
� ����.
v �, � �� ���� ���
v �, � �� ���� �� ALTER ��� ����
v �, � �� ���� �� *OBJALTER �� *OBJMGT � �� ��� ��
� ����
��� �� � ��� ���� ID� ��� �� ALTER ��� ����.
v �� ��� ���
v �� ��� �� *OBJALTER �� *OBJMGT � �� ��� ��� ���
�
LABEL
� 5 � �� 717
��
�
ALIAS
�� � ��� �� �� �����. ��� �� � ��� ����� �
� ��.
alias-name
�� � ��� ��� �����. ��� �� ��� �� ��� ��
�� ���.
COLUMN
�� � � �� �� �����. � �� � ��� ��� �� �
���� �� ��. ���� �� ��� ��� ��� � �����.
table-name.column-name �� view-name.column-name
�� � ��� � �����. table-name �� view-name� �� �
�� �� �� �� ���� ��� �� �� ����� � ��.
column-name� � �� �� � ���� ���.
TEXT
OS/400� ���� ���� �����. TEXT� ��� ���� �
� ��.
PACKAGE
���� � �� �� �����. ���� �� � ��� ��� ���
�� �� ��.
�� LABEL ON
ALIAS alias-name IS string-constantCOLUMN table-name.column-name
view-name.column-name TEXTPACKAGE package-nameTABLE table-name
view-name,
COLUMNtable-name ( column-name IS string-constant )view-name
,COLUMN
table-name ( column-name TEXT IS string-constant )view-name
��
LABEL
718 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
package-name
�� � ��� ���� �����. ��� �� ��� �� ���� �
��� ���.
TABLE
�� � �� �� �� �� �����. �� �� �� � ��� ���
����� �� ��.
table-name �� view-name
�� � ��� �� �� �����. table-name �� view-name� ��
��� �� �� �� ���� ��� �� �� ����� � ��.
IS
��� �� � � ���.
string-constant
�, �, ��, SQL ��� �� ���� �� 50 �� ����
���� �� �� 60 �� ��� SQL�� ��� ��� � ��
��. ���� 1 ��� 2 �� ��� ��� � ����.
���� �� � � � 20 �� ����� �� ��. ��� SQL,
Query/400 ����, iSeries� DB2 �� ��� � SQL � ��
��� 20 �� ���� ��� � �� ��� ��� � ����.
� �� � �� ��� �� 20 �� ���� ��� �� ��
�� �� ������ ���. ���(shift) ��� � 20 �� ���� �
�� �� ���� ���.
���� �� ��� ��� ��� � �����. � �� ���� �
�� �� ��� ���, �� ���� �� �� ��� � ��
���� � �� �� ��� �� ��. ���� ��� �� 60 ���
, � � � 20 ��� � �� ����� �� 20 ��� �� �
��, ��� � �� 20 ��� � �� �����. 20 �� ��� ��
� ��� ��� � ��.
�� 60 ��� ��� ��� ���� � SYSCOLUMNS�� ��� � ��
� � �� ����� DESCRIBE �� DESCRIBE TABLE�� SQLDA� �
��.
���� DESCRIBE �� DESCRIBE TABLE�� �� ����. ���
��� ���� �� ��� �� ���� ��� ��� �� � � �
�� �� �� ��� �� �� �� �� ��. �� �� �� ���
��� ����� CL � DSPDBR(������ �� ��)� RCDFMT
��� �����.
LABEL
� 5 � �� 719
|
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ��� ��� ��� � ����.
v � � PROGRAM� PACKAGE� ���� ��� � ����.
�
v DEPARTMENT �� DEPTNO � �� �� � ����.
LABEL ON COLUMNDEPARTMENT.DEPTNOIS ’DEPARTMENT NUMBER’
v ���� �� �� ��� DEPARTMENT �� DEPTNO � �� �
� � ����.
LABEL ON COLUMN DEPARTMENT.DEPTNOIS ’Department Number’
v PAYROLL ���� �� �� � ����.
LABEL ON PACKAGE CORPDATA.PAYROLLIS ’Payroll Package’
LABEL
720 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
LOCK TABLELOCK TABLE�� ��� ������ ������ �� �� ��� �
� ���.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� ��
– �� �� *OBJMGT ��� ��
– �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��
�� LOCK TABLE table-name IN SHARE MODEEXCLUSIVE MODE ALLOW READEXCLUSIVE MODE
��
�
table-name
�� �� �����. table-name� �� ��� �� �� �� ���� ��
�� �� ��� ���� ����� � ��.
IN SHARE MODE
��� ������ ������ �� �� �� �� ��� ��� ��� �
�� ��� �� ��. ��� ��� ������ ����� �� �
��(*SHRNUP)� �����. �� ������ ���� �� � ��
(*SHRNUP)� ��� � �� , � ���� ������ ����� �� �
� ��� ��� ��� ��� ��� � �� ��.
IN EXCLUSIVE MODE ALLOW READ
��� ������ ������ �� �� �� �� ��� ��� ��� �
�� ��� �� ��. ��� ��� ������ ����� �� �
�� ���� ��(*EXCLRD)� �����. �� ������ ����� �
��(*SHRNUP)� ��� � , �� �� ������ ������ �
� �� �, � �� �� ��� �� �� � ����.
LOCK TABLE
� 5 � �� 721
|
|
|
|
|
|
|
|
|
|
|
|
IN EXCLUSIVE MODE
��� ������ ������ �� �� ��� ��� ��� ����.�
�� ��� ������ ����� �� ��� ��(*EXCL)� ����
�.
� ��� LOCK TABLE�� ��� � �� ��.
��� ��� �� � �� ��.
v �� � � ��� � �� � � COMMIT HOLD �� ROLLBACK HOLD�
�� ��� �� ��
v ���� ��� � �� SQL ����� ��� � CRTSQLxxx ��
CLOSQLCSR(*ENDJOB) �� CLOSQLCSR(*ENDACTGRP)� ��� �
��
v � ��� ��� �
v CONNECT(� 1)�� ��� ��� �� �
v DISCONNECT�� ��� ��� ��� ��� ��� �
v ��� �� �� � ��� �� ���� COMMIT� �� �
DLCOBJ(��� ����) �� ��� �� ��� ��� �� ����.
��� ������ �� ������ ������ �� �� ��� ���
��� ���� ������� ��� �� ���� ��� ��.
�
DEPARTMENT �� �� ��� �����. DEPARTMENT �� �" �� �
� �� ���� �� �� �� � �� ���.
LOCK TABLE DEPARTMENT IN EXCLUSIVE MODE
LOCK TABLE
722 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
OPENOPEN�� ��� ���.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����.
����
��� ��� � ��� ����� �� ��� 598 ���� �DECLARE
CURSOR�� �����.
��
�� OPEN cursor-name
,
USING host-variableUSING DESCRIPTOR descriptor-name
��
�
cursor-name
��� �����. cursor-name� DECLARE CURSOR�� � ���
�� �� ��� ���� ���. OPEN�� ��� � ��� �� ���
��� ���.
��� ��� SELECT�� �� � ���.
v DECLARE CURSOR�� ��� select-statement ��
v DECLARE CURSOR�� ��� select-name�� ��� ��
statement-name. ��� ����� �� ��� select-statement� �
� ��� ����� � ����.
��� ���� SELECT�� ��� �� ����. ����� SELECT�� �
�� �� ����� �� �� SELELCT�� ��� ��� ��� �� ��
��� OPEN�� USING�� �����. ���� �� OPEN�� �� �
��� � �� � �� �� � ���� ��� � ����. �� �
FETCH�� ��� �� �� ��� �� ����. �� �� ���
� ��� ���� � �� � � �����. �� � �� ��
� �� “��� � ��”��.
USING
��� ��� �� �� ��� �� ��(�� ��)� ��� ���
��� ���� � ��� . �� ��� �� ��� 728 ����
OPEN
� 5 � �� 723
�PREPARE�� �����. DECLARE CURSOR�� �� ���
� �� ��� ��� �� USING� ���� ���. �� ��
� �� ��� � �� USING� �� ��.
host-variable,...
��� �� � ��� ��� � ��� ��� ����� ��� �
��� ��� ��� �����. ��� ��� �� ��� �� �� ��
� �� ��� �� ��. ��� �� �� ��� �� �� ��
� �� ���� ���. n �� ��� �� ���� n �� ��
��� �����.
DESCRIPTORdescriptor-name
��� ��� �� ��� �� � SQLDA� �����.
OPEN�� �� �� SQLDA� ��� �� ��� ���� ���
(REXX� �� ��� ����. ��� ��� ��� �� SQL ���
�� �����).
v SQLDA� ��� SQLVAR � �� ��� SQLN
v SQLDA� �� ��� ����� �� �� ��� SQLDABC
v ��� �� � SQLDA�� ��� �� �� ��� SQLD
v ��� �� ��� SQLVAR � �
�� SQLVAR �� � � ��� SQLDA� ��� ���� ���
��� ���. LOB �� �� �� ��� �� ���� SQLVAR
��� � ��� �� ���� ���. SQLVAR� �� ���
� SQLDA� �� ��� �� � SQLVAR � �� �� ��� �� �
�� 881 ���� �� C �SQLDA(SQL ��� ��)�� �����.
SQLD� �(0) �� �� �� SQLN �� �� �� ��� ���
� ���. �� �� ��� �� �� ��� �� ���� ���.
SQLDA� �� ��� n �� ��� �� ���� n �� ��
��� �����.
RPG/400� �� ��� � �� ��� �� SQLDA� ��� �
�� ��� ��� ��� �� ��� ��� RPG/400 ������ ��
���� ���.
��� � ��
��� �� SELECT�� ��� � ��� �� � �� ��� �� ���
��� �� ��. �� ��� ��� ��� ��� �� ��� ��� ���
��� ��� �� ��� �� ����. � �� ��� �� ���
OPEN
724 iSeries� DB2 UDB SQL ��� V5R2
�� CAST ���� ��� ���. � �� ��� �� ���
�� �� ��� ��� �� �� ��. �� ��� ��� ��� ���
732 ���� � 57� �����.
�� �� P� ��� ��� ��� V� �����. � �� ��� �
��� ��� ��� � V� P� �� �� ��� �� ��. � �� ���
�� ��.
v V� ��� ���� ���.
v V� �� ���� �� �� ��� ���� �� ��� ���� �
��.
v V� �� ��� �� ��� �� ��� �� ���� �� ��
��.
v ��� �(null)� � � �� � V� �� ���� ���.
� � � �� ��� � ��� ��� �� ��� �� ��.
v V� ���� � ��� ��� �� ��� �� �� �� ��(���
�� ��).
��� �� SELECT�� ��� � P � ��� �� P� �� �� ��� �
��. �� ��, V� CHAR(6)�� ��� CHAR(8)� P � ��� ��
� ��� � � V ���.
USING�� �� ��� �� �� �� SELECT�� � ���. � �
��� �� SELECT�� DECLARE CURSOR�� ��� �� � �� ��
� � ����. � � OPEN�� SELECT�� � ��� ��� �� ��
� �� �� ��. �, �� ��� �� SELECT�� �� ��� ��� �
� ��� � �� ��. � �� ��� �� SELECT�� �� ��� ���
�� USING�� ��� ��� ��� ��� �� ��.
��� � ��
����� �� �� ��� ��� �� � �� ��� ����.
v ����� ��� �:
– CLOSQLCSR(*ENDPGM)� ��� �� ��� ����� ��� ��
� �� ��� ����.
– CLOSQLCSR(*ENDSQL)� ��� � SQL ����� �� ��� �
� �� �, ����� � ��� �� �� ��� �� ��� ����.
– CLOSQLCSR(*ENDJOB)� ��� ��� ��� ��� �� � �
���� ��� ��� �� �� ��� �� ��� ����.
OPEN
� 5 � �� 725
– CLOSQLCSR(*ENDMOD)� ��� ��� �� ��� �� ��� �
� ��� ����.
– CLOSQLCSR(*ENDACTGRP)� ��� ����� ��� ���
� ���� ��� �� �� ��� �� ��� ����.
v ����� HOLD ���� COMMIT� ROLLBACK�� ��� ��� ��
� � �����. HOLD ���� �� ��� COMMIT��� �� ��
��.
v CONNECT(� 1)�� ���� �
��� ��� �� ��� �� ��� �� � ����.
v CLOSE�� ���
v DISCONNECT�� ��� ��� ��� ��
v ��� ��� ��� �� �� � ��� ��� COMMIT� ����� ��
�.
��� ����� �� ��� � ��� � �� � FETCH�� ���� �
��. ��� ��� �� ���� � ��� �� �� ��� OPEN��
��� ���.
���� ��
��� ���� �� ��� � � FETCH�� ��� �� ��� ��
� ��. ��� ���� �� �� ������ �� ��. � � ���� �
� ��� �� iSeries� DB2 UDB� � ��� ���� ��� ��� � ��
��. � ���� ��� OPEN�� ��� �� �� ���� ���� �
��. ���� ��� � ����� ��� ��� �� ��� �� �
� � ����.
v ��� FETCH�� ��� ��� �� �� ��� OPEN�� ��� �
� �� � ����.
v ��� � �� �� ��� INSERT, UPDATE � DELETE�� ���� �
�� � � ����.
��� ���� ��� �� ��� � �� �� ��� INSERT,
UPDATE � DELETE�� ���� ��� � � ����. � � ��� ���
�� ��� � �� �� ����. �� ��, �� C� SELECT * FROM T��
��� ���� � �� ���� ���� � �� T� �� �� �� �
��� �� ���� ����� �� ��� ��� � ����. � FETCH C�
T�� ��� �� ��� �� �� �� �� ����.
OPEN
726 iSeries� DB2 UDB SQL ��� V5R2
�
� 1COBOL ������ ��� ��� � ��� �����.
1. (ADMRDEPT) �� ‘A00’�� ��� ��� DEPARTMENT ��� �� �
� ��� � ��� �� C1� �����.
2. �� C1� ��� � �� � � �����.
EXEC SQL DECLARE C1 CURSOR FORSELECT DEPTNO, DEPTNAME, MGRNO FROM DEPARTMENT
WHERE ADMRDEPT = ’A00’ END-EXEC.
EXEC SQL OPEN C1 END-EXEC.
� 2�� DYN_CURSOR� C ����� ���� ��� select�� ����� �
OPEN�� �����. �� � ���� �� �� ���� ��� �� ,
� � � �� ��� integer� �� �� �� �� ��� VARCHAR(64)�
�� �� ���� �����. (�� ��� �� ��, PREPARE� � DECLARE
CURSOR� �� � �� ����.)
EXEC SQL BEGIN DECLARE SECTION;static short hv_int;char hv_vchar64[64];char stmt1_str[200];
EXEC SQL END DECLARE SECTION;
EXEC SQL PREPARE STMT1_NAME FROM :stmt1_str;
EXEC SQL DECLARE DYN_CURSOR CURSOR FOR STMT1_NAME;
EXEC SQL OPEN DYN_CURSOR USING :hv_int, :hv_vchar64;
� 3� ���� OPEN�� � 3��� �� ��, ���� �� ��� �� ��
�� ����.
EXEC SQL BEGIN DECLARE SECTION;char stmt1_str[200];
EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLDA;
EXEC SQL PREPARE STMT1_NAME FROM :stmt1_str;EXEC SQL DECLARE DYN_CURSOR CURSOR FOR STMT1_NAME;
EXEC SQL OPEN DYN_CURSOR USING DESCRIPTOR :sqlda;
OPEN
� 5 � �� 727
PREPAREPREPARE�� ��� �� ��� ������ ����� ��� SQL�� ��
���. �� ��� ��� �� ������ , ����� ��� �� �
���� ���.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����.
����
���� ��� PREPARE�� �� ��� SQL�� �� ��� ��� ���
��. �� ��, SELECT�� �� � ��� ���� ��� ���� 352 �
��� �select��� �����.
DLYPRP(*NO)� CRTSQLxxx �� ��� ��� �� � ����
��� �� ��. �, ��� �� ��.
v DROP SCHEMA�� �� ���� �� ���� �� ��� ��
*OBJEXIST� � ��� ��� ��� ��� ����.
v DROP TABLE�� �� �� ��� �� �, �� � � �� �
� ��� �� *OBJEXIST� � ��� ��� ��� ��� ����.
v DROP VIEW�� �� �� ��� �� �� �� ��� ��
*OBJEXIST� � ��� ��� ��� ��� ����.
DLYPRP(*YES)� CRTSQLxxx �� ��� �� ���� ��� ��
� ��� � �� OPEN�� ��� ��� �� ��.
����� ���� � DYNUSRPRF(*OWNER)� CRTSQLxxx �� ��
� ����, ��� ���� ID� �� �� ���� ID��. ��� ��� 58
���� ����� ID � ������� �����.
��
�� PREPARE statement-name �
PREPARE
728 iSeries� DB2 UDB SQL ��� V5R2
�INTO descriptor-name
USING NAMESSYSTEM NAMESLABELSANYBOTHALL
FROM �
� string-expressionhost-variable
��
�
statement-name
�� ��� ��� �����. ��� ��� �� ��� ���
�� � ��� �� ��� �� ��.
v ��� ��� ����� ��� ����� ��
v CLOSQLCSR(*ENDJOB), CLOSQLCSR(*ENDACTGRP) ��
CLOSQLCSR(*ENDSQL)� � �� �� �� ��� CRTSQLxxx
�� ���
��� ��� ����� �� ���� �� � ��� SELECT�� �
� ��� ����� � ��.
INTO
INTO� �� PREPARE�� ����� ��� �� ��� ��
��� descriptor-name�� ��� SQLDA� �����. � PREPARE��
��� ����.
EXEC SQL PREPARE S1 INTO :SQLDA FROM :V1;
��� �����.
EXEC SQL PREPARE S1 FROM :V1;EXEC SQL DESCRIBE S1 INTO :SQLDA;
descriptor-name
881 ���� �� C �SQLDA(SQL ��� ��)��� ��� SQLDA� �
����. PREPARE�� ��� �� SQLDA� �� ��� ����
���(REXX� ��� ����. ��� ��� SQL Programming with Host
Languages �� �����).
SQLN
SQLVAR� ���� ��� �� �����(SQLN� SQLVAR ��
��� �����). PREPARE�� ��� �� SQLN� 0 ��� �
� ���� ���. � ��� �� ��� � � �� ��� 884
���� �SQLVAR �� � � ���� �����.
PREPARE
� 5 � �� 729
|
|
|
|
SQLDA� ���� ��� �� ��� 645 ���� �DESCRIBE�� ���
��.
USING
SQLDA� � SQLNAME ��� ��� �� �����. ��� �� ���,
SQLNAME� �� 0�� �� ��.
NAMES
� ��� �����. ��� ��� ���. ��� select-list� ���
�� ��� �� �� ����� ��� ��� � ��.
SYSTEM NAMES
� ��� ��� �����.
LABELS
� �� � �����( �� � LABEL��� �� ��). �� �
� 20 ��� � ��.
ANY
�� � �����. � �� � �� � � �� � ��
�.
BOTH
� �� � ��� �� �����. � �� ��� �� ��
�� ��� ��, � SQLVAR� � �� � �� �� �� �
�� ��� � �����. SQLVAR �� ��� ���� SQLN�
2*n �� 3*n�� �����(���, n� �� �� ���). SQLVAR
� � n� ��� ��� ��. �� �� � �� n� �
�� �� � ��. �� �� �� �� � SQLVAR
��� �� ��� � ��. �� �� �� �� �
SQLVAR ��� � �� ��� � ��.
��� SQLDA� � FETCH�� ��� PREPARE� ��� �
�� SQLN� n�� �����.
ALL
�� , �� � ��� ��� �����. � �� ��� ��
�� �� ��� ��, � SQLVAR� � � �� � �� �
� �� ��� ��� � �����. SQLVAR �� ��� ���
� SQLN� 3*n �� 4*n�� �����(���, n� ���� ��
�). SQLVAR� � n� ��� ��� ��� ��. �� �
� � �� n� ��� �� � ��. � �� �� � �� n�
��� ��� ��. �� �� �� �� � SQLVAR
��� �� ��� �� ��� SQLVAR� � �� ��� �
PREPARE
730 iSeries� DB2 UDB SQL ��� V5R2
��. �� �� �� �� � SQLVAR ��� � �� ���
�� ��� SQLVAR� � �� ��� � ��.
��� SQLDA� � FETCH�� ��� PREPARE� ��� �
�� SQLN� n�� �����.
FROM
�� ���� �����. �� ���� ��� string-expression �� ��
� host-variable� ���.
string-expression
string-expression� �� ���� ��� �� PL/I string-expression�
�. �� ���� ��� SQL ���� ��� ����. string-expression
� PL/I��� �� ��.
host-variable
�� ��� �� UCS-2 � ��� ��� � ��� ��� ����
� �� ��� ��� �����. ��� ��� �� �� CLOB�
DBCLOB�� � ����� ��� ��� ��� ���.
�� ���� �� SQL� � ���� ���.
ALTER GRANT SAVEPOINTCALL HOLD LOCATOR select�COMMENT INSERT SET PATHCOMMIT LABEL SET SCHEMACREATE LOCK TABLE SET TRANSACTIONDECLARE GLOBAL
TEMPORARY TABLE
RELEASE SAVEPOINT UPDATE
DELETE RENAME VALUES INTODROP REVOKEFREE LOCATOR ROLLBACK
�� ����� ��� � ��� ����.
v EXEC SQL� ��� END-EXEC �� ����(;)�� ���
v ��� ��� �� ��� �
��� �
�� ���� ��� ��� �� ��� � � ���, �� ���
� � ����. �� ��� �� ��� ��� � ��� ��� ��� �
� ��. �� ��� �� ���� �� SQL���� � ��� ���
��� � �� �� �� ��. �� ��� ��� ��� ��� �� �
�� 723 ���� �OPEN� � 670 ���� �EXECUTE�� �����.
�� ���� �� �� ����.
PREPARE
� 5 � �� 731
||
|
|
�� ���� ��
�� �� �� � ��� �� ��. ��� ���� ����.
CAST(? AS data-type)
� ��� � ��� � ��� �� �� ��� �� � �� ��
� �� ��� ��� � �� �� ���� “�”��. �� �� ��
� ����.
UPDATE EMPLOYEESET LASTNAME = TRANSLATE(CAST(? AS VARCHAR(12)))WHERE EMPNO = ?
TRANSLATE �� �� �� ��� �� ��. � �� �� ��
VARCHAR(12)�� VARCHAR(12)� ��� � �� ���. ��� �
�� 141 ���� �CAST ���� �����.
�� ���� ��
�� �� � �� ��� �� ��. ��� �� ��� ����.
� �� ��� �� �� ��� �� �� ��. �� �� � �
�� �� � �� ��� EMPNO� �� �� ����.
� �� ��� ��� ��� ��� �� �� CAST ��� ����
�� ����� ����� �� SQL��� ��� � ����.
� �� ��� ��� ��� ��� ��� �� �� SQL��� ��
� � ����. � � � �� �� �� � 57�� �� � ����. � ���
�� ���, � � �� ���� � �� ��� ���� ��� �
��� ��.
� 57. � �� �� ���
�� ���� �� � � ��
��(�� ���, CASE � VALUES �)
� ��� �� �� �� ���� ���� ��
EXISTS � ��� �� �� ���� ���
�
��
� ��� �� �� ���� ���� � ��� �� ����� �� �.62
INSERT�� select�� �� �� ���� ��
��
�� �� ��� � �� �.62
��� � � �� �� ��� ��� � ��
� ���� ���� �
��� �� � ��.
? + ? + 10
��
PREPARE
732 iSeries� DB2 UDB SQL ��� V5R2
|||
� 57. � �� �� ��� (�)
�� ���� �� � � ��
� ���(� �� ���� ��)�� �� �
��� �� ����
��� �� � ��.
? + ? * 10
�� ����� �� �.
� �� ����� �� � ��(� ��
���� �� � ��� ��� �� ���
� � ��� ����).
DECIMAL(15,0)
� �� ���� �� ����(�� ��
‘timecol + ?’ �� ‘? - datecol’).
��
CONCAT ���� ���� ��
UPDATE�� SET � ���� ��� � �� �. � ��� �� �� ���
��� ��� �� �� �� �� �
� ���.62
��� CASE ���� CASE � � ��� �
�� ���
��
� �� ���� �(null)� ��� ��
���� ��(Simple � Searched) CASE ���
�� �� �� �� ���
��
��� CASE ����� WHEN ��� ���
��� �� �� ���
CASE ��� ���� � �� ���
WHEN ��� ���� 93 ���� ��� ��
�� �� ��� �� ��.
��� �� �� ���� �� ��� �
�� ��� � CASE ���(Simple �
Searched)� �� ���
� �� � �� ��� � �� ��
���� 93 ���� ��� �� �� �� �
�� �� ��
INSERT�� �� �� � VALUES�� ��
��� ����
��
INSERT��� �� � VALUES�� ���
�� ����
� �� �. � ��� �� �� ���
��� ��� �� �� �� �� �
� ���.62
SET �� ���� ��� ��� ��� �� ����� �� �.
VALUES INTO ��� INTO�� ��� ��� ���� �� �.62
FREE LOCATOR �� HOLD LOCATOR �
�� ����
����
��
� ���� ���� � ��
� ����� � �� ���� ��
�� � ���� ��� ����.
�� ����� �� �.62
�� ����� �� �� � ���� �
����.
��
BETWEEN �� �� ���� ��
BETWEEN �� ����(� ��� �
� �� � ��� � ��)
�� �� ��� �� ��.
PREPARE
� 5 � �� 733
|
|||
� 57. � �� �� ��� (�)
�� ���� �� � � ��
BETWEEN �� �� ���� CCSID �� ��� ��� �� CCSID�� �
� ��� � �� ��� ��� ��
����� �� 93 ���� ��� �� ��
�� ��� �� ��.
IN �� �� ����, �� �� ? IN (?,?,?) ��
���� � ��� IN �� � �� ���
�. �� �� ? IN (subselect).
��� � �� �
���� � ��� � IN �� � �� �
���. �� �� ? IN (?,A,B) �� ? IN
(A,?,B,?).
CCSID �� ��� ��� �� CCSID�� �
� ��� � �� ��� ��� IN �
��� �� ����(IN � � ���� ���
�)� �� 93 ���� ��� �� �� ��
��� �� ��.
IN �� IN ���� ��� �� �� ���
�. �� �� A IN (?,B,?).
CCSID �� ��� ��� �� CCSID�� �
� ��� � �� ��� ��� IN
�� �� ����(IN � ��� ���� ��
��)� �� 93 ���� ��� �� �� ��
��� �� ��.
LIKE �� � �� ���� � ��
LIKE �� �� ���. ��
LIKE �� � ���. �� ���� �� �� ��
VARCHAR(32740) �� VARGRAPHIC(16370)
�� BLOB(32740)
� �� �� �� �� ��� �� ��� �
� ��� 150 ���� �LIKE �� ����
�����..
LIKE �� �� ���. �� ���� �� �� �� VARCHAR(1)
�� VARGRAPHIC(1) �� BLOB(1)
�(null) �� ���� ��
��
COALESCE, IFNULL, LAND, LOR, MIN,
MAX, NULLIF, VALUE �� XOR� �� �
���
��
� �� �� ��� �� �� ����
� �� COALESCE, IFNULL, LAND, LOR,
MIN, MAX, NULLIF, VALUE �� XOR �
��� ����.
� �� ��� ��� �� �����
93 ���� ��� �� �� �� ���� ��
� ��
POSITION� � �� ���� �� POSSTR�
�� ����
�� ����� �� �� ��
VARCHAR(32740) �� VARGRAPHIC(16370)
�� BLOB(32740)
��� �� �� � �� �� ���
�� �� ����.
��
�� ���� ��
PREPARE
734 iSeries� DB2 UDB SQL ��� V5R2
|||
|||
|||||
�� ��
PREPARE�� ��� � �� ���� ��� �� ��� �� ��. ��
���� �� ��� �� ��� ��� ��, ��� ��� �� ��
��� SQLCA� �� ��.
�� � ��� ��� DLYPREP(*YES) ��� �� SQL��� ″���″ ���
�� ��� ��. �� �� DESCRIBE, EXECUTE � OPEN� �� PREPARE
�� �� SQLCODE� �� � ����.
�� � �� ��
��� �� ����� ����, �� ��� ��� �� ��� ��� ��
� � ����.
mI. XqH mI. &QDESCRIBE NoneDECLARE CURSOR Must be SELECT when the cursor is openedEXECUTE Must not be SELECT
�� ��� � � ��� � ����. �� ��� � �� ���
�� �� ��� � �� �� PREPARE�� EXECUTE����
EXECUTE IMMEDIATE�� ��� �� � �����.
�� ��� ���
�� �� ���63
v CONNECT(� 1)�� ��� �
v DISCONNECT�� �� ��� ��� ��� ��� �
v �� ��� �� �� � ��� ��� ���� ��� �� �
v SQL�� ��� � (��, � �� �� ����)� �����.
��� ��
statement-name� � � � ��� ��� �� �� ������. ����
PREPARE��� ���� �� SQL�� �� �� ���� ��� � �
���. �� ��, ��� �� �� ������ ��� ����� ��� �
���� ��� �� ��� ��� � ����.
62.�� �� DATE, TIME �� TIMESTAMP�� VARCHAR(32766)� �� ��.
63. �� ��� � � �� �� �� � � ��. � � � � ��� �� ��� �� �� �� ��� � ����.
PREPARE
� 5 � �� 735
statement-name� � � �� �� ��� �� ����� ��� �� ���
� �� ��. �� ��, ��� �� �� � � ����� ��� ���
�� ��� �� �� ���� � �� ����� �� ��� ��
� � ����.
��� � � ��� ��� �� �������, �������� ��� �
����� �� ��� � ���� ��� � ��� �� �
�� ��� � ����. �� ��, CONNECT(� 2)�� ��� �����
� X� � Y� �� ��� ����� �����.
EXEC SQL CONNECT TO X;EXEC SQL PREPARE S FROM :hv1;EXEC SQL EXECUTE S;...
EXEC SQL CONNECT TO Y;EXEC SQL PREPARE S FROM :hv1;EXEC SQL EXECUTE S;
S� �� �� Y�� � �� ��� S� ����.
CLOSQLCSR(*ENDJOB), CLOSQLCSR(*ENDACTGRP) ��
CLOSQLCSR(*ENDSQL)� CRTSQLxxx �� ��� �� �� ��
���� ��� �� ����� ��� ����� ��� � ����.
v CLOSQLCSR(*ENDJOB)� ��� �� ��� ���� ��� ��
����(��� �� ����)� �� ���� ��� � ����. �
� �� ��� ��� ��� �� ��.
v CLOSQLCSR(*ENDSQL)� ��� �� ��� ���� ��� ��
� SQL ����� ��� ��� ���� ��� �� ����(��� ��
����)� �� ���� ��� � ����. � � �� ��� ��
�� ��� ��� SQL ����� ��� � �� ��.
v CLOSQLCSR(*ENDACTGRP)� ��� �� ��� � ��� �
�� ��� ��� �� ����� �� ��� �� ���� ��� � �
���. � � �� ��� � ��� ��� � �� ��.
�
� 1SELECT� � ��� COBOL ����� �� �����. ��� ��
HOLDER� ��� �� ��, ����� �� ���� ���� �� ���
��� ��� ��� ��� �����. �� ���� �� ��� �
���.
PREPARE
736 iSeries� DB2 UDB SQL ��� V5R2
EXEC SQL PREPARE STMT_NAME FROM :HOLDER END-EXEC.
EXEC SQL EXECUTE STMT_NAME END-EXEC.
� 2� 1��� �� SELECT� � ��� �� �� � �� ���
�� ��� � � �����.
EXEC SQL PREPARE STMT_NAME FROM :HOLDER END-EXEC.
EXEC SQL EXECUTE STMT_NAME USING DESCRIPTOR :INSERT_DA END-EXEC.
��� �� ��� ���� �����.
INSERT INTO DEPARTMENT VALUES(?, ?, ?, ?)
���� �� �� A00�� ��� � COMPAINTS�� ��� �� �� G01
� ��� EXECUTE�� ��� �� �� INSERT_DA� ��� �� ��
��� ���.
PREPARE
� 5 � �� 737
RELEASERELEASE�� � ��� ��� �� �� � ��� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����. Java� REXX� ����� �
��.
RELEASE� �� ����� ��� ����. �� ������ ��� ���
��� �� �� ������ RELEASE� ��� ����.
����
��� ��� ����.
��
�� RELEASE server-namehost-variableCURRENT
SQLALL
��
�
server-name �� host-variable
��� ��� �� ��� ��� �� ����� ��� �����. ��� �
�� ���
v �� ��� ��� �� ���.
v ��� ����� ��� �� � ��.
v ���� ��� �� ��� ���� ��� � �� ID� ��� �
�� ��� ���.
v ���� ��� ��� ��� ���� ��� ���� ���� � �� �
��.
RELEASE�� ��� � ��� ��� �� ��� ��� �� ���� �
��� �� ��� ���� ���.
CURRENT
� ��� �� ��� �����. � ��� ��� ��� ��� ���.
RELEASE
738 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
ALL �� ALL SQL
� ��� �� ��� ��(��� ��� �� ��� � )� ����
�.
��� ��� � ��� ��� ���, ��� �� �� ����.
RELEASE�� ����� ��� � ��� �� �� � ��� �� , ���
�� �� �� � ��� �� ��. RELEASE�� ����� ��� � ���
�� �� � � ��� ��� �� ����.
CONNECT(� 1) ��� ��� RELEASE� ��� ����.
RELEASE� ��� �� ��, ��� ��� ��� �� , ��� �� ���
��� ����.
ROLLBACK� ��� ��� �� �� ��� �� ��� ���� ����.
��� ��� ��� ���� �� ��� �����. � �� �� ��
� �� ��� ��� �� �� � ����� �� ��� ��� ���
�� �� � ��� � ����.
�� ��� ��� � �� ��� �� �� � ��� ���, � ��� ��
� � ��� ��� �� ��� ��. �� � ��� ��� SQL��
CONNECT� SET CONNECTION��� ���.
RELEASE ALL� �� ���� ��� �� �� � ��� ��. ��� WITH
HOLD�� ��� � ��� ��� �� �� � �� �� � ��� ���
�� ��.
�
� 1: TOROLAB1�� ��� �� �� � � �� ����. �� ��� ��
�� �� � � � ��� ������.
EXEC SQL RELEASE TOROLAB1;
� 2: �� ��� �� �� � � �� ����. �� ��� �� �� ��
� � � ��� ������.
EXEC SQL RELEASE CURRENT;
� 3: ��� �� ��� �� �� � � �� ����. �� ��� �� ��
�� � � � ��� ������.
EXEC SQL RELEASE ALL;
RELEASE
� 5 � �� 739
RELEASE SAVEPOINTRELEASE SAVEPOINT ��� ��� ��� � �� � �� ��� ���
�� ���� �����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ��� ����.
��
��TO
RELEASE SAVEPOINT savepoint-name ��
�
savepoint-name
��� ���� �����. ��� ���� ���, ��� ����. ��
� ��� �� ��� �� � � ��� �� ���� �� ��. ����
��� ��, � �� ���� �� � �� ����� ��� � �
���.
�� ����� ��� ��� SAVEPOINT�� UNIQUE � �� �����
��� �� �� ��� ����� �� SAVEPOINT�� �� ��� � ��
��.
RELEASE SAVEPOINT ��� � ��� �� �� ��� ��� ��
��� � ����. ��� �� �� ��� �� ��� 419 ���� ���
�����.
�
�� ��� ��� A� ��� ��� B � C� ��� ���� ���
, ��� �� ���� ���� ��� A � �� ��� ��� ���� �
� ��. ���� �� ��� ��� B � C� A� �� ������.
RELEASE SAVEPOINT A
RELEASE SAVEPOINT
740 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RENAMERENAME�� �, � �� ��� ������. �, � �� ��� ��� ���
����� �� � ����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� �� ��� ��
– ����� �� :
- ���� �, � �� ��� �� *OBJMGT ��� ��
- ���� �, � �� ��� �� �� �� �� �� *EXECUTE ��
� ��
– ���� ����� �� :
- ���� �, � �� ��� �� *OBJMGT ��� ��
- ���� �, � �� ��� �� �� �� �� �� *EXECUTE �
*UPD ��� ��
v �� ��
��
��TABLE
RENAME table-nameview-name
INDEX index-name
�
� TO new-table-identifierFOR SYSTEM NAME system-object-identifier
SYSTEM NAME system-object-identifer
��
�
TABLE table-name �� view-name
���� �� �� �����. table-name �� view-name� �� ��� ��
�� �� ���� ���� �� ��� �� �� ����� � ��. ��
� ��� ��� �� ����. ��� �� �� ��� ���� ��� ��.
�� �� �� �� ��, ����, ��, ��, � � � �� �� ��.
RENAME
� 5 � �� 741
|
|
|
|
��� ��� ��� ����� �� �� ����� � �� �� ���
�� ��� ��� �� ����� � ��. ����� �� ���� �
� �� ���� �� ��� �� �� �� ��� SQLCA� SQLCODE
��� �� �� � ��.
INDEX index-name
���� ��� �����. index-name� �� ��� �� ��� ���� �
��. ��� ��� ��� ���� ��� ��.
�� ��� ��� �� ��� ��� ���� ��� �� ����.
new-table-identifier
�, � �� ��� ��� table-name, view-name �� index-name� �� �
����. new-table-identifier� �� �� ��� �� �, �, �� �� ���
�� ��� ���. new-table-identifier� ���� �� SQL ID��� ��
�.
SYSTEM NAME system-object-identifier
�, � �� ��� ��� system-object-identifier� �� �����.
system-object-identifier� �� �� ��� �� �, �, �� �� ��� ��
��� ���. system-object-identifier� ���� �� ��� ID��� ��
�.
���� ��� ���� ����� �� name� ��� ��
system-object-identifier� ��� ��� ��� ��� ����� ��. �
� system-object-identifier� ��� ���� ������ ��� ���
������ ��� ��� ����.
new-table-identifier� system-object-identifier� � ��� � � �� �
�� ����� � � ����.
��� ��� ��� ��� ��� ��� �� ����.
v ��� ��� �� ��� ID� :
– ���� ��� ��,
– ��� ����� � ���� � ��.
v ��� ��� �� �� ��� ID� :
– ���� ��� � ���� ��,
– �� �� ��� ����� ���� �, � �� ����� ��� �
�� ��� ����� �� ��. ��� � �� ��� �� ��� 572
���� �� �� �� ���� �����.
RENAME
742 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
table-name� ��� ��� �� ��� �� ��� ��� ���� ��
� �� ��� ��. �� ��� �� �� ��� �� ��� �� ���
� ��. �� �� ��� ����.
�
� 1MY_IN_TRAY � ��� MY_IN_TRAY_94� ����. ��� ����� �
� �� �����(MY_IN_TRAY).
RENAME TABLE MY_IN_TRAY TO MY_IN_TRAY_94FOR SYSTEM NAME MY_IN_TRAY
� 2MA_PROJ � ��� MA_PROJ_94� ����.
RENAME TABLE MA_PROJTO SYSTEM NAME MA_PROJ_94
RENAME
� 5 � �� 743
|
|
|
REVOKE(��� �� ��)� ��� REVOKE�� �� �� �� ��� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� � �� ��
– ��� ��� �� ��
– �� �� �� *OBJMGT ��� ��
– �� �� �� �� �� ��� ��� �� *EXECUTE
v �� ��
��
�� REVOKE
PRIVILEGESALL
,
ALTERUSAGE
ON TYPEDISTINCT
�
�
,
distinct-type-name
,
FROM authorization-namePUBLIC
��
�
ALL �� ALL PRIVILEGES
� authorization-name���� � ��� �� � ��� �����. ��
� ��� authorization-names� ��� ��� �� �� �� ���
�. �� �� �� ALL PRIVILEGES� ��� �� *ALL ��� ��
� ��� �� ��� ��� ����.
ALL� ��� �� � �� � � � � ��� ���� ���.
� � �� ��� ��� �����.
ALTER
COMMENT�� ��� ��� �����.
REVOKE(��� �� ��)
744 iSeries� DB2 UDB SQL ��� V5R2
USAGE
�, �, ������ �� �� ��� CREATE DISTINCT TYPE�
� �� ���� ��� �� �� ��� ��� �����.
ON DISTINCT TYPE distinct-type-name
���� ��� ��� �� �� �� �����. distinct-type-name� �
� ��� �� �� ���� ���.
FROM
��� ��� ���� �����.
authorization-name,...
� ��� ���� ID� ����. ��� authorization-name� �
�� ��� ����.
PUBLIC
��� ��� PUBLIC���� �����.
�� �� �� ��� ��� �� ���� ���� �� �� �� �
� �� �� ��� ��� ��.
�� � ��� ��� � �� ��� ��� ��� �� ��. SQL ���
��� ��� ��� �� ��� 684 ���� �GRANT(�� � ��)�� �
����.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ��� ��� ��� � ����.
v � � DATA� DISTINCT� ���� ��� � ����.
�
��� JONES��� �� � SHOESIZE� USAGE ��� �����.
REVOKE USAGEON DISTINCT TYPE SHOESIZEFROM JONES
REVOKE(��� �� ��)
� 5 � �� 745
|
|
|
REVOKE(� �� ����� ��)� ��� REVOKE�� �� ������ �� ��� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� ��� � �� ������ �� ��� �� ��� ����.
– ��� ��� �� ��
– �� ������ �� *OBJMGT ��� ��
– �� ������ �� �� �� �(�� Java ��� ����)�
�� *EXECUTE ��� ��
v �� ��
REVOKE(�� �� ����� ��)
746 iSeries� DB2 UDB SQL ��� V5R2
��
�� REVOKE
PRIVILEGESALL
,
ALTEREXECUTE
�
�
,
ON FUNCTION function-nameROUTINE ( )
,
parameter-typeSPECIFIC FUNCTION specific-name
ROUTINEPROCEDURE procedure-nameROUTINE ( )
,
parameter-typeSPECIFIC PROCEDURE specific-name
ROUTINE
�
�
,
FROM authorization-namePUBLIC
��
parameter-type:built-in-typedistinct-type-name AS LOCATOR
REVOKE(�� �� ����� ��)
� 5 � �� 747
built-in-type:SMALLINTINTEGERINTBIGINT
(5,0)DECIMALDEC ( )
NUMERIC integer, integer
(53)FLOAT
(1)( integer )
REALPRECISION
DOUBLE(1)
CHARACTERCHAR ( ) FOR BIT DATA
integer FOR SBCS DATACHARACTER VARYING ( ) FOR MIXED DATACHAR integer CCSID integer
VARCHAR(1M)
CLOBCHAR LARGE OBJECT ( ) FOR SBCS DATA AS LOCATORCHARACTER LARGE OBJECT integer K FOR MIXED DATA
M CCSID integerG
(1)GRAPHIC
( ) CCSID integerinteger
VARGRAPHIC ( )GRAPHIC VARYING integer
(1M)DBCLOB
( ) CCSID integer AS LOCATORinteger K
MG
(1M)BLOBBINARY LARGE OBJECT ( ) AS LOCATOR
integer KMG
DATE( 0 )
TIME( 6 )
TIMESTAMP(200)
DATALINK( ) CCSID integer
integerROWID
�:
1 �� �(REAL �� DOUBLE)� ��� ��� ������ ���� �� ��� �� ��
��� � ��� �� ��� ��� ��.
REVOKE(�� �� ����� ��)
748 iSeries� DB2 UDB SQL ��� V5R2
�
ALL �� ALL PRIVILEGES
� authorization-name�� � ��� �� ����� ��� �����. �
�� ��� authorization-names� ��� ��� � �� ������ �
� ����. �� ������ �� ALL PRIVILEGES� ��� ��
*ALL ��� ��� ��� �� ��� ��� ����.
ALL� ��� �� � �� � � � � ��� ���� ���.
� � �� ��� ��� �����.
ALTER
COMMENT�� ��� ��� �����.
EXECUTE
�� ������ ��� ��� �����.
FUNCTION
���� ��� ��� �� �� �����. ��, � ��� �� ��
�� ��� �� ��� � ����. � ��(� �)� �� ��� ��
� ����.
FUNCTION function-name
function-name� �� ��� �� � �� �� ���� ���. �
� �� �� ��� ��� �� � ����. ��� �� ��� �
��� ��� ��� �� � �� ��� ��� � ��.
FUNCTION function-name(parameter-type, ...)
function-name(parameter-type, ...) �� ��� �� ��� � ���
�� ���� ���. ��� ��� �� ��� CREATE FUNCTION
�� ��� �� �� ���� ���. �� �� �� �� ��
� ��� � �� � � � ���� � �� � � � � � .
function-name()� ��� ��� �� 0 � ��� ��� ���.
function-name
� ��� �����.
(parameter-type, ...)
�� ��� �����.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� �� ��� �
� �� � �� ��� ��� �� ����.
v � ��� �� �� �� ��� ��� � ������ ����
�� ����� �� �����.
REVOKE(�� �� ����� ��)
� 5 � �� 749
v ��, ��� �� �� �� �� �� �� ��� � ��
CREATE FUNCTION�� ���(��� �� �����) �� ��
���� ���.
v ��, ��� �� ��� ����� ��� �� � ��� ��
� �� �� �� ��� �� �� ��. �� ��, ��
� ����.
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
��� ��� CREATE FUNCTION�� ����� �� �����
��� �� �� ���� ���. �� �� ��� ��� ��
�� ���� 541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� ��
�� �� ��� ��� � ������ ���� �� ����� �
� �����. �� ��� CREATE FUNCTION�� ��� �
� ����� ��� �� ���� ���.
SPECIFIC FUNCTION specific-name
specific-name� �� ��� �� �� �� ���� ���.
PROCEDURE
���� ��� ��� �� ������ �����. ��, ����� �� �
� �� ���� �� ������ ��� � ����. ����� ��(�
�)� �� ��� ��� ����.
PROCEDURE procedure-name
procedure-name� �� ��� �� � ������ �� ���� ��
�. ������ ������ �� ��� ��� ����. ��� ��
��� ���� ��� ��� ������ � �� �� ��� �
��.
PROCEDURE procedure-name(parameter-type, ...)
The procedure-name(parameter-type, ...)� �� ��� �� ��� ���
�� ��� ������ ���� ���. ��� ��� �� ���
CREATE PROCEDURE�� ��� �� �� ���� ���. ��
�� �, �� �� � ��� �� �� ����� ���� ��
� � �� ��. procedure-name()� ��� ��� ������ 0 �
��� ��� ���.
procedure-name
����� ��� �����.
REVOKE(�� �� ����� ��)
750 iSeries� DB2 UDB SQL ��� V5R2
(parameter-type, ...)
����� ��� �����.
��� �� �� � ��� ��� ������ ���� SQL
�� ��� �� �� �� ����� �����.
��, ��� �� �� �� �� �� �� �� �� ��� �
� �� � �� ��� ��� �� ����.
v � ��� �� �� �� ��� ��� � ������ ����
�� ����� �� �����.
v ��, ��� �� �� �� �� �� �� ��� � ��
CREATE PROCEDURE�� ���(��� �� �����) �� �
� ���� ���.
v ��, ��� �� ��� ����� ��� �� � ��� ��
� �� �� �� ��� �� �� ��. �� ��, ��
� ����.
CHAR CHAR(1)GRAPHIC GRAPHIC(1)DECIMAL DECIMAL(5,0)FLOAT DOUBLE (�� 8)
��� ��� CREATE PROCEDURE�� ����� �� ����
� ��� �� �� ���� ���. �� �� ��� ��� �
� �� ���� 541 ���� �CREATE TABLE�� �����.
� ��� ��� �� �� ID(CCSID) �� �� �� ��
FOR DATA��� CCSID �� �����. �� ��� ��
�� �� ��� ��� � ������ ���� �� ����� �
� �����. �� ��� CREATE PROCEDURE�� ���
�� ����� ��� �� ���� ���.
SPECIFIC PROCEDURE specific-name
specific-name� �� ��� �� �� ������ ���� ���.
FROM
��� ��� ���� �����.
authorization-name,...
� ��� ���� ID� ����. ��� authorization-name� �
�� ��� ����.
PUBLIC
��� ��� PUBLIC���� �����.
REVOKE(�� �� ����� ��)
� 5 � �� 751
�� ������ �� ��� ��� �� ���� ���� �� �� ��
���� �� �� �� ��� ��� ��.
SQL �� �� �� �������� ��� ��� �� ����(*PGM) ��
�� ����(*SRVPGM) ������ �� ��.
�� ����� ��� ��� � �� ��� ��� ��� �� ��. SQL
��� ��� ��� ��� �� ��� 687 ���� �GRANT( � �� ��
��� ��)�� �����.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ��� ��� ��� � ����.
v RUN � �� EXECUTE� ���� ��� � ����.
�
CORPDATA.PROCA ������ �� EXECUTE ��� PUBLIC���� ��
���.
REVOKE EXECUTEON PROCEDURE CORPDATA.PROCAFROM PUBLIC
REVOKE(�� �� ����� ��)
752 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
REVOKE(��� ��)� ��� REVOKE�� ���� �� ��� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� ��� � ���� �� ��� �� ��� ����.
– ��� ��� �� ��
– ���� �� *OBJMGT ��� ��
– ���� �� �� �� �� �� *EXECUTE ��� ��
v �� ��
��
�� REVOKE
PRIVILEGESALL
,
ALTEREXECUTE
ON PACKAGE
,
package-name �
�
,
FROM authorization-namePUBLIC
��
�
ALL �� ALL PRIVILEGES
� authorization-name���� � ��� ��� ��� �����. ��� �
�� authorization-names� ��� ��� ���� �� ����. ����
�� ALL PRIVILEGES� ��� �� *ALL ��� ��� ��� �� �
�� ��� ����.
ALL� ��� �� � �� � � � � ��� ���� ���.
� � �� ��� ��� �����.
ALTER
COMMENT � LABEL�� ��� ��� �����.
REVOKE(��� ��)
� 5 � �� 753
EXECUTE
���� ��� ��� ��� �����.
ON PACKAGE package-name
���� ��� ��� �� ���� �����. package-name� �� ��
� �� ���� ���� ���.
FROM
��� ��� ���� �����.
authorization-name,...
� ��� ���� ID� ����. ��� authorization-name� �
�� ��� ����.
PUBLIC
��� ��� PUBLIC���� �����.
���� �� ��� ��� �� ���� ���� �� ���� �� �� ��
��� ��� ��.
��� ��� ��� � �� ��� ��� ��� �� ��. SQL ��� ��
� ��� ��� �� ��� 695 ���� �GRANT(��� ��)�� ����
�.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ��� ��� ��� � ����.
v RUN � �� EXECUTE� ���� ��� � ����.
v � � PROGRAM� PACKAGE� ���� ��� � ����.
�
CORPDATA.PKGA ���� �� EXECUTE ��� PUBLIC���� �����.
REVOKE EXECUTEON PACKAGE CORPDATA.PKGAFROM PUBLIC
REVOKE(��� ��)
754 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
REVOKE(� ��)� ��� REVOKE�� �� �� ��� ����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ��� ��� � �� �� �� ��� �� ��� ����.
– ��� ��� �� ��
– �� �� �� *OBJMGT ��� ��
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��
�� REVOKE
PRIVILEGESALL
,
ALTERDELETEINDEXINSERTREFERENCES
,
( column-name )SELECTUPDATE
,
( column-name )
�
�
,TABLE
ON table-nameview-name
FROM
,
authorization-namePUBLIC
��
�
ALL �� ALL PRIVILEGES
� authorization-name���� � ��� ��� �����. ��� ���
REVOKE(� ��)
� 5 � �� 755
authorization-names� ��� ��� �� �� �� ����. �� �� �
� ALL PRIVILEGES� ��� �� *ALL ��� ��� ��� �� �
�� ��� ����.
ALL� ��� �� � �� � � � � ��� ���� ���.
� � �� ��� ��� �� ON�� ��� ��� �� ��� ����
�.
ALTER
�� ALTER TABLE�� ��� ��� �����. �� �� �� ��
COMMENT � LABEL �� ��� ��� �����.
DELETE
DELETE�� ��� ��� �����.
INDEX
CREATE INDEX�� ��� ��� �����.
INSERT
INSERT�� ��� ��� �����.
REFERENCES
�� �� � � � �� ����� ��� ��� �����.
REFERENCES(column-name,...)
� �� ��� � ��� �� ����� ��� ��� �����. �
��� ���� �� ����� ON�� ��� � �� � ���� �
��.
SELECT
SELECT �� CREATE VIEW�� ��� ��� �����.
UPDATE
UPDATE�� ��� ��� �����.
UPDATE(column-name,...)
��� � �� ��� �����. � ��� ���� �� �����
ON�� ��� � �� � ���� ���.
ON table-name �� view-name,...
���� ��� ��� �� � �� �� �����. table-name ��
view-name� �� ��� �� �� �� ���� ��� �� �� ����
� � ��.
FROM
��� ��� ���� �����.
REVOKE(� ��)
756 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
authorization-name,...
� ��� ���� ID� ����. ��� authorization-name� �
�� ��� ����.
PUBLIC
��� ��� PUBLIC���� �����.
��� ��
INDEX �� ALTER ��� ��� ��� �� *OBJALTER� �� ��.
� �� � ��� ��� � �� ��� ��� ��� �� ��. �, ��
� ����.
v �� �� �� ��� ��� � *ADD, *DLT, *READ � *UPD� � ��
��� �� *OBJOPR� �� ��.
v �� �� ��� ��� � � ��� subselect� ��� �� ����� ���
��� ����.
SQL ��� ��� � ��� ��� ��� �� � �� � ��� � ��
��� ��� ��� �� �� � ��� ���� ��� ��� ���
����.
SQL ��� ��� ��� ��� �� ��� 698 ���� �GRANT(� ��)�
� �����.
�� ��
� ����� ��� ��� � �� ��� � ������ ��� ��
� �� ��� ��� ��.
��� ��� �� ���� ���� �� ��� �� �� ��� ��� ��.
WITH GRANT OPTION� ��� �� ��� ALL� ��� ���.
�
� 1��� PULASKI��� EMPLOYEE �� �� SELECT ��� �����.
REVOKE SELECTON EMPLOYEEFROM PULASKI
REVOKE(� ��)
� 5 � �� 757
� 2��� �� �� ����� ��� EMPLOYEE �� �� � ��� ����
�. �� ����� ��� �� ��� �� ����.
REVOKE UPDATEON EMPLOYEEFROM PUBLIC
� 3��� KWAN� THOMPSON���� EMPLOYEE �� �� �� ��� ���
��.
REVOKE ALLON EMPLOYEEFROM KWAN,THOMPSON
� 4FRED��� view1� �� column_1 � ��� �����.
REVOKE UPDATE(column_1)ON VIEW1FROM FRED
REVOKE(� ��)
758 iSeries� DB2 UDB SQL ��� V5R2
ROLLBACKROLLBACK ��� ��� �� ��� � ����:
v � � ���, �� �� � � ��� �� ��� ������ � ���
�����. ��� ������� ������ ����� ��� �� �
� �� ��� , ROLLBACK� �� � �� �����.
v �� � � ��� �� �� � �� ��� ��� ��� ����� �
����. ����� ��� ��� ���� �� ��.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
�� ����� ��� ����� ��� ��(commit) �� � ���
ROLLBACK� �� ����� ��� ����. CALL�� �� �� �
���� � ����� ��� �� �� � ��� ROLLBACK� ��
������ ��� ����.
����
��� ��� ����.
��
��WORK
ROLLBACKHOLDTO SAVEPOINT
savepoint-name
��
�
ROLLBACK� SAVEPOINT � �� ��� �, ��� � �� � � ��
� ��� �� � � �� ��. �� �� � � ��� ALTER, CALL,
COMMENT, CREATE, DECLARE GLOBAL TEMPORARY TABLE, DELETE,
DROP(DROP SCHEMA� ��), GRANT, INSERT, LABEL, RENAME, REVOKE
� UPDATE�� ��� �� ���� �� ��.
� �, �� ��� ������ ��� �� �� ���� ROLLBACK
� ��� �� ����.
v CONNECT
v DISCONNECT
v RELEASE CONNECTION
ROLLBACK
� 5 � �� 759
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v SET CONNECTION
v SET PATH
v SET SCHEMA
ROLLBACK �� ROLLBACK TO SAVEPOINT� �� ��� �� �� ��
� ��� ��� DECLARE GLOBAL TEMPORARY TABLE�� ON
ROLLBACK�� ��� �� ��.
WORK
ROLLBACK WORK� ROLLBACK� ��� ��� ����.
HOLD
��� ��� �����. � �� ��� �� � ��� �� �� ��
� � ��� �� ��� � � ��. �, �� �� �� ��� ���
�. � �, �� � � ����� ��� �� �� �� ��� �� ��.
HOLD� ���, TO SAVEPOINT� �� ROLLBACK� � �� � � �
� ��� ��� �� � � �����.
v �� �� � � �� ���� � ��� ����.
v �� � � �� ���� LOCK TABLE�� �� ��� � ��� ��
��.
v � �� �� � �� LOB ����� �� ��.
ROLLBACK HOLD� ��� ��� �� ��� �� �� ������ �
�� ��� � ALWBLK(*ALLREAD)� ��� �� � �� �� � � �
�� �� �� �����.
TO SAVEPOINT
�� � � ��� �� �� ��(�����)� ���� �����. ��
� ��� ��� �� , ��� � ����� �� ��. �� ��, �
� � , ��� A, B, C� �� ��� ��� C� ��� , ROLLBACK
TO SAVEPOINT� ��� B� ��� ������ ���.
savepoint-name
��� ���� �����. ��� ���� ���, ��� ����.
ROLLBACK TO SAVEPOINT� ��� ��� ���� � �����.
���� ��� ��� �� ������ ���(�� �� �� ���
)� �� ��. �� �� � LOB ����� � ��.
ROLLBACK TO SAVEPOINT� �� ��� ��� ��� ��� �� �
�� �� �����.
ROLLBACK
760 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v ���� ��� �� DDL� � , ��� ����. ROLLBACK TO
SAVEPOINT ��� � � ��� ���� � ��� ����.
v ���, ��� ROLLBACK TO SAVEPOINT� ��� �� ����(�
� �� �� ��).
��� ��� � ��� �� ���� �� ��. ��� ��� ���� ��
� ����.
��� � ��� ��� ��� ��� ����. ��� ��� � ��� �
�� �� ��� COMMIT��� ROLLBACK�� ��� ���.
��� �� � ROLLBACK� ���� �� ��.
1. ��� � ��� ��� COMMIT � �� ��� .]
2. � ��� ��� ��� �� �� ��� �� (�� ��, �� ��)
��� ��� � COMMIT� �� ��� ��� �� � � �� �
�� ���, ��� ��� ����. ��� ��� �, �� � �
� �� ��� �� ����� ����. ��� ��� �� �� �� �
����.
3. ���� ��� ���� ��� �� (�� ��, � �� ��)
��� ��� � COMMIT� �� ��� ��� �� � � �� �
�� ���, ��� ��� ����. ��� ��� �, �� � �
� �� ��� �� ����� ����. ��� ��� �� �� �� �
����.
4. ���� � � ��� �� ���
�� � �� SELECT INTO �� FETCH�64� ��� �� ��� ��
INSERT DELETE � UPDATE ��� ���� �, � �� �� ��
� �� 4�� ��� � �� � � ����.65
��� �� ��� DROP SCHEMA�� ��� ��� ���� � ���
COMMIT(*CHG), COMMIT(*CS), COMMIT(*ALL) �� COMMIT(*RR)� ��
� ������ ������ ��� � ����.
64. COMMIT(*CHG) �� COMMIT(*CS)� ��� ����, �� � ��� ��� � ����.
65.� ���� ��� ��.
v � � � �� �� �� ���� � �� �� ���� �� �
v ��� CASCADE, SET NULL �� SET DEFAULT �� ��� � ��� ��� �, � �� �� �
ROLLBACK
� 5 � �� 761
|
|
|
|
|
|
ROLLBACK ��� � ��� �� �� ��� ��� �� ��� �
����. ��� �� �� ��� �� ��� COMMIT�� �� �� ��� �
����.
�� ��� ���� � � ��� ��� ��� ��� �� �� ��
� � ����. ROLLBACK� ��� ��� ��� � ����.
�� � ��� CLOSE �� ROLLBACK� ��� �� � ��� ��
�� �� � ��� �� ��. CLOSE ��� ��� ��� �� ��
�� ����.
�
� 1ROOBACK�� �� �� 418 ���� COMMIT� ��� ��� �����.
� 2�� � � ��� � � � ��� A, B, C� ���� C� ��� ,
SAVEPOINT A ON ROLLBACK RETAIN CURSORS;...SAVEPOINT B ON ROLLBACK RETAIN CURSORS;....SAVEPOINT C ON ROLLBACK RETAIN CURSORS;...RELEASE SAVEPOINT C
�� DB2 ������ ���� ��� A�� �����.
ROLLBACK WORK TO SAVEPOINT A
����� ��� �� (�, ROLLBACK WORK TO SAVEPOINT), ���
��� � ���� B� �� ��.
ROLLBACK
762 iSeries� DB2 UDB SQL ��� V5R2
|
|
|||||||
|
|
|
|
SAVEPOINTSAVEPOINT�� �� � �� ���� ��� �� � ��� ��� ��
���� ���� ��� � �� ��� �����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ��� ����.
��
�� SAVEPOINT savepoint-nameUNIQUE
ON ROLLBACK RETAIN CURSORS �
�
(1)ON ROLLBACK RETAIN LOCKS
��
�:
1 ROLLBACK ��� �� ��� ��� � ����.
�
savepoint-name
� ���� �����.
UNIQUE
������� �� � ��� ��� ��� �� ��� � ��� ����
�. savepoint-name� ��� ��� ���� �� � �� �� ���
��� ����.
UNIQUE� ��� ������� �� � �� ���� ���� � ��
��. savepoint-name� �� � �� �� ��� ���� ���� ���
� UNIQUE ���� ��� �� , �� ���� ��� � ����
�� ��. ���� ��� �� ���� �� ��� ���� �� ��
�� ��� �� �� ����. ��� ��� �� ��� � �� �
��� � ��. RELEASE SAVEPOINT ��� ��� ���� ��
� �� ���� ��� ��� �� ���� �� ��.
SAVEPOINT
� 5 � �� 763
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|||||||||||||||||
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ON ROLLBACK RETAIN CURSORS
���� ��� � � ��� ����� ��� �� ��� �����.
v ���� ��� �� DDL� � , ��� ����. ROLLBACK TO
SAVEPOINT ��� � � ��� ���� � ��� ����.
v ���, ��� ROLLBACK TO SAVEPOINT� ��� �� ����(�
� �� �� ��).
����� ��� ��� �� ��� � ��� ��� � �� �� ���
�. �� ��, ����� �� ��� ��� �� �� �� ���
, ��� ��� �� �� �� ��� ����.
ON ROLLBACK RETAIN LOCKS
���� ��� �� ��� �� ��� ����� ��� ��� ��� �
����.
��������, �� ����� � ����. SAVEPOINT, ROLLBACK �
� RELEASE TO SAVEPOINT ��� ��� ��� � � ��.
SAVEPOINT ��� � ��� �� �� ��� ��� �� ��� �
����. ��� �� �� ��� �� ��� 419 ���� ��� �����.
�
�� � � � ���� � � ���� ���� , � �� ��� A� �
�� ��� ��� ��� ���� � ��� ���. �� ��� B� ��
� ��� ��� ���� � ��� ���. � �� ���� ��� ��
�� � ��� A� � �� ��� �� ��� A� ��� ���� ����
��.
SAVEPOINT A ON ROLLBACK RETAIN CURSORS;...SAVEPOINT B UNIQUE ON ROLLBACK RETAIN CURSORS;...SAVEPOINT A ON ROLLBACK RETAIN CURSORS;
SAVEPOINT
764 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
SELECTSELECT ��� ��� � ����. ����� �� � ����. ��� �
�� 352 ���� �select�� � 335 ���� � 4 � ����� �����.
SELECT
� 5 � �� 765
|
|
|
SELECT INTOSELECT INTO�� � �� ��� ��� ���� �� , �� �� �� �
�� ��� �����. �� � �� � ��� +100� SQLCODE� �
�� '02000'� SQLSTATE� �� , ��� ���� �� ��� ����.
�� ��� ��� �� ���� ��� �� ���� ��� ��
��.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����. REXX� ����� � ��.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� � � �� �� ��
– � �� ���� SELECT �� �
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ����.
v �� �� SELECT ��� �������.
v �� �� *OBJOPR � *READ ��� ��� � �� �� �� �����
�� �� �� �� �� *READ ��� ��� �������. �, � ��
� ��� �� �� � ��� �� ��� �� � ��� ��� �� ��
� �
��
�� select-clause INTO
,
host-variable �
SELECT INTO
766 iSeries� DB2 UDB SQL ��� V5R2
� from-clausewhere-clause group-by-clause having-clause
�
�order-by-clause isolation-clause (1)
fetch-first-clause
��
�:
1 fetch-first��� � ��� ��� � ����.
�
���� isolation-�, from�, where�, group-by�, having�, select�, order-by�,
� fetch-first-�� ���� ��� �� ��.
select-clause, from-clause, where-clause, group-by-clause, having-clause,
order-by-clause, fetch-first-clause � isolation-clause� �� ��� 335 ���� �
4 � ����� �����.
group-by-clause� �� ��� �� ���� ��, �� � ��� ��� ���
� ��� having-clause�� �� � �� �� ��� �� ��� � ���
����.
INTO host variable,...
��� �� � ��� � ��� ��� ����� ��� � � ���
��� ��� ��� �����. INTO �� �� ���� ��� ��� ��
��� �� �� ��� �� ��� �� ��. �� �� � �� �� ���
� � �� ��� ��� ���, �� �� �� ��� ��� ��
� ���� �� �� ��� �� ��. � ��� ��� �� �� ��
� � ��� � ��� ���.
��� ��� �� � ��� � 2 �� ��� ��� �� �� ��. ���
�� �� �� �� � ��� SQLCA� SQLWARN3 ��� 'W'� ��
��. �� �� ��� ��� ��� � �� �� �� ���
����. � �� �(null)� ����� ��� ���� ���. �� �
�� �� �� ��� ��� � �� ��� ��� ���� �� ���
� ����. ��� �� ��� �� ��� �� ����.
select�� �� � ��� � �� �� � �� � �� �� ���
��� ��.
v ��� ��� � ��
v � �� ��(��(underflow) �� ��)
SELECT INTO
� 5 � �� 767
|
|
|
|
|
v ��� ��(0�� ��)
v � �� ���� ��(��� ��� �� �� � � �� �� ��
�� ����)
v �� �� datetime �� ��� ��
v ��� ��� �� ��� ��
v � �� �� ��
v � � ���� SUBSTR ��� �� ��
� �� �� ��� ����� ��� ���� ���. ��� ��� ��
��� ����. � � � � ����� ��� -2� �� ��. ���
��� �� �� �� ��� �� � ��(� � � ���
� SQLCODE� ���). ����� ��� ��� ��� SQLCA�
SQLCODE ��� �� �� � ��. �� ��� � �� ��� ��� �
� ��� � ����. ��� �� ��� �� ��� �� ����.
���� �� ����� ��� �� (SQLCODE 21000), ��
��� ��� �� ���� �� ��� � �� ��� �� ��� �
� ����.
�
� 1COBOL ���� ��� ��� �� �(SALARY)� �� �� Read
Committed(CS)� ��� EMPLOYEE ��� ��� �� MAX-SALARY
(DECIMAL(9,2))� ���.
EXEC SQL SELECT MAX(SALARY)INTO :MAX-SALARYFROM EMPLOYEE WITH CS
END-EXEC.
� 2Java ���� ��� ��� �� �� ‘ctx’� EMPLOYEE ��� ��� �
� HOST_EMP (java.lang.Strin)� ��� �� ��� �� ��(EMPNO) �� �
� �� �����. � ��, ��� ��� ��� �(LASTNAME)� ��
(EDLEVEL)� �� ��� �� HOST_NAME(String)� HOST_EDUCATE(integer)
� ���.
#sql [ctx] { SELECT LASTNAME, EDLEVELINTO :HOST_NAME, :HOST_EDUCATEFROM EMPLOYEEWHERE EMPNO = :HOST_EMP };
SELECT INTO
768 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
||||
|
SET CONNECTIONSET CONNECTION�� � ��� ��� �� � �� ��� � ���
�� ��� � ���.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����. Java� REXX� ����� �
��.
SET CONNECTION� �� ����� ��� ����. �� ������ �
�� ��� ��� �� �� ������ SET COONECTION� ���
����.
����
��� ��� ����.
��
�� SET CONNECTION server-namehost-variable
��
�
server-name �� host-variable
��� ��� �� ��� ��� �� ����� ��� �����. ��� �
�� ���
v �� ��� ��� �� ���.
v ��� ����� ��� �� � ��.
v ���� ��� �� ��� ���� ��� � �� ID� ��� �
�� ��� ���.
v ���� ��� ��� ��� ���� ��� ���� ���� � �� �
��.
S� ��� ��� � ����� ��� ���� �����. S� ������
����� ��� ��� ���� ���. S� �� ��� ��� S� ��
� ������ ����� �� �� ��� ��� �� ���, S� �� ���
SQLCA� SQLERRP ��� �����. S� ��� � ��� ��� � ��
� �� ��� �� ��.
SET CONNECTION
� 5 � �� 769
|
|
|
SET CONNECTION�� ����� ��� :
v �� S� �� ��� ��.
v S� CURRENT SERVER �� ����� ����.
v �� S� �� ��� SQLCA� SQLERRP ��� ����. ��� IBM ��
� ������ ���� ��� pppvvrrm ����.
����
– ppp� ��� �� ��� �����.
ARI for DB2 for VSE� VM
DSN for OS/390 � z/OS� DB2 UDB
QSQ for iSeries� DB2 UDB
� �� �� DB2 ��� SQL
– vv� '04'� �� ��� �� ID��.
– rr� '01'� �� ��� �� ID��.
– m� '0'� �� � ��� �� ����.
�� �� ��� OS/390 � z/OS� DB2 UDB �� 4�� SQLERRP� ��
'DSN04010'��.
v ��� �� �� ��� SQLCA� SQLERRD(4) ��� �����. SQLERRD(4)
�� ��� ����� �� ��� ���� ��� ��� �� �� ��
��. ��� CONNECT� �� SQLCA� SQLERRD(4) ��� �� �� ��
�����.
– 1 - ����� �� ��� � �� ���� �� ��� ���
��� CONNECT(� 1)�� ��� ��� ���� ���� �����
� � �� �� CONNECT(� 1)�� ��� � � �� ����.
– 2 - ��� ����� �� ��� � �� ��� ��� ����.
– 3 - ����� �� ��� � ��� ��� � � �� ��� �� �
�.
– 4 - ����� �� ��� � ��� ��� � � �� ��� ���
����.
– 5 - ����� �� ��� � ��� ��� � � �� , ���
CONNECT(� 2)�� ��� � � �� ���� CONNECT(� 2)
�� ��� ������ ���� ���� ����� � � ����.
v ��� �� �� ��� SQLCA ��� SQLERRMC� ����. SQLERRMC
��� �� ��� ��� ���� �� B� ″SQLCA(SQL � ��)″� ��
���.
v ��� �� �� ��� � ��� �����.
SET CONNECTION
770 iSeries� DB2 UDB SQL ��� V5R2
SET CINNECTION�� ����� ��� ��� � ��� �� �� � � �
�� ��� �� ����.
��� ��� �� � ��� � ��� �� ��� �� � �� �� ��
� ��� � �� ��� �� ��, �� � �� ��� ��� � ��� �
� ��� ��� ��� �� ��.
�� ��� �� ���� �(IASP) �� ��� �� ��� ��� �������
��� �� , �� ���� SET CONNECTION� �����.
�
TOROLAB1�� SQL�� ��� TOROLAB2�� SQL�� ��� ���
TOROLAB1�� � �� SQL�� �����.
EXEC SQL CONNECT TO TOROLAB1;
(TOROLAB1� ���� ��� �� ��)
EXEC SQL CONNECT TO TOROLAB2;
(TOROLAB2� ���� ��� �� ��)
EXEC SQL SET CONNECTION TOROLAB1;
(TOROLAB1� ���� ��� �� ��)
� �� CONNECT�� TOROLAB1 ��� ���, �� CONNECT�� �
�� ��� � ��� , SET CONNECTION�� ��� �� ��� �
���.
SET CONNECTION
� 5 � �� 771
|
|
SET OPTIONSET OPTION�� SQL�� ��� � ��� �����.
��
� ��� REXX ������ ��� ������ ����� �� � �
���. REXX ������ ��� � ��� �����. ������
����� �� �� ����� �� ��� �� �� SQL� � �
� ���. � ��� ���� �� � ����.
����
��� ��� ����.
��
�� SET OPTION
,
ALWBLK = alwblk-optionALWCPYDTA = alwcpydta-optionCLOSQLCSR = closqlcsr-optionCNULRQD = cnulrqd-optionCOMMIT = commit-optionDATFMT = datfmt-optionDATSEP = datsep-optionDBGVIEW = dbgview-optionDECMPT = decmpt-optionDFTRDBCOL = dftrdbcol-optionDLYPRP = dlyprp-optionDYNDFTCOL = dyndftcol-optionDYNUSRPRF = dynusrprf-optionEVENTF = eventf-optionLANGID = langid-optionNAMING = naming-optionOPTLOB = optlob-optionOUTPUT = output-optionRDBCNNMTH = rdbcnnmth-optionSQLCURRULE = sqlcurrule-optionSQLPATH = sqlpath-optionSRTSEQ = srtseq-optionTGTRLS = tgtrls-optionTIMFMT = timfmt-optionTIMSEP = timsep-optionUSRPRF = usrprf-option
��
alwblk-option:*READ*NONE*ALLREAD
SET OPTION
772 iSeries� DB2 UDB SQL ��� V5R2
||
alwcpydta-option:*YES*NO*OPTIMIZE
closqlcsr-option:*ENDACTGRP*ENDMOD*ENDPGM*ENDSQL*ENDJOB
cnulrqd-option:*YES*NO
commit-option:*CHG*NONE*CS*ALL*RR
datfmt-option:*JOB*ISO*EUR*USA*JIS*MDY*DMY*YMD*JUL
datsep-option:*JOB*SLASH‘/’*PERIOD‘.’*COMMA‘,’*DASH‘-’*BLANK‘ ’
decmpt-option:*PERIOD*COMMA*SYSVAL*JOB
SET OPTION
� 5 � �� 773
dbgview-option:*NONE*SOURCE*STMT*LIST
dftrdbcol-option:*NONEschema-name
dlyprp-option:*YES*NO
dyndftcol-option:*YES*NO
dynusrprf-option:*OWNER*USER
eventf-option:*YES*NO
langid-option:*JOB*JOBRUNlanguage-ID
naming-option:*SYS*SQL
optlob-option:*YES*NO
output-option:*NONE*PRINT
rdbcnnmth-option:*DUW*RUW
SET OPTION
774 iSeries� DB2 UDB SQL ��� V5R2
|
sqlcurrule-option:*DB2*STD
sqlpath-option:*LIBLpath-string-constant
srtseq-option:*JOB*HEX*JOBRUN*LANGIDUNQ*LANGIDSHR
*LIBL/srtseq-table-name
*CURLIB/library-name/
tgtrls-option:VxRxMx
timfmt-option:*HMS*ISO*EUR*USA*JIS
timsep-option:*JOB*COLON‘:’*PERIOD‘.’*COMMA‘,’*BLANK‘ ’
usrprf-option:*OWNER*USER*NAMING
SET OPTION
� 5 � �� 775
�
ALWBLK
������ ���� � ��� ��� � ��� ��� �� �� ��� �
� ��� � �� ��� ��� �����. REXX��� � ��� �� �
�.
*ALLREAD
COMMIT� *NONE �� *CHG� � �� �� �� ��� ��
�� ��. EXECUTE��� EXECUTE IMMEDIATE�� ����� �
� ��, ������ ����� �� � �� �� ��� �� ��
�� � ���.
*ALLREAD� ��� :
v FRED� �� ��� �� ���� �� �� �� *CHG � �
��� �� ��.
v ����� �� � �� �� �� ��� ��� ��� � ��� �
�� �� ��� ��� �� ��.
– *ALLREAD ��� ��� ��(ROLLBACK) �, ��� �
� ROLLBACK� �� ROLLBACK HOLD SQL�� �� �� �
�� �� �� ����.
– ��� �� DECLARE�� FOR UPDATE�� � �� ���
��� �� �� �� � ���� UPDATE��� DELETE
�� �� ��(�� ��, EXECUTE IMMEDIATE ��)� ��� �
����.
*NONE
�� ��� �� �� ��� � ��� ����.
*NONE� ��� :
v ��� ��� �� ����� ���.
v ��� � ��� � �� �� ��� � ��� ��� ��� � �
���.
v ������ ���� ��� � � ��� ��� �� ��� �
�� � ����� ��� �� �� � �� ��� �����.
v �� �� �� ��� ��� ���� ��� �� � ����.
*READ
��� �� � �� ��� �� ��� �� �� ��� � ��
��.
v *NONE� COMMIT ��� ��� �� ��� ��� ��� �
��
SET OPTION
776 iSeries� DB2 UDB SQL ��� V5R2
v FOR READ ONLY�� ��� ��� �� ��� �� � �
�� UPDATE �� DELETE�� ��� � �� �� ��� ��
*READ� ��� � ��� ���� �� �� �� ��� ���
���� ��� ���� � ����.
ALWCPYDTA
SELECT�� ��� ��� ��� � ��� ��� �����. REXX���
� ��� �� ��.
*OPTIMIZE
���� �������� � ��� ��� ���� ��� ��� ��
� ���� ��� �����. � ��� ��� ��� ��� ��� �
���� � ��. COMMIT� *CHG �� *CS�� ALWBLK�
*ALLREAD� � �� COMMIT� *ALL�� *RR� �� �
�� ��� ��� �� �� ��� ��� �� ��.
*YES
��� �� ��� ��� �� ��.
*NO
��� ��� ��� ����. ��� ��� � ��� �� ���
��� �� ���� � ��.
CLOSQLCSR
SQL ��� ����� �� � �� SQL�� ����� �� � ��
� LOCK TABLE ��� ��� �� �����. SQL ��� ����
CLOSE, COMMIT �� ROLLBACK(HOLD ��) SQL�� �� � ��
��� ����. REXX��� � ��� �� ��. *ENDACTGRP�
*ENDMOD� ILE(Integrated Language Environment) ���� � ���� �
�� � ���. *ENDPGM, *ENDSQL � *ENDJOB� ILE ����
�� ��� � ���.
� ��� SQL �, SQL ����� �� SQL ���� ��� ����.
*ENDACTGRP
� ��� ��� � SQL ��� ��, �� SQL�� �����
� LOCK TABLE ��� �� ��.
*ENDMOD
���� �� � SQL ��� �� �� SQL�� ����� � �
�. LOCK TABLE ��� �� ��� � �� SQL ����� ��� �
�� ��.
SET OPTION
� 5 � �� 777
*ENDPGM
����� ��� � SQL ��� �� �� SQL�� ����� �
��. LOCK TABLE ��� �� ��� � �� SQL ����� ���
� �� ��.
*ENDSQL
SQL ��� �� ��� � ��� �� �� �� SQL OPEN� ��
� ��� ��� � ����. �� ��� �� � ���� � ���
� ��� SQL�� ����� ���. �� ��� � �� SQL ���
�� ��� � SQL ��� ��, �� SQL�� ����� �
LOCK TABLE ��� �� ��. ��� � �� SQL ����(�� ��
�� � �� SQL ����)� �� *ENDSQL� ��� �����
*ENDPGM� ��� �� � ��.
*ENDJOB
SQL ��� �� ��� � ��� �� �� �� SQL OPEN� ��
� ��� ��� � ����. �� ��� �� � ������ SQL��
��� ���� ��. �� ��� � �� SQL ����� ��� �
SQL ��� � ��� �� �� SQL� ��� LOCK TABLE �
�� � ��. ��� ��� � SQL ��� �� �� SQL��
� LOCK TABLE ��� �� ��.
CNULRQD
NUL-���� �� � � ��� ��� �� ��� ��� �����.
� ��� C � C++ ����� SQL��� ��� � ����.
� ��� SQL �, SQL ����� �� SQL ���� ��� ����.
*YES
�� �� � � ��� ��� �� NUL-���� �� ����. NUL-
���� ����� ��� ��� ���, ��� ��� NUL-���� �
� ��. � �� � � ��� ��� NUL-���� �����.
*NO
�� �� � � ��� ��� ��� ��� ��� ��� ���
��� �� � NUL- ���� �� ����. � �� � � �
�� ��� NUL-���� ��� ����.
COMMIT
��� �� ��� �����. REXX��� ��� ��� �� � ���
��� �� ����. SQL�� ��� �, � � ����� ��� ����.
�� ��� �� ��� ��� 24 ���� ��� ���� �����.
*CHG
�� ��(Uncommitted Read) �� ��� �����.
SET OPTION
778 iSeries� DB2 UDB SQL ��� V5R2
*NONE
�� � (No Commit) �� ��� �����. REXX ������ DROP
SCHEMA�� �� *NONE� ���� ���.
*CS
�� ���(Cursor Stability) �� ��� �����.
*ALL
�� ���(Read Stability) �� ��� �����.
*RR
���� ��(Repeatable Read) �� ��� �����.
DATFMT
� �� � ���� � ��� ��� �����. �� �� � ���
��� ���� � ��. � � ���� �� ��� �� ��
�� ���� ���� ��� � �� ��.
�: *USA, *ISO, *EUR �� *JIS ��� ��� � � ���� ��
����.
*JOB:
��� ��� ��� �����. ��� �� �� � ��� ����
DSPJOB(�� ��) �� �����.
*ISO
�� �� ��(ISO) � ��(yyyy-mm-dd)� �����.
*EUR
�� � ��(dd.mm.yyyy)� �����.
*USA
��� � ��(mm/dd/yyyy)� �����.
*JIS
�� �� �� � ��(yyyy-mm-dd)� �����.
*MDY
� ��(mm/dd/yy)� �����.
*DMY
� ��(dd/mm/yy)� �����.
*YMD
� ��(yy/mm/dd)� �����.
*JUL
���� ��(yy/ddd)� �����.
SET OPTION
� 5 � �� 779
DATSEP
� �� � ���� � ��� ���� �����.
�: � ��� DATFMT ��� *JOB, *MDY, *DMY, *YMD ��
*JUL� ��� �� �� ��.
*JOB
��� ��� � ���� �����. ��� �� �� �� ����
DSPJOB(�� ��) �� �����.
*SLASH �� ‘/’
��(/)� �����.
*PERIOD �� ‘.’
���(.)� �����.
*COMMA �� ‘,’
�(,)� �����.
*DASH �� ‘-’
���(-)� �����.
*BLANK �� ‘ ’
��( )� �����.
DBGVIEW
� � �� ��� �� �� ���� �����. DBGVIEW �
�� SQL � ��, ����� � ����� ��� � ����. ��� �
� ��� �����.
*NONE
��� �� ��� ����.
*SOURCE
SQL�� ��� �� �� ���� ����� �����.
*STMT
���� �� ��� �� ���� ��� �� �� ���� �
���� �����.
*LIST
�� �� ���� ���� � ��� �� �����.
DECMPT
���� ��� ��� �����. ��� �� ��� �����.
*PERIOD
���� ��� �����.
SET OPTION
780 iSeries� DB2 UDB SQL ��� V5R2
|
|
*COMMA
���� ��� ���.
*SYSVAL
���� ��� ��� �(QDECFMT)��.
*JOB
���� ��� �� �(EECFMT)��.
DFTRDBCOL
�, �, �� � SQL ���� ��� �� ��� ��� ����� ���
��. � ��� �� SQL��� �� ��. REXX��� � ��� ��
��.
� ��� SQL �, SQL ����� �� SQL ���� ��� ����.
*NONE
OPTION ��� ��� ��� �� ���� SET OPTION
NAMING ��� ��� �� ��� �����.
schema-name
����� �����. � �� OPTION ��� ��� ��� ��
���� SET OPTION NAMING ��� ��� �� �� � �� �
�.
DLYPRP
OPEN, EXECUTE �� DESCRIBE�� ��� ��� PREPARE�� �� �
� �� �� ��� ���� ��� �����. �� ��� ��� �
�� �� ��� �� ��� ��� � ����. REXX��� � ���
�� ��.
*NO
�� �� �� ��� ��� ����. �� ��� �� � ��
� ��� ��� �� ��. �� ��� OPEN��� EXECUTE��
��� ��� ��� ��� ��� ��. �� ��� ��� �
��� ���� ���� �� ��� �� � �� ��� OPEN���
EXECUTE�� �� ���� � SQLCODE� SQLSTATE� ���
�� ��� � � ��� ���� ���.
*YES
OPEN, EXECUTE �� DESCRIBE SQL�� �� ��� ��� ��
� �� �� �� ��� �����. �� ��� ��� � �� �
�� ��� ��� ��� � ��. *YES� ��� OPEN,
EXECUTE �� DESCRIBE�� ��� ���� SQLCODE� SQLSTATE
� ��� �� ��� ��� ���� ���.
SET OPTION
� 5 � �� 781
�: *YES� ��� PREPARE�� INTO�� ��� �� ��
� OPEN� �� �� DESCRIBE�� � ��� ��� ��
� ��� ����.
DYNDFTCOL
DFTRDBCOL ��� �� ��� ����� �� ��� ���� ��
�� �����. REXX��� � ��� �� ��.
� ��� SQL �, SQL ����� �� SQL ���� ��� ����.
*NO
DFTRDBCOL� �� ��� �� �� SQL�� �, �, �� � SQL �
��� ���� �� ��� ��� ����. OPTION ���
��� ��� �� ���� SET OPTION NAMING ��� ��� ��
��� �����.
*YES
DFTRDBCOL� �� ��� ����� �� SQL�� �, �, �� � SQL
���� ��� �� ��� �� ��.
DYNUSRPRF
�� SQL�� ��� ��� ���� �����. REXX��� � ��� �
� ��.
*USER
�� �� SQL�� ��� �� ��� ��� � �� ��. ��� �
� SQL�� �� ��� ��� ��� ��� �� ��.
*OWNER
�� �� SQL�� ���� ��� ��� ��� � �� ��. �
�� �� SQL�� SQL ��� ��� ��� ��� � �� ��.
EVENTF
��� �� ����� ��� �����. CoOperative Development
Environment/400(CODE/400)� ��� �� ��� CODE/400 ���� �
�� �� ���� �����.
*YES
� � CoOperative Development Environment/400(CODE/400)� ��
� ��� �� �����.
*NO
� � CoOperative Development Environment/400(CODE/400)� ��
� ��� �� ��� ����.
SET OPTION
782 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
LANGID
SRTSEQ(*LANGIDUNQ) �� SRTSEQ(*LANGIDSHR)� ��� � ���
� ID� �����.
*JOB �� *JOBRUN
��� LANGID �� �����.
��� ������� SRTSEQ(*JOBRUN)� ����
LANGID(*JOBRUN)� ����.
language-id
��� � ID� �����. � ���� ��� � �� �� �� ��
� iSeries Information Center� � ��� �� �����.
NAMING
SQL �� ��� ��� �� �� � ���� ���� ��� �����. �
��� SQL �, SQL ����� �� SQL ���� ��� ����.
��� �� ��� �����.
*SYS
��� �� ��� �����.
*SQL
SQL �� ��� �����.
OPTLOB
DRDA� �� ���� � LOB�� ���� ���� � ��� ��� ��
���. ��� �� ��� �����.
*YES
LOB ���� ����� ���. ��� �� � �� FETCH� �� �
FETCH�� LOB� �� ��� ��� ��� �����. � ���
��� �� ��� �� �� ����.
� �� FETCH� LOB ����� ��� LOB � ���� �
� ��� �� ��� � FETCH� �� LOB � LOB ��� ���
��� � ����.
� �� FETCH� LOB � LOB ��� ��� � �� ��� �
� ��� � FETCH� �� � �� LOB ����� ��� � ��
��.
*NO
LOB ���� ���� ��� ���. � LOB ����� ���� �
� LOB ��� ��� ����� �� ����� ����. � ��� �
� �� � � ����.
SET OPTION
� 5 � �� 783
OUTPUT
��� � � ���� �� ��� �����. OUTPUT ��
� SQL � ��, ����� � ����� ��� � ����. ��� ��
��� �����.
*NONE
��� � � ���� ��� ����.
��� � � ���� �� ��.
RDBCNNMTH
CONNECT�� ��� ��� �����. REXX��� � ��� �� ��.
*DUW
��� �� � � ��� � CONNECT(� 2) ��� �����. �
� ��� ������(RDB)� �� � CONNECT�� �� ��� �
���� ����.
*RUW
��� �� � � ��� � CONNECT(� 1) ��� �����. �
CONNECT�� ��� ��� � � �� �� ��� ������.
SQLCURRULE
SQL�� ��� ��� �����.
*DB2
�� SQL�� ��� DB2� �� ��� ���� ��� �� ��. ��
��� � ��� �� �� ��.
v 16� ��� �� ��� � ��.
*STD
�� SQL�� ��� ISO � ANSI SQL ��� �� ��� ���� ��
� �� ��. �� ��� � ��� �� �� ��.
v 16� ��� 2� ��� � ��.
SQLPATH
�� SQL�� �����, � � ��� �� �� �� � ��� �� �
����. REXX��� � ��� �� ��.
*LIBL
��� �� ��� �� � �����.
character-string
�� ��� � ��� ������ � �� ��
SRTSEQ
SQL�� ��� �� ��� �� �� �� �����.
SET OPTION
784 iSeries� DB2 UDB SQL ��� V5R2
�: REXX ������ iSeries� DB2 UDB �� �� �� V2R3M0 ��
� iSeries ���� � ��� ��� *HEX� ���� ���.
*JOB �� *JOBRUN
��� SRTSEQ �� �����.
*HEX
�� �� �� ��� ����. ��� 16� �� �� ��� ��� �
�� ��.
*LANGIDUNQ
�� �� �� �� ���� � ��� �� �� ���� ��� ��
�.
*LANGIDSHR
��� LANGID� �� � ��� ���� �����.
srtseq-table-name
� ����� � ��� �� �� � ��� �����. �� �� ��
��� �� �� � � � �� ���� � ����.
*LIBL
��� �� � ����� ��� � ��� ��� �� �� ��
�� � �� ��� �� ��� �� ��.
*CURLIB
��� �� �� �� �����. ��� �� �� ��� ���
�� �� �� QGPL �� �� �����.
library-name
��� �� ��� �����.
TGTRLS
���� ��� ���� ���� ����� ���� ��� �����.
TGTRLS ��� SQL � ��, ����� � ����� ��� � �
���. ��� �� ��� �����.
VxRxMx
��� VxRxMx ���� �����. Vx� ��, Rx� �� � Mx�
�� ����. �� �� V5R1M0� �� 5 �� 1 �� �� 0��.
� ���� ��� �� �� ��� ����� ���� � ���
��� �� ����� ��� � ����.
�� �� ��� ��, �� � �� ��� �� �!� ��� ���
��� �� ����. ������ ���� ��� �� ��� ��
���� � ��� �� ��� ��� ��� � �� �� ��� �
�� ��� �� ���� � ��.
SET OPTION
� 5 � �� 785
TGTRLS ��� SQL �, SQL ����� � ����� ��� � ���
�.
TIMFMT
�� �� � ���� � ��� ��� �����. �� �� �� ���
��� ���� � ��. � �� ���� ��� �� ��� ��
���� ����� ��� � �� ��.
�: *USA, *ISO, *EUR �� *JIS ��� ��� � �� ���� ��
����.
*HMS
(hh:mm:ss) ��� �����.
*ISO
�� �� ��(ISO) �� ��(hh.mm.ss)� �����.
*EUR
�� �� ��(hh.mm.ss)� �����.
*USA
��� �� ��(hh:mm xx)� �����. ��� xx� AM �� PM�
�.
*JIS
�� �� �� �� ��(hh:mm:ss)� �����.
TIMSEP
�� �� � ���� � ��� ���� �����.
�: � ��� TIMFMT ��� *HMS� ��� �� �� ��.
*JOB
��� ��� �� ���� �����. ��� �� �� �� ����
DSPJOB(�� ��) �� �����.
*COLON �� ‘:’
��(: )� �����.
*PERIOD �� ‘.’
���(.)� �����.
*COMMA �� ‘,’
�(,)� �����.
*BLANK �� ‘ ’
��( )� �����.
USRPRF
�� ���� ���� ��� � ��� ��� ���(�� ����
SET OPTION
786 iSeries� DB2 UDB SQL ��� V5R2
���� �� SQL��� � ���� �� �� �� )� �����. �
��� ��� ���� ���� ���� ���� ����� ��� �
�� ���� ��� � �� ��. REXX��� � ��� �� ��.
*NAMING
�� ��� �� ��� ���� �� ��. �� ��� *SQL��
USRPRF(*OWNER)� �� ��. �� ��� *SYS�� USRPRF(*USER)
� �� ��.
*USER
���� ���� ��� ���� ���� �����.
*OWNER
����� ��� � ���� ��� ���� ��� �� ��� ��
�� �����.
REXX ������ ��� � ��� ��� ��� ��� �� ��. � ���
��� �� �� ��� �� � �� ���. SET OPTION��� ��� �
� ��� �� �� �� REXX ������ ��� ��� � �
� �� �� ����.
������ ����� � ��� ��� CRTSQLxxx ��� ��� �
�� �� ��. � ��� SET OPTION��� �� � � ��. �� SET
OPTION�� �� �� �� SQL� � �� ���.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ��� ��� ��� � ����.
v *UR� *CHG� ���� ��� � ����.
v *NC� *NONE� ���� ��� � ����.
v *RS� *ALL� ���� ��� � ����.
�
� 1: �� ��� *ALL� ��� �� ��� SQL ���� �����.
EXEC SQL SET OPTION COMMIT =*ALL, NAMING =*SQL
� 2: � ��� ����, �� ��� *CS�, ���� �� �����.
EXEC SQL SET OPTION DATFMT = *EUR, COMMIT = *CS, DECMPT = *COMMA
SET OPTION
� 5 � �� 787
|
|
|
|
|
SET PATHSET PATH�� CURRENT PATH �� ����� �� ����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
� ��� ��� � ��� ��� ����.
��
��
FUNCTIONCURRENT
SET PATHCURRENT_PATH
=�
�
,
schema-nameSYSTEM PATHUSER
FUNCTIONCURRENT
PATHCURRENT_PATH
host-variablestring-constant
*LIBL
��
�
CURRENT PATH �� ����� �� ��� ��� �����.
schema-name
���� �����. � ��� ���� ����� �� �� � ��
��.
SYSTEM PATH
� �� ���� ″QSYS″,″QSYS2″� ��� �� ����.
USER
� �� USER �� ������.
CURRENT PATH
� ��� ��� �� CURRENT PATH �� ����� �
host-variable
�� ��� � ��� ����� �� ��� ��
SET PATH
788 iSeries� DB2 UDB SQL ��� V5R2
��� ���� ��� �� ��.
v �� ��� ����� ���.
v ����� ��� �� ��� ��� ���.
v �� ��� ���� �� , �� ID �� ��� ��� ���.
v ���� ���� � � ���.
v ��� ���� ���.
string-constant
�� ��� � ��� ������ � �� ��
�� � ����� � � �� � ����.
SET PATH�� ����� ��� ����. ROLLBACK� CURRENT PATH�
��� � ����.
��� � �� ���� �� CURRENT PATH �� ����� � ��� �� �
� ��. �� ���� ����, ��� � ���(schema)� ��� �� �� �
�� �� � ���� �� ��� � ����� �� �� ��� � �
�. ��� ��� ���� ��� 3483 ��� ��� ��� � ��. �� 268
� ����� �� ��� � ����.
� ���� ��� � �� SQL�� ��� ��� ��� CURRENT PATH
�� ����� ���� *LIBL��. � �� SQL�� SQL ��� ����
�, �� �� ″QSYS″,″QSYS2″, ″X″(���, X� USER �� ����� �)�
�.
��� QSYS� QSYS2� ��� ��� ��. � ���� �� �
��� � �� ���� �����(� ��� CURRENT PATH �� ����
� � ��).
�� SQL�� �� ��� �� �� � � �� ��� � CURRENT
PATH �� ����� �� ��. ��� ��� 56 ���� ���� � SQL
��� �����.
�
�� ��� CURRENT PATH �� ����� �����.
SET PATH = FUNC_XYZ, "NewFun98", QSYS2
SET PATH
� 5 � �� 789
SET RESULT SETSSET RESULT SETS�� iSeries Access ����� SQL �� �� �����
� �� �� ������ ��� � �� DRDA� ��� ��� ����� �
��� � �������� �� � �� � ��� �� ��� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����. Java �� REXX ������� � ��� ���
����.
����
��� ��� ����.
��
�� SET RESULT SETS �
�
,
ARRAY host-structure-array FOR host-variable ROWSCURSOR cursor-name
NONE
��
�
CURSOR cursor-name
�������� �� � �� �� ��� ��� � ��� ��� ���
��. cursor-name� 599 ���� ������ DECLARE CURSOR�� ��
��� �� �� ��� ���� ���. SET RESULT SETS�� ��� �
��� � ��� ��� ���.
ARRAY host-structure-array
host-structure-array� ��� �� � ��� �� ��� ��� ��� �
� �����. �� C NUL-�� ��� ��� �� � ����.
�� � �� ��� �� ��� � �� �� ���, �� �� ��
� �� ��� �� �� ��� ���� �� ��� �� ��� ��
�� ��. �� �� � �� �� ��� � �� ��� ���, �� �
� �� ��� �� ��� ��� ���� �� �� ��� ��� ��
��.
LOB� DRDA� ��� � �� �� � ����.
SET RESULT SETS
790 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
SET RESULT SETS�� �� ��� ��� � ����.
FOR host-variable ROWS
�� ��� � �� �����. host-variable� 0 ��� � ��� ����
� , ����� ��� � ��� ���. � �� 0 - 32767 � �
�� ��� �� �� �� ���� ���.
NONE
�� �� ��� ��� �����. ������ ��� � � ��� �
��� �� ����.
�� ��� iSeries Access ODBC( � ������ ���) ����� ���
����, iSeries Access Optimized SQL API� ��� ���� �� SQL
�� �� ������ JDBC��� ������ ��� � �� ��������
� ��. �� �� ��� �� ��� ������ ��(DRDA)� ���
iSeries ����� iSeries ��� ���� ��� � ��.
�� �����: �� ��� �� �������� �� ���� ��� � �
�� ����.
v ������� SET RESULT SETS�� ��� � SET RESULT SETS�� �
� ��� �����. �� ��� SET RESULT SETS�� ��� ��� �
��.
v SET RESULT SETS�� ������� ��� ��
– WITH RETURN�� ��� ��� �� ������ � �� �
��� ��� �� � � ��� �� ��� �����. �� ��� ���
� ��� � ��.
– WITH RETURN�� ��� ��� �� ������ � �� �
��� ��� �� � WITH RETURN�� ��� ��� � ��� ��
��� �����. �� ��� ��� � ��� � ��.
� ��� ��� �� ��� �� � �� �� �� ��� ��� �
��.
������� �� � �� ��� R E S U L T S E T S�� C R E A T E
PROCEDURE(��)� �� DECLARE PROCEDURE�� ���� ���. �
� �� �� �� �� CREATE PROCEDURE(��)� �� DECLARE
PROCEDURE�� ��� ��� ��� � ��.
SET RESULT SETS
� 5 � �� 791
|
|
|
|
SQL �����: SQL �������� �� ��� ���, RESULT SETS�
� ��� ������ ���� ���. ������ � �� � ��� �
�� �� � WITH RETURN�� ��� ��� � ��� �� ��� ����
�.
v ������� SET RESULT SETS�� ��� � SET RESULT SETS�� �
� �� ��� �����. �� ��� SET RESULT SETS�� ��� �
�� � ��.
v ������� SET RESULT SETS�� ��� �� � ��� � ����
�� ��� ����.
� ��� ��� �� ��� �� � �� �� �� ��� ��� �
��.
SQL �������� �� ��� ��� RESULT SETS�� CREATE
PROCEDURE(��)�� ���� ���. �� �� �� �� �� CREATE
PROCEDURE�� ��� ��� ��� � ��.
�
�� SET RESULT SETS�� �� X� ������ ��� � �� �� ��
�� �����. ODBC �������� �� �� ��� ��� ��� ��
� �� iSeries Information Center�� iSeries Access �� �����.
EXEC SQL SET RESULT SETS CURSOR X;
SET RESULT SETS
792 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SET SCHEMASET SCHEMA�� CURRENT SCHEMA �� ����� �� ����.
��
� ��� ����� �� ������ ����� �� � ����. �
��� ���� �� � �� �����.
����
� ��� ��� � ��� ��� ����.
��
��CURRENT
SET SCHEMA=
schema-nameUSERhost-variablestring-constantDEFAULT
��
�
CURRENT SCHEMA �� ����� �� ��� ��� �����.
schema-name
���� �����. CURRENT SCHEMA ��� ���� ����� ��
�� � ����.
USER
� �� USER �� ������.
host-variable
����� �� �� ��� ��
��� ���� ��� �� ��.
v �� ��� ����� ���.
v ����� ��� �� ��� ��� ���.
v �� ��� ���� �� , �� ID �� ��� ��� ���.
v ���� ���� � � ���.
v ��� ���� ���.
string-constant
��� ��� �� ��
SET SCHEMA
� 5 � �� 793
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DEFAULT
CURRENT SCHEMA� �� ��� �� ��. SQL ��� ���� USER
��. ��� ��� ���� *LIBL��.
CURRENT SCHEMA �� ����� �� DYNDFTCOL� ��� �����
� ��� �� �� SQL�� ��� �� �� ��� �� ���� ��
��. DYNDFTCOL� ����� ���, CURRENT SCHEMA ����� �
�� ����� �� ��.
SET SCHEMA�� ����� ��� ����. ROLLBACK� CURRENT
SCHEMA� ��� � ����.
SQL���� CURRENT SCHEMA �� ����� ���� USER� �����.
��� ���� CURRENT SCHEMA �� ����� ���� ‘*LIBL’��.
CURRENT SCHEMA �� ����� ��� �� CURRENT PATH �� ��
��� ��� � ����. ���, CURRENT SCHEMA� SQL �, �, �
����� � �� , �� � ��� �� ���� �� ����. SQL
�� �� ����� ����, SET SCHEMA�� ��� ��� SET
SCHEMA�� ����� � SET PATH�� �����.
CURRENT SQLID� CURRENT SCHEMA� ���� ����� SET
CURRENT SQLID�� ��� SET CURRENT SCHEMA�� ��� �����.
�� �� �� �� �� ��� �� ����.
QSQCHGDC API ��� ��� SET SCHEMA.
�
� 1�� ��� CURRENT SCHEMA �� ����� �����.
SET SCHEMA = RICK
� 2�� �� CURRENT SCHEMA �� ����� �� �� CURSCHEMA ���
��� �����.
EXEC SQL VALUES(CURRENT SCHEMA) INTO :CURSCHEMA
�� � ��� ��� RICK��.
SET SCHEMA
794 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SET TRANSACTIONSET TRANSACTION�� �� �� � � �� �� ��� �� �� �� �
����.
��
� ��� ������ ����� �� ����� �� � ����. �
��� ���� �� � �� �����.
����
��� ��� ����.
��
�� SET TRANSACTION
,SERIALIZABLE (1)
ISOLATION LEVEL NO COMMITREAD UNCOMMITTEDREAD COMMITTEDREPEATABLE READ
READ ONLYREAD WRITE
��
�:
1 �� ISOLATION LEVEL� � �� READ WRITE �� READ ONLY
��� ��� � ����.
�
ISOLATION LEVEL
���� �� ��� �����. ISOLATION LEVEL�� ��� �� ,
ISOLATION LEVEL SERIALIZABLE� �����.
NO COMMIT
�� �� NC(COMMIT(*NONE))� �����.
READ UNCOMMITTED
�� �� UR(COMMIT(*CHG))� �����.
READ COMMITTED
�� �� CS(COMMIT(*CS))� �����.
SET TRANSACTION
� 5 � �� 795
|
|
|
|
|
|
|
|
|
|
REPEATABLE READ66
�� �� RS(COMMIT(*ALL))� �����.
SERIALIZABLE
�� �� RR(COMMIT(*RR))� �����.
READ WRITE �� READ ONLY
����� �� � �� ��� �����.
READ WRITE
�� SQL �� �� ��� �����. ISOLATION LEVEL READ
UNCOMMITTED� ��� �� � �� ��� ���.
READ ONLY
SQL ��� �� �� SQL ��# ���� �����. ISOLATION
LEVEL READ UNCOMMITTED� ��� , � �� ��� ���.
SET TRANSACTION�� ����� �� � ��� �� SQL�� �� ���
����� . � � ��� �� � � �� �� ��� �� SET
TRANSACTION�� �� �� � � �� �� � ��� �� ��� ����
�.
SET TRANSACTION�� �� � � � �� SQL�� �� ��� � ��
� � . � , ��� � ��� � � � � � � . �� ����� � SET
TRANSACTION� COMMIT ���� READ ONLY� ��� � ����. SET
TRANSACTION�� ���� ��� ��� � ���, ��� � �� �
���� ��� �� � ���. SET TRANSACTION�� ���� ��
����� SQL�� �� �� ��� �� ����� �� � �����
�� ��� ��� ��� � �� ����.
�� ��� ��� ��� � �� SET TRANSACTION�� �� ���
�� ����� �� ��� ��� ����. �� SET TRANSACTION��
��� ��, � �� � � ��� ��� ��� CONNECT�� SET
CONNECTION�� ��� ����.
SET TRANSACTION�� � � ��� ��� ��� � ��. SET
TRANSACTION�� �� ������ ��� ��� �� ��� �� SET
TRANSACTION�� �� �� ����� ��� ���(� � �� �
� �), �� � SQL�� �� ��. SET TRANSACTION�� �� ���
� ��� ��� ��� �� ��� COMMIT� ROLLBACK ��� ��
66. REPEATABLE READ� iSeries� DB2 UDB� �� �� �� *ALL� IBM SQL��� �� �� RS(�� ���)� ��� ISO� ANS
�� ����. IBM SQL� RR(���� ��)�� � �� �� ISO � ANS ����� SERIALIZABLE� �����.
SET TRANSACTION
796 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
��� �� � SQL(�� ��� SET TRANSACTION� � ��� � �
� �� �� �� ��)�� �� ��.
SET TRANSACTION�� ��� � � �� WITH HOLD ��� �� ��
� ��� ��� ����.
�� ��� �� ��� ��� 24 ���� ��� ���� �����.
��� ���
�� � �� �� ���� ��� � ��� �����. � � �� ��
� ��� ��� � ����.
v � � NC �� NONE� NO COMMIT� ���� ��� � ����.
v � � UR � CHG� READ UNCOMMITTED� ���� ��� � ����.
v � � CS� READ COMMITTED� ���� ��� � ����.
v � � RS �� ALL� REPEATABLE READ� ���� ��� � ����.
v � � RR� SERIALIZABLE� ���� ��� � ����.
�
� 1�� SET TRANSACTION�� �� ��� NONE�� �����(SQL ��
� �� *NONE� ��� �� ��).
EXEC SQL SET TRANSACTION ISOLATION LEVEL NO COMMIT;
� 2�� SET TRANSACTION�� �� ��� SERIALIZABLE� �����.
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET TRANSACTION
� 5 � �� 797
|
|
|
|
|
|
|
|
|
|
SET �� ��
SET transition-variable�� � transition-variable� �� �����.
��
� ��� BEFORE �� �� SQL���� ��� � ����. � ��� �
��� �� � �� �����.
����
row-subselect� ��� � subselect� ��� ����� ���� 335 ��
�� � 4 � ����� �����.
��
�
transition-variable
� �� �� � �����. transition-variable� � �� ���� �
���� ����� ��� �� � �� � ���� ���. OLD
transition-variable� ��� � ����.
� �� ��� �� �� ��� �� � ��� � ��� ���. ��
� �� �� ��� �� transition-variable� �� ��. ��� ��� 80
���� ���� ��� �����.
��
,
SET transition-variable = expressionNULLDEFAULT
, ,(1)
( transition-variable ) = ( expression )NULLDEFAULT
(2)row-subselect
��
�:
1 ���� �, NULL � DEFAULT� transition-variable� �� ���� ���.
2 �� ���� �� � �� �� ��� �� ���� ���.
SET �� ��
798 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
expression
�� ��� � �� �����. expression� 127 ���� ������� �
�� �� �� �����. ���� �� � � ����.
expression�� OLD � NEW transition-variable� �� � � � �
���. CREATE TRIGGER�� OLD � NEW �� � �� �� ,
transition-variable� �� � correlation-name�� ��� transition-variable
� ���� ���.
NULL
��� �����. NULL� ��� � ���� ���� ����.
DEFAULT
�� ��� ��� � �� ��� �� ��� ��� �����. IDENTITY
� ROWID �� �� ��� , �� ������ ���� �� ��
��.
row-subselect
�� �� �� �� subselect �� �� � �� �� ��� �� �
�. subselect� ��� �� ��� ��� �� ��. ��� � ��� ��
��� ��� � ��.
�� ��
��� SET transition-variable�� � ��� ��� � , ��� ��
� �� �� expression� �� ��. ����� transition-variable� �� �
�� �� �� SET�� ��� ��� transition-variable ���.
�
� 1�� � 50000�� ��� � ��. � �� 50000�� � , 50000�� ��
���.
CREATE TRIGGER LIMIT_SALARYBEFORE INSERT ON EMPLOYEEREFERENCING NEW AS NEW_VARFOR EACH ROW MODE DB2SQLWHEN (NEW_VAR.SALARY > 50000)
BEGIN ATOMICSET NEW_VAR.SALARY = 50000;
END
� 2�� ��� �� , � �� ��� �� ��� ������. ��� 0
�� �����.
SET �� ��
� 5 � �� 799
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
CREATE TRIGGER SET_SALARYBEFORE UPDATE OF JOB ON STAFFREFERENCING OLD AS OLD_VAR
NEW AS NEW_VARFOR EACH ROW MODE DB2SQLBEGIN ATOMICSET (NEW_VAR.SALARY, NEW_VAR.YEARS) =
(OLD_VAR.SALARY * CASE NEW_VAR.JOBWHEN ’Sales’ THEN 1.1WHEN ’Mgr’ THEN 1.05ELSE 1 END ,0);
END
SET �� ��
800 iSeries� DB2 UDB SQL ��� V5R2
||||||||||||
|
SET ��
SET �� �� � �� ��� ��� ���� �� , � �� �� ��� �
�� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����.
����
row-subselect� ��� � subselect� ��� ����� ���� 335 ��
�� � 4 � ����� �����.
��
�
host-variable, ...
��� �� �� �� ��� ��� ��� � � ��� ��� ��
�� ��� ��� �����(114 ���� ���� ��� �� ���� ��
���). ��� ��� ��� ��� � ��� ��� ��� �� ���
� �� ���� �� ��.
� host-variable� ��� �� host-variable � �� ��� � ����. �
� ��, host-variable = expression, host-variable = expression� �� �
��. �� �� host-variable� � �� ��� � �� ��� ��� � �
���. �� ��, (host-variable, host-variable) = (expression, expression)�
�� ���.
� ��� ��� �� �� ��� �� � ��� � ��� ���. �
��� 80 ���� ���� ���� ��� ��� �� ������. �� �
��� ��� ��� host-variable� �� �� ���� ���� ��� �
��
,
SET host-variable = expressionNULL
, ,
( host-variable ) = ( expression )NULL
row-subselect
��
SET ��
� 5 � �� 801
� ��� �� �� �� ��� ���. � �� �(null)� ����� �
�� ���� ���. �� ��� �� �� ��� ��� �� � �
� �� �� ��� ��� ����. ��� �� ��� �� ��� �� �
���.
expression� �� ���� ��� �� subselect� SELECT ���� ���
��� ��(0�� �� �� ��(overflow)), �� �� ��� ��
��� ����. � �� �� ��� ����� ��� ���� �
��. ��� ��� �� ��� ����. � � � � ����� ���
-2� �� ��. ��� ��� �� �� �� ��� �� �
��(� � � ��� � SQLCODE� ���). ����� ��� ��
� ��� SQLCA� SQLCODE ��� �� �� � ��. ��� ��� �
� ��� �� ��� ��, ��� �� � � �� ��� ��� �� �
��� ����.
expression
��� ��� � �� �����. expression� 127 ���� ������� �
�� �� �� �����. ��� ��� � ��.
NULL
��� ��� � �� ���� �����.
row-subselect
�� �� �� �� subselect �� �� � �� host-variable� ��
��. subselect� ��� �� ��� ��� �� ��. ��� � ��� �
� ��� ��� � ��.
��� ��� ��� ��� ��� ��� � �� ��� �� ��� 'W'�
SQLCA� SQLWARN1� �� ��. ����� ��� ��� ��� �� ��
� ��� ��� ��� ����� ��� � ��.
��� ��� ��� C NUL �� ��� ���� ��� NUL ���� ��� �
�� �� �� ��� �� ��.
v *CNULRQD ��� CRTSQLCI �� CRTSQLCPPI �� ��(��
CNULRQD(*YES) ��� SET OPTION�� ��)� ��� ����.
– ��� �� ��.
– ��� ��� NUL �����.
– � ‘W’� SQLCA� SQLWARN1� �� ��.
v *NOCNULRQD ��� CRTSQLCI �� CRTSQLCPPI �� ��(��
CNULRQD(*NO) ��� SET OPTION�� ��)� ��� ����.
– NUL ���� �� ����.
SET ��
802 iSeries� DB2 UDB SQL ��� V5R2
– � ‘N’� SQLCA� SQLWARN1� �� ��.
�
� 1CURRENT PATH �� ����� �� ��� �� HV1� �����.
EXEC SQL SET :HV1 = CURRENT PATH;
� 2LOB ���� LOB1� CLOB �� ��� ��� �����. LOB ����� �
�� CLOB �� ��� ��� �� DETAILS� �����.
EXEC SQL SET :DETAILS = SUBSTR(:LOB1,1,35);
SET ��
� 5 � �� 803
UPDATEUPDATE�� �� �� ��� ��� �� ����. �� �� �� ��
�� �� �� �� � ��.
� ���� �� ��� ����.
v �� UPDATE ��� � ��� �(�� ��� �� ����� ��)� �
� � �����.
v ��� UPDATE ��� ��� � �(��� �� �� �� ��)� �
� � �����.
��
�� UPDATE�� ������ ����� �� ����� �� � ��
��. ��� UPDATE�� ������ ����� ���� ���. �� �
���� �� � �� �����.
����
��� ���� ID� �� ��� ��� �� � �� �� ���.
v ���� ��� �� ��
– �� �� �� UPDATE ��
– �� � � �� UPDATE ��
– �� ��
– �� �� �� �� �� �� �� ��� �� *EXECUTE
v �� ��
��� �� � ��� ���� ID� �(�� ��� ��� )� ��
UPDATE ��� ����.
v �� ���
v �� � �� UPDATE ��� ����
v �� �� *OBJOPR� *UPD� ��� ��� ����
��� ���� ID� �(�� ��� ��� )� �� UPDATE ��� �� �67
v �� �� � �� UPDATE ��� ��
v �� �� *OBJOPR � *UPD ��� ��� ��, � ��� ���� � ��
FROM�� � �� �� �� �� *UPD ��� ��� �� , ��� �� �
67. �� ��� ��� �� �� UPDATE ��� �� ����. �� �� �� ��� subselect�� ��� � �� �� ��
UPDATE ��� ��� ��� UPDATE ��� ����.
UPDATE
804 iSeries� DB2 UDB SQL ��� V5R2
�� � ��� � �� FROM�� �� � �� �� �� �� *UPD ���
��� ���� ��� ��� ��
�� �� ���� �� �� � �� ��� �� �� �� UPDATE�
search-condition� �� �� � �� ��� �� ���, ��� ���� ID
� �� ���� �� �� � �� �� ���.
v �� �� �� SELECT ��
v �� ��
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ���
v �� �� SELECT ��� �������.
v �� �� *OBJOPR� *READ� ��� ��� �������.
��� ���� ID� �� � �� �� SELECT ��� ����.
v �� ����.
v �� �� SELECT ��� �������.
v �� �� *OBJOPR � *READ ��� ��� � �� �� �� �����
�� �� �� �� �� *READ ��� ��� �������. �, � ��
� ��� �� �� � ��� �� ��� �� � ��� ��� �� ��
� �
search-condition� � ��� � assignment�� scalar-subselect ��
row-subselect� � � subselect� ��� ����� ���� 335 ��
�� � 4 � ����� �����.
UPDATE
� 5 � �� 805
��
�� UPDATE:�� UPDATE table-name
view-name correlation-clause�
�OVERRIDING SYSTEM VALUEOVERRIDING USER VALUE
SET assignment-clause �
�WHERE search-condition isolation-clause
��
��� UPDATE:�� UPDATE table-name
view-name correlation-clause�
�OVERRIDING SYSTEM VALUEOVERRIDING USER VALUE
SET assignment-clause �
� WHERE CURRENT OF cursor-name ��
assignment�:
��
,
column-name = expressionNULLDEFAULT
, ,
( column-name ) = ( expression )NULLDEFAULT
row-subselect,
ROW = ( expression )NULLDEFAULT
row-subselect
��
isolation�:WITH NC
URCSRSRR
UPDATE
806 iSeries� DB2 UDB SQL ��� V5R2
�
table-name �� view-name
�� �� �� �����. ��� �� ��� �� �� �� ���� �
��� �, ���� �� � �� �� �� �� ����� � ��. �� �
� �� ���� �� �� ��� 590 ���� �CREATE VIEW�� ��
���.
correlation-clause
search-condition�� ��� �� �� ��� ��� � ����.
correlation-clause� �� ��� 341 ���� �table-reference�� �����
correlation-name� �� ��� 108 ���� ������ �����.
OVERRIDING SYSTEM VALUE or OVERRIDING USER VALUE
ROWID �� ID � �� ���� ��� ��� ��� �� �� ���
� ��� �����. OVERRIDING SYSTEM VALUE� ��� , SET
�� ��� �� ��� ���� GENERATED ALWAYS� ��� � �
� ��� ���. OVERRIDING USER VALUE� ��� , INSERT��
��� �� ��� ���� GENERATED ALWAYS �� GENERATED BY
DEFAULT� ��� � �� ���.
OVERRIDING SYSTEM VALUE
GENERATED ALWAYS� ��� � �� SET�� ��� �� ��
�� �����. system-generated �� ��� ����.
OVERRIDING USER VALUE
GENERATED ALWAYS �� GENERATED BY DEFAULT� ���
� �� SET�� ��� �� ���� �����. � ���� ���
�� ��� ��� �� �� �����.
�� OVERRIDING SYSTEM VALUE �� OVERRIDING USER VALUE
� ��� ����:
v ROWID �� ID (GENERATED ALWAYS� ��� )�� �� ��
� � ����.
v ROWID �� ID (GENERATED BY DEFAULT� ��� )�� ��
��� � ����. �� ��� , �� �� � �� ��. � � BY
DEFAULT� ��� ROWID � ��� �� ��� OS/390 � z/OS� DB2
UDB �� iSeries� DB2 UDB� �� ��� � � ID �� �� �
� � ����. BY DEFAULT� ��� ID � �� �� �, ���
��� ���� ��� ID � � ������ � ��� � �� �
�� �� � � ��� �� ����. � ������ �
��� �� , ������ ���� NO CYCLE� �� � �
� ���� ��� � �� ����� � �� ��� � ����.
UPDATE
� 5 � �� 807
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�� ��� ������ ���� ��� ��� �� �� ��.
SET
��� ��� �� � ���.
column-name
�� � �����. column-name� ��� �� �� � ���� �
�� �, �� �� ����� �� � � ����� � ��. �
� �� ��� � ����.
��� UPDATE� ��� �� ��.
v UPDATE�� ��� SELECT�� ����� SET ���� � � �
� UPDATE�� ��� ���.
v UPDATE�� ��� SELECT�� ��� ����, ���� � �
�� ��� � ����.
��� ��� 356 ���� �update��� �����.
�� �� � ��� �� �� � � �� � ���, �
� ��� UPDATE��� �� �� ����.
column-name� ���� ��� expression, NULL � DEFAULT� �
� column-name� �� ���� ���.
ROW
��� �� �� �� � �����. �� ��� ��� �, �� �
� ������� �� ��� � �� �� � ����.
expression, NULL � DEFAULT� �(�� row-subselect���� ��
� �)� �� �� � �� ���� ���.
��� UPDATE� UPDATE�� ��� SELECT�� �����,
�� �� � �� UPDATE�� ��� ���. ��� ��� 355 ��
�� ″update�″� �����.
�� �� � ��� �� �� � � � �� �� ROW�
��� � ����. � �� �� ��� UPDATE��� ��
� �� ����.
expression
� � �� �����.expression� 127 ���� ������� ���
�� �� �����. �(column function)� ��� � ��.
���� �� column-name� ��� �� �� � ��� ���� �
��. �� � �� ���� �� � �� �� �� �� ��
�� � ���.
UPDATE
808 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
NULL
� � �� ����� �����. NULL� ��� � ���� ��
�� ���.
DEFAULT
��� �� � �����. ��� �� ��� �� � ��� ���
�� ����.
v WITH DEFAULT�� ��� ��� ���� � �� ��
� �����(541 ���� �CREATE TABLE�� ��
column-definition�� default� ��).
v WITH DEFAULT� �� NOT NULL�� ��� �� � ��
� �� NULL��.
v NOT NULL�� ��� WITH DEFAULT�� ��� ��
DEFAULT NULL� ��� �� � �� DEFAULT � ��
��� � ����.
row-subselect
�� �� �� �� subselect �� ���� �� �� � �� ��
� ��� column-name� �(ROW� ��� �� �� �)� ���� �
��. �� �� � �� column-name� �� ��. subselect� ���
�� ��� ��� �� ��. ��� � ��� �� ��� ��� �
��.
row-subselect� UPDATE�� �� �� �� � �� ��� � �
����. �� � �� ����� � � � �� �� �� �
� �� �� � ���.
WHERE
�� �� �����. �� ��� � ����. search-condition� ���
�� ��� ��� � ����. � �� ��� �� �� �� �� � �
�.
search-condition
154 ���� ��� ���� ��� �� ��. � ��� �� ��� �
�� �� ��� � column-name� �� �� � ��� ���� ��
�. ��� �� UPDATE� � �� �� �� ���� � � �
�� �� ��� �� � ��� �� �� �� ��� ��
��.
search-condition� �� �� � �� �� ��. �� ��
search-condition� ��� �� ���.
search-condition� � ��� � � �� � ���
search-condition ��� ��� � search-condition� ��� � � �
UPDATE
� 5 � �� 809
�� ��� ��� ��� ��� ���� ��� � ����. ����
�, �� ��� �� � ��� � �� �� ��. �� ��� �� �
��� � �� �� � �� ���� � �� ����.
CURRENT OF cursor-name
� ��� ��� ��� �����. cursor-name� 598 ����
�DECLARE CURSOR��� ��� �� �� ��� ���� ���.
��� �� �� ��� �� SELECT�� FROM��� ���� �
�� ���� �� ������ � ��. �� �� ���� �� ���
598 ���� �DECLARE CURSOR�� �����.
UPDATE�� ��� � ��� �� �� ��� ���. ��� �� �
� � ��.
isolation-clause
� ��� �� ��� �� ��� �����. isolation-clause� �� ���
isolation�� �����.
UPDATE ��
��
� �� � 2 �� ��� �� ��� ��� � �� ��.
���
��� � �� ��� �� �� �� � �� �� � ����� � �
� �� �� �� � �� �� �� ��� ��� ����� ��
� ���.
� �� �� � ����� COMMIT(*NONE)� ��� �� � �
�� ��� �� ��. �� � �� � � ��� �� �� ��
��� �����. COMMIT(*NONE)� ��� � �� �� ��� ��
� �� ��.
��� � �� ��� �� �� �� � ��� �� ����� �� �
� �� � �� �� � �� ����� ��� �� � � �� ���
�� ���.
�� ����� ��� ��� �� ��. �� � �� � � ���
�� �� �� ��� �����.
�� ��� �� �� �� ����� WITH CHECK OPTION� �
�� ���. ��� ��� 590 ���� �CREATE VIEW�� �����.
UPDATE
810 iSeries� DB2 UDB SQL ��� V5R2
��
��� � �� ��� �� �� �� � ��� �� ��� ��
��. ��� �� ��� ���� � �� �� �� �� ���
�����.
�� ��
� �� � � �� �� � ����.
� �� �� � �� �� ��� �� �� ��� � ��� �
� � � �� ��� ���.
�� ����(RESTRICT � ��� �� �� ����� ��)� ��� �
�� �� ��. �� � �� � � ��� �� �� �� ��� �
����.
� �� �� ����� �� COMMNIT(*NONE)� ��� �� UPDATE
�� ��� �� �� ��� �� ��� ��� �� ��� �� �
��� �� ��. � �, �� �� �� � �� �� �� ���� ��
� ����. COMMIT(*NONE)� ��� ���� ��� ����.
��� ��� ��� � �� ��� ��� �� �� ����.
UPDATE�� ��� ��� ��, SQLCA� SQLERRD(3) �� �� �� �
��. SQLCA� ��� 871 ���� �� B �SQL � ���� �����.
��� ��� � ���, ���� UPDATE�� ���� � ��� ��� �
�� �� ��. �� �� �� ���� ��� ��� ���� ��� ����
�� �� ���� � ����.
v �� ��� ������ ����
v �� �� ��, SELECT INTO� �� � ��� �� COMMIT(*NONE) �
� COMMIT(*CHG)� ��� �� ������
���� �� �� ������ ����� �� �� ��� ��� � ����.
��� �� ��� ��� 24 ���� ��� ���� COMMIT, ROLLBACK �
LOCK TABLE�� �����. �� ������ ��� �� �����.
COMMIT(*RR), COMMIT(*ALL), COMMIT(*CS) �� COMMIT(*CHG)� ��
� �� UPDATE��� �� 500 000 000 � �� �� ��� �
���. �� �� ��� ��� �� �� � ��� ���� �, � �
� �� �� �� ��.
UPDATE
� 5 � �� 811
|
|
|
|
|
|
|
REXX ����� �� UPDATE�� ��� ��� ��� � ����. � �,
UPDATE� �� ��� ��� PREPARE � EXECUTE� ������
���.
DATALINK � URL �� �� , �� DATALINK �� �� � ��
�� �� ����. �, �� �� �� ��� , �� �� ��� �
� ��. � ��, DATALINK �� �� �� � �� �� , ��� ��
�� � �� ��.
DATALINK � � �� � ���� URL �� ���(�� ��, DLVALUE
��� �� �� � ��� �� � �� �� �� ��� ���) ��
�� ��� ��� �� � ����. DATALINK � �(null)� �� ,
�� DATALINK �� �� �� ����.
�� ��� � �� � ��� � �� ������ ��� ��� ��
DATALINK �� ��� � � ��� �� � ����.
��� ���: �� � �� �� ��� ��� � ��� �����. �
� �� ���� ��� � ����.
v � � NONE� NC� �� ���� ��� � ����.
v � � CHG� UR� �� ���� ��� � ����.
v � � ALL� RS� �� ���� ��� � ����.
�
� 1EMPLOYEE �� �� ��(EMPNO) ‘000290’� ��(JOB)� ‘LABORER’� �
���.
UPDATE EMPLOYEESET JOB = ’LABORER’WHERE EMPNO = ’000290’
� 2PROJECT ��� �� ��(DEPNO) ‘D21’� ��� �� ����� �� ��
�� �� ��(PRSTAFF)� 1.5� �����.
UPDATE PROJECTSET PRSTAFF = PRSTAFF + 1.5WHERE DEPTNO = ’D21’
� 3��(WORKDEPT) ‘E21’� ���� ��� �� ��� ��� �������.
EMPLOYEE ��� ��� ��(JOB)� NULL� ��, �(SALARY, BONUS,
COMM)� 0�� �� �� �����.
UPDATE
812 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UPDATE EMPLOYEESET JOB=NULL, SALARY=0, BONUS=0, COMM=0WHERE WORKDEPT = ’E21’ AND JOB <> ’MANAGER’
� 4C ������ EMPLOYEE ����� �� ��� ��, ��� �� �� ���
��(JOB)� ��� �� ��� ��� ����.
void main (){EXEC SQL BEGIN DECLARE SECTION;char change[4];char newjob[20];EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA ;
EXEC SQL DECLARE C1 CURSOR FORSELECT *FROM EMPLOYEEFOR UPDATE OF JOB;
EXEC SQL OPEN C1;
EXEC SQL FETCH C1 INTO ... ;
getlist(change);if (strcmp(change, "YES") ){
EXEC SQL UPDATE EMPLOYEESET JOB = :newjob
WHERE CURRENT OF C1;}
EXEC SQL CLOSE C1;return;
}
UPDATE
� 5 � �� 813
VALUESVALUES�� ���� ��� �� � �� �� �����. �� ��� ��
� �� �� ��� � ����.
��
� ��� ��� ��� ����� ��� � ����.
����
row-subselect� ��� � subselect� ��� ����� ���� 335 ��
�� � 4 � ����� �����.
��
�
VALUES
� ��� � ��� �� �� � ���.
expression
127 ���� ������� ��� �� �� ���. ��� ��� �
�� � ��.
NULL
��� �����.
row-subselect
�� �� �� �� subselect subselect� ��� �� ��� ��� �
��. ��� � ��� �� ��� ��� � ��.
���� ��� �� �� � �� ��� ��� ����. ��� ��
�� ���� ��� ��� ��� �� �� �� ��. �� ��� � �
��
VALUES expressionNULL
,
( expression )NULL
row-subselect
��
VALUES
814 iSeries� DB2 UDB SQL ��� V5R2
� SQLCODE� �� ������ ���� �� ��� ��� ��� �
� �� *NONE�� ��� �� �� � ��� ��� ��� �� ����
�.
�
�
��� ��� � ��� �� � NEWEMP� ��� ��(after) ��
EMPISRT1� �����. � EMP� �� � ��� ��� �����. ��
� �� ��, � � ��� �� �� ��� ��� �� �� �����.
CREATE TRIGGER EMPISRT1AFTER INSERT ON EMPLOYEE
REFERENCING NEW AS NFOR EACH ROWMODE DB2SQL
BEGIN ATOMICVALUES( NEWEMP(N.EMPNO, N.LASTNAME, N.FIRSTNAME));END
VALUES
� 5 � �� 815
VALUES INTOVALUES INTO�� � �� ��� ��� ���� �� , � �� �� ��
� ��� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
� � �� �����.
����
row-subselect� ��� � subselect� ��� ����� ���� 335 ��
�� � 4 � ����� �����.
��
�
VALUES
� ��� � ��� �� �� � ���.
expression
��� ��� � �� �����. expression� 127 ���� ������
� ��� �� �� �����. ��� ��� � ��. ���
��� ��� ����.
NULL
��� ��� � �� ���� �����.
row-subselect
�� �� �� �� subselect �� �� � �� host-variable� �
� ��. subselect� ��� �� ��� ��� �� ��. ��� � �
�� �� ��� ��� � ��.
��
,
VALUES expression INTO host-variableNULL
,
( expression )NULL
row-subselect
��
VALUES INTO
816 iSeries� DB2 UDB SQL ��� V5R2
|
|
INTO
��� �� � ��� ��� ���� � ���. �� �� � �� �� ��
�� � �� ��� ��� ���, �� �� �� ��� ��� ��
� ���� �� �� ��� �� ��. � ��� 80 ���� ����
���� ��� ��� �� ������.
��� ��� �� �� ��� ���, � ‘W’� SQLCA� SQLWARN3 ��
� �� ��(871 ���� �� B �SQL � ��� ��). �� � ���
��� � �� �� �� ��� ����. � �� �(null)�
����� ��� ���� ���. �� ��� �� �� ��� ��
� �� � �� �� �� ��� ��� ����. ��� �� ��� ��
��� �� ����.
expression� �� ���� ��� �� subselect� SELECT ���� ���
��� ��(0�� �� �� ��(overflow)), �� �� ��� ��
��� ����. � �� �� ��� ����� ��� ���� �
��. ��� ��� �� ��� ����. � � � � ����� ���
-2� �� ��. ��� ��� �� �� �� ��� �� �
��(� � � ��� � SQLCODE� ���). ����� ��� ��
� ��� SQLCA� SQLCODE ��� �� �� � ��. ��� ��� �
� ��� �� ��� ��, ��� �� � � �� ��� ��� �� �
��� ����.
host-variable, ...
��� �� � ��� ��� � ��� ��� ����� ��� �
� ��� ��� ��� ��� ��� �����. � ��� ����
114 ���� ���� ��� �� ���� �����. INTO� �� ��
�� ��� ��� �� �� ��� �� ��� �� ��.
��� �� �� ��� ��� ��� �� ����. � � LOB ��
� �� ��� ��� ���� ���� ��� ��� ��� ��� � �
���.
��� ��� ��� ��� ��� ��� � �� ��� �� ��� 'W'�
SQLCA� SQLWARN1� �� ��. ����� ��� ��� ��� �� ��
� ��� ��� ��� ����� ��� � ��.
��� ��� ��� C NUL �� ��� ���� ��� NUL ���� ��� �
�� �� �� ��� �� ��.
v *CNULRQD ��� CRTSQLCI �� CRTSQLCPPI �� ��(��
CNULRQD(*YES) ��� SET OPTION�� ��)� ��� ����.
VALUES INTO
� 5 � �� 817
– ��� �� ��.
– ��� ��� NUL �����.
– � ‘W’� SQLCA� SQLWARN1� �� ��.
v *NOCNULRQD ��� CRTSQLCI �� CRTSQLCPPI �� ��(��
CNULRQD(*NO) ��� SET OPTION�� ��)� ��� ����.
– NUL ���� �� ����.
– � ‘N’� SQLCA� SQLWARN1� �� ��.
�
� 1CURRENT PATH �� ����� �� ��� �� HV1� �����.
EXEC SQL VALUES CURRENT PATH INTO :HV1;
� 2LOB ���� LOB1� CLOB �� ��� ��� �����. LOB ����� �
�� CLOB �� ��� ��� �� DETAILS� �����.
EXEC SQL VALUES (SUBSTR(:LOB1,1,35)) INTO :DETAILS;
VALUES INTO
818 iSeries� DB2 UDB SQL ��� V5R2
WHENEVERWHENEVER�� ��� �� ��� �� � �� ��� �����.
��
� ��� ������ ����� �� �� ����. � ��� ���� �
���. Java� REXX� ����� � ��. REXX�� ���� �� ���
SQL Programming with Host Languages �� �����.
����
��� ��� ����.
��
�� WHENEVER NOT FOUNDSQLERRORSQLWARNING
CONTINUEGOTO host-labelGO TO :
��
�
NOT FOUND, SQLERROR �� SQLWARNING�� �� ��� �� ��
� � �����.
NOT FOUND
SQLCODE +100 �� SQLSTATE '02000'� � �� ��� �����.
SQLERROR
�� SQLCODE� � �� ��� �����.
SQLWARNING
� ��(SQLWARN0� 'W')� � +100��� � SQLCODE ��
�� �� 01� SQLSTATE� � �� ��� �����.
CONTINUE �� GO TO�� ��� �� �� �� �� � ��� �� ��
� ��� � �����.
CONTINUE
�� ����� �� �� ��� �����.
GOTO �� GO TO host-label
host-label� ��� ��� �����. host-label� ��, ����� ���
� �� �� ��� �����. ��� ��� ��� �� �� ���
�. �� ��, COBOL ������ ��� section-name �� ���� ��
paragraph-name� � ����.
WHENEVER
� 5 � �� 819
|
|
|
WHENEVER��� �� � �� ��� ����.
WHENEVER NOT FOUND
WHENEVER SQLERROR
WHENEVER SQLWARNING
����� �� ����� �� SQL�� � ��� �� ��� �� ���
WHENEVER�� � �� ����. WHENEVER�� � � ������ �
�� � ��� ��� �� , �� ���� ��� ����.
SQL�� �� ������ SQL� � ��� � �� ��� WHENEVER
�� � �� ����. ��� �� WHENEVER�� SQL� � ��� �
� SQL�� CONTINUE� ��� �� ��� WHENEVER�� � �
� ����.
SQL� COBOL, C � RPG�� � ����� �����. � � SQL� ��
COBOL, C � RPG � �� ��� �� ��� �� ����. �, ���
� ���� � ����� � ��� ��� WHENEVER�� �� � ��
���� � ����. WHENEVER�� ��� �� � � �� ������
���� ���. �� �� ����� ��� WHENEVER�� ��� �� ��
��.
FORTRAN�� WHENEVER�� � � ��� ����� �� SQL��� �
� ��.
�
COBOL ����� �� ��� ��� � ��� �����.
1. ��� � ��� HANDLER �� � ��
EXEC SQL WHENEVER SQLERROR GOTO HANDLER END-EXEC.
2. �� � ��� � ��
EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC.
3. ��� �� ����� ��� �� �� �� ��� ENDDATA ��
� ��
EXEC SQL WHENEVER NOT FOUND GOTO ENDDATA END-EXEC.
WHENEVER
820 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
� 6 � SQL ���
���� SQL� ���� ��� �� ��� �� �� ���� ���
� ��� �� SQL���. SQL ���� � ��� ���, ��� � �
���, � � ��� �� � ��� ����. �� SQL ����� �� �
� SQL�� ��.
��
�� assignment-statementCALL-statementCASE-statementcompound-statementFOR-statementGET DIAGNOSTICS-statementGOTO-statementIF-statementITERATE-statementLEAVE-statementLOOP-statementREPEAT-statementRESIGNAL-statementRETURN-statementSIGNAL-statementWHILE-statement
��
���� SQL �����, SQL �, SQL ���� �� ��.
SQL ������ CREATE PROCEDURE��� LANGUAGE SQL � SQL �
�� ��� �� ��. SQL �� CREATE FUNCTION��� LANGUAGE
SQL � SQL ��� ��� �� ��. SQL ��� SQL ����� �� SQL
�� � � ����. SQL ��� CREATE TRIGGER�� SQL �� ���
��� �� ��.
SQL �� ��� �� SQL ��������� �� SQL ���� � ���
�.
SQL �� ��� �����, � �� ��� ����� ��� ������
���� �� ������ �� ������ �� ��. SQL ���� ���
��� � SQL� � SQL�� �� C �� ��� � �� �� �
(QTEMP/QSQLSRC)� �����. DBGVIEW(*SOURCE)� ��� , SQL�
�� �� � QTEMP/QSQDSRC� �� �� ��� �� �� ��� ���
��.
© Copyright IBM Corp. 1998, 2002 821
|
|
|
|
|
|
|
SQL ������ SQL ��� � CRTPGM �� ��� ����(*PGM) �
��� �� ��. SQL �� CRTSRVPGM �� ��� �� ����
(*SRVPGM) ���� �� ��. ���� �� �� ����� �����,
� �� �� ��� ��� �� ��� ���� �� ��� �� ��.
������ �� ����� ��� � ���� � SQL�� ������ �
� ����� � SQL� ��.
��� ����� �� �� SYSROUTINES � SYSPARMS ���� �� �
� , �� ��� SYSROUTINES�� ������ �� ��. SQL CALL��
��� ������ ��� �� SQL��� ��� � ��� ��� ��
��� �� ��. ��� SQL ��� SYSTRIGGER ���� �� �� ��.
� �� ��� ���� �� ��, �� ��, �� ��, SQL �� ��� ��
� ��� �� �� ����.
824 ���� �SQL �� � ��� �� ���� SQL �� � ���
� ��� ����. �� SQL ���� � � � ��� �� �� ��
� ��� ����.
v �� � � SQL ���
v 825 ���� �SQL ����� ���
SQL ��� �� � �� ��� �� ��� �����.
v 826 ���� �assignment��
v 828 ���� �CALL��
v 829 ���� �CASE��
v 831 ���� �compound��
v 845 ���� �IF��
v 838 ���� �FOR��
v 840 ���� �GET DIAGNOSTICS��
v 843 ���� �GOTO��
v 847 ���� �ITERATE��
v 849 ���� �LEAVE��
v 851 ���� �LOOP��
v 853 ���� �REPEAT��
v 855 ���� �RESIGNAL��
v 858 ���� �RETURN��
v 861 ���� �SIGNAL��
SQL ���
822 iSeries� DB2 UDB SQL ��� V5R2
|
|
v 864 ���� �WHILE��
SQL ���
� 6 � SQL ��� 823
SQL ���� � ��� �� ��
SQL �� � SQL ��� host-variable� ��� � �� SQL ����� �
� ����� ��� � ����.
SQL ��� �� ���� ��� � �� , ����� ��� � ����. SQL
��� �� ��� ���� ��� � �� , ��� ���� ��� �� ��
� ��� � ����.
�� SQL �� � SQL ��� �� � � ��� � ��. SQL ��� NOT
NULL� ����� �� � ����. SQL ��� �� SQL ��� SQL �
��� ���� ��� � �� �� ��� ��� � ����. �� ���
��, SQL ����, SQL ����� ��� � ����� ���� ��
�.
��� ��� �� �� ��� ��� � ���� �� SQL �� ��
��� ����� �����.
v SQL �� ��� ��� � � �� ��� ��� � ��� ��� �� �
��� �� ��. � � ��� � ���� ��� SQL ��� � ��
�� SQL �� ���� �� ��.
v ��� � �� �� ��� ��� � ��� ��� ��� �� SQL �� �
��� ��� �� SQL �� ���� �� ��. � ��� � �
� ��.
SQL ��� SQL ��� SQL ��� ��� �� SQL��� ��� ����
��� ��� � ����. ��� ��� �� �� ��� � ��� ���
�� SQL ��� SQL ��� ���� ��� �����.
v SET PATH � SET SCHEMA��� ��� SQL ����� SQL ����
� �� ��. SQL ��� SQL ����� � ��� ���� ��
��.
v CONNECT��� ��� ���� �� ��.
SQL �����, �, ��, SQL �� � SQL ��� ��� ���
‘SQL’� ����� � ��.
SQL ���� � ��
824 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SQL ����� ���
SQL ���� ��� SQL ��� �� � SQL�� ��� � ����. ��
��� SQL ����� ���� �� ��.
��
��(1)
SQL-control-statementALTER-statementCLOSE-statementCOMMENT-statementCOMMIT-statementCONNECT-statementCREATE ALIAS-statementCREATE DISTINCT TYPE-statementCREATE FUNCTION (External Scalar)-statementCREATE FUNCTION (External Table)-statementCREATE FUNCTION (Sourced)-statementCREATE INDEX-statementCREATE PROCEDURE (External)-statementCREATE SCHEMA-statementCREATE TABLE-statementCREATE VIEW-statementDECLARE GLOBAL TEMPORARY TABLE-statementDELETE-statementDISCONNECT-statementDROP-statementEXECUTE-statementEXECUTE IMMEDIATE-statementFETCH-statementGRANT-statementINSERT-statementLABEL-statementLOCK TABLE-statementOPEN-statementPREPARE-statementRELEASE-statementRENAME-statementREVOKE-statementROLLBACK-statementSELECT INTO-statementSET CONNECTION-statementSET PATH-statementSET RESULT SETS-statementSET SCHEMA-statementSET TRANSACTION-statementUPDATE-statement
��
�:
1 COMMIT, ROLLBACK, CONNECT, DISCONNECT, SET CONNECTION
� SET RESULT SETS�� SQL �������� �� ��. SET
TRANSACTION�� SQL ������ ���� �� ��.
SQL ����� ���
� 6 � SQL ��� 825
|
|
||||||
assignment�
assignment�� SQL �� �� SQL ��� �� �����.
��
��label:
SET assignment-clause ��
�
label
���� ��� �����. SQL �, SQL ����� �� SQL �� ��
� �� � ��� �� � ��� SQL �, SQL ����� �� SQL
��� ��� �� � ����.
SQL-parameter-name
� � ��� SQL � �� � ��� � . SQL � � � CREATE
PROCEDURE �� CREATE FUNCTION�� �� �� ���� ��
�.
SQL-variable-name
�� ��� SQL ��� �����. SQL ��� ����� ��� �
� ����.
��� �� NULL
�� ��� � ����� �� �����.
DEFAULT
�� ��� ��� � �� ��� �� ��� ��� �����. ��� �
� ��� �� SQL ����� ��� � ����.
assignment�:
��
,
SQL-parameter-name = expressionSQL-variable-name NULL
DEFAULT, ,
( SQL-parameter-name ) = ( expression )SQL-variable-name NULL
DEFAULTrow-subselect
��
assignment�
826 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
row-subselect
�� �� �� �� subselect �� �� �� SQL ��� ��� �
� ��. subselect� ��� �� ��� ��� �� ��. ��� � ���
�� ��� ��� � ��.
���� SQL �� ��� ��� ���. �� ��� 80 ���� ���� ���
�����.
��� ��� �� �� ��� � ��� ���.
���� �� �� ��� ���, ��� ��� ��� �� ��� ��
���� ���� ��� �� 1 ��, 2 �� �� UCS-2 ��� � ���.
���� ��� ��� ���� ��� �� ��� � �� SQLCODE�
�� ��.
��� ��� ��� ���� �� ��� ��� �� ��� �� ��.
� �� ��� �� � �� ��� �� �� SQLCODE� �� ��.
��� �� ����(PATH �)� ��� ��� ID� �� , ��� ��
� �� ����� ������ ���� ���(�� ��, ��� �� �� PATH
� SET ″PATH″ = 1).
�� ��� ���� ��� ��� ��� ��� ����� ��� � ���
�. � SQLCODE� SQLSTATE� ���� ����.
SQL ���� �� ��: IN ��� ���� �� �� ���� ��� � �
���. ��� ���� ����, IN ��� � �� �� ��. OUT
��� ���� �� �� ���� ��� � ����. � �� ��� �� �
�� , �� ��� ����. ��� ���� ����, OUT ��� ��
� ��� �� ���� �����. OUT ��� , ��� � �� ��
���� �� �� ��� ��� ��� �� ���� �����.
�
SQL �� p_salary� 10% �����.
SET p_salary = p_salary + (p_salary * .10)
SQL �� p_salary� ���� �����.
SET p_salary = NULL
assignment�
� 6 � SQL ��� 827
|
|
|
|
|
|
|
|
|
CALL�
CALL�� ������ �����. 400 ���� �CALL�� �����.
��
�� CALLlabel:
procedure-name
( ),
SQL-variable-nameSQL-parameter-nameconstantNULLspecial-register
��
�
label
CALL�� �� � �����. SQL �, SQL ����� �� SQL ��
��� �� � ��� �� � ��� SQL �, SQL ����� �
� SQL ��� ��� �� � ����.
procedure-name
��� ������ �����. procedure-name� �� ��� �� �����
� ���� ���.
SQL-variable-name�� SQL-parameter-name �� �� �� NULL ��
special-register
������ ��� ��� � ���� �����.
��� OUT �� INOUT ��� SQL �� �� SQL ��� ���
� ���.
��� �� �� �� ������ �� ��� �� �� ���� ���.
������ �� ����� �� �� ������ ������ �� ��. ��
��� ��� �� ����� ��� �� SQL ����� ��� �� �� �
������� ��� ��� �� ������� �����. ������ ��
�� ����, �� ����� ���� � ��� �� ��.
��� ��� 400 ���� �CALL�� �����.
�
����� proc1� ��� SQL ��� ��� �����.
CALL proc1(v_empno, v_salary)
CALL
828 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
CASE�
CASE�� �� ��� ���� �� �� �����.
��
�� CASElabel:
simple-when-clausesearched-when-clause else-clause
END CASE ��
simple-when�:
expression WHEN expression THEN SQL-procedure-statement ;
searched-when�:
WHEN search-condition THEN SQL-procedure-statement ;
else�:
ELSE SQL-procedure-statement ;
�
label
CASE�� �� � �����. SQL �, SQL ����� �� SQL ��
��� �� � ��� �� � ��� SQL �, SQL ����� �
� SQL ��� ��� �� � ����.
simple-when�
� �� WHEN � � � expresseion �� WHEN � � ��� �
expression ��� ��� ��� ��� ��. �� ��� THEN�� ��
��. ��� � � �� �� �� �� � � ��. ��� �
�� ��� �� ELSE�� �� , ELSE�� ��� � ��.
searched-when�
WHEN � � ��� search-condition� �� ��. ��� ���, �� THEN
�� ��� � � � . ��� ��� � � � � , ��
search-condition� �� ��. search-condition� ��� ��� �� ELSE
�� �� , ELSE�� ��� � ��.
CASE
� 6 � SQL ��� 829
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else-clause
simple-when-clause �� searched-when-clause� �� ��� ��� �
��, else-clause� ��� �� ��.
WHEN� ��� ��� �� �� ��� ELSE�� ��� �� ��
� ��� �� CASE� ��� �� ��(SQLSTATE 20000).
SQL-PROCEDURE�
���� � ��� �����. 825 ���� �SQL ����� ����
�����.
CASE�� ��� �� �� ��� ���� �����.
CASE� ��: simple-when-clause� ��� CASE�� �� 3���� ��
� ����. searched-when-clause� ��� CASE�� � �� ��� ���
����.
�
SQL �� v_workdept �� ��, � DEPARTMENT� DEPTNAME � ���
���� ����.
�� �� simple-when-clause� �� ��� ��� �� ��� ��� ���
��.
CASE v_workdeptWHEN ’A00’THEN UPDATE department SET
deptname = ’DATA ACCESS 1’;WHEN ’B01’THEN UPDATE department SET
deptname = ’DATA ACCESS 2’;ELSE UPDATE department SET
deptname = ’DATA ACCESS 3’;END CASE
�� �� simple-when-clause� �� ��� ��� �� ��� ��� ���
��.
CASEWHEN v_workdept = ’A00’
THEN UPDATE department SETdeptname = ’DATA ACCESS 1’;
WHEN v_workdept = ’B01’THEN UPDATE department SET
deptname = ’DATA ACCESS 2’;ELSE UPDATE department SET
deptname = ’DATA ACCESS 3’;END CASE
CASE
830 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
compound�
���� SQL ���� �� ��� � ������. ��� ��� SQL ��,
�� � �� � �� � ����.
��
��label:
BEGINNOT ATOMIC
ATOMIC�
�
SQL-variable-declaration ;condition-declarationreturn-codes-declaration
�
�
DECLARE CURSOR-statement ; handler-declaration ;
�
� SQL-procedure-statement ; ENDlabel
��
SQL-variable-declaration:
DECLARE
,
SQL-variable-name �
�DEFAULT NULL
data-typeDEFAULT constant
(1)NOT NULL
condition-declaration:DECLARE condition-name �
�
VALUESQLSTATE
CONDITION FOR string-constant
compound�
� 6 � SQL ��� 831
return-codes-declaration:
DECLAREDEFAULT ’00000’
SQLSTATE CHARACTER(5)CHAR(5) DEFAULT string-constant
DEFAULT 0SQLCODE INTEGER
INT DEFAULT integer-constant
handler-declaration:
DECLARE CONTINUEEXITUNDO
HANDLER FOR(2)
specific-condition-valuegeneral-condition-value
�
� SQL-procedure-statement
specific-condition-value:
,VALUE
SQLSTATE stringcondition-name
general-condition-value:SQLEXCEPTIONSQLWARNINGNOT FOUND
data-type:built-in-typedistinct-type-name
�:
1 DEFAULT � NOT NULL�� �� ���� ��� � ����.
2 specific-condition-value � general-condition-value� ��� �� �� �
�� � ����.
compound�
832 iSeries� DB2 UDB SQL ��� V5R2
�
label
�� �� �� �� � �����. SQL �, SQL ����� �� SQL
built-in-type:SMALLINTINTEGERINTBIGINT
( 5,0 )DECIMALDEC ( integer )
NUMERIC , integer( 53 )
FLOAT( integer )
REALPRECISION
DOUBLE( 1 )
CHARACTERCHAR ( integer ) FOR BIT DATA
CHARACTER VARYING ( integer ) FOR SBCS DATACHAR FOR MIXED DATA
VARCHAR CCSID integer( 1M )
CLOBCHAR LARGE OBJECT ( integer ) FOR SBCS DATACHARACTER LARGE OBJECT K FOR MIXED DATA
M CCSID integerG
( 1 )GRAPHIC
( integer ) CCSID integerGRAPHIC VARYING ( integer )VARGRAPHIC
( 1M )DBCLOB
( integer )KMG( 1M )
BLOBBINARY LARGE OBJECT ( integer )
KMG
DATETIMETIMESTAMP
( 200 )DATALINK
( integer ) CCSID integerROWID
compound�
� 6 � SQL ��� 833
|||||
�� ��� �� � ��� �� � ��� SQL �, SQL ���
�� �� SQL ��� ��� �� � ����. �� �� � ��� � �
� � ����� �� SQL ��� ��� � ��� � �� , LEAVE�
�� ��� �� ����.
�� �� � ��� �� �� � ���� ���.
ATOMIC �� NOT ATOMIC
ATOMIC� ����� ��� ���, ���� �� SQL�� �����
�����. ATOMIC� ��� COMMIT �� ROLLBACK�� �����
��� � ����(ROLLBACK TO SAVEPOINT� ��� � ����).
NOT ATOMIC� ��� �� ��� �� ���� ��� ��� ����
�. NOT ATOMIC� SQL ��� �� ���� ��� , ATOMIC��
� ��.
SQL-variable-declaration
���� �� ��� ����.
SQL-variable-name
�� ���� �����. ������ ���� ��� �� �� SQL �
��� ���� �����. SQL-variable-name� compound-statement �
�� ��� ���(compound-statement� �� compound-statements�
� ��). SQL ���� ���� SQL ���� ����� � �
�. ��� ��� ��� � �� SQL ���� ��� ���
���� 824 ���� �SQL �� � ��� �� ���� ����
�. ���� ‘SQL’� ����� � ��.
SQL-variable-name� �� compound-statement ���� ��� � ��
��(compound-statement �� �� compound-statements ).
data-type
��� �� �� �����. �� �� �� ��� 541 ����
�CREATE TABLE�� �����.
data-type� � �� �� , CCSID 13488� ��� UCS-2 �
�� ������. CCSID� ��� ���� � ��� ���
CCSID� ��� �� �� DBCS CCSID��.
DEFAULT �� �� NULL
SQL ��� �� ��� �� �����. ��� SQL �����, SQL
� �� SQL ��� ��� � ��� ��. ��� �� ��� ���,
SQL ��� NULL� ��� ��.
NOT NULL
SQL ��� NULL �� ���� �� �����. NOT NULL� ���
� �(null)� � � ��� �����.
compound�
834 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
condition-declaration
��� � ��� SQLSTATE �� ����.
condition-name
���� �����. ���� compound-statement ��� ��� ���
(compound-statement� �� compound-statements� � ��).
condition-name� �� compound-statement ���� ��� � ����
(compound-statement �� �� compound-statements ).
FOR SQLSTATE string-constant
� ��� ��� SQLSTATE� �����. ��� ��� 5 ��� ��
�� , ‘00000’� � � ����.
return-codes-declaration
SQL�� ��� � �� SQL � ��� ���� ��� SQLSTATE �
SQLCODE�� � �� ��� ����. SQLSTATE � SQLCODE ��
� SQL �����, SQL � �� SQL ��� ��� compound-statement
��� �� � ����.
� ���� ��� � ����. � �, �� SQL�� ��� �� ��� �
�� ��� �� ����. SQLCODE � SQLSTATE ��� NULL� �
�� � ����.
SQLCODE � SQLSTATE ��� �� �� ��� ��� ��� �� SQL
��� �� ���� ���. SQLSTATE� �� �� � ��� , ��
SQL �������� �� ��� ��� �� � ��� �� � � ��
����� ���.
declare-CURSOR�
��� �����. ���� compound-statement ��� ��� ���
(compound-statement� �� compound-statements� � ��).
cursor-name� �� compound-statement ���� ��� � ����
(compound-statement �� �� compound-statements ).
��� �� OPEN�� ���, ��� ��� �� ���� FETCH��
�����. declare-cursor-statement� SQL ������ �� CLOSE��
��� ��� ������ ��� � RESULT SET� ��� �� ,
compound-statement� ��� ��� ����. ��� ��� 598 ����
�DECLARE CURSOR�� �����.
handler-declaration
handler, � ���� �� �� �� ��� ��� � ��� SQL ����
��� �����. ��� �� � �� �� �� �� � ����.
compound�
� 6 � SQL ��� 835
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CONTINUE
�� �� � ����� ��� ��� ��� ��� SQL� ��� SQL
��� � ��. IF, CASE, WHILE �� REPEAT�� � �� �
� ��� �� ��� �� END IF, END CASE, END WHILE ��
END REPEAT ��� ���� � ��.
EXIT
�� �� � ����� ��� ��� �� � �� ���� ���
� ��.
UNDO
compound-statement� �� ���� ��� �� � �����. ��
�� � � � ���, ��� compound-statement ��� � ��.
UNDO� ��� ATOMIC� ���� ���.
UNDO� SQL � �� SQL ��� �� compound-statement� ��
� � ����.
�� � ��� ��� ��� ����.
SQLSTATE ���
�� SQLSTATE ��� �� �� � ���� ����� .
SQLSTATE� ‘00000’� � � ����.
condition-name
��� �� �� � � ��� � ��� � . ���� ���
condition-declaration� ���� ���.
SQLEXCEPTION
S Q L E X C E P T I O N� �� �� � � ��� � ��� � .
SQLEXCEPTION� �� �� ″00″, ″01″ � ″02″� � SQLSTATE �
� �����.
SQLWARNING
SQLWARNING� �� �� � ���� �����. SQLWARNING
� �� �� ″01″� SQLSTATE �� �����.
NOT FOUND
NOT FOUND ��� �� �� � ���� �����. NOT
FOUND� �� �� ″02″� SQLSTATE �� �����.
handler-declaration� ��� ��� � �� ���� ���.
handler-declaration� ��:
v ��� ��� �� �� �� �� ��� � � ����.
compound�
836 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
v �� �� ��� �� � �� SQLSTATE �� � � �� � � ��
, ��� SQLSTATE �� ��� SQLSTATE � � ���� � � �
���. SQLSTATE � ���� ��� ��� SQL ��� � �� ��
���.
v �� � �� �� �� ��� �� �� ��� �� � � �� ��.
�� ��� �� � �� �� �� ��� SQLSTATE� �� ��� ��
� compound-statement� ��� �� (�� �� �� ��� ��)��. ��
��, SQLEXCEPTION� �� � ��� SQLSTATE 22001� �� � ��
� , SQLSTATE 22001� �� � SQLSTATE 22001� �� � ��
��� �� ��. �� � �� ��� ��, compound-statement �
�� �� ��. �� � �� � �� �� ��� ��, �� ��
�� �� � ��.
�
�� �� SQL ����� PROC1� �����. ������ �� ��� ���
��. ���� SQL ��, SQLSTATE ‘02000’� �� ��, � �� � �
���� ����. WHILE�� FETCH��� ��� ���. �� �, ‘02000’
��� �� �� � ��� SQL �� at_end� 1� �� ��. �� ��
��� ��, at_end� ��� 0� ��� ��� WHILE ���� ����.
CREATE PROCEDURE PROC1 () LANGUAGE SQLBEGIN
DECLARE v_firstnme VARCHAR(12);DECLARE v_midinit CHAR(1);DECLARE v_lastname VARCHAR(15);DECLARE v_edlevel SMALLINT;DECLARE v_salary DECIMAL(9,2);DECLARE at_end INT DEFAULT 0;DECLARE not_found
CONDITION FOR SQLSTATE ’02000’;DECLARE c1 CURSOR FORSELECT firstnme, midinit, lastname,
edlevel, salaryFROM employee;
DECLARE CONTINUE HANDLER FOR not_foundSET at_end = 1;
OPEN c1;FETCH c1 INTO v_firstnme, v_midinit,
v_lastname, v_edlevel, v_salary;WHILE at_end = 0 DO
FETCH c1 INTOv_firstname, v_midinit,
v_lastname, v_edlevel, v_salary;END WHILE;CLOSE c1;END
compound�
� 6 � SQL ��� 837
|
|
|
|
|
|
|
|
|
|
|
|
FOR�
FOR� �� � �� �� ��� �����.
��
��label:
FORSQL-variable-name
AS cursor-name CURSOR FOR �
� select-statement DO SQL-procedure-statement ; END FORlabel
��
�
label
�� �� �� �� � �����. SQL �, SQL ����� �� SQL
�� ��� �� � ��� �� � ��� SQL �, SQL ���
�� �� SQL ��� ��� �� � ����.
�� �� � ��� �� �� � ���� ���.
SQL-variable-name
SQL-variable-name� � �� ��� � �� � �� � �� � � .
SQL-variable-name� SQL �, SQL ����� �� SQL �� �� ��
� �� � �� , SQL-variable-name� ��� SQL �, SQL �����
�� SQL ��� ��� �� � ����. SQL-variable-name �� label�
��� �� �� �� SQL ���� ��� � ����.
SQL-variable-name� ��� , �� ��� SQL �, SQL ����� �
� SQL ��� ���� � ��� �� SQL ��� ��� � ����.
cursor-name
��� �����. ��� �� �� ���� �� ��.
select�
��� ���� �����.
�� ���� � ���� ��� ��� ���. ���� �� ��� �
, AS�� ��� ���� ��� ���� ���. AS�� ��� �
� ��� ��� �� �� ��� ���.
FOR
838 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SQL-PROCEDURE�
�� � �� �� ��� SQL�. SQL�� FOR��� �� � ���
LEAVE�� � � �� , FOR�� ���� ��� OPEN, FETCH �
� CLOSE� ��� � ��.
FOR�� �� � �� �� � �� �� ��� �����. ��� ���
� �� ��� �� ���� ��� �� ��. FOR� �� ��� ���
� �� �� �� ��.
�� ���� �� ����� ����� , �, ����� �� ��
� ��� � �� ���� ��� �� ��� ���.
FOR��� ��� ��� FOR� ��� ��� � �� , OPEN, FETCH ��
CLOSE��� ��� � ����.
�
� ��� FOR�� employee ��� � � � ��� ��� ��� �
�� ��. ��� �� �� ��, SQL �� fullname� �, ��, �� � ��
����� �� ��� ��� �� ��. fullname� �� � �� � TNAMES� �
��.
BEGINDECLARE fullname CHAR(40);FOR vl AS
c1 CURSOR FORSELECT firstnme, midinit, lastname FROM employeeDOSET fullname =
lastname || ’, ’ || firstnme ||’ ’ || midinit;INSERT INTO TNAMES VALUE ( fullname );
END FOR;END;
FOR
� 6 � SQL ��� 839
GET DIAGNOSTICS�
GET DIAGNOSTICS�� ��� �� SQL�� �� ��� ����.
��
��
,
GET DIAGNOSTICS SQL-variable-name = ROW_COUNTlabel: SQL-variable-name = RETURN_STATUS
condition-information
��
condition-information:
EXCEPTION 1
,
SQL-variable-name = MESSAGE_TEXTSQL-variable-name = MESSAGE_LENGTHSQL-variable-name = MESSAGE_OCTET_LENGTH
�
label
GET DIAGNOSTIC�� �� � �����. SQL �, SQL ����� ��
SQL �� ��� �� � ��� �� � ��� SQL �, SQL �
���� �� SQL ��� ��� �� � ����.
SQL-variable-name
�� ��� SQL �� �� SQL ��� �����. MESSAGE_TEXT�
��� ��� CHAR �� VARCHAR��� ���. ��� ��� SQL
��� �� ���� ���.
ROW_COUNT
��� �� SQL�� ��� � �� �����. �� SQL�� DELETE,
INSERT �� UPDATE�� ROW_COUNT� ��� �� ��� ��
��� �� �� �� �� ��� �� ��� �� �, � �� ��
� �� �����. �� ��� PREPARE�� ROW_COUNT� �
� ��� �� �� �� �� �� �����.
RETURN_STATUS
��� SQL CALL��� �� �� �� �����. �� ��� CALL�
� � �� ��� ��� �� ��� � ����. ��� ��� 858
���� �RETURN��� �����.
condition-information
�� SQL�� �� ��� � ��� �� ��� �����.
GET DIAGNOSTICS
840 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
�� ��� ��� GET DIAGNOSTICS�� ��� �� �� � "
� ���� ���.
� ��� ��� � ��� �� ���.
v �� � � ��� ��� � �� � GET DIAGNOSTICS�� "
� ���� ���.
v �� � � ��� ��� �� GET DIAGNOSTICS�� �� �
� ��� ��� ��� �� ���.
MESSAGE_TEXT
��� �� SQL����� �� ��� � ��� ���� �����.
��� SQL�� SQLCODE 0� ��� � ����� ��� �
��. ��� ���� SQL-variable-name� �� ��� � , ��
�� ����.
MESSAGE_LENGTH �� MESSAGE_OCTET_LENGTH
��� �� SQL����� �� ��� � ��� ��� ��� ���
��. ��� SQL�� SQLCODE 0�� ��� �� 0� � ��.
GET DIAGNOSTICS�� �� ��(SQLCA)� ��� �� ����. SQLSTATE
�� SQLCODE �� ��� SQL �����, SQL � �� SQL ��� �
� , GET DIAGNOSTICS�� ��� �� SQLSTATE �� SQLCODE
� �� ��.
�
SQL ������� GET DIAGNOSTICS�� ��� ��� �� �� ��
�� �����.
CREATE PROCEDURE sqlprocg (IN deptnbr VARCHAR(3)) LANGUAGE SQLBEGIN
DECLARE SQLSTATE CHAR(5);DECLARE rcount INTEGER;UPDATE CORPDATA.PROJECT
SET PRSTAFF = PRSTAFF + 1.5WHERE DEPTNO = deptnbr;
GET DIAGNOSTICS rcount = ROW_COUNT;/* At this point, rcount contains the number of rows that were updated. */
END;
SQL ����� ���, �� ����� TRYIT� ��� �� �� �� �
���. TRYIT� RETURN�� ��� ���� ����� �� � �� ,
������ �� ����� ���� ����� �� � ����. ������
���, 0 �� ����.
CREATE PROCEDURE TESTIT ()LANGUAGE SQL
A1: BEGIN
GET DIAGNOSTICS
� 6 � SQL ��� 841
|
|
|
|
|
|
|
|
|
|
|||
DECLARE RETVAL INTEGER DEFAULT 0;...CALL TRYITGET DIAGNOSTICS RETVAL = RETURN_STATUS;IF RETVAL <> 0 THEN
...LEAVE A1;
ELSE...END IF; END A1
SQL ������� GET DIAGNOSTICS�� ��� �� ��� ���� ��
���.
CREATE PROCEDURE divide2 ( IN numerator INTEGER,IN denominator INTEGER,
OUT divide_result INTEGER,OUT divide_error VARCHAR(70) )
LANGUAGE SQLBEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTIONGET DIAGNOSTICS EXCEPTION 1divide_error = MESSAGE_TEXT;SET divide_result = numerator / denominator;
END;
GET DIAGNOSTICS
842 iSeries� DB2 UDB SQL ��� V5R2
||||||||||
|
GOTO�
GOTO�� SQL �� �� SQL ���� ��� �� �� � ��� � ��
��.
��
�� GOTO label2label1:
��
�
label1
�� �� �� �� � �����. SQL �, SQL ����� �� SQL
�� ��� �� � ��� �� � ��� SQL �, SQL ���
�� �� SQL ��� ��� �� � ����.
label2
�� �� �� � ��� �����. �� � ��� GOTO�� ��
� � ��� ���.
v GOTO�� FOR�� ��� �� � �� FOR�� ��� �� FOR
� �� ���� ���.
v GOTO�� FOR� ��� ��� �� � FOR� �� �����
� ��.
v GOTO�� �� � ��� �� � �� �� �� ���� ��
�.
v GOTO�� �� ��� ��� �� � �� ��� ����� �
��.
label2� GOTO�� ��� � �� � � ��� �� , ��� � �
�.
GOTO�� � ��� �� �����. � ��� ���� � ��� �
��� ��� �� ���� � �� ���. IF� LEAVE� �� �� �
�� GOTO� � ���� ���.
GOTO
� 6 � SQL ��� 843
|
|
|
|
|
|
�
�� ���� �� rating � v_empno� ������ �� ��. �� ��
� �� �� return_parm� � ���� � ��. � ���� ��� ��
� 6 � ��� GOTO�� ��� ����� ��� �� �� new_salary
� �� ����.
CREATE PROCEDURE adjust_salary (IN v_empno CHAR(6),IN rating INTEGER,OUT return_parm DECIMAL(8,2))
LANGUAGE SQLMODIFIES SQL DATA
BEGINDECLARE new_salary DECIMAL(9,2);DECLARE service DECIMAL(8,2);
SELECT salary, current_date - hiredateINTO new_salary, serviceFROM employeeWHERE empno = v_empno;
IF service < 600THEN GOTO exit1;
END IF;IF rating = 1THEN SET new_salary =
new_salary + (new_salary * .10);ELSEIF rating = 2THEN SET new_salary =
new_salary + (new_salary * .05);END IF;UPDATE employee
SET salary = new_salaryWHERE empno = v_empno;
exit1: SET return_parm = service;END
GOTO
844 iSeries� DB2 UDB SQL ��� V5R2
IF�
IF�� �� ��� ��� �� �� �� SQL� ��� �����.
��
�� IFlabel:
search-condition THEN SQL-procedure-statement ; �
�
ELSEIF search-condition THEN SQL-procedure-statement ;
�
�
ELSE SQL-procedure-statement ;
END IF ��
�
label
IF�� �� � �����. SQL �, SQL ����� �� SQL �� ��
� �� � ��� �� � ��� SQL �, SQL ����� �� SQL
��� ��� �� � ����.
search-condition
SQL�� ���� � search-condition� �����. ��� � � ��
�� �� �� �� �� ELSE�� � � ��.
SQL-PROCEDURE�
� search-condition� �� ���� � SQL�� �����.
�
�� SQL ������ IN ��� �� ��� �� �� ����. rating
�� ��, �� �� � � ��� � � ��� � ��.
CREATE PROCEDURE UPDATE_SALARY_IF(IN employee_number CHAR(6), INOUT rating SMALLINT)LANGUAGE SQL
MODIFIES SQL DATABEGIN
DECLARE not_found CONDITION FOR SQLSTATE ’02000’;DECLARE EXIT HANDLER FOR not_found
SET rating = -1;
IF
� 6 � SQL ��� 845
|
|
|
|
|
|
IF rating = 1THEN UPDATE employeeSET salary = salary * 1.10, bonus = 1000WHERE empno = employee_number;
ELSEIF rating = 2THEN UPDATE employeeSET salary = salary * 1.05, bonus = 500WHERE empno = employee_number;
ELSE UPDATE employeeSET salary = salary * 1.03, bonus = 0WHERE empno = employee_number;
END IF;END
IF
846 iSeries� DB2 UDB SQL ��� V5R2
ITERATE�
ITERATE�� �� � ��� �� �� ���� �� ��� ��� ���.
��
�� ITERATElabel1:
label2 ��
�
label1
�� �� �� �� � �����. SQL �, SQL ����� �� SQL
�� ��� �� � ��� �� � ��� SQL �, SQL ���
�� �� SQL ��� ��� �� � ����.
label2
������ ���� �� ��� ��� FOR, LOOP, REPEAT �� WHILE
�� �� � �����.
�
� ����� ��� ��� � ��� �� ��� ����. not_found �� �
� � ���, �� ��� ��� �����. v_dept� �� ‘D11’� ,
ITERATE�� �� ��� LOOP�� " � �� ����. ���, � ��
DEPARTMENT �� � ��.
CREATE PROCEDURE ITERATOR ()LANGUAGE SQL
MODIFIES SQL DATABEGIN
DECLARE v_dept CHAR(3);DECLARE v_deptname VARCHAR(29);DECLARE v_admdept CHAR(3);DECLARE at_end INTEGER DEFAULT 0;DECLARE not_found CONDITION FOR SQLSTATE ’02000’;DECLARE c1 CURSOR FORSELECT deptno,deptname,admrdeptFROM departmentORDER BY deptno;
DECLARE CONTINUE HANDLER FOR not_foundSET at_end = 1;
OPEN c1;ins_loop:LOOP
FETCH c1 INTO v_dept, v_deptname, v_admdept;IF at_end = 1 THENLEAVE ins_loop;ELSEIF v_dept =’D11’ THEN
ITERATE ins_loop;END IF;
ITERATE
� 6 � SQL ��� 847
|
|
|
INSERT INTO department (deptno,deptname,admrdept)VALUES(’NEW’, v_deptname, v_admdept);
END LOOP;CLOSE c1;END
ITERATE
848 iSeries� DB2 UDB SQL ��� V5R2
LEAVE�
LEAVE� � �� ��� ��� � �����.
��
�� LEAVElabel1:
label2 ��
�
label1
�� �� �� �� � �����. SQL �, SQL ����� �� SQL
�� ��� �� � ��� �� � ��� SQL �, SQL ���
�� �� SQL ��� ��� �� � ����.
label2
�� compound, FOR, LOOP, REPEAT �� WHILE�� �����.
LEAVE�� ��� ��� ��� ���, �� ��� �� � ��� ��
� ��� ����� � �� �� ��� ����.
�
��� c1 ��� �� ��� ��� ��� ��. SQL �� at_end� ��
0� ���, LEAVE�� ��� �� ��� �����.
CREATE PROCEDURE LEAVE_LOOP (OUT COUNTER INTEGER)LANGUAGE SQL
BEGINDECLARE v_counter INTEGER;DECLARE v_firstnme VARCHAR(12);DECLARE v_midinit CHAR(1);DECLARE v_lastname VARCHAR(15);DECLARE at_end SMALLINT DEFAULT 0;DECLARE not_found CONDITION FOR SQLSTATE ’02000’;
DECLARE c1 CURSOR FORSELECT firstnme, midinit, lastnameFROM employee;
DECLARE CONTINUE HANDLER FOR not_foundSET at_end = 1;
SET v_counter = 0;OPEN c1;
fetch_loop:LOOPFETCH c1 INTO v_firstnme, v_midinit, v_lastname;IF at_end <> 0 THEN
LEAVE fetch_loop;END IF;
LEAVE
� 6 � SQL ��� 849
|
|
|
SET v_counter = v_counter + 1;END LOOP fetch_loop;
SET counter = v_counter;CLOSE c1;END
LEAVE
850 iSeries� DB2 UDB SQL ��� V5R2
LOOP�
LOOP�� �� �� �� ��� ��� �����.
��
��label:
LOOP SQL-procedure-statement ; END LOOPlabel
��
�
label
LOOP�� �� ��. SQL �, SQL ����� �� SQL �� ���
�� � ��� �� � ��� SQL �, SQL ����� �� SQL
��� ��� �� � ����. �� �� � ��� LEAVE���
��� � ����.
�� �� � ��� �� �� � ���� ���.
SQL-procedure statement
���� ��� SQL�� �����.
�
� ������ LOOP�� ��� �� ��� �� �����. ��� ��� �
��, OUT �� counter� � v_midinit �� �� ��(‘ ’)� �� �
� ��. v_midinit� �� ��� , LEAVE�� �� ��� �� ��� �
����.
CREATE PROCEDURE LOOP_UNTIL_SPACE (OUT COUNTER INTEGER)LANGUAGE SQL
BEGINDECLARE v_counter INTEGER DEFAULT 0;DECLARE v_firstnme VARCHAR(12);DECLARE v_midinit CHAR(1);DECLARE v_lastname VARCHAR(15);
DECLARE c1 CURSOR FORSELECT firstnme, midinit, lastnameFROM employee;
DECLARE CONTINUE HANDLER FOR NOT FOUNDSET counter = -1;OPEN c1;
fetch_loop:LOOPFETCH c1 INTO v_firstnme, v_midinit, v_lastname;IF v_midinit = ’ ’ THEN
LEAVE fetch_loop;END IF;
SET v_counter = v_counter + 1;
LOOP
� 6 � SQL ��� 851
|
|
|
|
|
|
END LOOP fetch_loop;SET counter = v_counter;CLOSE c1;END
LOOP
852 iSeries� DB2 UDB SQL ��� V5R2
REPEAT�
REPEAT�� �� ��� �� �� �� �� ��� �����.
��
��label:
REPEAT SQL-procedure-statement ; �
� UNTIL search-condition END REPEATlabel
��
�
label
REPEAT�� �� ��. SQL �, SQL ����� �� SQL �� ��
� �� � ��� �� � ��� SQL �, SQL ����� �� SQL
��� ��� �� � ����. �� �� � ��� �� �� �
LEAVE��� ��� � ����.
�� �� � ��� �� �� � ���� ���.
SQL-PROCEDURE�
REPEAT ���� ��� SQL�� �����.
search-condition
search-condition� REPEAT �� �� �� �� ��. ��� �� ,
REPEAT ��� �� ��. ��� � � �� �� �� �� �
��.
�
REPEAT�� not_found �� �� � ��� ��� ��� �� �����.
CREATE PROCEDURE REPEAT_STMT (OUT COUNTER INTEGER)LANGUAGE SQL
BEGINDECLARE v_counter INTEGER DEFAULT 0;DECLARE v_firstnme VARCHAR(12);DECLARE v_midinit CHAR(1);DECLARE v_lastname VARCHAR(15);DECLARE at_end SMALLINT DEFAULT 0;DECLARE not_found CONDITION FOR SQLSTATE ’02000’;
DECLARE c1 CURSOR FORSELECT firstnme, midinit, lastnameFROM employee;
DECLARE CONTINUE HANDLER FOR not_found
REPEAT
� 6 � SQL ��� 853
|
|
|
|
|
|
SET at_end = 1;OPEN c1;
fetch_loop:REPEAT
FETCH c1 INTO v_firstnme, v_midinit, v_lastname;SET v_counter = v_counter + 1;UNTIL at_end > 0
END REPEAT fetch_loop;SET counter = v_counter;CLOSE c1;END
REPEAT
854 iSeries� DB2 UDB SQL ��� V5R2
RESIGNAL�
RESIGNAL�� �� �� ��� �� ���� � ��� ����.
��
�� RESIGNALlabel:
�
�VALUE
SQLSTATE sqlstate-string-constantcondition-name signal-information
��
signal-information:SET MESSAGE_TEXT = SQL-variable-name
diagnostic-string-constant
�
label
RESIGNAL�� �� � �����. SQL �, SQL ����� �� SQL �
� ��� �� � ��� �� � ��� SQL �, SQL ����
� �� SQL ��� ��� �� � ����.
SQLSTATE VALUE sqlstate-string-constant
�� SQLSTATE ����� �����. ���� �� 5 �� ��� ��
� ���� , SQLSTATE� �� ��� ��� ���.
v � ��� � ��((‘0’ - ‘9’) �� ���(‘A’ - ‘Z’)�� ���.
v ‘00’� ���� ��� ���� SQLSTATE ��(� 2�)� ‘00’��
�� � ��.
SQLSTATE� �� ��� �!� ���� ��� �� ��.
condition-name
�� �� ��� �����. condition-name� ��� �� ��� ��
�.
MESSAGE_TEXT
��� �� ��� ���� �����. � ���� SQLCA� SQLERRMC
��� � ��. ���� �� ��� 70 ��� ���� � �� ��
��.
SQL-variable-name
�� �� ��� ��� � SQL ��� �����. SQL ���
CHAR�� VARCHAR �� ��� ���� ���.
RESIGNAL
� 6 � SQL ��� 855
|
|
|
|
|
diagnostic-string-constant
��� ���� �� �� �� ��� ��� �����.
�� SQLSTATE�� � RESGINAL�� ��� � ����. � � ����
��� ��� � � ��� ����� ��� SQLSTATE� ��� �� �
���. ��� ��� �� ���� ������ ���� �� ��� �� �
� SQLSTATE�� ��� �� ��� �� �� � ����. SQLSTATE� �
� ��� ��� iSeries Information Center� SQL ��� � �� �� ���
��.
RESIGNAL�� SQLSTATE� �� condition-name �� ���, RESIGNAL�
� �� �� ��� ���. SQL ��� �� � ��� ��� ��� ��� �
���� ����.
RESIGNAL�� ��� SQLSTATE �� condition-name� ���, ��� �
� SQLCA� �� SQLCODE� SQLSTATE �� ��� �� ��.
v ��� SQLSTATE ��� ‘01’ �� ‘02’� � �� �� � ���
�� SQLCODE� +438� �� ��.
v ��� ��� ��� ��� SQLCODE� -438� �� ��.
RESIGNAL�� �� SQLSTATE � �� condition-name � �� �� ��
� ��� SQLCODE� �� ����.
SQLSTATE� ���� ��(‘01’�� ‘02’� � SQLSTATE ��) ��
�� �� �� ����.
v �� � RESIGNAL�� �� ���� �� � compound-statement�
SQLEXCEPTION� �� �� �� ��� SQLSTATE� ��� �� ��
, ��� �� ��� �� �� � �����.
v compound-statement� �� �� �� �� compound-statement�
SQLEXCEPTION� �� �� �� ��� SQLSTATE� ��� �� , �
�� �� ��� �� �� � �����.
v ��� ��� ��� �� �� ��� �� ��� ��� � ��.
SQLSTATE� ���� �(SQLSTATE �� ‘01’) �� �� � ��(SQLSTATE
�� ‘02’) �� �� , �� �� �� ��.
v �� � RESIGNAL�� �� ���� �� � compound-statement�
SQLWARNING(SQLSTATE ��� ‘01’� ), NOT FOUND(SQLSTATE
��� ‘02’� ) �� ��� SQLSTATE� ��� �� �� � �� �
� , � �� �� � �� ��� �� ��� �� � �����.
RESIGNAL
856 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
v compound-statement� �� �� �� �� ���� SQLWARNING
(SQLSTATE ��� ‘01’� ), NOT FOUND(SQLSTATE ��� ‘02’�
) �� ��� SQLSTATE� ��� �� �� � �� �� , � ��
�� � �� ��� �� ��� �� � �����.
v ��� ��� �� �� �� �� ��� � ����.
SQLSTATE �� 2�� � �� �� �� � �� ��� 3�� � ���
�� ��� �� ��. �� �� �� ��� �� �� � ��� �� ��
��� ��� �����.
�
� ���� 0�� �� ��� ����. IF��� SIGNAL�� ��� ��
�� �� � �����. �� �� � RESIGNAL�� ��� �� SQLSTATE
�� ���� ������� ����.
CREATE PROCEDURE divide ( IN numerator INTEGER,IN denominator INTEGER,OUT divide_result INTEGER )
LANGUAGE SQLBEGIN
DECLARE overflow CONDITION FOR ’22003’;DECLARE CONTINUE HANDLER FOR overflow
RESIGNAL SQLSTATE ’22375’;IF denominator = 0 THEN
SIGNAL overflow;ELSESET divide_result = numerator / denominator;
END IF;END;
RESIGNAL
� 6 � SQL ��� 857
|
|
|
|
RETURN�
RETURN�� ���� � ��. SQL �� � ��� ����. SQL
������ �� �� �� ����� ����. SQL � �� �
���� �� ����.
��
�� RETURNlabel: expression
NULLquery-expression
��
query-expression:
fullselect,
WITH common-table-expression
�
label
RETURN�� �� � �����. SQL �, SQL ����� �� SQL ��
��� �� � ��� �� � ��� SQL �, SQL �����
�� SQL ��� ��� �� � ����.
expression
���� �� �� �����.
v ��� �� expression� ���� ���. � �� CREATE
FUNCTION�� RETURNS��� ��� �� �� ���� ���.
v ��� ������ expression� �� �� INTEGER��� ���.
���� ��� 0 �� � ��.
NULL
SQL ���� ��� � ��. �(null)� SQL ������� ��� �
���.
query-expression
SQL � ��� �� �� �����. fullselect� SQL ��� � � SQL
������ ��� ����.
common-table ��
fullselect� � ��� common-table-expression� �����.
RETURN
858 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
|
|
|
|
|
|
fullselect
� �� �� �� �� �����. fullselect� �� � ���
�� ���� ���. fullselect� 0 ��� � � 0 ��� �� �
� � ����.
�� �������� �� � ���� ��� ��� � �� ���� � �
���.
v SQL ������ �� SQL ������ SQL ���� ��� �
RETURN_STATUS� ��� � GET DIAGNOSTICS�
v ODBC ������� escape� CALL ��(?=CALL...)� � � �� �
���� ��� ��
v SQLCODE� 0�� �� �� � sqlerrd[0] �� �� ��� SQL �����
� �� CALL ���� �� SQLCA��� � ��� .
SQLCODE� 0�� ���, sqlerrd[0]� ��� �� �������
RETURN_STATUS �� -1��� �����.
RETURN�� �������� �� � ��� ��� �� RETURN��
��� ��
v ������ 0 ��� SQLCODE� �� , RETURN_STATUS� 0 ��
� �� ��.
v ������ 0�� �� SQLCODE� �� , RETURN_STATUS� -1 �
�� �� ��.
��� ��� � RETURN�� �������� �� � ��� SQLCA�
SQLCODE, SQLSTATE � ��� ���� 0�� ��� ��. ��� ����
� �� ����.
RETURN� SQL ���� ��� � ����.
SQL � � �� �� ���� � �� RETURN�� �� ��.
�
RETURN�� ��� SQL �������� � ��� �� �� ��
0, ��� �� �� �� -200��.
BEGIN...GOTO fail;...
RETURN
� 6 � SQL ��� 859
|
|
|
|
|
|
|
|
|
|
|
|
|
|
success: RETURN 0failure: RETURN -200
...END
��� �� � ��� �� ��� ��� �� �� ��� �� ���
��.
CREATE FUNCTION mytan (x DOUBLE)RETURNS DOUBLELANGUAGE SQLCONTAINS SQLNO EXTERNAL ACTIONDETERMINISTICRETURN SIN(x)/COS(x)
RETURN
860 iSeries� DB2 UDB SQL ��� V5R2
SIGNAL�
SIGNAL�� �� ���� � ��� ����. � �� ��� ���
�� ��� SQLSTATE � ��� ��� ���� � � ��.
��
�� SIGNALlabel:
�
�VALUE
SQLSTATE sqlstate-string-constantcondition-name signal-information
��
signal-information:SET MESSAGE_TEXT = SQL-variable-name
diagnostic-string-constant( diagnostic-string-constant )
�
label
SIGNAL�� �� � �����. SQL �, SQL ����� �� SQL ��
��� �� � ��� �� � ��� SQL �, SQL �����
�� SQL ��� ��� �� � ����.
SQLSTATE VALUE sqlstate-string-constant
�� SQLSTATE� �����. ���� �� 5 �� ��� ��� ��
�� , SQLSTATE� �� ��� ��� ���.
v � ��� � ��((‘0’ - ‘9’) �� ���(‘A’ - ‘Z’)�� ���.
v ‘00’� ���� ��� ���� SQLSTATE ��(� 2�)� ‘00’��
�� � ��.
SQLSTATE� �� ��� �!� ���� ��� �� ��.
condition-name
�� �� ��� �����. condition-name� ��� �� ��� ��
�.
MESSAGE_TEXT
��� �� ��� ���� �����. � ���� SQLCA� SQLERRMC
��� � ��. ���� �� ��� 70 ��� ���� � �� ��
��.
SIGNAL
� 6 � SQL ��� 861
|
|
|
|
|
|
SQL-variable-name
�� �� ��� ��� � SQL ��� �����. SQL ���
CHAR�� VARCHAR �� ��� ���� ���.
diagnostic-string-constant
��� ���� �� �� �� ��� ��� �����.
(diagnostic-string-constant)
��� ���� �� �� ��� ��� �����. � ��� SQL ��
����� �� ��. ANS� ISO ��� �!�� � �� ��� �
��. ��� �� ���� ���� � ��� ���.
�� SQLSTATE�� ���� SGINAL�� ��� � ����. � � ���
���� ��� � � ��� ����� ��� SQLSTATE� ��� ��
����. ��� ��� �� ���� ������ ���� �� ��� ��
�� SQLSTATE�� ��� �� ��� �� �� � ����. SQLSTATE�
�� ��� ��� iSeries Information Center� SQL ��� � �� �� ��
���.
SIGNAL�� ���, ��� �� SQLCA� �� SQLCODE� SQLSTATE �
� ��� �� ��.
v ��� SQLSTATE ��� ‘01’ �� ‘02’� � �� �� � ���
�� SQLCODE� +438� �� ��.
v ��� ��� ��� �� � SQLCODE� -438� �� ��.
SQLSTATE� ���� ��(‘01’�� ‘02’� � SQLSTATE ��) ��
�� �� �� ����.
v �� � SIGNAL�� �� �� ��� �� � �� ��� SQLEXCEPTION
� �� �� �� ��� SQLSTATE� ��� �� �� ��� �
� ��� �� �� � �����.
v ��� ��� ��� �� �� ��� �� ��� ��� � ��.
SQLSTATE� ���� �(SQLSTATE �� ‘01’) �� �� � ��(SQLSTATE
�� ‘02’) �� ��
v �� � SIGNAL�� �� ���� �� � ��� SQLWARNING(SQLSTATE
��� ‘01’� ), NOT FOUND (SQLSTATE ��� ‘02’� ) ��
��� SQLSTATE� ��� �� �� � �� �� , � �� �� � �
� ��� �� ��� �� � �����.
v ��� ��� �� �� �� �� ��� � ����.
SIGNAL
862 iSeries� DB2 UDB SQL ��� V5R2
SQLSTATE �� 2�� � �� �� �� � �� ��� 3�� � ���
�� ��� �� ��. �� �� �� ��� �� �� � ��� �� ��
��� ��� �����.
�� SQLSTATE�� ���� SGINAL�� ��� � ����. � � ���
���� ��� � � ��� ����� ��� SQLSTATE� ��� ��
����. ��� ��� �� ���� ������ ���� �� ��� ��
�� SQLSTATE�� ��� �� ��� �� �� � ����.
v ‘7’�� ‘9’�� �� ‘I’�� ‘Z’��� ��� ��� SQLSTATE ��� �
�� � ����. � � �� �� ���� ��� � ����.
v ‘0’�� ‘6’�� �� ‘A’�� ‘H’��� ��� ��� SQLSTATE ��� �
����� ���� ���� ��� ����. � �� ��� ‘0’�� ‘H’
��� ��� ��� ���� ������ ���� ���� ��� �
���. ‘I’�� ‘Z’��� ��� ��� ���� ��� � ����.
SQLSTATE� �� ��� ��� iSeries Information Center� SQL ��� � �
� �� �����.
�
��� �� ���� �� rating� ������ �� ��. � ���� �
�� ��� 6 � ��� �� II001� �� ����� � ��.
CREATE PROCEDURE raise ( IN rating INTEGER )LANGUAGE SQL
BEGINDECLARE new_salary DECIMAL(9,2);DECLARE service DECIMAL(8,0);
DECLARE v_empno CHAR(6) DEFAULT ’123456’;SELECT salary, current_date - hiredate
INTO new_salary, serviceFROM employeeWHERE empno = v_empno;
IF service < 600THEN SIGNAL SQLSTATE ’II001’
SET MESSAGE_TEXT = ’Insufficient time in service.’;END IF;IF rating = 1THEN SET new_salary =
new_salary + (new_salary * .10);ELSEIF rating = 2THEN SET new_salary =
new_salary + (new_salary * .05);END IF;UPDATE employee
SET salary = new_salaryWHERE empno = v_empno;
END;
SIGNAL
� 6 � SQL ��� 863
WHILE�
WHILE�� ��� ��� �� �� �� ��� �����.
��
��label:
WHILE search-condition DO SQL-procedure-statement ; �
� END WHILElabel
��
�
label
�� �� �� �� � �����. SQL �, SQL ����� �� SQL
�� ��� �� � ��� �� � ��� SQL �, SQL ���
�� �� SQL ��� ��� �� � ����. �� �� � ���
LEAVE��� ��� � ����.
�� �� � ��� �� �� � ���� ���.
search-condition
search-condition� WHILE �� �� �� �� ��. ��� ���, WHILE
��� SQL-procedure-statements� �� ��.
SQL-PROCEDURE�
WHILE ���� ��� SQL�� �����.
�
� ��� WHILE�� ��� FETCH � SET�� �����. SQL �� v_counter
� �� IN �� deptNumber� ��� ��� �� �� ��� ���, WHILE
�� FETCH� � SET�� � �����. ��� � �� �� � , ��
��� WHILE�� ��� ��� ����.
CREATE PROCEDURE dept_median(IN deptNumber SMALLINT, OUT medianSalary DECIMAL(7,2))LANGUAGE SQL
BEGINDECLARE v_numRecords INTEGER DEFAULT 1;DECLARE v_counter INTEGER DEFAULT 0;
DECLARE c1 CURSOR FORSELECT salary
FROM staffWHERE dept = deptNumber
WHILE
864 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
ORDER BY salary;DECLARE EXIT HANDLER FOR NOT FOUND
SET medianSalary = 6666;SET medianSalary = 0;SELECT COUNT(*) INTO v_numRecords
FROM staffWHERE dept = deptNumber;OPEN c1;
WHILE v_counter < (v_numRecords/2 + 1) DOFETCH c1 INTO medianSalary;SET v_counter = v_counter +1;END WHILE;CLOSE c1;END
WHILE
� 6 � SQL ��� 865
866 iSeries� DB2 UDB SQL ��� V5R2
� A. SQL ��
�� �� iSeries� DB2 UDB������ ���� ��� �� ��� ��� �
��.
� 58. ID �� ��
ID �� iSeries� DB2 UDB ��
�� � �� 128
�� � ����� 10
�� � �� 60
�� � ��� 128
�� � ��� 18
�� � ��� ID 64
�� � ���� 128
�� � ��� 18
�� � SQL �� �� 128
�� � �� �� 18
�� � �, ��� �� �� �� 50
�� � �� ���� 10
�� � �� �� 30
�� � �� ����� 128
�� � �� �� � �� 128
�� � �� �� �����68 10
�� � �� �� 128
�� � �� �� ��� 10
�� � �� ���� 10
�� � �� ������ 128
�� � �� ��� 128
�� � �� SQL ��� 128
�� � �� SQL ��� 128
�� � �� �, � � ��� 128
�� � �� ��� 128
��� �� ��� �� 10
�� ��� �, � � ��� 10
68. �� ���� �� ��� �� ��� 279��. REXX ������ �� ��� 33��.
© Copyright IBM Corp. 1998, 2002 867
||
� 59. � ��
�� �� iSeries� DB2 UDB ��
�� BIGINT � -9 223 372 036 854 775 808
�� � BIGINT � +9 223 372 036 854 775 807
�� INTEGER � -2 147 483 648
�� INTEGER � +2 147 483 647
�� SMALLINT � -32 768
�� SMALLINT � +32 767
�� ��� ��� 31
�� FLOAT �70 -1.79x10308
�� FLOAT �70 +1.79x10308
�� � FLOAT �70 +2.23x10-308
�� � FLOAT �70 -2.23x10-308
�� REAL �70 -3.4x1038
�� REAL �70 +3.4x1038
�� � REAL �70 +1.18x10-38
�� � REAL �70 -1.18x10-38
� 60. ��� ��
��� �� iSeries� DB2 UDB ��
BOLB �� �� 2 147 483 647
CHAR �� ��71 32765
VARCHAR �� ��71 32739
CLOB �� �� 2 147 483 647
C NUL-�� �� ��71 32739
GRAPHIC �� ��71 16382
VARGRAPHIC �� ��71 16369
DBCLOB �� �� 1 073 741 823
C NUL-�� � �� ��71 16369
�� �� �� �� 32740
� �� �� �� 16370
�� � �� �� ���71 32765
�� � �� � ���71 16369
� 61. ��� ��
��� �� iSeries� DB2 UDB ��
�� DATE � 0001-01-01
�� DATE � 9999-12-31
�� TIME � 00:00:00
�� TIME � 24:00:00
�� TIMESTAMP � 0001-01-01-00.00.00.000000
�� TIMESTAMP � 9999-12-31-24.00.00.000000
SQL ��
868 iSeries� DB2 UDB SQL ��� V5R2
|
|
� 62. �� �� ��
� � �� iSeries� DB2 UDB ��
DATALINK �� �� 32718
DATALINK � �� �� 254
� 63. ������ ��� ��
������ ��� �� iSeries� DB2 UDB ��
� �� �� 8000
� �� �� 8000
� �� �� ��� 90
����� �� �� ��� 25473
�� �� �� � LOB� �� �� �� �� 32766
�� �� �� � LOB� �� �� �� �� 3 758 096 383
� �� �� 1 terabyte
�� �� �� 1 terabyte
� �� �� � 4 294 967 288
�� � �� � 2000
�� � �� �� 120
�� � �� �� �� � 4000
SQL��� ��� �� � 256
SQL ��� ��� �� � 32
���� ����� �� ��� �� �69 ����
SQL� �� �� ��� �� � �� 409674
� �� �� ��� �� � ��� �� 32766
�� � SQL� 65535
�� ���� �� ��72 � 8000
WHERE �� HAVING� �� �� � 4690
GROUP BY� �� ��� 120
GROUP BY� �� �� �� �� 2000
ORDER BY� �� ��� 10000
ORDER BY� �� �� �� �� 10000
SQLDA �� �� 16 777 215
�� �� ��� ����
���� �� �� � �� ����
� �� �� ��� ��� ����
��� ������(RDB) �� �� � ����
�� �� �� �� ��� 300
subselect� �� �� �� 32
� �� �� 2000
� �� �� 3483
��� ��� ��� 268
SQL ��
�� A. SQL �� 869
|
|
|
� 63. ������ ��� �� (�)
������ ��� �� iSeries� DB2 UDB ��
� �� � �� �� � ��� 500 000 000
�� �� �� ��� 300
�� �� �� ��� 200
�� ��� �� �� ������ ���� �� �� 100
�� �� �� 128
������ ����� �� � 250 000
� �� ��� �� ��� � ����
������ ��� ��� CLI �� �� � 80 000
69.��� �� �� � � ��� RPG/400 � PL/I ������� � ��� � 4000 ��. ��� ����� ��� ���
#�� ���� � ���. � � �� ��� ��� ����� ��� �� ���� �� ��� �� ���.
70. �� ��� ��� ���� ���.
71. � NOT NUL��, �� ��� � � ����.
72. ��� ��� SQL�� �� ��� �� ��� ��� ���� �� ��.
73. PARAMETER STYLE SQL ������ 90 � ��� �� ��. PARAMETER STYLE GENERAL� �� SQL ������ 253
� �� ��. PARAMETER STYLE GENERAL WITH NULLS� �� ������ 254� �� ��. PARAMETER STYLE GENERAL
� �� �� ������ 255� �� ��. ��� ���� �� ����� �� � ��� ��� ����� ���
��� ���� �� ��.
74. ��� �� ��� � , ��� 2048��. ��� ��� ��� � ��� �� �� ��� ��� ��� � �� � �
���.
75. DRDA ��� ��� �� �� �� 500��.
SQL ��
870 iSeries� DB2 UDB SQL ��� V5R2
||
||
||
||
� B. SQL �� �
SQLCA� �� SQL� �� ��� �� ���� ����. ����� SQL
�� � ����� ��� �� SQLCA� ��� ����� ���(���
��� �� SQLCODE �� �� SQLSTATE ��� � �� ��).
SQL INCLUDE ��� RPG �� REXX� ��� �� ��� ��� SQLCA
� �� ��� � ��� � ����. REXX ������� SQLCA ���
�� ��� SQL Programming with Host Languages �� �����.
C, COBOL, FORTRAN � PL/I�� ���� ���� ��� SQLCA��� ��
�. PL/I� C�� ���� ��� SQLCA���� ���. �� SQL�� ��� �
�� � �� ��� ���.
�� SQLCODE� ����� ��� � SQLCA� �� ��� � ��. �
�� �� SQLCADE� �� �� SQLCODE� ��� SQLCA� �
�(�� SQLCAD� �� SQLCOD). ��� � �� SQLCODE� � � �
� ���� � � ����� ��� �����.
�� SQLSTATE� ����� ��� SQLCA� �� ��� � ��.
��� � SQLSTATE� �� �� SQLSTATE� ��� SQLCA� �
��. ��� � �� SQLSTATE� � � �� ���� � � ����
� ��� �����.
�� SQLCODE � �� SQLSTATE� �� RPG �� REXX�� ��� ��
��.
� ��
�� �� ���� SQL INCLUDE�� ��� �����. ���� C(�
C++), COBOL, FORTRAN � PL/I� ��� ��� �����. RPG/400�� �
�� 6�� ��� ��� RPG �� �!� ��. PL/I�� COBOL �� ��
� ���� � �����.
� 64. SQL INCLUDE�� ��� ��
C�, COBOL �
PL/I� FORTRAN1 � RPG � � � �� � �
SQLCAID
sqlcaid
��� ��
SQLCAID
SQLAID CHAR(8) 'SQLCA'� �� �� ���� ��� �� ��
��.
SQLCABC
sqlcabc
��� ��
SQLCABC
SQLABC INTEGER SQLCA� �� 136� �� ����.
© Copyright IBM Corp. 1998, 2002 871
� 64. SQL INCLUDE�� ��� �� (�)
C�, COBOL �
PL/I� FORTRAN1 � RPG � � � �� � �
SQLCODE
sqlcode
SQLCOD
SQLCODE
SQLCOD INTEGER SQL � ��� �� ����.
�� ��
0 SQLWARN ������ ��� ���
� ���� ��
�� ���� �� � � � ��
�� �� ��
SQLERRML2
sqlerrml
SQLTXL
SQLERRML
SQLERL SMALLINT 0�� 70� �!� � �� SQLERRMC� �
� �� ����� 0� SQLERRMC� �� �
�� ��� �����.
SQLERRMC2
sqlerrmc
SQLTXT
SQLERRMC
SQLERM CHAR (70) SQLCODE� ��� ��� �� ���� ��
����. CONNECT � SET CONNECTION
� SQLERRMC ��� ��� �� ��
� �� ����. �� ���� �� ���
876 ���� � 67� �����.
SQLERRP
sqlerrp
SQLERP
SQLERRP
SQLERP CHAR(8) ��� �� �� � ���� �� ���
�. � � ��� ��� �����.
VM � VSE� DB2� �� ARI
DSN for OS/390 � z/OS� DB2 UDB
QSQ for iSeries� DB2 UDB
� �� �� DB2 ��� SQL
��� ��� 421 ���� �CONNECT(� 1)�
�� 427 ���� �CONNECT(� 2)�� ��
���.
SQLERRD
sqlerrd
SQLERR
SQLERRD
SQLERR3 � �� ��� ��� 6 � INTEGER ���
�� ����. �� ��� �� ��� 874 �
��� � 66� �����.
SQLWARN
sqlwarn
SQLWRN
SQLWARN
SQLWRN4 CHAR(11) 11 CHAR(1) � ������ ���� ��
�� �� 'W' �� 'N'� �� ����.
SQLSTATE
sqlstate
SQLSTT
SQLSTATE
SQLSTT CHAR(5) �� ��� ��� SQL�� ��� ��� �
��
�:
1 FORTRAN SQLCA� �� IBM SQL SQLCA�� ��� � �� ��. �� ��� iSeries� DB2
UDBFORTRAN��� SQLCA� ���� �� ��� � �� � �� ��� �����.
2 COBOL�� SQLERRM� SQLERRML � SQLERRMC� ���. PL/I�� �� �� ��� SQLERRM�
SQLERRMC� ��� SQLEERML� �����.
3 RPG/400 � ILE RPG/400�� SQLERR� SQLER6� �� SQLER1 ��� �� ���� 24 ��� �� ��(�
� ����). ��� 2� ����. ILE RPG/400�� SQLERR �� �� ��� ��. ��� SQLERRD
��.
4 11��� �� ��(�� ����).
SQLCA
872 iSeries� DB2 UDB SQL ��� V5R2
� 65. SQLWARN �� ��
C �
COBOL � &
PL/I�
FORTRAN1 � RPG � � �
SQLWARN0
sqlwarn[0]
SQLWRN(0)
SQLWARN(1:1)
SQLWN0 �� �� ������ ��� ����.
�� ��� �� �� ������ 'W' ��
'N'� �� �� 'W'� �����.
SQLWARN1
sqlwarn[1]
SQLWRN(1)
SQLWARN(2:2)
SQLWN1 �� ��� � �� ��� ��� ��� �
����� 'W'� �����. ��
*NOCNULRQD� CRTSQLCI ��
CRTSQLCPPI �(�� CNULRQD(*NO)�
SET OPTION��)� ���� ���
�� C-NUL �� ��� ��� ����, �
�� ��� ��� � �� ��� NUL
���� � �� ��� �� ‘N’�
�����.
SQLWARN2
sqlwarn[2]
SQLWRN(2)
SQLWARN(3:3)
SQLWN2 �� ��� �� ����� ���� 'W'
� �����. ��� MIN �� �� 'W'�
��� ��� ���, � ��� �� �� �
�� �� �� ����.
SQLWARN3
sqlwarn[3]
SQLWRN(3)
SQLWARN(4:4)
SQLWN3 �� ��� ��� ��� � �� 'W'
� �����.
SQLWARN4
sqlwarn[4]
SQLWRN(4)
SQLWARN(5:5)
SQLWN4 �� �� UPDATE �� DELETE��
WHERE �� � �� 'W'� ���
��.
SQLWARN5
sqlwarn[5]
SQLWRN(5)
SQLWARN(6:6)
SQLWN5 ��
SQLWARN6
sqlwarn[6]
SQLWRN(6)
SQLWARN(7:7)
SQLWN6 � � �� �� ��� ���� ‘W’�
�����.
SQLWARN7
sqlwarn[7]
SQLWRN(7)
SQLWARN(8:8)
SQLWN7 ��
SQLWARN8
sqlwarn[8]
SQLWRX(1)
SQLWARN(9:9)
SQLWN8 �� �� �� ��� �� ��� �� ��
‘W’� �����.
SQLWARN9
sqlwarn[9]
SQLWRX(2)
SQLWARN(10:10)
SQLWN9 ��
SQLWARNA
sqlwarn[10]
SQLWRX(3)
SQLWARN(11:11)
SQLWNA ��
SQLCA
�� B. SQL � �� 873
� 66. SQLERRD �� ��
C �
COBOL � &
PL/I� FORTRAN1 � RPG � � �
SQLERRD(1)
sqlerrd[0]
SQLERR(1) SQLER1 �� SQLCODE� 0�� ��� CPF �� ��
�� ��� � ��� �����. �� �� ��
�� CPF5715��, X'F5F7F1F5'� SQLERRD(1)
� �����.1
����� ��� RETURN�� ��� �
�� �� �� ����. RETURN�� � ��
�� ��� �� �� � ��� ��� �
���.
v �� ��� ��� 0� � ��.
v �� ��� ��� �� -200� � ��.
SQLERRD(2)
sqlerrd[1]
SQLERR(2) SQLER2 �� SQL ��� 0�� �� CPD �� �
��� ��� � ��� �����.1
CALL ��� SQLERRD(2)�� �� �
�� �� �� ����.
SQLERRD(3)
sqlerrd[2]
SQLERR(3) SQLER3 �� ��� �� CONNERCT� ��,
SQLERRD(3)� �� ��� �� ��� �
��. ��� ��� 427 ���� �CONNECT(
� 2)�� �����.
INSERT, UPDATE � DELETE� �� �
� �� �����.
FETCH ��� SQLERRD(3)�� �� �
� �� �� ����.
PREPARE ��� ��� �� �� ��
�����. � �� 2 147 483 647�� �� 2
147 483 647� � ��.
SQLCA
874 iSeries� DB2 UDB SQL ��� V5R2
� 66. SQLERRD �� �� (�)
C �
COBOL � &
PL/I� FORTRAN1 � RPG � � �
SQLERRD(4)
sqlerrd[3]
SQLERR(4) SQLER4 PREPARE ��� � ��� ��� ���
�� �� �� �����. � �� ��, � �
�, CPU �� �� �� ���� �� ���
�. iSeries� DB2 UDB �� ���� �� ��
� ��� ��� �� �����.
CONNECT � SET CONNECTION ��� �
�� SQLERRD(4)�� ��� ���� � �
!� � �� �� ���� ��� ����
�. ��� ��� 427 ���� �CONNECT(�
2)�� �����.
CALL ��� ��� SQLERRD(4)�� ���
��� ��� ��� ��� ��� �� �� �
���. QMHRTVPM API� ��� �� �� �
�� ��� ��� ��� � ����.
DELETE, INSERT �� UPDATE ��� ��
��� ��� SQLERRD(4)�� �� ��
������ �� �� ��� ��� �� ��
����. QMHRTVPM API� ��� �� ��
��� ��� ��� ��� � ����.
FETCH ��� SQLERRD(4)�� ���
�� �� �����.
SQLERRD(5)
sqlerrd[4]
SQLERR(5) SQLER5 CALL ��� , SQLERRD(5)�� ����
��� �� �� ��� �� �� ����.
CONNECT �� SET CONNECTION ���
SQLERRD(5)�� �� � �� ����
�.
v ��� ��� -1
v �� ��� 0
v ��� ��� 1
DELETE ��� �� �� ��� �� �
��� �� �� �����.
EXECUTE IMMEDIATE �� PREPARE ��
� �� ��� �� ��� � ����.
�� � FETCH�� �� �� ��� �� �
���� SQLERRD(5)�� +100� �����.
PREPARE ��� SQLERRD(5)�� ��
�� �� �� �� �� �����.
SQLCA
�� B. SQL � �� 875
||
� 66. SQLERRD �� �� (�)
C �
COBOL � &
PL/I� FORTRAN1 � RPG � � �
SQLERRD(6)
sqlerrd[5]
SQLERR(6) SQLER6 SQLCODE� 0� � SQL �� ��� ID� ��
���.
�� �� � ���� ��� ����.
�:
1 SQLERRD(1) � SQLERRD(2)� �� ��� iSeries� DB2 UDB� ��� �� �� ��.
� 67. CONNECT � SET CONNECTION� �� SQLERRMC �� ���
�� � ��
��� ������(RDB)� CHAR(18)
�� ID(SQLERRP� �� ) CHAR(8)
�� ��� User ID CHAR(10)
�� ���(*DUW �� *RUW) CHAR(10)
DDM �� ���
QAS iSeries� DB2 UDB
QDB2 OS/390 � z/OS� DB2 UDB
QDB2/2 OS/2� DB2
QDB2/6000 AIX/6000� DB2
QDB2/HPUX HP-UX**� DB2
QDB2/NT NT� DB2
QDB2/SUN SUN** Solaris**� DB2
QSQLDS/VM VM � VSE� DB2
QSQLDS/VSE VM � VSE� DB2
CHAR(10)
�� �(SQLERRD(4)� �� ) SMALLINT
INCLUDE SQLCA ��
C � C++�� INCLUDE SQLCA �� ��� ����.
#ifndef SQLCODEstruct sqlca{
unsigned char sqlcaid[8];long sqlcabc;long sqlcode;short sqlerrml;unsigned char sqlerrmc[70];unsigned char sqlerrp[8];long sqlerrd[6];unsigned char sqlwarn[11];
SQLCA
876 iSeries� DB2 UDB SQL ��� V5R2
unsigned char sqlstate[5];};#define SQLCODE sqlca.sqlcode#define SQLWARN0 sqlca.sqlwarn[0]#define SQLWARN1 sqlca.sqlwarn[1]#define SQLWARN2 sqlca.sqlwarn[2]#define SQLWARN3 sqlca.sqlwarn[3]#define SQLWARN4 sqlca.sqlwarn[4]#define SQLWARN5 sqlca.sqlwarn[5]#define SQLWARN6 sqlca.sqlwarn[6]#define SQLWARN7 sqlca.sqlwarn[7]#define SQLWARN8 sqlca.sqlwarn[8]#define SQLWARN9 sqlca.sqlwarn[9]#define SQLWARNA sqlca.sqlwarn[10]#define SQLSTATE sqlca.sqlstate#endifstruct sqlca sqlca;
COBOL�� INCLUDE SQLCA �� ��� ����.
01 SQLCA.05 SQLCAID PIC X(8).05 SQLCABC PIC S9(9) BINARY.05 SQLCODE PIC S9(9) BINARY.05 SQLERRM.
49 SQLERRML PIC S9(4) BINARY.49 SQLERRMC PIC X(70).
05 SQLERRP PIC X(8).05 SQLERRD OCCURS 6 TIMES
PIC S9(9) BINARY.05 SQLWARN.
10 SQLWARN0 PIC X(1).10 SQLWARN1 PIC X(1).10 SQLWARN2 PIC X(1).10 SQLWARN3 PIC X(1).10 SQLWARN4 PIC X(1).10 SQLWARN5 PIC X(1).10 SQLWARN6 PIC X(1).10 SQLWARN7 PIC X(1).10 SQLWARN8 PIC X(1).10 SQLWARN9 PIC X(1).10 SQLWARNA PIC X(1).
05 SQLSTATE PIC X(5).
�: COBOL��� INCLUDE SQLCA� Working Storage Section ��� ��
� � ��.
FORTRAN�� INCLUDE SQLCA �� ��� ����.
CHARACTER SQLCA(136)CHARACTER SQLCAID*8INTEGER*4 SQLCABCINTEGER*4 SQLCODEINTEGER*2 SQLERRMLCHARACTER SQLERRMC*70CHARACTER SQLERRP*8INTEGER*4 SQLERRD(6)CHARACTER SQLWARN*11
SQLCA
�� B. SQL � �� 877
CHARACTER SQLSTOTE*5EQUIVALENCE (SQLCA( 1), SQLCAID)EQUIVALENCE (SQLCA( 9), SQLCABC)EQUIVALENCE (SQLCA( 13), SQLCODE)EQUIVALENCE (SQLCA( 17), SQLERRML)EQUIVALENCE (SQLCA( 19), SQLERRMC)EQUIVALENCE (SQLCA( 89), SQLERRP)EQUIVALENCE (SQLCA( 97), SQLERRD)EQUIVALENCE (SQLCA(121), SQLWARN)EQUIVALENCE (SQLCA(132), SQLSTOTE)
INTEGER*4 SQLCOD,C SQLERR(6)INTEGER*2 SQLTXLCHARACTER SQLERP*8,C SQLWRN(0:7)*1,C SQLWRX(1:3)*1,C SQLTXT*70,C SQLSTT*5,C SQLWRNWK*8,C SQLWRXWK*3,C SQLERRWK*24,C SQLERRDWK*24EQUIVALENCE (SQLWRN(1), SQLWRNWK)EQUIVALENCE (SQLWRX(1), SQLWRXWK)EQUIVALENCE (SQLCA(97), SQLERRDWK)EQUIVALENCE (SQLERR(1), SQLERRWK)COMMON /SQLCA1/SQLCOD,SQLERR,SQLTXLCOMMON /SQLCA2/SQLERP,SQLWRN,SQLTXT,SQLWRX,SQLSTT
PL/I�� INCLUDE SQLCA �� ��� ����.
DCL 1 SQLCA,2 SQLCAID CHAR(8),2 SQLCABC BIN FIXED(31),2 SQLCODE BIN FIXED(31),2 SQLERRM CHAR(70) VAR,2 SQLERRP CHAR(8),2 SQLERRD(6) BIN FIXED(31),2 SQLWARN,3 SQLWARN0 CHAR(1),3 SQLWARN1 CHAR(1),3 SQLWARN2 CHAR(1),3 SQLWARN3 CHAR(1),3 SQLWARN4 CHAR(1),3 SQLWARN5 CHAR(1),3 SQLWARN6 CHAR(1),3 SQLWARN7 CHAR(1),3 SQLWARN8 CHAR(1),3 SQLWARN9 CHAR(1),3 SQLWARNA CHAR(1),
2 SQLSTATE CHAR(5);
RPG/400�� SQLCA �� ��� ����.
ISQLCA DSI 1 8 SQLAID SQLI B 9 120SQLABC SQL
SQLCA
878 iSeries� DB2 UDB SQL ��� V5R2
I B 13 160SQLCOD SQLI B 17 180SQLERL SQLI 19 88 SQLERM SQLI 89 96 SQLERP SQLI 97 120 SQLERR SQLI B 97 1000SQLER1 SQLI B 101 1040SQLER2 SQLI B 105 1080SQLER3 SQLI B 109 1120SQLER4 SQLI B 113 1160SQLER5 SQLI B 117 1200SQLER6 SQLI 121 131 SQLWRN SQLI 121 121 SQLWN0 SQLI 122 122 SQLWN1 SQLI 123 123 SQLWN2 SQLI 124 124 SQLWN3 SQLI 125 125 SQLWN4 SQLI 126 126 SQLWN5 SQLI 127 127 SQLWN6 SQLI 128 128 SQLWN7 SQLI 129 129 SQLWN8 SQLI 130 130 SQLWN9 SQLI 131 131 SQLWNA SQLI 132 136 SQLSTT SQL
ILE RPG/400�� SQLCA �� ��� ����.
D* SQL Communications areaD SQLCA DSD SQLAID 1 8AD SQLABC 9 12B 0D SQLCOD 13 16B 0D SQLERL 17 18B 0D SQLERM 19 88AD SQLERP 89 96AD SQLERRD 97 120B 0 DIM(6)D SQLERR 97 120AD SQLER1 97 100B 0D SQLER2 101 104B 0D SQLER3 105 108B 0D SQLER4 109 112B 0D SQLER5 113 116B 0D SQLER6 117 120B 0D SQLWRN 121 131AD SQLWN0 121 121AD SQLWN1 122 122AD SQLWN2 123 123AD SQLWN3 124 124AD SQLWN4 125 125AD SQLWN5 126 126AD SQLWN6 127 127AD SQLWN7 128 128AD SQLWN8 129 129AD SQLWN9 130 130AD SQLWNA 131 131AD SQLSTT 132 136AD* End of SQLCA
SQLCA
�� B. SQL � �� 879
SQLCA
880 iSeries� DB2 UDB SQL ��� V5R2
� C. SQLDA(SQL ��� �)
�� SQLDA� SQL DESCRIBE ��� ��� ��� �� ��� ,
PREPARE, OPEN, CALL,FETCH � EXECUTE ��� �� ����� ���
� ����. �� SQLDA� DESCRIBE ���� ��� � �� , ��� �
�� �� � ��� � ��, �� FETCH ���� �� ��� � ����.
�� �� SQLDA� ����, �� ��� �� C(� C++), COBOL, ILE
RPG/400, PL/I � REXX��� �� ��. REXX�� SQLDA� �� ����
�� ����. REXX�� SQLDA ��� �� ��� ��� �� SQL ���
�� �����.
�� SQLDA� �� ��� ��� � ��� �� ����. PREPARE �
DESCRIBE�� SQLDA� �� ��� �� ������ ����� ��� �
����. OPEN, CALL, EXECUTE � FETCH�� �� SQLDA� ��� �
�� �� ������ ����� ��� �����.
� ��
�� SQLDA�� ��� SQLVAR� ��� ��� �� ��� ��� �
�� ��, �� �� � �� ��� � � ��� ����. OPEN, CALL,
FETCH � EXECUTE�� SQLVAR� � �� ��� �� �� �����.
PREPARE � DESCRIBE�� � �� ���� �� �����.
SQL INCLUDE�� ��� ���� �����.
76.� �� ����� C���. ����� COBOL, PL/I �� RPG���.
© Copyright IBM Corp. 1998, 2002 881
� 68. SQLDA �� �� �� ��
C�76
PL/I�
COBOL� � � ��
DESCRIBE � PREPARE � ��
(SQLN ���� ������ ���
� ��)
FETCH, OPEN, CALL ��
EXECUTE � ��(��� �� �
���� ��)
sqldaid
SQLDAID
CHAR(8) 'SQLDA'� �� �� ���� ���
�� '��'.
SQLDAID� �� �� ��� �
� �� ��� SQLVAR ��� �
����� ��� ���� ��� �
����. ��� ��� 884 ����
�SQLVAR �� � � ���� ��
���.
�� �� �� �� ‘2’� � � �
� � SQLVAR ��� ����
� �����.
�� �� ��� ‘3’� � SQLVAR
��� � � �� ����� ���
��.
�� �� ��� ‘4’� � � �� 4
� SQLVAR ��� ����� ��
���.
sqldabc
SQLDABC
INTEGER SQLDA� �� SQLDA� ��� ���� �� �
SQLN �� ��� � ��� ���
����� ����� ���.
SQLDABC� 16+SQLN*(80)� ��
��� � ��� ���� ��
80� SQLVAR �� ����. LOB
� �� �� ��� �
�� ��� �� SQLVAR ���
��� ���.
sqln
SQLN
SMALLINT ������ ���� �� �� �
���. PREPARE �� DESCRIBE �
�� ��� �� 0�� �� ��
��� ���� ���. ��� �
��� �� �� ��� ���
�� SQLVAR ��� �� ��� ��
� �� ��� � �� ����
���� ���. SQLVAR � �
�� �����.
SQLDA� ��� SQLVAR � �
���. SQLN� 0�� �� �� �
�� ���� ���.
LOB� �� �� ��� �
�� ��� �� SQLVAR ��
� ��� SQLN� �� ��
�� �� ���� ���.
sqld
SQLD
SMALLINT SQLVAR� ��� � � �(�
� ��� SELECT ��� ��
� 0)
� ��� ��� � SQLDA�� ��
� SQLVAR� �� � � ���
��� �. SQLD� �(0) �� ��
�� SQLN �� �� �� ��� �
��� ���.
SQLVAR ����� � ��
SQLDA� �� � � � �� ��� ��� �� �� SQLVAR �
�� ����.
� SQLVAR ��
�� SQLVAR ��� �� ����. � ��� ���� �� � ��, �
SQLDA
882 iSeries� DB2 UDB SQL ��� V5R2
� �(LOB ��), ��(�� �� ), ��� �� �� ID(CCSID), �
�� �� � � ����� �� �� �� �� ��� ��� ��
�� ��� �� ����.
�(Extended) SQLVAR ��
��� LOB �� �� �� � � ��� �� SQLVAR ��
� �����(� �). �� �� �� SQLVAR�� �� �
��� �� ����. LOB� �� SQLVAR�� ��� ��� ��
��� � ��� ��� �� �� �� �� ����. ����
� � �� ��� LOB� ���� � ��� �� SQLVAR�
������.
��� � � �� �� SQLVAR ��� �����.
v ��� �� � ���� ��� USING BOTH� ���
v ��, �� � ��� ��� ���� ��� USING ALL
� ���
LOB � �� � ��� �� �� SQLVAR� ��� ��� �
���. LOB � �� ��� �� ��� ��� ����. �� ,
LOB � �� �� ��� ���, ��� �� � � � �
�� �� SQLVAR ��� ��� � ����. 884 ���� �SQLVAR
�� � � ���� �����.
� 69, 884 ���� � 70 � 884 ���� � 71� �� � �� SQLVAR ���
� ��� �����. �� � �� SQLVAR ��� � ��� SQLDA�
�� SQLVAR ��� � �� �� � �� SQLVAR ��� ���
����. ��� �� SQLVAR ��� �� �� � �� �� ���
����. �� SQLVAR ��� ���� ��� �� �� ���, � ���
SQLVAR ��� � �� SQLD��� �� �����.
� 69. USING NAMES, USING SYSTEM NAMES, USING LABELS �� USING ANY� �� SQLVAR �� ��
LOB
DISTINCT
��
SQLDAID
� �� �
� ��
SQLN �
��
� �� ��
(�)
� �� ��
(�)
� �� ��
(�)
� �� ��
(�)
��� ��� �� n ��, ���
�� �� �
�
��� �� ��� �� ��� ��
� ��� 2 2n ��, ���
�� �� �
�
LOB ��� �� ��� ��
��� � 2 2n ��, ���
�� �� �
�
Distinct � ��� �� ��� ��
SQLDA
�� C. SQLDA(SQL ��� ��) 883
� 69. USING NAMES, USING SYSTEM NAMES, USING LABELS �� USING ANY� �� SQLVAR �� �� (�)
LOB
DISTINCT
��
SQLDAID
� �� �
� ��
SQLN �
��
� �� ��
(�)
� �� ��
(�)
� �� ��
(�)
� �� ��
(�)
� � 2 2n ��, ���
�� �� �
�
LOB � ��
�
��� �� ��� ��
� 70. USING BOTH� �� SQLVAR � ��
LOB
DISTINCT
��
SQLDAID
� �� �
� ��
SQLN �
��
� �� ��
(�)
� �� ��
(�)
� �� ��
(�)
� �� ��
(�)
��� ��� 2 2n �� �� ��� �� ��� ��
� ��� 2 2n �� LOB � �� ��� �� ��� ��
��� � 3 3n �� Distinct � �� ��� ��
� � 3 3n �� LOB � ��
�
�� ��� ��
� 71. USING ALL� �� SQLVAR � ��
LOB
DISTINCT
��
SQLDAID
� �� �
� ��
SQLN �
��
� �� ��
(�)
� �� ��
(�)
� �� ��
(�)
� �� ��
(�)
��� ��� 3 3n ��� �� �� �� ��� ��
� ��� 3 3n ��� �� LOB � �� �� ��� ��
��� � 4 4n ��� �� Distinct � �� ��
� � 4 4n ��� �� LOB � ��
�
�� ��
SQLVAR �� � � �
SQLVAR �� � �� SQLDA� ��� �� � � � �� ��
� �� �� �� ����. ��� ��� � �� �����.
SQLDAID� �� �� ��� �� ���� SQLVAR �� �� �� ��.
SQLD� SQLVAR � �� �� ��� ���� ��� �� ��.
v SQLD� �� ��� ��� SQLVAR � � �� ������.
v ��� ��� SQLVAR� �� SQLVAR ��� �� ��� �
(SQLSTATE 01594)� SQLCA� SQLCODE ��� � ��. �� SQLVAR
��� � ��. �� �� SQLVAR� �� ����.
v ��� SQLVAR� �� SQLVAR ��� �� ��� �(SQLSTATE
01005)� SQLCA� SQLCODE ��� � ��. SQLVAR ��� �� �
���.
SQLDA
884 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
� 72. SQLVAR� �� �� ��
C�77
COBOL�
PL/I�
RPG � � � ��
DESCRIBE � PREPARE � �
�(������ ���� ��)
FETCH, OPEN, CALL �
EXECUTE � ��(��� �� �
���� ��)
sqltype
SQLTYPE
SMALLINT � �� �� � �� ��� �
�� ��� �����. � ���
�� ��� 887 ���� � 74�
�����.
�� �� �� �� �
��� � �� �� � ���
�����. �� SQLVAR�� �
��� �� �� �� ��� �
��� ��� ����.
��� ��� �� �� ����
� ��� ����� ��� ��
���. � ��� �� ��� 887
���� � 74� �����.
sqllen
SQLLEN
SMALLINT � �� �. ��� �
�� ��� ��� ��. 887 ���
� � 74� �����.
LOB� LOB �� �� ��
� �� 0��. �� SQLVAR
�� �� SQLLONGLEN ����
LOB� �� �� �����.
��� ��� �� �. 887 ���
� � 74� �����.
LOB� LOB �� �� ��
� �� 0��. �� SQLVAR
�� �� SQLLONGLEN ����
LOB� �� �� �����.
sqlres
SQLRES
CHAR(12) ��. SQLCATA� �� � ��
� �����.
��. SQLCATA� �� � ��
� �����.
sqldata
SQLDATA
�� 889 ���� � 75� � � ���
� ��� �� �� ID(CCSID)
��� ��� �� �����.
LOB ��� ��� ��
SQLVAR� SQLDATALEN ���
�(null)�� ��� LOB ���
� ��!� 4 �� LOB ��� �
����.
�� SQLVAR� SQLDATALEN
��� �(null)� ��� ���
LOB ��� ����
SQLDATALEN ��� 4 ��
LOB ��� �����.
sqlind
SQLIND
�� �� ����� ��� �� �����.
����� ��� �� ��
� ����(SQLTYPE� �� ��
� �� ��).
sqlname
SQLNAME
VARCHAR (30) ��� �� ��. � ���
��� ���� ����� ����
� ��.
��� ���� �� � � �
� ��� � ����.
889 ���� � 75� � � ��
��� ��� ��� �� ��
ID(CCSID)� �����.
77.� �� ����� C���. ����� PL/I, COBOL � RPG���.
SQLDA
�� C. SQLDA(SQL ��� ��) 885
||
� 73. �� SQLVAR� �� �� ��
C� 78
COBOL�
PL/I�
RPG � � � ��
DESCRIBE � PREPARE � �
�(������ ���� ��)
FETCH, OPEN, CALL �
EXECUTE � ��(��� �� �
���� ��)
len.sqllonglen
SQLLONGL
SQLLONGLEN
INTEGER LOB � �� � LOB ��� ��� �� �. ��
���� ���� � � �� �
� �� �� SQLVAR ��
SQLLEN ��� �����. ��
�� BLOB �� CLOB� ��
�� � � DBCLOB� �� ��
�� �����.
* CHAR(12) ��. SQLDATALEN� �� �
��� �����.
��. SQLDATALEN� �� �
��� �����.
* �� ��. ��.
sqldatalen
SQLDATAL
SQLDATALEN
�� ��� ��. LOB ��� ��� ���� ��.
� ��� �� �(null)�� LOB�
�� ��� ��� ��
SQLVAR� SQLDATA ��� ��
��� � �� 4 ��� ��
LOB ��� 4 �� ��� � �
� ���. �� ��� BLOB ��
CLOB� �� �� � �
DBCLOB� �� 2 �� �� ��
�����.
� ��� �� �(null)� �
� ��� (DBCLOB� ��)
�� � � LOB� �� ���
� 4 �� ��� ��� ���
��. �� �� ��� ��
SQLVAR� SQLDATA ���
LOB ��� �����.
� �� �� ��� �� ��, ��
SQLLONGLEN� ��� ����
���.
SQLDA
886 iSeries� DB2 UDB SQL ��� V5R2
� 73. �� SQLVAR� �� �� �� (�)
C� 78
COBOL�
PL/I�
RPG � � � ��
DESCRIBE � PREPARE � �
�(������ ���� ��)
FETCH, OPEN, CALL �
EXECUTE � ��(��� �� �
���� ��)
sqldatatype_name
SQLTNAME
SQLDATATYPE-NAME
VARCHAR (30) �� SQLVAR� SQLTNAME ��
� �� � �� �� ��.
v �� � � ���, ����
�� ���� � ��� �� �
�� �� � ���� ����
�. �� ��� ��� 30 ���
� ��� �� ��.
v �� � ���, ������ ��
�� � ��� �� � � 20 �
�� �����.
v ��� ���, ������ �
��� � ��� ���� ��
���.
��� ��.
SQLTYPE � SQLLEN�� �� SQLDA� SQLTYPE � SQLLEN ��� �� � �� �� ����
�. PREPARE � DESCRIBE�� SQLTYPE� �� �� � �(null) �� ��
� ��� �� , �� �� � � �� �� � �����.
�: PREPARE � DESCRIBE ���� �� ����� ��� ��� �
� ���� -2 � �� ��� �� � � ���� �� �� ��
� ��.
FETCH, OPEN, CALL � EXECUTE�� SQLTYPE� �� �� ��� ���
�� ��� ��� �� , �� �� SQLIND� ����� �� �� �� �
�� �����.
� 74. PREPARE, DESCRIBE, FETCH, OPEN, CALL �� EXECUTE� �� SQLTYPE � SQLLEN �
SQLTYPE
PREPARE � DESCRIBE� � FETCH, OPEN, CALL � EXECUTE� �
� �� SQLLEN ��� �� � �� SQLLEN
384/385 � 10 �� �� �� ��
��� ��
��� ��� �� �
388/389 �� 8 ��� �� �� ��
��� ��
��� ��� �� �
392/393 ���� 26 ����� �� �� �
� ��� ��
��� ��� �� �
78.� �� ����� C���. � �� ����� PL/I � RPG���. �� ����� COBOL���.
SQLDA
�� C. SQLDA(SQL ��� ��) 887
� 74. PREPARE, DESCRIBE, FETCH, OPEN, CALL �� EXECUTE� �� SQLTYPE � SQLLEN � (�)
SQLTYPE
PREPARE � DESCRIBE� � FETCH, OPEN, CALL � EXECUTE� �
� �� SQLLEN ��� �� � �� SQLLEN
396/397 DataLink � �� � DataLink ��� ��� �� �
400/401 �� �� �� �� NUL-�� � ��
�
��� ��� �� �
404/405 BLOB 080 BLOB ��� ��.80
408/409 CLOB 080 CLOB ��� ��.80
412/413 DBCLOB 080 DBCLOB ��� ��.80
448/449 �� ��� �� ��� � �� � �� ��� �� ��� ��� ��� �� �
452/453 �� �� �� ��� � �� � �� �� �� ��� ��� ��� �� �
456/457 �� ��� � �� �
��
� �� � �� ��� � �� �
��
��� ��� �� �
460/461 �� �� �� �� NUL-�� �� ��� ��� ��� �� �
464/465 �� ��� � ��
�
� �� � �� ��� � ��
�
��� ��� �� �
468/469 �� �� � ��� � �� � �� �� � ��� ��� ��� �� �
472/473 �� ��� � �
���
� �� � � � ��� ��� ��� �� �
476/477 �� �� �� �� PASCAL L-��� ��� ��� �� �
480/481 �� ��� ����� 4, ��
��� 8.
�� ��� ����� 4, ��
��� 8.
484/485 � ��� �� 1� ���, �
� 2� ���
� ��� �� 1� ���, �
� 2� ���
488/489 �(zone) ��� �� 1� ���, �
� 2� ���
�(zone) ��� �� 1� ���, �
� 2� ���
492/493 � �� 879 � �� 8
496/497 � �� 479 � �� 4
500/501 �� �� 279 �� �� 2
504/505 �� �� �� �� ��� ��� ��
��
�� 1� ���, �
� 2� ���
904/905 ROWID 40 ROWID 40
960/961 �� �� �� �� BLOB ���� 4
964/965 �� �� �� �� CLOB ���� 4
968/969 �� �� �� �� DBCLOB ���� 4
916/917 �� �� �� �� BLOB � �� �� 267
920/921 �� �� �� �� CLOB � �� �� 267
924/925 �� �� �� �� DBCLOB � �� �
�
267
79. 2��� 2, 4 �� 8� ��� �� �� 1� ���� �� 2� ���� �� SQLDA� ��� � ����. � �� ��� x’00’��
��, ���� ���� �����.
80. �� SQLVAR �� SQLLONGLEN ���� � �� �� �����.
SQLDA
888 iSeries� DB2 UDB SQL ��� V5R2
|||||
SQLDATA �� SQLNAMEOPEN, FETCH, CALL � EXECUTE ���� SQLVAR ��� SQLNAME �
�� ��� ��� ��� �� ��� �� �� ID(CCSID)� ��� � ���
� ����. �� SQLNAME ��� ��� ��� �� �� ID(CCSID)� �
�� SQLNAME ��� 8� ���� ���. �� SQLNAME� � 4
��� �� �� ��� ��� �� ���� ���. �� ��� �� ��
ID(CCSID)� ��� ��� �� ��� �� �� ID(CCSID)� �� ��.
DESCRIBE, DESCRIBE TABLE � PREPARE ���� SQLVAR ���
SQLDATA ���� � ��� � ���� � �� ��� �� ��
ID(CCSID)� �����. ��� �� �� ID(CCSID)� � 75� � � �� �
� 3 �� 4� �� �� ��.
� 75. SQLDATA �� SQLNAME� �� ��� �� �� ID(CCSID)
� �� ���� �� 1 & 2 �� 3 & 4
�� SBCS �� X'0000' ��� �� ��
ID(CCSID)
�� ��� �� X'0000' ��� �� ��
ID(CCSID)
�� � �� X'0000' 65535
� �� �� X'0000' ��� �� ��
ID(CCSID)
�� �� � �� �� �� �� �� ��
���� �� ��� �� SQLTYPESSQLDA� SQLTYPE ��� ���� �� ��� ��� ��� ���� �
�� � �� �� � ��� ��� �� ����. ��� � � �� ��
��� ��� � �����.
� �� �� ��� �� �� ��� �� ��� ��� �� � �
� ��� �� �� ��� �� ��� � �� ��� � �� �� ��
��. � � ��� � �� �� �� ��� ��� �� �� �
�� �� �� �� �� ��� �� � ����.
��� ��� �� �� � ��� ��� � ��� �� �� ����
�. � �� ��� �� � ��� �� ��� �� �� ��� ��
� ����. ��� �� �� �� �������� ������ ���� �
� ��� � ����.
SQLDA
�� C. SQLDA(SQL ��� ��) 889
� 76. ��� �� �� �� �� �� �� �
� �� �� � ��
BIGINT DECIMAL(19,0)
ROWID VARCHAR(40) FOR BIT DATA
INCLUDE SQLDA ��
C � C++� �
C � C++�� INCLUDE SQLDA �� ��� ����.
#ifndef SQLDASIZEstruct sqlda{
unsigned char sqldaid[8];long sqldabc;short sqln;short sqld;struct sqlvar{
short sqltype;short sqllen;unsigned char *sqldata;short *sqlind;struct sqlname{
short length;unsigned char data[30];
} sqlname;} sqlvar[1];
};
struct sqlvar2{ struct
{ long sqllonglen;char reserve1[28];
} len;char *sqldatalen;struct sqldistinct_type
{ short length;unsigned char data[30];
} sqldatatype_name;};
#define SQLDASIZE(n) (sizeof(struct sqlda)+(n-1) * sizeof(struct sqlvar))#endif
�� 11. C � C++� �� INCLUDE SQLDA � (1/3)
SQLDA
890 iSeries� DB2 UDB SQL ��� V5R2
/*********************************************************************//* Macros for using the sqlvar2 fields. *//*********************************************************************/
/*********************************************************************//* ’2’ in the 7th byte of sqldaid indicates a doubled number of *//* sqlvar entries. *//* ’3’ in the 7th byte of sqldaid indicates a tripled number of *//* sqlvar entries. *//*********************************************************************/#define SQLDOUBLED ’2’#define SQLSINGLED ’ ’
/*********************************************************************//* GETSQLDOUBLED(daptr) returns 1 if the SQLDA pointed to by *//* daptr has been doubled, or 0 if it has not been doubled. *//*********************************************************************/#define GETSQLDOUBLED(daptr) (((daptr)->sqldaid[6]== \(char) SQLDOUBLED) ? \
(1) : \(0) )
/*********************************************************************//* SETSQLDOUBLED(daptr, SQLDOUBLED) sets the 7th byte of sqldaid *//* to ’2’. *//* SETSQLDOUBLED(daptr, SQLSINGLED) sets the 7th byte of sqldaid *//* to be a ’ ’. *//*********************************************************************/#define SETSQLDOUBLED(daptr, newvalue) \
(((daptr)->sqldaid[6] =(newvalue)))
/*********************************************************************//* GETSQLDALONGLEN(daptr,n) returns the data length of the nth *//* entry in the sqlda pointed to by daptr. Use this only if the *//* sqlda was doubled or tripled and the nth SQLVAR entry has a *//* LOB datatype. *//*********************************************************************/#define GETSQLDALONGLEN(daptr,n) ((long) (((struct sqlvar2 *) \&((daptr)->sqlvar[(n) +((daptr)->sqld)])) ->len.sqllonglen))
/*********************************************************************//* SETSQLDALONGLEN(daptr,n,len) sets the sqllonglen field of the *//* sqlda pointed to by daptr to len for the nth entry. Use this only *//* if the sqlda was doubled or tripled and the nth SQLVAR entry has *//* a LOB datatype. *//*********************************************************************/#define SETSQLDALONGLEN(daptr,n,length) { \struct sqlvar2 *var2ptr; \var2ptr = (struct sqlvar2 *) &((daptr)->sqlvar[(n)+ \
((daptr)->sqld)]); \var2ptr->len.sqllonglen = (long) (length); \}
�� 11. C � C++� �� INCLUDE SQLDA � (2/3)
SQLDA
�� C. SQLDA(SQL ��� ��) 891
COBOL� �
COBOL�� INCLUDE SQLDA �� ��� ����.
/*********************************************************************//* SETSQLDALENPTR(daptr,n,ptr) sets a pointer to the data length for *//* the nth entry in the sqlda pointed to by daptr. *//* Use this only if the sqlda has been doubled or tripled. *//*********************************************************************/#define SETSQLDALENPTR(daptr,n,ptr) { \struct sqlvar2 *var2ptr; \var2ptr = (struct sqlvar2 *) &((daptr)->sqlvar[(n)+ \
((daptr)->sqld)]); \var2ptr->sqldatalen = (char *) ptr; \}
/*********************************************************************//* GETSQLDALENPTR(daptr,n) returns a pointer to the data length for *//* the nth entry in the sqlda pointed to by daptr. Unlike the inline *//* value (union sql8bytelen len), which is 8 bytes, the sqldatalen *//* pointer field returns a pointer to a long (4 byte) integer. *//* If the SQLDATALEN pointer is zero, a NULL pointer is be returned. *//* *//* NOTE: Use this only if the sqlda has been doubled or tripled. *//*********************************************************************/#define GETSQLDALENPTR(daptr,n) ( \
(((struct sqlvar2 *) &(daptr)->sqlvar[(n) + \(daptr)->sqld])->sqldatalen == NULL) ? \
((long *) NULL ) : ((long *) ((struct sqlvar2 *) \&(daptr)->sqlvar[(n) + (daptr) ->sqld])->sqldatalen))
�� 11. C � C++� �� INCLUDE SQLDA � (3/3)
1 SQLDA.05 SQLDAID PIC X(8).05 SQLDABC PIC S9(9) BINARY.05 SQLN PIC S9(4) BINARY.05 SQLD PIC S9(4) BINARY.05 SQLVAR OCCURS 0 TO 409 TIMES DEPENDING ON SQLD.
10 SQLTYPE PIC S9(4) BINARY.10 SQLLEN PIC S9(4) BINARY.10 FILLER REDEFINES SQLLEN.
15 SQLPRECISION PIC X.15 SQLSCALE PIC X.
10 SQLRES PIC X(12).10 SQLDATA POINTER.10 SQLIND POINTER.10 SQLNAME.
49 SQLNAMEL PIC S9(4) BINARY.49 SQLNAMEC PIC X(30).
�� 12. COBOL� �� INCLUDE SQLDA �
SQLDA
892 iSeries� DB2 UDB SQL ��� V5R2
ILE COBOL� �
ILE COBOL�� INCLUDE SQLDA �� ��� ����.
PL/I� �
PL/I�� INCLUDE SQLDA �� ��� ����.
1 SQLDA.05 SQLDAID PIC X(8).05 SQLDABC PIC S9(9) BINARY.05 SQLN PIC S9(4) BINARY.05 SQLD PIC S9(4) BINARY.05 SQLVAR OCCURS 0 TO 409 TIMES DEPENDING ON SQLD.
10 SQLVAR1.15 SQLTYPE PIC S9(4) BINARY.15 SQLLEN PIC S9(4) BINARY.15 FILLER REDEFINES SQLLEN.
20 SQLPRECISION PIC X.20 SQLSCALE PIC X.
15 SQLRES PIC X(12).15 SQLDATA POINTER.15 SQLIND POINTER.15 SQLNAME.49 SQLNAMEL PIC S9(4) BINARY.49 SQLNAMEC PIC X(30).
10 SQLVAR2 REDEFINES SQLVAR1.15 SQLVAR2-RESERVED-1 PIC S9(9) BINARY.15 SQLLONGLEN REDEFINES SQLVAR2-RESERVED-1
PIC S9(9) BINARY.15 SQLVAR2-RESERVED-2 PIC X(28).15 SQLDATALEN POINTER.15 SQLDATATYPE-NAME.
49 SQLDATATYPE-NAMEL PIC S9(4) BINARY.49 SQLDATATYPE-NAMEC PIC X(30).
�� 13. ILE COBOL� �� INCLUDE SQLDA �
SQLDA
�� C. SQLDA(SQL ��� ��) 893
ILE(Integrated Language Environment) RPG/400� �
ILE(Integrated Language Environment) RPG/400�� INCLUDE SQLDA ��
��� ����.
DCL 1 SQLDA BASED(SQLDAPTR),2 SQLDAID CHAR(8),2 SQLDABC BIN FIXED(31),2 SQLN BIN FIXED,2 SQLD BIN FIXED,2 SQLVAR (99),3 SQLTYPE BIN FIXED,3 SQLLEN BIN FIXED,3 SQLRES CHAR(12),3 SQLDATA PTR,3 SQLIND PTR,3 SQLNAME CHAR(30) VAR,
1 SQLDA2 BASED(SQLDAPTR),2 SQLDAID2 CHAR(8),2 SQLDABC2 FIXED(31) BINARY,2 SQLN2 FIXED(15) BINARY,2 SQLD2 FIXED(15) BINARY,2 SQLVAR2 (99),3 SQLBIGLEN,4 SQLLONGL FIXED(31) BINARY,4 SQLRSVDL FIXED(31) BINARY,
3 SQLDATAL POINTER,3 SQLTNAME CHAR(30) VAR;
DECLARE SQLSIZE FIXED(15) BINARY;DECLARE SQLDAPTR PTR;DECLARE SQLDOUBLED CHAR(1) INITIAL(’2’) STATIC;DECLARE SQLSINGLED CHAR(1) INITIAL(’ ’) STATIC;
�� 14. PL/I� �� INCLUDE SQLDA �
SQLDA
894 iSeries� DB2 UDB SQL ��� V5R2
���� SQL_NUM ��� �� ��� ����. SQL_NUM� SQL_VAR� �
� ��� ��� � � ��� ���� ���.
RPG� � ��� ��� ��� ���� SQLDA� � �� �� ��� ��
���. �� � � �� �� ��� �� ��� �� �� SQLDA� ��� �
�/��� � �� ��.
SQLDA� �� ��� ��� � ����� SQLVAR(�� SQLVAR2)�
��� �� ��� ��� � SQL_VAR,n� SQLVAR(�� SQLVAR2)�
MOVEA� �����. ��� n� SQLDA� �� �� ���. � ��� ��
�� ��� ��� ��� �� ��.
SQLDA �� ��� ���� � � ���� SQLVAR(�� SQLVAR2)�
SQL_VAR,n� MOVEA� �����. ��� n� �� �� ��� ���.
D* SQL Descriptor areaD SQLDA DSD SQLDAID 1 8AD SQLDABC 9 12B 0D SQLN 13 14B 0D SQLD 15 16B 0D SQL_VAR 80A DIM(SQL_NUM)D 17 18B 0D 19 20B 0D 21 32AD 33 48*D 49 64*D 65 66B 0D 67 96AD*D SQLVAR DSD SQLTYPE 1 2B 0D SQLLEN 3 4B 0D SQLRES 5 16AD SQLDATA 17 32*D SQLIND 33 48*D SQLNAMELEN 49 50B 0D SQLNAME 51 80AD*D SQLVAR2 DSD SQLLONGL 1 4B 0D SQLRSVDL 5 32AD SQLDATAL 33 48*D SQLTNAMELN 49 50B 0D SQLTNAME 51 80AD* End of SQLDA
�� 15. ILE(Integrated Language Environment) RPG/400� �� INCLUDE SQLDA �
SQLDA
�� C. SQLDA(SQL ��� ��) 895
896 iSeries� DB2 UDB SQL ��� V5R2
� D. ���
��� �� iSeries� DB2 UDB �� ��� �����. ���� ��� ��
� � ����. �� ���� ��� ���� �� ��� ���� IBM SQL �
�� �� 1 SC26-3255�� IBM SQL � ANSI ���� �����.
� 77. SQL ���
ADDALIASALLALLOCA
TEALLOW
ALTERANDANYASA
UTHORIZATIONBE
GINBETWEENBINARY
BY
CACHE
CALLCALLED
CARDINALITY
CASECASTCCSIDCH
ARCHARACTER
CHECKCLOSECOLLEC
TIONCOLUMNCOMMENT
COMMITCONCATCONDI
TIONCONNECT
CONNECTION
CONSTRAINTCONTAINS
CONTINUECOUNTCOUNT
_BIGCREATECROSS
CURRENT
CURRENT_
DATECURRENT_
PATHCURRENT_
SERVERCURRENT_
TIMECURRENT_
TIMESTAMP
CURRENT_
TIMEZONECURRENT
_USER
CURSORCYCLE
DATABASE
DAYDAYSDBINFODB2G
ENERALDB2GENRL
DB2SQLDECLAREDEF
AULTDEFAULTS
DEFINITION
DELETEDESCRIPTOR
DETERMINISTICDI
SALLOW
DISCONNECTDISTI
NCTDODOUBLEDROPDY
NAMICEACH
ELSEELSEIFENDEND
-EXEC(COBOL�
�� ��)
ESCAPEEXCEPTIONE
XCLUDING
EXECUTEEXISTSEXIT
EXTERNALFENCED
FETCHFILE
FINAL
FORFOREIGN
FREE
FROMFUNCTION
GENERALGENERATED
GET
GLOBAL
GO
GOTOGRANTGRAPHIC
GROUP
HANDLER
HAVINGHOLDHOURH
OURSIDENTITY
IFIMMEDIATEININC
LUDING
INCREMENT
INDEX
INDICATORINNER
INOUTINSENSITIVE
INSERTINTEGRITY
INTOIS ISOLATION
ITERATE
JAVAJOINKEY
LABEL
LANGUAGELEAVELEF
TLIKELINKTYPE
LOCK
LONG
LOOPMAXVALUE
MICROSECONDMICR
OSECONDS
MINUTEMINUTESMI
NVALUE
MODE
MODIFIES
MONTHMONTHSNEW
NEW_TABLE
NO
NOCACHE
NOCYCLE
NODENAMENODENU
MBERNOMAXVALUE
NOMINVALUE
NOORDER
NOTNULLOFOLD
OLD_TABLE
ON OPENOPTIMIZE
OPTION
ORORDER
OUTOUTEROVER
RIDING
PACKAGE
PARAMETERPARTIT
IONPATH
POSITIONPREPAR
EPRIMARY
PRIVILEGESPROCE
DUREPROGRAM
READREADS
RECOVERY
REFERENCESREFER
ENCING
© Copyright IBM Corp. 1998, 2002 897
|
|
|
|
|
||
||||||||||||||||||||||||||
||||||||||||||||||||||||||||
|||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||
� 78. SQL ��� (�)
RELEASERENAMEREPEA
TRESETRESIGNAL
RESTART
RESULT
RETURNRETURNSREVO
KERIGHT
ROLLBACKROUTINERO
WROWS
RRNRUN
SAVEPOINT
SCHEMASCRATCHPADS
ECONDSECONDSS
ELECT
SETSIGNAL
SIMPLE
SOMESOURCESPECIF
ICSQL
SQLID
START
STATIC
SUBSTRINGSYNONYM
TABLETHENTOTRA
NSACTION
TRIGGER
TRIMTYPE
UNDOUNIONUNIQUE
UNTILUPDATEUSAG
EUSERUSINGVALUE
SVARIABLEVARIANT
VIEWWHENWHEREWHI
LEWITHWRITE
YEARYEARS
���
898 iSeries� DB2 UDB SQL ��� V5R2
||
||||||||
|||||||||
|||||||||
||||||
|
� E. ��� �� �� ID(CCSID) �
�� ���� ��� �� �� ID(CCSID) � IBM ��� ������(RDB) �
�� �� ��� ��� �� �����.
v OS/390 � z/OS� DB2 UDB � VM � VSE� DB2� ��� � ��� CCSID
� ������ ��� ��� CCSID ��� �� �����. ��� ���
�� ���� ��� SBCS ��� �� �� ID(CCSID) � SBCS ����
��� � ����. �� SBCS �� DBCS ��� ��� ��� �� ���
��� � ����.
v iSeries� DB2 UDB � DB2 UDB UWO� ���, � ���� ��� � ��
��� �� �� ID(CCSID) � ����� �����. ���� ��� �� �
� ID(CCSID) �� ���� ��� ��� ����.
�� ���� �� � �� IBM ��� ������(RDB) �� �� ��� �
�� ��� ���.
X �� ��� �� �� ID(CCSID)�� �� � CCSID� ��� � �
��� ��� �����.
C �� ��� �� �� ID(CCSID)�� �� ��� �� �� ID(CCSID)
� ��� � ���� ��� �����. �� C� �� ��� �� �
� ID(CCSID)� �� �� ��� ��� � ��� �����. ��� �
�� �� �� ID(CCSID)� �� ��� ��� � ����(�� �
� 850�� PC-�� ��� �� �� ID(CCSID)� iSeries� DB2 UDB
�� �� �� ��� ��� � ����).
T ��� �� ��� �� �� ID(CCSID)� �� ��� ���� ��
� ��� � ���� ��� ��� �����.
� ��� ��� �� �� ��� �� ���.
v OS/390� DB2 Universal Database �� 7
v VM � VSE� DB2 �� 7.1
v AS/400� DB2 Universal Database �� 5 �� 2
v OS/2� DB2 Universal Database �� 7
v AIX/6000� DB2 Universal Database �� 7
v HP� DB2 Universal Database �� 7
v SUN� DB2 Universal Database �� 7
v NT � Windows 95� DB2 Universal Database �� 7
© Copyright IBM Corp. 1998, 2002 899
|
v SCO Open Server� DB2 Universal Database �� 7
� 79. �� �� �� (UCS-2, UTF-16 � UTF-8)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
1200 UTF-16 X C C C C C C
1208 UTF-8 �� 3 X C X X X X X
13488 UCS-2 �� 1 C X X X X X X
� 80. EBCDIC �� 1(��-1) ��� �� ��� �� �� ID(CCSID)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
37 ��, ���
(S/370), ����,
!��, ��,
�, ����
X X X C C C C C C
256 � ����, �
���
T T X
273 �����, �� X X X C C C C C C
277 ��, �!�� X X X C C C C C C
278 !��, �� X X X C C C C C C
280 ���� X X X C C C C C C
284 ���, �� ��
��(�����)
X X X C C C C C C
285 �� X X X C C C C C C
297 ��� X X X C C C C C C
500 ��� ���
(AS/400), � �,
�� ��-1 ��.
X X X C C C C C C
871 ����� X X X C C C C C C
924 ��-0 T T X
1140 ��, ���
(S/370), ����,
!��, ��,
�, ����
T T X
1141 �����, �� T T X
1142 ��, �!�� T T X
1143 !��, �� T T X
1144 ���� T T X
��� �� �� ID(CCSID) �
900 iSeries� DB2 UDB SQL ��� V5R2
|||||||||||
||||||||||
||||||||||
� 80. EBCDIC �� 1(��-1) ��� �� ��� �� �� ID(CCSID) (�)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
1145 ���, �� ��
��(�����)
T T X
1146 �� T T X
1147 ��� T T X
1148 ��� ���
(AS/400), � �,
�� ��-1 ��.
T T X
1149 ����� T T X
� 81. PC-�� � ISO �� 1(��-1) ��� �� ��� �� �� ID(CCSID)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
437 USA X C C X C C C C C
819 ��-1 ��(ISO
8859-1)
X C C C X X X C X
850 �� �� ��1;
��-1 ��
X C C X X C C C C
858 �� �� ��1;
��-1 ��(Euro
)
T T C
860 !��(850 �
��)
C C C X C C C C C
861 ����� C C
863 ���(850 ��
�)
C C C X C C C C C
865 ��, �!��,
!��, ��
C C C
923 ��-0 C
1009 IRV 7-� C
1010 ��� 7-� C
1011 �� 7-� C
1012 ���� 7-� C
1013 �� 7-� C
1014 ��� 7-� C
1015 !�� 7-� C
1016 �!�� 7-� C
��� �� �� ID(CCSID) �
�� E. ��� �� �� ID(CCSID) � 901
||||
|||||||||
� 81. PC-�� � ISO �� 1(��-1) ��� �� ��� �� �� ID(CCSID) (�)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
1017 �� 7-� C
1018 !�� � ��
7-�
C
1019 ��� � ����
7-�
C
1051 HP ����� X C C C X C C
1252 Windows** �
�-1
X C C C C C C X C
1275 Macintosh** �
�-1
X C C C C C C C
� 82. EBCDIC �� 1a(��-1� � SBCS) ��� �� ��� �� �� ID(CCSID)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
420 ���(�
4)Visual LTR
X X X C C C C C C
423 ���� X X X C C C C C C
424 ��(� 4) X X X C C C C C C
870 ��-2 �� �
��
X X X C C C C C C
875 ���� X X X C C C C C C
880 ��� �� �
��
T T X
905 �� ��-3 ��
� ��
T T X
918 �� T T X
1025 ��� �� �
��
X X X C C C C C C
1026 �� ��-5 X T X C C C C C C
1097 ��� T T X
1112 � �� � �
�
X X X C C C C C C
1122 ������ T X X C C C C C C
1123 ����� T X X C C C C C C
1137 Devanagari T T X
1153 ��-2(Euro ) T T X
��� �� �� ID(CCSID) �
902 iSeries� DB2 UDB SQL ��� V5R2
|||||||||||
|||||||||||
� 82. EBCDIC �� 1a(��-1� � SBCS) ��� �� ��� �� �� ID(CCSID) (�)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
1154 ���(Euro
)
T T X
1155 �� ��-5(Euro
)
T T X
1156 ��(Euro ) T T X
1157 ������(Euro
)
T T X
1158 �����(Euro
)
T T X
4971 ����(Euro
)
T T X
8612 ���(� 5) X
8616 ��(� 6) X
12708 ���(� 7) X
62211 ��(� 5) X C C C C C C
62224 ���(� 6) X C C C C C C
62229 ��(� 8) C C C C C C
62233 ���(� 8) C C C C C C
62234 ���(� 9) C C C C C C
62235 ��(� 10) X C C C C C C
62240 ��(� 11) C C C C C C
62245 ��(� 10) X
��� ��:
4 Visual / Left-to-Right / Shaped
5 Implicit / Left-to-Right / Unshaped
6 Implicit / Right-to-Left / Unshaped
7 Visual / Contextual / Unshaped
8 Visual / Right-to-Left / Shaped
9 Visual / Right-to-Left / Shaped
10 Implicit / Contextual-Left
11 Implicit / Contextual-Right
��� �� �� ID(CCSID) �
�� E. ��� �� �� ID(CCSID) � 903
||||||||||||
||||||||||||
|||||||||||
||||||||||||
||||||||||||
||||||||||||
|||||||||||
� 83. PC-�� � ISO �� 1a(��-1� � SBCS) ��� �� ��� �� �� ID(CCSID)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
720 ���(MS-Dos) C
737 ����(MS-Dos) C C C C C C C
775 ��(MS-Dos) C
813 ����/���
(ISO 8859-7)
C C C X X X C C X
851 ���� C
852 ��-2 �� �
��
C C C X C C C C C
855 ��� �� �
��
C C X C C C C C
856 ���(� 5) C
857 �� ��-5 C C X C C C C C
862 ��(� 10) C C C X C C C C C
864 ���(� 5) C C C X C C C C C
866 ��� C C X C C C C C
868 �� C
869 ���� C C C X C C C C C
878 �� ��� C
912 ��-2(ISO
8859-2)
C C C C X X C C X
914 ��-4(ISO
8859-4)
C
915 ��� �� �
��(ISO 8859-5)
C C X X X C C X
916 ��/��(ISO
8859-8) (� 5)
C C C C X C C C C
920 �� ��-5 (ISO
8859-9)
C C C X X C C X
921 � 8-� C C X X C C X C
922 ����� 8-� C X X C C X C
1008 ��� 8-� ISO C
1046 ���(� 5) C C C X C C C C
1089 ���(ISO
8859-6) (� 5)
C C C X X C C C
1098 ��� C
1124 ���� 8-�
ISO
C
1125 ���� C X C C C C C
��� �� �� ID(CCSID) �
904 iSeries� DB2 UDB SQL ��� V5R2
||||||||||||
� 83. PC-�� � ISO �� 1a(��-1� � SBCS) ��� �� ��� �� �� ID(CCSID) (�)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
1131 �� �� C X C C C C C
1250 Windows ��-2 C C C C C C C X C
1251 Windows ��� C C C C C C C X C
1253 Windows ���� C C C C C C C X C
1254 Windows ��� C C C C C C X C
1255 Windows ��
(� 5)
C C C C C C C X C
1256 Windows ���
(� 5)
C C C C C C C X C
1257 Windows �� C C
1280 Macintosh** ��
��
C C C C C C C C
1281 Macintosh** ��
�
C C C C C C C C
1282 Macintosh** �
�-2
C C C C C C C C
1283 Macintosh** �
��
C C C C C C C C
4948 ��-2 �� �
��
C
4951 ��� �� �
��
C
4952 �� C
4953 �� ��-5 C
9056 ���(���� �
�)
C
4960 ��� C
4965 ���� C
62208 ��(� 4) X X X X X X
62209 ��(� 4) C X C C C C C
62210 ��/��(ISO
8859-8) (� 4)
C C X X C C C
62213 ��(� 5) C X C C C C C
62215 Windows ��
(� 4)
C C C C C X C
62218 ���(� 4) C X C C C C C
62220 ��(� 6) X X X X X X
62221 ��(� 6) C X C C C C C
��� �� �� ID(CCSID) �
�� E. ��� �� �� ID(CCSID) � 905
� 83. PC-�� � ISO �� 1a(��-1� � SBCS) ��� �� ��� �� �� ID(CCSID) (�)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
62222 ��/��(ISO
8859-8) (� 6)
C C X X C C C
62223 Windows ��
(� 6)
C C C C C X C
62225 ���(� 6) X C C C C C
62226 ���(� 6) C X C C C C
62227 ���(ISO
8859-6) (� 6)
C X X C C C
62228 Windows ���
(� 6)
C C C C C X C
62230 ��(� 8) X X X X X X
62231 ��(� 8) X C C C C C
62232 ��/��(ISO
8859-8) (� 8)
C X X C C C
62236 ��(� 10) X X X X X X
62238 ��/��(ISO
8859-8) (� 10)
C C X X C C C
62239 Windows ��
(� 10)
C C C C C X C
62241 ��(� 11) X X X X X X
62242 ��(� 11) X C C C C C
62243 ��/��(ISO
8859-8) (� 11)
C X X C C C
62244 Windows ��
(� 11)
C C C C X C
��� ��:
4 Visual / Left-to-Right / Shaped
5 Implicit / Left-to-Right / Unshaped
6 Implicit / Right-to-Left / Unshaped
7 Visual / Contextual / Unshaped
8 Visual / Right-to-Left / Shaped
9 Visual / Right-to-Left / Shaped
10 Implicit / Contextual-Left
11 Implicit / Contextual-Right
��� �� �� ID(CCSID) �
906 iSeries� DB2 UDB SQL ��� V5R2
� 84. EBCDIC �� 2(DBCS) ��� �� SBCS ��� �� �� ID(CCSID)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
290 ��� ����(�
�)
X X X C C C C C C
833 ��(��) X X X C C C C C C
836 ���(��) X X X C C C C C C
838 ���(��) X X X C C C C C C
1027 ��� ��(��) X X X C C C C C C
1130 ���� T X X
1132 ���� T X X
1160 ��� (Euro
)
T T X
1164 ���� (Euro
)
T T X
5123 ��� (Euro
)
T T X
9030 ���(��) T T X
13121 �� Windows T T X
13124 ��� T T X
28709 ���(��) X X X C C C C C C
� 85. PC-�� �� 2(DBCS) ��� �� SBCS ��� �� �� ID(CCSID)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
367 �� � ���
EUC
X C C X C
874 ���(��) C C C X X X
891 ��(�� ��) C C
895 ��� EUC -
JISX201 Roman
��
C C
896 ��� EUC -
JISX201 ����
��
C
897 ���(�� ��) X C C
903 ���(�� ��) C C
904 ���(�� ��) C C C
��� �� �� ID(CCSID) �
�� E. ��� �� �� ID(CCSID) � 907
||||||||||||
||||||||||||
||||||||||||
� 85. PC-�� �� 2(DBCS) ��� �� SBCS ��� �� �� ID(CCSID) (�)
CCSID �� DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
1040 ��(��) C C
1041 ���(��) X C C
1042 ���(��) C C
1043 ���(��) C C C
1088 ��(KS ��
5601-89)
X C C
1114 ���(Big-5) C C C
1115 ��� GB-�� C C C
1126 �� Windows C C
1129 ���� C
1133 ���� ISO C
1258 ���� C
4970 ���(��) C X X X
5210 ��� C
9066 ���(��) C
� 86. EBCDIC �� 2(DBCS) ��� �� DBCS ��� �� �� ID(CCSID)
CCSID ��
DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
300 ��� - 4370 �
�� �� ��
(UDC)
X X X C C C C C C
834 �� - 1880 ��
� �� ��
(UDC)
X X X C C C C C C
835 ��� - 6204 �
�� �� ��
(UDC)
X X X C C C C C C
837 ��� - 1880 �
�� �� ��
(UDC)
X X X C C C C C C
4396 ��� - 1880 �
�� �� ��
(UDC)
X X X C C C C C C
4930 �� Windows X C C C C C C
4933 ��� X C C C C C C
��� �� �� ID(CCSID) �
908 iSeries� DB2 UDB SQL ��� V5R2
� 87. PC-�� �� 2(DBCS) ��� �� DBCS ��� �� �� ID(CCSID)
CCSID ��
DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
301 ��� - 1880 �
�� �� ��
(UDC)
X C C X X C C C C
926 �� - 1880 ��
� �� ��
(UDC)
C C
927 ��� - 6204 �
�� �� ��
(UDC)
C C C X C C C C C
928 ��� - 1880 �
�� �� ��
(UDC)
C C
941 ��� Windows X C C C C C C X C
947 ���(Big-5) C C C X X C C X C
951 ��(KS ��
5601-89) - 1880
��� �� ��
(UDC)
X C C X C C C X C
952 ���(EUC)
X208-1990 ��
C
953 ���(EUC)
X212-1990 ��
C
971 ��(EUC) - 1880
��� �� ��
(UDC)
X C C C X X X C C
1351 ���
HP-UX(J15)
X C C C X C C C
1362 �� Windows C C C C C C X C
1380 ���(GB-��) -
1880 ��� ��
��(UDC)
C C C X C C C X X
1382 ���(EUC) -
1360 ��� ��
��(UDC)
C C C C X X X C X
1385 ��� C C C C C X C
��� �� �� ID(CCSID) �
�� E. ��� �� �� ID(CCSID) � 909
� 88. EBCDIC �� 2(DBCS) ��� �� �� ��� �� �� ID(CCSID)
CCSID ��
DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
930 ��� ����/�
�(��) - 4370
��� �� ��
(UDC)
X X X C C C C C C
933 ��(��) - 1880
��� �� ��
(UDC)
X X X C C C C C C
935 ���(��) -
1880 ��� ��
��(UDC)
X X X C C C C C C
937 ���(��) -
4370 ��� ��
��(UDC)
X X X C C C C C C
939 ��� ��/��
(��) - 4370 �
�� �� ��
(UDC)
X X X C C C C C C
1364 ��(��) X C C C C C C
1388 ��� X C C C C C C
5026 ��� ����/�
�(��)- 1880 �
�� �� ��
(UDC)
X X X C C C C C C
5035 ��� ��/��
(��) - 1880 �
�� �� ��
(UDC)
X X X C C C C C C
� 89. PC-�� �� 2(DBCS) ��� �� �� ��� �� �� ID(CCSID)
CCSID ��
DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
932 ���(�� ��)
- 1880 ��� �
� ��(UDC)
X C C X X C C C C
934 ��(�� ��)
1880 ��� ��
��(UDC)
C C
��� �� �� ID(CCSID) �
910 iSeries� DB2 UDB SQL ��� V5R2
� 89. PC-�� �� 2(DBCS) ��� �� �� ��� �� �� ID(CCSID) (�)
CCSID ��
DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
936 ���(�� ��)
- 1880 ��� �
� ��(UDC)
C C
938 ���(�� ��)
- 6204 ��� �
� ��(UDC)
C C C X C C C C C
942 ���(��) -
1880 ��� ��
��(UDC)
X C C X C C C C C
943 ��� NT X C C X C C C X C
944 ��(��) - 1880
��� �� ��
(UDC)
C C C
946 ���(��) -
1880 ��� ��
��(UDC)
C C
948 ���(��) -
6204 ��� ��
��(UDC)
C C C X C C C C C
949 ��(KS ��
5601-89) - 1880
��� �� ��
(UDC)
X C C X C C C C C
950 ���(Big-5) C C C X X X X X C
954 ���(EUC) C C C C X X X C X
956 ��� 2022 TCP C
957 ��� 2022 TCP C
958 ��� 2022 TCP C
959 ��� 2022 TCP C
964 ���(EUC) C C C C X X X C C
965 ��� 2022 TCP C
970 �� EUC X C C C X X X C C
1363 �� Windows C C C C C C X C
1381 ��� GB-�� C C C X C C C X C
1383 ��� EUC C C C C X X X C X
1386 ��� C X X C C X C
1392 ��� GB18030 C
��� �� �� ID(CCSID) �
�� E. ��� �� �� ID(CCSID) � 911
|||||||||||
� 89. PC-�� �� 2(DBCS) ��� �� �� ��� �� �� ID(CCSID) (�)
CCSID ��
DB2
UDB
UWO
(OS/390)
VM �
VSE�
DB2
DB2
UDB
UWO
(AS/400)
DB2
UDB
UWO
(OS/2)
DB2
UDB
UWO
(AIX/
6000)
DB2
UDB
UWO
(HP)
DB2
UDB
UWO
(SUN)
DB2
UDB
UWO
(NT)
DB2
UDB
UWO
(SCO)
5039 ���
HP-UX(J15)
C C C X C C C
5050 ���(EUC) C
5052 ��� 2022 TCP C
5053 ��� 2022 TCP C
5054 ��� 2022 TCP C
5055 ��� 2022 TCP C
17354 �� 2022 TCP C
25546 �� 2022 TCP C
33722 ��� EUC C
��� �� �� ID(CCSID) �
912 iSeries� DB2 UDB SQL ��� V5R2
� F. SQL�� ��
� ���� SQL�� ��� � �� ��� SQL�� ��� �� ���
����.
v SQL�� ��� ��� SQL�� ��� � �� , ������ ���� �
� � �� , ����, �� �� ��� � �� � ��� ��� ��
���. �SQL�� ��� ���� �����.
v �� ��� �� �� ��� SQL�� ��� � ���� � SQL ��
��� ��� �����. 915 ���� ����� SQL� �� ��� ���� �
����.
v �� ��� ������ ��� ��� ������ ��� ������ ��
��� �� �� �� SQL� ��� �� ��� �� � ����. �� F �SQL
�� ���� �����.
SQL�� ��� ��
� 90��� �� DB2�� ��� � �� , ������ ���� �� � ��
, ����, �� �� ��� � �� � ��� ��� �����. Y ��
� yes� �����.
� 90. SQL�� ��� ��
SQL� ���
����� ��
���� �
��
�� ��� �� �����
ALTER Y Y Y
BEGIN DECLARE SECTION Y
CALL Y Y Y
CLOSE Y Y
COMMENT Y Y Y
COMMIT Y Y Y
CONNECT(� 1 � � 2) Y Y
CREATE ... Y Y Y
DECLARE CURSOR Y
DECLARE GLOBAL
TEMPORARY TABLE
Y Y Y
DECLARE PROCEDURE Y
DECLARE STATEMENT Y
DECLARE VARIABLE Y
DELETE Y Y Y
DESCRIBE Y Y
© Copyright IBM Corp. 1998, 2002 913
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
||||
|
|||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
|||||||
||||||
||||||
||||||
||||||
||||||
� 90. SQL�� ��� �� (�)
SQL� ���
����� ��
���� �
��
�� ��� �� �����
DESCRIBE TABLE Y Y
DISCONNECT Y Y
DROP ... Y Y Y
END DECLARE SECTION Y
EXECUTE Y Y
EXECUTE IMMEDIATE Y Y
FETCH Y Y
FREE LOCATOR Y Y Y
GET DIAGNOSTICS2 Y Y
GRANT ... Y Y Y
HOLD LOCATOR Y Y Y
INCLUDE Y
INSERT Y Y Y
LABEL Y Y Y
LOCK TABLE Y Y Y
OPEN Y Y
PREPARE Y Y
RELEASE CONNECTION Y Y
RELEASE SAVEPOINT Y Y Y
RENAME Y Y Y
REVOKE ... Y Y Y
ROLLBACK Y Y Y
SAVEPOINT Y Y Y
SELECT INTO Y Y
SET CONNECTION Y Y
SET OPTION Y
SET PATH Y Y Y
SET RESULT SETS3 Y Y
SET SCHEMA Y Y Y
SET TRANSACTION Y Y Y
SET �� Y Y
SIGNAL SQLSTATE2 Y Y
UPDATE Y Y Y
VALUES1 Y Y
VALUES INTO Y Y Y
WHENEVER Y
914 iSeries� DB2 UDB SQL ��� V5R2
|
||||
|
|||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
||||||
� 90. SQL�� ��� �� (�)
SQL� ���
����� ��
���� �
��
�� ��� �� �����
�:
1. � ��� ��� ��� ����� ��� � ����.
2. � ��� SQL �, SQL ����� �� SQL ����� ��� � ����. SQL trigger.
3. � ��� �������� ��� � ����.
���� SQL� �� ��� ��
�� �� SQL�(� � ���)� ��� SQL �� ��� ��� �� ���
���� ��� � ��� ��� �����. NO SQL� ��� �� �����
� �� �� SQL�� �� , SQLSTATE 38001� � ��. �� �� ��
��, ���� ��� �� SQL�� SQLSTATE 38003� ����. CONTAINS
SQL ���� ��� �� �� SQL�� SQLSTATE 38004� ��
READS SQL DATA ���� SQLSTATE 38002� � ��. SQL �� SQL
������ ��� ��, SQL �� ��� ��� �� �� ��� ���
SQLSTATE 42895� � ��.
� 91. SQL� � SQL �� ��� ��
SQL� NO SQL CONTAINS
SQL
READS SQL
DATA
MODIFIES
SQL DATA
ALTER TABLE N N N Y
BEGIN DECLARE SECTION Y1 Y Y Y
CALL N Y Y Y
CLOSE N N Y Y
COMMENT N N N Y
COMMIT N N N N
CONNECT(� 1 � � 2)3 N N N N
CREATE ... N N N Y
DECLARE CURSOR Y1 Y Y Y
D E C L A R E G L O B A L
TEMPORARY TABLE
N N N Y
DECLARE PROCEDURE Y1 Y Y Y
DECLARE STATEMENT Y1 Y Y Y
DECLARE VARIABLE Y1 Y Y Y
DELETE N N N Y
DESCRIBE N N Y Y
DESCRIBE TABLE N N Y Y
DISCONNECT3 N N N N
DROP ... N N N Y
�� F. SQL�� �� 915
|
||||
|
|||
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
||||||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
||||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
� 91. SQL� � SQL �� ��� �� (�)
SQL� NO SQL CONTAINS
SQL
READS SQL
DATA
MODIFIES
SQL DATA
END DECLARE SECTION Y1 Y Y Y
EXECUTE N Y2 Y2 Y
EXECUTE IMMEDIATE N Y2 Y2 Y
FETCH N N Y Y
FREE LOCATOR N Y Y Y
GRANT ... N N N Y
HOLD LOCATOR N Y Y Y
INCLUDE Y1 Y Y Y
INSERT N N N Y
LABEL N N N Y
LOCK TABLE N Y Y Y
OPEN N N Y Y
PREPARE N Y Y Y
RELEASE CONNECTION3 N N N N
RELEASE SAVEPOINT N N N Y
RENAME N N N Y
REVOKE ... N N N Y
ROLLBACK N Y Y Y
ROLLBACK TO SAVEPOINT N N N Y
SAVEPOINT N N N Y
SELECT INTO N N Y Y
SET CONNECTION3 N N N N
SET OPTION Y1 Y Y Y
SET PATH N N Y Y
SET RESULT SETS N Y Y Y
SET SCHEMA N N Y Y
SET TRANSACTION N Y Y Y
SET �� N Y Y Y
UPDATE N N N Y
VALUES N Y Y Y
VALUES INTO N N Y Y
WHENEVER Y1 Y Y Y
�:
1. NO SQL ��� SQL�� ��� � ��� ����, �� ��� �� �
�� ��� ����.
916 iSeries� DB2 UDB SQL ��� V5R2
|
||||||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
||||||
|
|
|
2. ��� ��� �����. EXECUTE�� �� ��� ��� �� ��
SQL ��� ��� ���� ��� ����� ���. �� ��, � SQL
��� ��� READS SQL DATA� , ��� INSERT, UPDATE ��
DELETE�� ���.
3. �� ����� �� ����� �� �� ��� ��� ����.
�� ��� ������(DRDB) ��� ���
� ���� ������ ����� �� ��� � ��� ��� �����
� � �� ��� �����.
�� IBM ��� ������(RDB) ��� IBM SQL� �� �� ��� ���
��. �� �� � ��� ��� ���� , ��� � ��� ��� �� �
��.
� ������� ��� �� � �� ��� �� ������ ���� �
����� ����� �� ��� �� ��� ���� ������� ��
��� ������ ���� ��� �� � �� ��� � ����. � ��
�� ��� �� ��� 918 ���� � 92, 919 ���� � 93, 921 ���� �
94 � 923 ���� � 95� ��� ����.
� ��� � SQL �� �� ��� ��� ��� ��� 'R'� ���
�. �� �� �� �� 'R'� � �� �� �� �� � ����� �� �
���� ��� � ��� �����.
�� ��� DB2 UDB UWO� OS/390 � z/OS� DB2 UDB, VM � VSE� DB2
�� iSeries� DB2 UDB �� �� DB2 ��� ���� �� �����.
� ��� ��� �� �� ��� �� ���.
v OS/390 � z/OS� DB2 UDB �� 7
v VM � VSE� DB2 �� 7.1
v iSeries� DB2 UDB �� 5 �� 2
v OS/2� DB2 UDB UWO �� 7
v AIX/6000� DB2 UDB UWO �� 7
v HP� DB2 UDB UWO �� 7
v NT� DB2 UDB UWO �� 7
v SUN� DB2 UDB UWO �� 7
v SCO Open Server� DB2 UDB UWO �� 7
�� F. SQL�� �� 917
|
|
|
|
|
|
|
� 92. OS/390 � z/OS� DB2 UDB ������ ����
SQL� �� ��
OS/390 � z/OS�
DB2 UDB ��
VM � VSE�
DB2 ��
iSeries� DB2
UDB ��
DB2 UDB UWO
��
�� ��� � ��� CALL R
COMMIT HOLD R R R R
COMMIT RELEASE R R R R
CONNECT(� 2) 1 1
DECLARE CURSOR WITH HOLD R
DECLARE STATEMENT
DECLARE TABLE
DECLARE VARIABLE
�� ��( 3) R
DESCRIBE TABLE R R
USING�� � ��� DESCRIBE R
DISCONNECT R R R R
��(Extended) �� �� R R R R
��� ��
��� �� - ��� ��(:) R R R
LOB(Large Object) �� � R
DATALINK �� � R R R R
�� �� � R R
ROWID �� � R R
IBM SQL� � ��� � 2 2 2
INTO�� � ��� PREPARE
USING�� � ��� PREPARE R
PUT R R R R
RELEASE
ROLLBACK HOLD R R R R
ROLLBACK RELEASE R R R R
SET CONNECTION
SET CURRENT PACKAGESET
SET ��� �� R R R
SET TRANSACTION R R R R
���� �� �� R R R R
UPDATE �� - FOR UPDATE OF�
� ��� ��
STOP� � ��� WHENEVER R R R R
�:
1 ��� �� �� ��� �� �� ��� � � �� �� ��� ���� ��� ���. ��� VM � VSE�
DB2 �� DB2 UDB UWO� ��� TCP/IP ��� ��� � �� ����.
2 � ��� ������ ����� ��� ��� �� ��.
3 ���� ���� �� �� �� ��� ��� �� ���� ��� ��.
918 iSeries� DB2 UDB SQL ��� V5R2
|
|||||
� 93. VM � VSE� DB2 ������ ����
SQL� �� ��
OS/390 � z/OS�
DB2 UDB ��
VM � VSE�
DB2 ��
iSeries� DB2
UDB ��
DB2 UDB UWO
��
�� ��� � ��� CALL R
COMMIT HOLD R R R R
COMMIT RELEASE
CONNECT(� 2) R R R R
DECLARE CURSOR WITH HOLD R
DECLARE STATEMENT R R R R
DECLARE TABLE R R R R
DECLARE VARIABLE R R R R
�� ��( 2) R
DESCRIBE TABLE R R R R
USING�� � ��� DESCRIBE R
DISCONNECT R R R R
��(Extended) �� �� R
3
R
3
R
3
��� �� - ��� ��(:) R R R R
��� ��
LOB(Large Object) �� � R R R R
DATALINK �� � R R R R
�� �� � R R R R
ROWID �� � R R R R
IBM SQL� � ��� � 1 1 1
INTO�� � ��� PREPARE R R R R
USING�� � ��� PREPARE R R R R
PUT
RELEASE R R R R
ROLLBACK HOLD R R R R
ROLLBACK RELEASE
SET CONNECTION R R R R
SET CURRENT PACKAGESET R R R R
SET ��� �� R R R R
SET TRANSACTION R R R R
���� �� �� R R R R
UPDATE �� - FOR UPDATE OF�
� ��� ��
STOP� � ��� WHENEVER
�� F. SQL�� �� 919
|||||
� 93. VM � VSE� DB2 ������ ���� (�)
SQL� �� ��
OS/390 � z/OS�
DB2 UDB ��
VM � VSE�
DB2 ��
iSeries� DB2
UDB ��
DB2 UDB UWO
��
�:
1 � ��� ������ ����� ��� ��� �� ��.
2 ���� ���� �� �� �� ��� ��� �� ���� ��� ��.
3 � ���� ���� ��� ���� ��(Extended) �� ��� �����. ��� ��� VM � VSE� DB2
�� �� �� �����.
920 iSeries� DB2 UDB SQL ��� V5R2
� 94. iSeries� DB2 UDB������ ����
SQL� �� ��
OS/390 � z/OS�
DB2 UDB ��
VM � VSE�
DB2 ��
iSeries� DB2
UDB ��
DB2 UDB UWO
��
�� ��� � ��� CALL R R R
COMMIT HOLD R R R
COMMIT RELEASE R R R R
CONNECT(� 2) 1 1
DECLARE CURSOR WITH HOLD R
DECLARE PROCEDURE
DECLARE STATEMENT
DECLARE TABLE
DECLARE VARIABLE
�� ��( 3) R
DESCRIBE TABLE R R
USING�� � ��� DESCRIBE R
DISCONNECT
��(Extended) �� �� R R R R
��� �� - ��� ��(:) R R R R
��� ��
LOB(Large Object) �� � R R
DATALINK �� � R R R
�� �� � R R
ROWID �� � R R
IBM SQL� � ��� � 2 2 2
INTO�� � ��� PREPARE
USING�� � ��� PREPARE R
PUT R R R R
RELEASE
ROLLBACK HOLD R R R
ROLLBACK RELEASE R R R R
SET CONNECTION
SET CURRENT PACKAGESET R R R R
SET ��� �� R R R R
SET TRANSACTION R R R
���� �� �� R R R
UPDATE �� - FOR UPDATE OF�
� ��� ��
R R
STOP� � ��� WHENEVER R R R R
�� F. SQL�� �� 921
|||||
� 94. iSeries� DB2 UDB������ ���� (�)
SQL� �� ��
OS/390 � z/OS�
DB2 UDB ��
VM � VSE�
DB2 ��
iSeries� DB2
UDB ��
DB2 UDB UWO
��
�:
1 ��� �� �� ��� �� �� ��� � � �� �� ��� ���� ��� ���. ��� VM � VSE�
DB2 �� DB2 UDB UWO� ��� TCP/IP ��� ��� � �� ����.
2 � ��� ������ ����� ��� ��� �� ��.
3 ���� ���� �� �� �� ��� ��� �� ���� ��� ��.
922 iSeries� DB2 UDB SQL ��� V5R2
� 95. DB2 UDB UWO ������ ����
SQL� �� ��
OS/390 � z/OS�
DB2 UDB ��
VM � VSE�
DB2 ��
iSeries� DB2
UDB ��
DB2 UDB UWO
��
�� ��� � ��� CALL
COMMIT HOLD R R R R
COMMIT RELEASE R R R R
CONNECT(� 2) 1 1
DECLARE CURSOR WITH HOLD R
DECLARE STATEMENT R R R R
DECLARE TABLE R R R R
DECLARE VARIABLE R R R R
�� ��( 3) R
DESCRIBE TABLE R R R R
USING�� � ��� DESCRIBE R R R R
DISCONNECT
��(Extended) �� �� R R R R
��� �� - ��� ��(:) R R R R
��� �� 4 4 4 4
LOB(Large Object) �� � R
DATALINK �� � R R R R
�� �� � R
ROWID �� � R R R R
IBM SQL� � ��� � 2 2 2
INTO�� � ��� PREPARE
USING�� � ��� PREPARE R R R R
PUT R R R R
RELEASE
ROLLBACK HOLD R R R R
ROLLBACK RELEASE R R R R
SET CONNECTION
SET CURRENT PACKAGESET
SET ��� �� R R R R
SET TRANSACTION R R R R
���� �� �� R R R R
UPDATE �� - FOR UPDATE OF�
� ��� ��
R R
STOP� � ��� WHENEVER R R R R
�� F. SQL�� �� 923
|||||
� 95. DB2 UDB UWO ������ ���� (�)
SQL� �� ��
OS/390 � z/OS�
DB2 UDB ��
VM � VSE�
DB2 ��
iSeries� DB2
UDB ��
DB2 UDB UWO
��
�:
1 ��� �� �� ��� �� �� ��� � � �� �� ��� ���� ��� ���. �� ��� VM � VSE�
DB2��, � ��� TCP/IP ��� ��� � �� ����.
2 � ��� ������ ����� ��� ��� �� ��.
3 ���� ���� �� �� �� ��� ��� �� ���� ��� ��.
4 DB2 UDB UWO�� ��� ��� COBOL ���� �� ��.
924 iSeries� DB2 UDB SQL ��� V5R2
CONNECT( � 1) � CONNECT( � 2) ���
CONNECT ���� �� �� �� ����. �� �� ��� ��
� � ��� ����.
v CONNECT(� 1)� ��� �� � � �� ��. 30 ���� ���� ��
� �� �����.
v CONNECT(� 2)� �� �� � � �� ��. 427 ���� �CONNECT(
� 2)�� �����.
�� �� CONNECT(� 1) � CONNECT(� 2) �� ��� ���� ���
���.
� 96. CONNECT(� 1) � CONNECT(� 2) ���
�� 1 �� �� 2 ��
CONNECT ��� � ��� �� ��� ��
� �� � ��� � � ����. ��� �� �
��� � ��� CONNECT ��� ���
� ����.
�� ��� ��� �� ��� ����. ��� �
� � ��� � ��� CONNECT ���
��� � ����.
�� ����� ���� �� ��� ���
CONNECT ��� ��� � ��� ��
��� �� ����.
� ��� �� ��� ��� ��� ���
CONNECT ��� ��� � ��� SQL
�� ��� �� ����.
CONNECT ��� �� �� �� ���
� ��� ��� ��� ��� ��.
CONNECT ��� ��� �� SQL ��
�� � � �� �� ��� SQL ��� �
� ��� �� �� ��.
CONNECT� � ��� ��� �� �� �
����. ��� CONNECT� � ��� ��
� �� �� ����.
CONNECT� ��� ��� �� ��� ��
����.
������ ��� �� ��� �� ���
�� CONNECT� ��� ���.
� ��� �� SQL ��� �� CONNECT�
����. ��� �� ��� �� CONNECT�
����.
��� CONNECT �� �
���� � ��� �� ����� �� ��� CONNECT �� ��� �
�� ��. ���� � ��� CRTSQLxxx ��� RDBCNNMTH ���
��� �� ��.
��� � �� � �� ���� ��
��� �� � � ��� ���� CONNECT(� 2) ��� �� �� ���
�� � ����.
�� F. SQL�� �� 925
CONNECT(� 2)� ��� �� � �� �� ��� ��� 81
v � ��� �� �� �� ��� � ��� �� �� �� ����
�����. � � �� ���� �� ������.
v � � � ����, �� ���� �� �����.
CONNECT(� 2)� �� �� � � ��� ��� ���
v ��� �� � �� �� ��� �� ��� � ��� �� �
��� �� �� ���� �����. � � � ��� ����� �
� ���� �� �����.
v � � � ����, �� ���� �� �����.
81. � TCP/IP� �� �� DRDA ��� ��� iSeries� DB2 UDB� ��� �� � � ��� ��� ���.
926 iSeries� DB2 UDB SQL ��� V5R2
� G. iSeries� DB2 UDB ���� �
� ����� iSeries� DB2 UDB ���� �� �� �� �� �����. � �
�� ������ ���� ������ �� ��� �� ��� �� �� �� �
�� ������. � ��� ����� ������ ���. ���� ���
iSeries� DB2 UDB� �� ��� �, ��� �� �, �� �, ��,
�����, ���, �, ��, ��, �� ��, �� � �� �� ��� �� �
���. ����� � ����� �� ���� � �� �� ��� �������
�� ��� �� ����.
���� �� � �� ��� ����.
v iSeries ���� � � �
iSeries ���� � � �� ANS � ISO ���� �� �� �����, ANS
� ISO ���� ��� �� ����. � �� �� �� iSeries� DB2 UDB
��� �� ��.
� � � �� ��� QSYS� QSYS2�� �����.
���� �� ��� �� ��� ������ �� �� �, ��, ����
�, �, �� �, ���, �, ��, ��, � ����� �� ��� ��
����. SQL ���� ��� �, �� SQL ����� ��� �� �, ���,
�, �� � ����� �� ���� ��� � ��� ��� �����
(SYSPARMS, SYSPROCS, SYSFUNCS, SYSROUTINES, SYSROUTINEDEP
� SYSTYPES ��).
v ODBC � JDBC ���� �
ODBC � JDBC ���� �� ODBC � JDBC ����� API ��� ��
�� ������. �� ��, SQLColumns��. � �� OS/390 � z/OS�
DB2 UDB � DB2 UDB UWO �� 8� �� �� ��. � �� ODBC ��
JDBC� �� ����� API� �� ��� �� ��.
� �� ��� SYSIBM� �����.
v ANS � ISO ���� �
ANS � ISO ���� �� ANS � ISO SQL ��(Information Schema ���
� �)� �� ������. � �� DB2 UDB UWO �� 8� �� �� �
�. � �� ANS � ISO ��� �� ��� �� ��.
� �� ��� QSYS2 � SYSIBM� �����.
� ��� �� �� �� � ��� � � ����.
© Copyright IBM Corp. 1998, 2002 927
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
�: �� � � ��� � ��� ��� �� ���� �� �����. �� �
� SYSIBM� ����, ������� � ��� �� ����. �� �
� ��� �� ���� �(IASP)� �� ��� �� ���� �� � �
���.
���� �
928 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
�
����� ��: �����, ���� �� � ��� �� ��� �� �� ��
��� ���� �� ��. �� ��, �� �� � ����� �����.
CREATE TABLE "colname"/"long_table_name"("long_column_name" CHAR(10),INTCOL INTEGER)
�� SELECT�� SQL�� ���� ��� �� �� ��� �� � �
��, �� SELECT�� ��� �� �� ��.
SELECT TABLE_NAME, SYSTEM_TABLE_NAME, COLUMN_NAME, SYSTEM_COLUMN_NAMEFROM QSYS2/SYSCOLUMNSWHERE TABLE_NAME = ’long_table_name’ AND
TABLE_SCHEMA = ’colname’
�� �� ����.
TABLE_NAME SYSTEM_TABLE_NAME COLUMN_NAME SYSTEM_COLUMN_NAME
long_table_name ″long0001″ long_column_name LONG_00001
long_table_name ″long0001″ INTCOL INTCOL
����� ��: �����, � ��� ����� � SQL ��� ���
� ���. iSeries ���� � � �� � ��� ��� �� �� � ��
DB2 UDB ���� ��� � ����� �� ��. ODBC � JDBC ����
�, ANS � ISO ���� �� � ��� ��� ����� ��� ��
�� �� �� � ����.
���� � ��: � ��� �� ���� ��� � ��. � ���
�� ��� NUMERIC_SCALE � CHARACTER_MAXIMUM_LENGTH� �
�� ��� �� ��� � �� �� ��� ��� ���� � ��� �
���.
SELECT COLUMN_NAME, NUMERIC_SCALE, CHARACTER_MAXIMUM_LENGTHFROM QSYS2/SYSCOLUMNSWHERE TABLE_NAME = ’long_table_name’ AND
TABLE_SCHEMA = ’colname’
�� �� ����.
COLUMN_NAME NUMERIC_SCALE CHARACTER_MAXIMUM_LENGTH
long_column_name ? 10
INTCOL 0 ?
���� �
�� G. iSeries� DB2 UDB ���� � 929
� ���� �� � �� �� �� ��� ″long_column_name″ � �
� NUMERIC_SCALE� ��� ��� � ��. �� ��� � � ��
�� �� ��� INTCOL � �� CHARACTER_MAXIMUM_LENGTH� �
�� ��� � ��.
� � ����: ���� � � �� �� ��� �� ���� � � ��
�� ����� ���� ���.
v ���� � QSYS.QADBXRDBD� ��� ������ ��� �� ����.
� �� ����� ���� ���.
v ILE �� �� ����� �� SQL �� ������ ���, �� ��
�� �� ��� ���� � ��. ILE �� � � ������ �
� � � �� ����. ILE �� � �� ������ ��� ��
��, ���� � SYSROUTINES � SYSPARMS� ���� � � �
� ������ ��� � ��� SQL ���� ��� ��� ��� ��
���.
v QSYS2 �� SYSIBM ��� �� �� ���� �� ��� �����. �
� �� ���� �� �� ��� �� ��� �� ����� ���� ���
� ��� ��� ���. �� ���� ��� �� ��� ���. �
����� �� ��� �� ��� �� ��� � � �� �� ��� �
����.
v QSYS �� �� ���� �� �� ��� �����. QSYS �� �
�� ���� �� �� � �� ����. ���, �� ���� ��� ��
� �� �� ��� �� �� �� ��.
���� �� �� �: ���� �� � � �� �� �� ������ � � �
� ����. ��� ��� SQL�� ��� �� ��� ��� ��� ��
�� ���� ��� � � ����. ����� � � �� SELECT ���
PUBLIC�� ��� � �� ��. � ��� ��� SELECT ��� � ��
��� ��� � ����.
QSYS ���� �: ���� ���� �� QSYS �� �� �� �� ���
��(��� ������ �� �� ��� ). � �� SELECT ��� ���
PUBLIC�� ��� �� � ��� � ����.
QADBCCST QADBKFLD QADBXSFLDQADBFDEP QADBPKG QADBXTRIGBQADBFCST QADBXRDBD QADBXTRIGCQADBIFLD QADBXREF QADBXTRIGD
���� �
930 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
|
iSeries ���� � � �
iSeries ������ QSYS2 ��� �� �� � � �� ����.
iSeries� DB2 UDB �� � ANSI/ISO � ��
932 ���� �SYSCATALOGS� CATALOGS ��� ������� �� ��
934 ���� �SYSCHKCST� CHECK_CONSTRAINTS �� �� ��� �� ��
935 ���� �SYSCOLUMNS� COLUMNS �� �� ��
944 ���� �SYSCST� TABLE_CONSTRAINTS �� �� ��� �� ��
945 ���� �SYSCSTCOL� CONSTRAINT_COLUMN_USAGE �� ���� ��� � �� ��
946 ���� �SYSCSTDEP� CONSTRAINT_TABLE_USAGE ���� �� �� ���� �� ��
947 ���� �SYSFUNCS� ROUTINES ��� �� �� �� ��
953 ���� �SYSINDEXES� ��� �� ��
954 ���� �SYSJARCONTENTS� Java ��� jars� �� ��.
955 ���� �SYSJAROBJECTS� Java ��� jars� �� ��.
956 ���� �SYSKEYCST� KEY_COLUMN_USAGE �, 1� � �� �� �� ��
957 ���� �SYSKEYS� �� �� �� ��
958 ���� �SYSPACKAGE� ���� �� ��
960 ���� �SYSPARMS� PARAMETERS �� ��� �� ��
964 ���� �SYSPROCS� ROUTINES ������ �� ��
969 ���� �SYSREFCST� REFERENTIAL_CONSTRAINTS �� �� ��� �� ��
971 ���� �SYSROUTINES� ROUTINES � � ������ �� ��
970 ���� �SYSROUTINEDEP� ROUTINE_TABLE_USAGE �� � ����� ��� �� ��
979 ���� �SYSTABLES� TABLES � � �� �� ��
981 ���� �SYSTRIGCOL� TRIGGER_COLUMN_USAGE ���� ��� ��
982 ���� �SYSTRIGDEP� TRIGGER_TABLE_USAGE ���� ��� ��� ��
983 ���� �SYSTRIGGERS� TRIGGERS �� ��
987 ���� �SYSTRIGUPD� TRIGGERED_UPDATE_COLUMNS ��� WHEN�� ��
988 ���� �SYSTYPES� USER_DEFINED_TYPES �� �� �� �� �� �� ��
994 ���� �SYSVIEWDEP� VIEW_TABLE_USAGE �� �� � ���� �� ��
996 ���� �SYSVIEWS� VIEWS �� ��� �� ��
iSeries ����
�� G. iSeries� DB2 UDB ���� � 931
|||
|||
SYSCATALOGS
SYSCATALOGS �� ���� ��� � �� ��� ������� �� ��
�� �� ����. �� ���� SYSCATALOGS �� � �����.
� 97. SYSCATALOGS �
��
��� ��
(Column
Name) � �� ��
CATALOG_NAME LOCATION VARCHAR(18) ��� �������
CATALOG_STATUS RDBASPSTAT CHAR(10) ��� ������ ��
ACTIVE
��� ������� ��� �
�� �� ���� �(IASP)� �
�� ��� � ��� � ��
��.
AVAILABLE
��� ������� ������
�.
VARYOFF
��� ������� �����
�� �� ���� �(IASP)� �
�� ����.
VARYON
��� ������� �����
�� �� ���� �(IASP)� �
�� ��� � ��� � ��
��.
UNKNOWN
��� ������ ��� � �
����.��� ��� �����
� ��� �� � � ����.
CATALOG_TYPE RDBTYPE CHAR(7) ��� ������ �
LOCAL
��� ������� � ����
��� ����.
REMOTE
��� ������� ��� ��
�� ����.
CATALOG_ASPGRP RDBASPGRP VARCHAR(10)
�� ��
�� �� ���� �(IASP) ��
��� ������ ��� UNKNOWN�
� �� �����.
SYSCATALOGS
932 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
||
|
|||||
||||
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|||||
||
� 97. SYSCATALOGS � (�)
��
��� ��
(Column
Name) � �� ��
CATALOG_ASPNUM RDBASPNUM VARCHAR(10)
�� ��
�� �� ���� �(IASP) �
��� ������ ��� UNKNOWN�
� �� �����.
CATALOG_TEXT RDBTEXT CHAR(50) ��� ������ ��� ��.
SYSCATALOGS
�� G. iSeries� DB2 UDB ���� � 933
|
|
|||||
|||||
||
||||
SYSCHKCST
SYSCHKCST ��� SQL ���� � �� ����� �� �� �� �� �
���. �� �� SYSCHKCST �� � �����.
� 98. SYSCHKCST �
��
��� ��
(Column
Name) � �� ��
CONSTRAINT_SCHEMA DBNAME VARCHAR(128) ����� �� �� ����.
CONSTRAINT_NAME RELNAME VARCHAR(128) �� �� �
CHECK_CLAUSE CHECK VARCHAR(2000)
�� ��
�� ���� �� ���
���� �� �� ��� � �� �
�� �����.
SYSCHKCST
934 iSeries� DB2 UDB SQL ��� V5R2
|
||
SYSCOLUMNS
SYSCOLUMNS ��� SQL ���� � � � �� �� � �� �� ��
�� ����(SQL ����� ). �� ���� SYSCOLUMNS �� �
�����.
� 99. SYSCOLUMNS �
��
��� ��
(Column
Name) � �� ��
COLUMN_NAME NAME VARCHAR(128) � ��. ��� ��� � ��� SQL
��� ��. ��� � ��� ���
��� ��.
TABLE_NAME TBNAME VARCHAR(128) � �� �� � �� � ��. ���
��� � ��� SQL � �� � ���
��. ��� � ��� ��� � ��
� ��� ��.
TABLE_OWNER TBCREATOR VARCHAR(128) � �� �� ��
ORDINAL_POSITION COLNO INTEGER ��� � ��� ��� � �� ��
� �� � �
SYSCOLUMNS
�� G. iSeries� DB2 UDB ���� � 935
� 99. SYSCOLUMNS � (�)
��
��� ��
(Column
Name) � �� ��
DATA_TYPE COLTYPE VARCHAR(8) �
BIGINT � �
INTEGER � �
SMALLINT �� �
DECIMAL � ���
NUMERIC �(zone) ���
FLOAT �� ���. FLOAT,
REAL �� DOUBLE
PRECISION
CHAR �� �� �� ���
VARCHAR �� ��� �� ���
CLOB �� LOB(Large Object)
���
GRAPHIC �� �� � ���
VARG �� ��� � ��
�
DBCLOB 2 �� �� LOB(Large
Object) ���
BLOB 2� LOB(Large Object)
���
DATE �
TIME ��
TIMESTMP ����
DATALINK �� ��
ROWID � ID
DISTINCT �� �
SYSCOLUMNS
936 iSeries� DB2 UDB SQL ��� V5R2
|
||
� 99. SYSCOLUMNS � (�)
��
��� ��
(Column
Name) � �� ��
LENGTH LENGTH INTEGER � �� �. �� ���, � �� 0�
� ��� 2� � � ���.
8�� BIGINT
4�� INTEGER
2�� SMALLINT
� ��� DECIMAL
� ��� NUMERIC
8�� FLOAT, FLOAT(n) ��
� n� 25 - 53 ��
DOUBLE PRECISION
4�� FLOAT, FLOAT(n) ��
� n� 1 - 24 �� ��
REAL
��� �� CHAR
��� �� �� VARCHAR �� CLOB
��� ��� ��
GRAPHIC
��� ��� �� ��
VARGRAPHIC � �
DBCLOB
2� ���� �� ��
BLOB
4�� DATE
3�� TIME
10�� TIMESTAMP
� � URL � ��� �� ��
DATALINK
40 �� ROWID
�� ��� ��� �
DISTINCT
NUMERIC_SCALE SCALE INTEGER
�� ��
� ��� ���
� ��, � �� 2�� � ��
� �����.
SYSCOLUMNS
�� G. iSeries� DB2 UDB ���� � 937
||
� 99. SYSCOLUMNS � (�)
��
��� ��
(Column
Name) � �� ��
IS_NULLABLE NULLS CHAR(1) � ��� ����
N ���
Y �
IS_UPDATABLE UPDATES CHAR(1) � �� � ��
N ���
Y �
LONG_COMMENT REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
HAS_DEFAULT DEFAULT CHAR(1) � ��� �(DEFAULT � �� �
(null) ��)� ���
N ���
Y �
A � ROWID �� ��
GENERATED ALWAYS ��
����.
D � ROWID �� ��
GENERATED BY DEFAULT
�� ����.
I � AS IDENTITY �
GENERATED ALWAYS ���
�� ��.
J � AS IDENTITY �
GENERATED BY DEFAULT
��� �� ��.
COLUMN_HEADING LABEL VARCHAR(60)
�� ��
�� ���� LABEL��� �� ��(
���).
���� �� ��� �����.
SYSCOLUMNS
938 iSeries� DB2 UDB SQL ��� V5R2
||
|
|
||
|
|
||
|
|
||
|
|
� 99. SYSCOLUMNS � (�)
��
��� ��
(Column
Name) � �� ��
STORAGE STORAGE INTEGER � �� ���� ����
8�� BIGINT
4�� INTEGER
2�� SMALLINT
(���/2) + 1 DECIMAL
� ��� NUMERIC
8�� FLOAT, FLOAT(n) ��
� n� 25 - 53 ��
DOUBLE PRECISION
4�� FLOAT, FLOAT(n) ��
� n� 1 - 24 �� ��
REAL
��� �� CHAR
��� �� �� + 2
VARCHAR
��� �� �� + 29
CLOB
��� �� * 2 GRAPHIC
��� �� �� * 2 + 2
VARGRAPHIC
��� �� �� * 2 + 29
DBCLOB
4�� DATE
3�� TIME
10�� TIMESTAMP
� � URL � ��� �� �� + 24
DATALINK
42�� ROWID
�� ��� ��� �
DISTINCT
�: � � �� �� �� �� ����
����� �����.
SYSCOLUMNS
�� G. iSeries� DB2 UDB ���� � 939
||
� 99. SYSCOLUMNS � (�)
��
��� ��
(Column
Name) � �� ��
NUMERIC_PRECISION PRECISION INTEGER
�� ��
�� � ���
�: � � ���� � ���� �� �
��� � �� � �� �� �
��� �����.
NUMERIC_PRECISION_RADIX � �
� �� 2� ����� �� �����
� �����.
� �� � ��� �����.
CCSID CCSID INTEGER
�� ��
CHAR, VARCHAR, CLOB, DATE,
TIME, TIMESTAMP, GRAPHIC,
VARGRAPHIC, DBCLOB �
DATALINK � �� ��� �� ��
ID(CCSID) �
� BLOB �� ROWID� 65535�
�����.
� � �� �� ��� ���
��.
TABLE_SCHEMA DBNAME VARCHAR(128) � �� �� �� �� SQL ����
COLUMN_DEFAULT DFTVALUE VARCHAR(2000)
�� ��
�� ��� ��� � ��� �.
�� � ��� �� ����� � �
��� � �� ‘TRUNCATED’ ����
��. ��� �� �� ��� �� �
�. ��� �� �� �� ����.
CURRENT_DATE
��� �� �� ���.
CURRENT_TIME
��� �� �� ����.
CURRENT_TIMESTAMP
��� �� �� ������.
NULL ��� �� ����.
USER ��� �� ��� �� ���
��.
� ��� �� �� ��� ����
�. �� ��, � IDENTITY �� ��
� � ID� ��.
CHARACTER_MAXIMUM_LENGTH CHARLEN INTEGER
�� ��
2��, ��, � ��� �� �� �
� ��� �� ��
� ���� � ��� �����.
SYSCOLUMNS
940 iSeries� DB2 UDB SQL ��� V5R2
||
|
|
|
� 99. SYSCOLUMNS � (�)
��
��� ��
(Column
Name) � �� ��
CHARACTER_OCTET_LENGTH CHARBYTE INTEGER
�� ��
2��, ��, � ��� �� �� �
� �� �.
� ���� � ��� �����.
NUMERIC_PRECISION_RADIX RADIX INTEGER
�� ��
NUMERIC_PRECISION �� ���
���� 2�� �� ���� �� ��
��� ��� �����.
2 2�. �� ��� ���� 2� �
��� �� ��.
10 ��. �� �� � �� ��
���� �� ��.
� �� � ��� �����.
DATETIME_PRECISION DATPRC INTEGER
�� ��
�, �� �� ����� �� ��.
0 DATE � TIME �� ��
6 TIMESTAMP �� �� (�
��� �� �)
� �, �� �� ����� �
��� �����.
COLUMN_TEXT LABELTEXT VARCHAR(50)
�� ��
�� ���� LABEL��� �� ��(
���).
� ���� �� ��� ���
��.
SYSTEM_COLUMN_NAME SYS_CNAME CHAR(10) � ����
SYSTEM_TABLE_NAME SYS_TNAME CHAR(10) � �� �� ����
SYSTEM_TABLE_SCHEMA SYS_DNAME CHAR(10) ���� ����
USER_DEFINED_TYPE_SCHEMA TYPESCHEMA VARCHAR(128)
�� ��
��� �� �� ����.
� �� �� � ��� ��
���.
USER_DEFINED_TYPE_NAME TYPENAME VARCHAR(128)
�� ��
�� � ��.
� �� �� � ��� ��
���.
IS_IDENTITY IDENTITY VARCHAR(3) � � � ID �� ��� �����.
NO � ID � ����.
YES � ID ��.
SYSCOLUMNS
�� G. iSeries� DB2 UDB ���� � 941
||||
||
||
� 99. SYSCOLUMNS � (�)
��
��� ��
(Column
Name) � �� ��
IDENTITY_GENERATION GENERATED VARCHAR(10)
�� ��
� � GENERATED ALWAYS ��
GENERATED BY DEFAULT�� ���
�����.
ALWAYS
�� �� �� ��.
BY DEFAULT
�� ���� �� ��.
� ROWID �� IDENTITY � �
��� �����.
IDENTITY_START START DECIMAL(31,0)
�� ��
ID � �� �.
� IDENTITY � � ��� �
����.
IDENTITY_INCREMENT INCREMENT DECIMAL(31,0)
�� ��
ID � � �.
� IDENTITY � � ��� �
����.
IDENTITY_MINIMUM MINVALUE DECIMAL(31,0)
�� ��
ID � �� �.
� IDENTITY � � ��� �
����.
IDENTITY_MAXIMUM MAXVALUE DECIMAL(31,0)
�� ��
ID � �� �.
� IDENTITY � � ��� �
����.
IDENTITY_CYCLE CYCLE VARCHAR(3)
�� ��
� � ��� �� ���� ��� �
ID �� � ���� ��� ���
��.
NO �� � ��� ����.
YES �� � �� ��.
� IDENTITY � � ��� �
����.
IDENTITY_CACHE CACHE INTEGER
�� ��
�� �� ���� � �� ��� ID
�� �� �����. 0� �� �� ��
� ��� �����.
� IDENTITY � � ��� �
����.
SYSCOLUMNS
942 iSeries� DB2 UDB SQL ��� V5R2
|||||||
|
|
|
|
|
|
|||||
||
|||||
||
|||||
||
|||||
||
|||||||
||
||
|
|
|||||||
||
� 99. SYSCOLUMNS � (�)
��
��� ��
(Column
Name) � �� ��
IDENTITY_ORDER ORDER VARCHAR(3)
�� ��
�� ���� ID �� ���� ��
��� �����.
NO �� ���� �� ��� ���
����.
YES �� ���� �� ���� �
��.
� IDENTITY � � ��� �
����.
SYSCOLUMNS
�� G. iSeries� DB2 UDB ���� � 943
||||||
||
|
||
|
|
|
SYSCST
SYSCST ��� SQL ���� � ����� �� �� �� �� ����. �
� ���� SYSCST �� � �����.
� 100. SYSCST �
��
��� ��
(Column
Name) � �� ��
CONSTRAINT_SCHEMA CDBNAME VARCHAR(128) ����� �� �� ����.
CONSTRAINT_NAME RELNAME VARCHAR(128) �� �� �
CONSTRAINT_TYPE TYPE VARCHAR(11) �� �� �
CHECK
UNIQUE
PRIMARY KEY
FOREIGN KEY
TABLE_SCHEMA TDBNAME VARCHAR(128) �� �� �� ����.
TABLE_NAME TBNAME VARCHAR(128) �� �� ��� ��� � ��. ���
��� � � ��� SQL � ��� �
�. ��� � ��� ��� � ���
��.
IS_DEFERRABLE ISDEFER VARCHAR(3) ���� ��� ��� � ��� ���
�����. �� ‘NO’��.
INITIALLY_DEFERRED INITDEFER VARCHAR(3) ����� ��� ����� ��� ��
���. �� ‘NO’��.
SYSTEM_TABLE_NAME SYS_TNAME CHAR(10) �� ����
SYSTEM_TABLE_SCHEMA SYS_DNAME CHAR(10) �� �� �� ���� ����
CONSTRAINT_KEYS COLCOUNT SMALLINT
�� ��
� �� UNIQUE, PRIMARY KEY ��
FOREIGN KEY ����� � �
� �����.
����� CHECK ����� ��
� �����.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSCST
944 iSeries� DB2 UDB SQL ��� V5R2
|
|||||||
||
|||||
SYSCSTCOL
SYSCSTCOL �� �� ��� ��� � �����. � �� 1� � �� �
� �� � � �� �� ��� �� � �� �� �� �����. �� �
��� SYSCSTCOL �� � �����.
� 101. SYSCSTCOL �
��
��� ��
(Column
Name) � �� ��
TABLE_SCHEMA TDBNAME VARCHAR(128) ����� �� �� �� �� SQL �
���
TABLE_NAME TBNAME VARCHAR(128) �� ��� ��� � ��. ��� ��
� � ��� SQL � ��� ��. ��
� � ��� ��� � ��� ��.
COLUMN_NAME COLUMN VARCHAR(128) �� ��� ��� . �� ��� ��
� SQL ��� ��. ��� ���
��� ��� � ���.
CONSTRAINT_SCHEMA CDBNAME VARCHAR(128) ����� �� �� ����
CONSTRAINT_NAME RELNAME VARCHAR(128) �� �� �
SYSTEM_COLUMN_NAME SYS_CNAME CHAR(10) � ����
SYSTEM_TABLE_NAME SYS_TNAME CHAR(10) �� ����
SYSTEM_TABLE_SCHEMA SYS_DNAME CHAR(10) �� �� �� ���� ����
SYSCSTCOL
�� G. iSeries� DB2 UDB ���� � 945
SYSCSTDEP
SYSCSTDEP �� �� ��� ��� �� �����. �� ���� SYSCSTDEP
�� � �����.
� 102. SYSCSTDEP �
��
��� ��
(Column
Name) � �� ��
TABLE_SCHEMA TDBNAME VARCHAR(128) ����� �� �� �� �� SQL �
���
TABLE_NAME TBNAME VARCHAR(128) �� ��� ��� � ��. �� ��
� ��� SQL � ��� ��. ���
��� ��� � ��� � ���.
CONSTRAINT_SCHEMA CDBNAME VARCHAR(128) ����� �� �� ����
CONSTRAINT_NAME RELNAME VARCHAR(128) �� �� �
SYSTEM_TABLE_NAME SYS_TNAME CHAR(10) �� ����
SYSTEM_TABLE_SCHEMA SYS_DNAME CHAR(10) �� �� �� ���� ����
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSCSTDEP
946 iSeries� DB2 UDB SQL ��� V5R2
|||||
SYSFUNCS
SYSFUNCS ��� CREATE FUNCTION ��� �� ��� � �� ��
�� �� �� ����. �� ���� SYSFUNCS �� � �����.
� 103. SYSFUNCS �
��
��� ��
(Column
Name) � �� ��
SPECIFIC_SCHEMA SPECSCHEMA VARCHAR(128) ��( �) ���� ���(schema)�
SPECIFIC_NAME SPECNAME VARCHAR(128) �� ���� � ��
ROUTINE_SCHEMA FUNCSCHEMA VARCHAR(128) ��� �� �� SQL ���(schema)�
ROUTINE_NAME FUNCNAME VARCHAR(128) �� �
ROUTINE_CREATED FUNCCREATE TIMESTAMP ��� ��� ����� �����.
ROUTINE_DEFINER DEFINER VARCHAR(128) ��� ��� ��� �
ROUTINE_BODY BODY VARCHAR(8) �� ��� �
EXTERNAL �� ����.
SQL SQL ����.
EXTERNAL_NAME EXTNAME VARCHAR(279)
�� ��
�� ��� � � �� �����
� �����.
v ILE �� ����� �� ����
�� schema-name/service-program-
name(entry-point-name)��.
v Java ����� �� ������ �
��� jar-id ��� fully-qualified-class-
name!method-name �� fully-qualified-
class-name.method-name� ����.
v �� �� �� �� ������
schema-name/program-name��.
��� �� ��� � � �� ��
���.
SYSFUNCS
�� G. iSeries� DB2 UDB ���� � 947
� 103. SYSFUNCS � (�)
��
��� ��
(Column
Name) � �� ��
EXTERNAL_LANGUAGE LANGUAGE VARCHAR(8)
�� ��
�� ��� � � �� �����
� �����.
C �� ����� C� �
� ��.
C++ �� ����� C++�
�� ��.
CL �� ����� CL� �
� ��.
COBOL �� ����� COBOL
� �� ��.
COBOLLE � � ����� I L E
COBOL� �� ��.
JAVA �� ����� JAVA�
�� ��.
PLI �� ����� PL/I��
�� ��.
RPG �� ����� RPG�
�� ��.
RPGLE � � ����� I L E
RPG� �� ��.
��� �� ��� � � �� ��
���.
SYSFUNCS
948 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
� 103. SYSFUNCS � (�)
��
��� ��
(Column
Name) � �� ��
PARAMETER_STYLE PARM_STYLE VARCHAR(7)
�� ��
�� ��� � � �� ��
�����(�� ��).
DB2SQL DB2SQL �� ���
�.
DB2GNRL DB2GENERAL �� �
���.
GENERAL GENERAL �� ��
��.
JAVA JAVA �� ����.
NULLS G E N E R A L W I T H
NULLS �� ����.
SQL SQL �� �� ���
�.
��� �� ��� � � �� ��
���.
IS_DETERMINISTIC DETERMINE VARCHAR(3) � � ��� ����� ��� ����
�. �� ��, ��� ��� ��� ��
� �� ��� ��� ����
��� ��� ���.
NO ��� ���� ����.
YES ��� �����.
SQL_DATA_ACCESS DATAACCESS VARCHAR(8) � � SQL� �� �� ����� ��
� ��� �� ��� ��� ����
�.
NONE ��� SQL�� ���
�.
CONTAINS ��� SQL�� ���
�.
READS ��� � �� ����
��� �� � ����.
MODIFIES ��� � �� � ��
��� �� SQL
DDL(data definition
language) ��� ��
� � ����.
SYSFUNCS
�� G. iSeries� DB2 UDB ���� � 949
� 103. SYSFUNCS � (�)
��
��� ��
(Column
Name) � �� ��
SQL_PATH SQL_PATH VARCHAR(3483)
�� ��
SQL ��� � � �� ����
�.
��� �� ��� � �� ����
�.
PARM_SIGNATURE SIGNATURE VARCHAR(510) � � �� ��� �����.
NUMBER_OF_RESULTS NUMRESULTS SMALLINT ��� �� �����.
IN_PARMS IN_PARMS SMALLINT � ��� �� �����. 0� �
��� ��� �����.
LONG_COMMENT REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
ROUTINE_DEFINITION ROUTINEDEF VARCHAR(24000)
�� ��
SQL ��� � �� SQL �� �
�� �����.
��� SQL ��� ��� �� ���
�� �� � � ���� � �� �
� �� �����.
FUNCTION_ORIGIN ORIGIN CHAR(1) � �� �����. �� ������
� � � ���� ����.
B �� �(built-in function)��
(iSeries� DB2 UDB�� ���
���).
E ��� �� ���.
U �� �� ��� ��� ��
���.
S ��� �� ���.
FUNCTION_TYPE TYPE CHAR(1) � ��� �����. �� ������
� � � ���� ����.
S ��� ���.
C �(column function)��.
T � ���.
EXTERNAL_ACTION EXTACTION CHAR(1)
�� ��
� ��� �� �� ��� ��� ��
� �����.
E �� ���� ����.
N �� ���� ����.
SYSFUNCS
950 iSeries� DB2 UDB SQL ��� V5R2
||
� 103. SYSFUNCS � (�)
��
��� ��
(Column
Name) � �� ��
IS_NULL_CALL NULL_CALL VARCHAR(3)
�� ��
� ��� ��� �� ���
��� ���� ��� �����.
NO � ��� ��� ��
��� ��� ����. ��� �
�� ���, �� ���� �
�� ��� �� ��� �
���� ��� ��. ��� �
���, �� ���� � ��
��� �� ��� � ��
��.
YES � ���� �(null)� ��
� �� ��� ���� ��
�.
SCRATCH_PAD SCRATCHPAD INTEGER
�� ��
�� ��� ��(��� ��)� ��
�� ����� ��� �����.
0 � �� ��� ��� ���
�.
�� �� ��� ��� ��� �
�� �����.
FINAL_CALL FINAL_CALL VARCHAR(3)
�� ��
�� �� ��� � �� ��(���
��) �� ����� ��� ����
�.
NO �� ��� ��� ����.
YES ��� ��� �� �� ��
��� �� ��.
PARALLELIZABLE PARALLEL VARCHAR(3)
�� ��
�� �� ��� ���� ��� ���
��.
NO �� �� ��� ������.
YES �� �� ��� �����.
DBINFO DBINFO VARCHAR(3)
�� ��
������� �� ��� �� ��
��� ��� �����.
NO ������ ��� �� ��
� ����.
YES ������� �� ��� ��
�� ��.
SYSFUNCS
�� G. iSeries� DB2 UDB ���� � 951
|
|
|
|
|
|
|
|
� 103. SYSFUNCS � (�)
��
��� ��
(Column
Name) � �� ��
SOURCE_ SPECIFIC_SCHEMA SRCSCHEMA VARCHAR(128)
�� ��
��� ���(sourced) �� ��� �
�� ��� ��� � �� �� ���
� ��� �����. ��� ���
(sourced) �� ��� ��� ���
� �� ‘QSYS2’� �����.
���(sourced) �� � ���
�����.
SOURCE_SPECIFIC_NAME SRCNAME VARCHAR(128)
�� ��
��� ���(sourced) �� ��� �
�� ��� ��� � �� �� ��
� � ��� �����.
���(sourced) �� � ���
�����.
IS_USER_DEFINED_CAST CAST_FUNC VARCHAR(3)
�� ��
�� �� �� ��� � ��� �
�� ���� ��� �����.
NO ��� �� ����.
YES ��� ���.
CARDINALITY CARD BIGINT
�� ��
� � ���� �����.
� �� ��� ���� ��� ��
��� ���.
FENCED FENCED VARCHAR(3)
�� ��
�� ����� ��� �����.
NO �� ��� ����.
YES �� �� ��.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSFUNCS
952 iSeries� DB2 UDB SQL ��� V5R2
|||
||
|||||
||
|||||
||
||
|||||
SYSINDEXES
SYSINDEXES ��� SQL ���� �� ��� � SQL CREATE INDEX
��� ��� ��� SQL ��� �� �� ��� �� �� �� �� ��
��. �� ���� SYSINDEXES �� � �����.
� 104. SYSINDEXES �
��
��� ��
(Column
Name) � �� ��
INDEX_NAME NAME VARCHAR(128) ���. �� �� ���, ��� SQL
���� ��. ��� ��� ��� ��
�� � ���.
INDEX_OWNER CREATOR VARCHAR(128) �� ��
TABLE_NAME TBNAME VARCHAR(128) ��� ��� � �� ��� ��� � �
�� SQL � ��� ��. ��� � �
�� ��� � ��� ��.
TABLE_OWNER TBCREATOR VARCHAR(128) � ��
TABLE_SCHEMA TBDBNAME VARCHAR(128) ��� ��� �� �� �� SQL ���
�
IS_UNIQUE UNIQUERULE CHAR(1) ��� ��
D No(��� �� )
V Yes(�� �(duplicate null)� ��)
U �
E ��� �� ��
COLUMN_COUNT COLCOUNT INTEGER � �� �
INDEX_SCHEMA DBNAME VARCHAR(128) ��� �� �� SQL ����
SYSTEM_INDEX_NAME SYS_IXNAME CHAR(10) ��� ���
SYSTEM_INDEX_SCHEMA SYS_IDNAME CHAR(10) ��� �� ����
SYSTEM_TABLE_NAME SYS_TNAME CHAR(10) ��� � ��
SYSTEM_TABLE_SCHEMA SYS_DNAME CHAR(10) ��� � ����
LONG_COMMENT REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSINDEXES
�� G. iSeries� DB2 UDB ���� � 953
||
|||||
SYSJARCONTENTS
SYSJARCONTENTS ��� SQL ���� jarid� �� ��� � ��� ��
�� �� �� ����. �� ���� SYSJARCONTENTS �� � �����.
� 105. SYSJARCONTENTS �
��
��� ��
(Column
Name) � �� ��
JARSCHEMA JARSCHEMA VARCHAR(128) jar_id� �� �� ����
JAR_ID JAR_ID VARCHAR(128) jar_id� ��
CLASS CLASS VARCHAR(128) ���
CLASS_SOURCE CLASSSRC DBCLOB(10485760)
�� ��
��. � �� �����.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSJARCONTENTS
954 iSeries� DB2 UDB SQL ��� V5R2
|
|||||
SYSJAROBJECTS
SYSJAROBJECTS ��� SQL ���� � jarid� �� �� �� �� ���
�. �� ���� SYSJAROBJECTS �� � �����.
� 106. SYSJAROBJECTS �
��
��� ��
(Column
Name) � �� ��
JARSCHEMA JARSCHEMA VARCHAR(128) jar_id� �� �� ����
JAR_ID JAR_ID VARCHAR(128) jar_id� ��
DEFINER DEFINER VARCHAR(128) jarid ���
JAR_DATA JAR_DATA BLOB(104857600)
�� ��
jar� �� �� ��
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
JAR_CREATED CREATEDTS TIMESTAMP Jar �� ����
LAST_ALTERED ALTEREDTS TIMESTAMP
�� ��
��. � �� �����.
DEBUG_MODE DEBUG_MODE CHAR(1) �� ��� ���� ��� �����.
0 �� ��� ��� ����.
2 �� ��� �����.
DEBUG_DATA DEBUG_DATA CLOB(1048576)
�� ��
��. � �� �����.
SYSJAROBJECTS
�� G. iSeries� DB2 UDB ���� � 955
|||||
||||
|||||
||||
||
||
|||||
SYSKEYCST
SYSKEYCST ��� SQL ���� � UNIQUE KEY, PRIMARY KEY ��
FOREIGN KEY� �� � ��� �� �� ����. �� 1�� �� �
� �� �� � � �� �� ��� �� � �� �� �� �����. �
� ���� SYSKEYCST �� � �����.
� 107. SYSKEYCST �
��
��� ��
(Column
Name) � �� ��
CONSTRAINT_SCHEMA CDBNAME VARCHAR(128) ����� �� �� ����
CONSTRAINT_NAME RELNAME VARCHAR(128) �� �� �
TABLE_SCHEMA TDBNAME VARCHAR(128) �� �� �� ����
TABLE_NAME TBNAME VARCHAR(128) � ��
COLUMN_NAME COLNAME VARCHAR(128) � ��
ORDINAL_POSITION COLSEQ INTEGER � �� �
COLUMN_POSITION COLNO INTEGER � �� �
TABLE_OWNER CREATOR VARCHAR(128) � ��
SYSTEM_COLUMN_NAME SYS_CNAME CHAR(10) � ����
SYSTEM_TABLE_NAME SYS_TNAME CHAR(10) �� ����
SYSTEM_TABLE_SCHEMA SYS_DNAME CHAR(10) ��� �� �� �� ���� ����
SYSKEYCST
956 iSeries� DB2 UDB SQL ��� V5R2
SYSKEYS
SYSKEYS ��� SQL ���� �� ��� �� �� � SQL ���� �
� �� �� �� � �� �� �� �� ����. �� ���� SYSKEYS
�� � �����.
� 108. SYSKEYS �
��
��� ��
(Column
Name) � �� ��
INDEX_NAME IXNAME VARCHAR(128) ���. �� �� ���, ��� SQL
���� ��. ��� ��� ��� ��
�� � ���.
INDEX_OWNER IXCREATOR VARCHAR(128) �� ��
COLUMN_NAME COLNAME VARCHAR(128) �� ��. ��� ��� � ���
SQL ��� ��. ��� � ���
��� ��� ��.
COLUMN_POSITION COLNO INTEGER � �� � �� � �
ORDINAL_POSITION COLSEQ INTEGER � �� � �� � �
ORDERING ORDERING CHAR(1) � �� ��
A ����
D ����
INDEX_SCHEMA IXDBNAME VARCHAR(128) ��� �� �� ����
SYSTEM_COLUMN_NAME SYS_CNAME CHAR(10) � ����
SYSTEM_INDEX_NAME SYS_IXNAME CHAR(10) ��� ����
SYSTEM_INDEX_SCHEMA SYS_IDNAME CHAR(10) ��� �� �� ���� ����
SYSKEYS
�� G. iSeries� DB2 UDB ���� � 957
SYSPACKAGE
SYSPACKAGE ��� SQL ���� � SQL ���� �� �� �� �� �
���. �� ���� SYSPACKAGE �� � �����.
� 109. SYSPACKAGE �
��
��� ��
(Column
Name) � �� ��
PACKAGE_CATALOG LOCATION VARCHAR(128) SQL ���� ��� �������
(RDBNAME)
PACKAGE_SCHEMA COLLID VARCHAR(128) ����
PACKAGE_NAME NAME VARCHAR(128) SQL ��� �
PACKAGE_OWNER OWNER VARCHAR(128) SQL ��� ��
PACKAGE_CREATOR CREATOR VARCHAR(128) SQL ��� ���
CREATION_TIMESTAMP TIMESTAMP CHAR(26) SQL ���� ��� �� ����
DEFAULT_SCHEMA QUALIFIER VARCHAR(128) �� �, � � ��� �� ���
PROGRAM_NAME PROGNAME VARCHAR(128) ���� ��� �����
PROGRAM_SCHEMA LIBRARY VARCHAR(128) ����� �� �� ����
PROGRAM_CATALOG RDB VARCHAR(128) ����� �� ��� ������
(RDB)�
ISOLATION ISOLATION CHAR(2) �� �� ��
RR �� ��
RS �� ���(*ALL)
CS �� ���(*CS)
UR ��� ��(*CHG)
NO ��(*NONE)
QUOTE QUOTE CHAR(1) �� ��(escape character) ��(Y/N):
Y = �� �� ��
N = �����
COMMA COMMA CHAR(1) � �� ��(Y/N):
Y = �
N = ���
PACKAGE_TEXT LABEL VARCHAR(50) LABEL��� ��� �� ���
LONG_COMMENT REMARKS VARCHAR(2000) �� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
CONSISTENCY_TOKEN CONTOKEN CHAR(8) FOR BIT
DATA
���� �� ��� ��
SYSTEM_PACKAGE_NAME SYS_NAME CHAR(10) ���� ����
SYSTEM_PACKAGE_SCHEMA SYS_DNAME CHAR(10) ���� �� �� ���� ����
SYSTEM_DEFAULT_SCHEMA SYS_DDNAME CHAR(10) �� �, �, �� � ���� �� ��
���� ����
SYSTEM_PROGRAM_NAME SYS_PNAME CHAR(10) ����� ����
SYSTEM_PROGRAM_SCHEMA SYS_PDNAME CHAR(10) ����� �� �� ���� ����
SYSPACKAGE
958 iSeries� DB2 UDB SQL ��� V5R2
||
� 109. SYSPACKAGE � (�)
��
��� ��
(Column
Name) � �� ��
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSPACKAGE
�� G. iSeries� DB2 UDB ���� � 959
|||||
SYSPARMS
SYSPARMS ��� CREATE PROCEDURE ��� �� ��� ����� �
� CREATE FUNCTION ��� �� ��� �� � ��� �� ��
�� �� ����. �� ���� SYSPARMS � �� � �����.
� 110. SYSPARMS �
��
��� ��
(Column
Name) � �� ��
SPECIFIC_SCHEMA SPECSCHEMA VARCHAR(128) �� ���� ���(schema) ��
SPECIFIC_NAME SPECNAME VARCHAR(128) �� ���� � ��
ORDINAL_POSITION PARMNO INTEGER ��� � ��� �� �� ���
�� ��� � �
PARAMETER_MODE PARMMODE VARCHAR(5) �� �:
IN � ����.
OUT �� ����.
INOUT /��(I/O) ����.
PARAMETER_NAME PARMNAME VARCHAR(128)
�� ��
��� ��.
��� ��� ��� �� ���
�����.
SYSPARMS
960 iSeries� DB2 UDB SQL ��� V5R2
||
� 110. SYSPARMS � (�)
��
��� ��
(Column
Name) � �� ��
DATA_TYPE DATA_TYPE VARCHAR(128) �
BIGINT � �
INTEGER � �
SMALLINT �� �
DECIMAL � ���
NUMERIC �(zone) ���
DOUBLE PRECISION
�� ���. ����
REAL �� ���. REAL
CHARACTER �� �� �� ���
CHARACTER VARYING
�� ��� �� ���
CHARACTER LARGE OBJECT
�� LOB(Large Object)
���
GRAPHIC �� �� � ���
GRAPHIC VARYING
�� ��� � ��
�
DOUBLE-BYTE CHARACTER LARGE
OBJECT 2 �� �� LOB(Large
Object) ���
BINARY LARGE OBJECT
2� LOB(Large Object)
���
DATE �
TIME ��
TIMESTAMP ����
DATALINK �� ��
ROWID � ID
DISTINCT �� �
NUMERIC_SCALE SCALE INTEGER
�� ��
� ��� ���
��� ��, � �� 2�� �
��� �����.
SYSPARMS
�� G. iSeries� DB2 UDB ���� � 961
||
� 110. SYSPARMS � (�)
��
��� ��
(Column
Name) � �� ��
NUMERIC_PRECISION PRECISION INTEGER
�� ��
�� � ��� ���
�: � � ���� � ���� �� �
��� � �� � �� �� �
��� �����.
NUMERIC_PRECISION_RADIX � �
� �� 2� ����� �� �����
� �����.
��� �� � ��� ���
��.
CCSID CCSID INTEGER
�� ��
CHAR, VARCHAR, CLOB, DATE,
TIME, TIMESTAMP, GRAPHIC,
VARGRAPHIC, DBCLOB �
DATALINK ��� �� ��� ��
�� ID(CCSID) �
��� �� ��� �����.
CHARACTER_MAXIMUM_LENGTH CHARLEN INTEGER
�� ��
2��, ��, � ��� �� �� �
�� �� ��
��� ���� � ��� ��
���.
CHARACTER_OCTET_LENGTH CHARBYTE INTEGER
�� ��
2��, ��, � ��� �� �� �
� �� �
��� ���� � ��� ��
���.
NUMERIC_PRECISION_RADIX RADIX INTEGER
�� ��
NUMERIC_PRECISION �� ���
���� 2� �� �� ���� ��� �
����� ��� �����.
2 2�. �� ��� ���� 2� �
��� �� ��.
10 ��. �� �� � �� ��
���� �� ��.
��� �� � ��� ����
�.
DATETIME_PRECISION DATPRC INTEGER
�� ��
�, �� �� ����� �� ��.
0 DATE � TIME �� ��
6 TIMESTAMP �� �� (�
��� �� �)
��� �, �� �� ����� �
��� �����.
SYSPARMS
962 iSeries� DB2 UDB SQL ��� V5R2
� 110. SYSPARMS � (�)
��
��� ��
(Column
Name) � �� ��
IS_NULLABLE NULLS VARCHAR(3) ��� �� �� ��� �����.
NO ���� ��� ��� ��
��.
YES ���� ��� �����.
LONG_COMMENT REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
ROW_TYPE ROWTYPE CHAR(1) �� �� �����. ������ ��
��� � �� ��� ����
�.
P ��
R ��� �� ��
C ��� �� ��
DATA_TYPE_SCHEMA TYPESCHEMA VARCHAR(128)
�� ��
�� �� �� �� ���
(schema).
��� �� �� � ���
�����.
DATA_TYPE_NAME TYPENAME VARCHAR(128)
�� ��
�� �� �� �� ��.
��� �� �� � ���
�����.
AS_LOCATOR ASLOCATOR VARCHAR(3) ��� ������ ������ �
�� �����.
NO ��� ����� ��� �
����.
YES ��� ����� �����
�.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSPARMS
�� G. iSeries� DB2 UDB ���� � 963
|||||
SYSPROCS
SYSPROCS ��� CREATE PROCEDURE ��� �� ��� � ������
�� �� �� �� ����. �� ���� SYSPROCS �� � �����.
� 111. SYSPROCS �
��
��� ��
(Column
Name) � �� ��
SPECIFIC_SCHEMA SPECSCHEMA VARCHAR(128) ��(�����) ���� ���(schema)
��
SPECIFIC_NAME SPECNAME VARCHAR(128) �� ���� � ��
ROUTINE_SCHEMA PROCSCHEMA VARCHAR(128) ��� �� �� SQL ���(schema)�
ROUTINE_NAME PROCNAME VARCHAR(128) �� �
ROUTINE_CREATED RTNCREATE TIMESTAMP ��� ��� ����� �����.
ROUTINE_DEFINER DEFINER VARCHAR(128) ��� ��� ��� �
ROUTINE_BODY BODY VARCHAR(8) �� ��� �
EXTERNAL �� ����.
SQL SQL ����.
EXTERNAL_NAME EXTNAME VARCHAR(279)
�� ��
�� ��� � � �� �����
� �����.
v REXX� �� ������
schema-name/source-file-name(member-
name)��.
v Java ����� �� ������ �
��� jar-id ��� fully-qualified-class-
name!method-name �� fully-qualified-
class-name.method-name� ����.
v �� �� �� �� ������
schema-name/program-name��.
��� �� ��� � � �� ��
���.
SYSPROCS
964 iSeries� DB2 UDB SQL ��� V5R2
� 111. SYSPROCS � (�)
��
��� ��
(Column
Name) � �� ��
EXTERNAL_LANGUAGE LANGUAGE VARCHAR(8)
�� ��
�� ��� � � �� �����
� �����.
C �� ����� C� �
� ��.
C++ �� ����� C++�
�� ��.
CL �� ����� CL� �
� ��.
COBOL �� ����� COBOL
� �� ��.
COBOLLE � � ����� I L E
COBOL� �� ��.
FORTRAN �� �����
FORTRAN�� �� �
�.
JAVA �� ����� JAVA�
�� ��.
PLI �� ����� PL/I��
�� ��.
REXX �� ����� REXX
�������.
RPG �� ����� RPG�
�� ��.
RPGLE � � ����� I L E
RPG� �� ��.
��� �� ��� � � �� ��
���.
SYSPROCS
�� G. iSeries� DB2 UDB ���� � 965
� 111. SYSPROCS � (�)
��
��� ��
(Column
Name) � �� ��
PARAMETER_STYLE PARM_STYLE VARCHAR(7)
�� ��
�� ��� � � �� ��
�����(�� ��).
DB2GNRL DB2GENERAL �� �
���.
DB2SQL DB2SQL �� ���
�.
GENERAL GENERAL �� ��
��.
JAVA JAVA �� ����.
NULLS G E N E R A L W I T H
NULLS �� ����.
SQL SQL �� �� ���
�.
��� �� ��� � � �� ��
���.
IS_DETERMINISTIC DETERMINE VARCHAR(3) � � ��� ����� ��� ����
�. �� ��, ��� ��� ��� ��
� �� ��� ��� ����
��� ��� ���.
NO ��� ���� ����.
YES ��� �����.
SQL_DATA_ACCESS DATAACCESS VARCHAR(8) � � SQL� �� �� ����� ��
� ��� �� ��� ��� ����
�.
NONE ��� SQL�� ���
�.
CONTAINS ��� SQL�� ���
�.
READS ��� � �� ����
��� �� � ����.
MODIFIES ��� � �� � ��
��� �� SQL
DDL(data definition
language) ��� ��
� � ����.
SYSPROCS
966 iSeries� DB2 UDB SQL ��� V5R2
� 111. SYSPROCS � (�)
��
��� ��
(Column
Name) � �� ��
SQL_PATH SQL_PATH VARCHAR(3483)
�� ��
SQL ��� � � �� ����
�.
��� SQL ��� � � �� �
����.
PARM_SIGNATURE SIGNATURE VARCHAR(510) � � �� ��� �����.
RESULT_SETS RESULTS SMALLINT �� �� ��� ���� �����. 0
� �� ��� ��� �����.
IN_PARMS IN_PARMS SMALLINT � ��� �� �����. 0� �
��� ��� �����.
OUT_PARMS OUT_PARMS SMALLINT �� ��� �� �����. 0� ��
��� ��� �����.
INOUT_PARMS INOUT_PARM SMALLINT /��(I/O) ��� �� �����. 0
� /��(I/O) ��� ��� ����
�.
LONG_COMMENT REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
ROUTINE_DEFINITION ROUTINEDEF VARCHAR(24000)
�� ��
SQL ��� � �� SQL �� �
�� �����.
��� SQL ��� ��� �� ���
�� �� � � ���� � �� �
� �� �����.
DBINFO DBINFO VARCHAR(3)
�� ��
������� �� ��� ������
���� ��� �����.
NO ������ ��� ������
��� ����.
YES ������� �� ��� ���
��� �� ��.
COMMIT_ON_RETURN CMTONRET VARCHAR(3)
�� ��
� � �������� ����� ��
� ������ ���� ��� ���
��.
NO �������� ����� ��
� ��� ��� ����.
YES �������� ����� ��
� ��� �� ��.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSPROCS
�� G. iSeries� DB2 UDB ���� � 967
|||||||
||
|
||
|
|||||
� 111. SYSPROCS � (�)
��
��� ��
(Column
Name) � �� ��
NEW_SAVEPOINT_LEVEL NEWSAVEPTL VARCHAR(3)
�� ��
� � ��� � ��� ��� ���
� ��� �����.
NO � ��� ��� ��� ���
�.
YES � ��� ��� �� ��.
SYSPROCS
968 iSeries� DB2 UDB SQL ��� V5R2
||||||
||
|
||
SYSREFCST
SYSREFCST ��� SQL ���� � �� �� �� �� �� �� ����.
�� ���� SYSREFCST �� � �����.
� 112. SYSREFCST �
��
��� ��
(Column
Name) � �� ��
CONSTRAINT_SCHEMA CDBNAME VARCHAR(128) ����� �� �� ����.
CONSTRAINT_NAME RELNAME VARCHAR(128) �� �� �
UNIQUE_CONSTRAINT_SCHEMA UNQDBNAME VARCHAR(128) �� ����� �� ��� �� ��
��� �� �� SQL ����
UNIQUE_CONSTRAINT_NAME UNQNAME VARCHAR(128) �� �� ��� �� ��� �� �
� �� �
MATCH_OPTION MATCH VARCHAR(7) �� ��. �� ��(none)��.
UPDATE_RULE UPDATE VARCHAR(11) � ��
v NO ACTION
v RESTRICT
DELETE_RULE DELETE VARCHAR(11) � ��
v NO ACTION
v CASCADE
v SET NULL
v SET DEFAULT
v RESTRICT
COLUMN_COUNT COLCOUNT INTEGER �� � �� � �
SYSREFCST
�� G. iSeries� DB2 UDB ���� � 969
SYSROUTINEDEP
SYSROUTINEDEP �� ��� ��� �����. �� ����
SYSROUTINEDEP �� � �����.
� 113. SYSROUTINEDEP �
��
��� ��
(Column
Name) � �� ��
SPECIFIC_SCHEMA SPECSCHEMA VARCHAR(128) �� ���� ���(schema) ��
SPECIFIC_NAME SPECNAME VARCHAR(128) �� ���� � ��
OBJECT_SCHEMA BSCHEMA VARCHAR(128) ���� �� �� SQL ����.
OBJECT_NAME BNAME VARCHAR(128) ��� ��� ��� ��.
OBJECT_TYPE BTYPE CHAR(10) ���� ��� ���� ��� ��
�����.
ALIAS ���� ����.
FUNCTION
���� ���.
INDEX ���� ����.
PROCEDURE
���� �������.
SCHEMA
���� �����.
TABLE ���� ���.
TYPE ���� �� ���.
VIEW ���� ���.
PARM_SIGNATURE SIGNATURE VARCHAR(10000)
�� ��
� � �� ��� �����.
���� ��� � ��� ���
��.
IASP_NUMBER IASPNUMBER SMALLINT ���� �� �� ���� �(IASP) �
� �����.
NUMBER_OF_PARMS NUMPARMS SMALLINT
�� ��
��� �� �����.
���� ��� � ��� ���
��.
SYSROUTINEDEP
970 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
||
|
|||||
||||
||||
||||
||||
|||||
||
|
|
||
|
|
|
|
||
||
||
|||||
||
|||||
|||||
||
SYSROUTINES
SYSROUTINES ��� CREATE PROCEDURE ��� �� ��� �����
�� CREATE FUNCTION ��� �� ��� �� � ��� �� �
� �� �� ����. �� ���� SYSROUTINES �� � �����.
� 114. SYSROUTINES �
��
��� ��
(Column
Name) � �� ��
SPECIFIC_SCHEMA SPECSCHEMA VARCHAR(128) �� ���� ���(schema) ��
SPECIFIC_NAME SPECNAME VARCHAR(128) �� ���� � ��
ROUTINE_SCHEMA RTNSCHEMA VARCHAR(128) ��� �� �� SQL ���(schema)�
ROUTINE_NAME RTNNAME VARCHAR(128) �� �
ROUTINE_TYPE RTNTYPE VARCHAR(9) �� �
PROCEDURE �������.
FUNCTION ���.
ROUTINE_CREATED RTNCREATE TIMESTAMP ��� ��� ����� �����.
ROUTINE_DEFINER DEFINER VARCHAR(128) ��� ��� ��� �
ROUTINE_BODY BODY VARCHAR(8) �� ��� �
EXTERNAL �� ����.
SQL SQL ����.
EXTERNAL_NAME EXTNAME VARCHAR(279)
�� ��
�� ��� � � �� �����
� �����.
v REXX� �� ������
schema-name/source-file-name(member-
name)��.
v ILE �� ����� �� ����
�� schema-name/service-program-
name(entry-point-name)��.
v Java ����� �� ������ �
��� jar-id ��� fully-qualified-class-
name!method-name �� fully-qualified-
class-name.method-name� ����.
v �� �� �� �� ������
schema-name/program-name��.
��� �� ��� � � �� ��
���.
SYSROUTINES
�� G. iSeries� DB2 UDB ���� � 971
� 114. SYSROUTINES � (�)
��
��� ��
(Column
Name) � �� ��
EXTERNAL_LANGUAGE LANGUAGE VARCHAR(8)
�� ��
�� ��� � � �� �����
� �����.
C �� ����� C� �
� ��.
C++ �� ����� C++�
�� ��.
CL �� ����� CL� �
� ��.
COBOL �� ����� COBOL
� �� ��.
COBOLLE � � ����� I L E
COBOL� �� ��.
FORTRAN �� �����
FORTRAN�� �� �
�.
JAVA �� ����� JAVA�
�� ��.
PLI �� ����� PL/I��
�� ��.
REXX �� ����� REXX
�������.
RPG �� ����� RPG�
�� ��.
RPGLE � � ����� I L E
RPG� �� ��.
��� �� ��� � � �� ��
���.
SYSROUTINES
972 iSeries� DB2 UDB SQL ��� V5R2
� 114. SYSROUTINES � (�)
��
��� ��
(Column
Name) � �� ��
PARAMETER_STYLE PARM_STYLE VARCHAR(7)
�� ��
�� ��� � � �� ��
�����(�� ��).
DB2GNRL DB2GENERAL �� �
���.
DB2SQL DB2SQL �� ���
�.
GENERAL GENERAL �� ��
��.
JAVA JAVA �� ����.
NULLS G E N E R A L W I T H
NULLS �� ����.
SQL SQL �� �� ���
�.
��� �� ��� � � �� ��
���.
IS_DETERMINISTIC DETERMINE VARCHAR(3) � � ��� ����� ��� ����
�. �� ��, ��� ��� ��� ��
� �� ��� ��� ����
��� ��� ���.
NO ��� ���� ����.
YES ��� �����.
SQL_DATA_ACCESS DATAACCESS VARCHAR(8) � � SQL� �� �� ����� ��
� ��� �� ��� ��� ����
�.
NONE ��� SQL�� ���
�.
CONTAINS ��� SQL�� ���
�.
READS ��� � �� ����
��� �� � ����.
MODIFIES ��� � �� � ��
��� �� SQL
DDL(data definition
language) ��� ��
� � ����.
SYSROUTINES
�� G. iSeries� DB2 UDB ���� � 973
� 114. SYSROUTINES � (�)
��
��� ��
(Column
Name) � �� ��
SQL_PATH SQL_PATH VARCHAR(3483)
�� ��
SQL ��� � � �� ����
�.
��� SQL ��� � � �� �
����.
PARM_SIGNATURE SIGNATURE VARCHAR(510) � � �� ��� �����.
NUMBER_OF_RESULTS NUMRESULTS SMALLINT ��� �� �����.
MAX_DYNAMIC_RESULT_SETS RESULTS SMALLINT �� �� ��� ���� �����. 0
� �� ��� ��� �����.
IN_PARMS IN_PARMS SMALLINT � ��� �� �����. 0� �
��� ��� �����.
OUT_PARMS OUT_PARMS SMALLINT �� ��� �� �����. 0� ��
��� ��� �����.
INOUT_PARMS INOUT_PARM SMALLINT /��(I/O) ��� �� �����. 0
� /��(I/O) ��� ��� ����
�.
PARSE_TREE PARSE_TREE VARCHAR(666) FOR
BIT DATA
��� � � CREATE
FUNCTION �� CREATE
PROCEDURE ��� �� ��� ���
��. ��� ����� �� ��.
PARM_ARRAY PARM_ARRAY VARCHAR(10008)
FOR BIT DATA
�� ��� � � CREATE
FUNCTION �� CREATE
PROCEDURE ������ ���
�� �� �����. ��� �����
�� ��.
LONG_COMMENT REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
ROUTINE_DEFINITION ROUTINEDEF DBCLOB(1048576)
�� ��
SQL ��� � �� SQL �� �
�� �����.
��� SQL ��� ��� �� ���
�� �� � � ���� � �� �
� �� �����.
SYSROUTINES
974 iSeries� DB2 UDB SQL ��� V5R2
||||
||
� 114. SYSROUTINES � (�)
��
��� ��
(Column
Name) � �� ��
FUNCTION_ORIGIN ORIGIN CHAR(1) � �� �����. �� ������
� � � ���� ����.
B �� �(built-in function)��
(iSeries� DB2 UDB�� ���
���).
E ��� �� ���.
U �� �� ��� ��� ��
���.
S ��� �� ���.
FUNCTION_TYPE TYPE CHAR(1) � ��� �����. �� ������
� � � ���� ����.
S ��� ���.
C �(column function)��.
T � ���.
EXTERNAL_ACTION EXTACTION CHAR(1)
�� ��
� ��� ��� ��� ���� ���
�����.
E �� ���� ����.
N �� ���� ����.
��� ������ ��� �����.
IS_NULL_CALL NULL_CALL VARCHAR(3)
�� ��
� ��� ��� �� ���
��� ���� ��� �����.
NO � ��� ��� ��
��� ��� ����. ��� �
�� ���, �� ���� �
�� ��� �� ��� �
���� ��� ��. ��� �
���, �� ���� � ��
��� �� ��� � ��
��.
YES � ���� �(null)� ��
� �� ��� ���� ��
�.
��� ������ ��� �����.
SYSROUTINES
�� G. iSeries� DB2 UDB ���� � 975
||
� 114. SYSROUTINES � (�)
��
��� ��
(Column
Name) � �� ��
SCRATCH_PAD SCRATCHPAD INTEGER
�� ��
�� ��� ��(��� ��)� ��
�� ����� ��� �����.
0 � �� ��� ��� ���
�.
�� �� ��� ��� ��� �
�� �����.
��� ������ ��� �����.
FINAL_CALL FINAL_CALL VARCHAR(3)
�� ��
�� �� ��� � �� ��(���
��) �� ����� ��� ����
�.
NO �� ��� ��� ����.
YES ��� ��� �� �� ��
��� �� ��.
��� ������ ��� �����.
PARALLELIZABLE PARALLEL VARCHAR(3)
�� ��
�� �� ��� ���� ��� ���
��.
NO �� �� ��� ������.
YES �� �� ��� �����.
��� ������ ��� �����.
DBINFO DBINFO VARCHAR(3)
�� ��
������� �� ��� ��� ��
�� ��� �����.
NO ������ ��� ��� ��
� ����.
YES ������� �� ��� ���
�� ��.
��� ������ ��� �����.
SOURCE_SPECIFIC_SCHEMA SRCSCHEMA VARCHAR(128)
�� ��
��� ���(sourced) �� ��� �
�� ��� ��� � �� �� ���
� ��� �����. ��� ���
(sourced) �� ��� ��� ���
� �� ‘QSYS2’� �����.
��� ���(sourced) �� �
��� �����.
SYSROUTINES
976 iSeries� DB2 UDB SQL ��� V5R2
� 114. SYSROUTINES � (�)
��
��� ��
(Column
Name) � �� ��
SOURCE_SPECIFIC_NAME SRCNAME VARCHAR(128)
�� ��
��� ���(sourced) �� ��� �
�� ��� ��� � �� �� ��
� � ��� �����.
��� ���(sourced) �� �
��� �����.
IS_USER_ DEFINED_CAST CAST_FUNC VARCHAR(3)
�� ��
�� �� �� ��� � ��� �
�� ���� ��� �����.
NO ��� �� ����.
YES ��� ���.
��� ������ ��� �����.
CARDINALITY CARD BIGINT
�� ��
� � ���� �����.
� �� ��� ���� ��� ��
��� ���.
FENCED FENCED VARCHAR(3)
�� ��
�� ����� ��� �����.
NO �� ��� ����.
YES �� �� ��.
��� ������ ��� �����.
COMMIT_ON_RETURN CMTONRET VARCHAR(3)
�� ��
� � �������� ����� ��
� ������ ���� ��� ���
��.
NO �������� ����� ��
� ��� ��� ����.
YES �������� ����� ��
� ��� �� ��.
��� �� ��� �����.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
NEW_SAVEPOINT_LEVEL NEWSAVEPTL VARCHAR(3)
�� ��
� � ��� � ��� ��� ���
� ��� �����.
NO � ��� ��� ��� ���
�.
YES � ��� ��� �� ��.
��� �� ��� �����.
LAST_ALTERED ALTEREDTS TIMESTAMP
�� ��
��� ����� �� ����
� �� �����.
SYSROUTINES
�� G. iSeries� DB2 UDB ���� � 977
|||
||
|||||
||
|||||
||
||
|
|||||||
||
|
||
|
|
|||||
||||||
||
|
||
|
� 114. SYSROUTINES � (�)
��
��� ��
(Column
Name) � �� ��
DEBUG_MODE DEBUG_MODE CHAR(1) ��� ��� ���� ��� �����.
0 ��� ��� ��� ����.
2 ��� ��� �����.
DEBUG_DATA DEBUG_DATA CLOB(1048576)
�� ��
��. � �� �����.
SYSROUTINES
978 iSeries� DB2 UDB SQL ��� V5R2
||||
||
||
|||||
SYSTABLES
SYSTABLES ��� SQL ����� � � �� � SQL ���� � �, �
�� ��� �� �� �� �� ����. �� ���� SYSTABLES ��
� �����.
� 115. SYSTABLES �
��
��� ��
(Column
Name) � �� ��
TABLE_NAME NAME VARCHAR(128) �, � �� �� ��. ��� ��� � �
�� SQL �, � �� ��� ��� �
�. ��� � ��� ��� �, � ��
�� ��� ��.
TABLE_OWNER CREATOR VARCHAR(128) �, � �� �� ��
TABLE_TYPE TYPE CHAR(1) ��� �, � �� ��� ��� .
A ��
L � �
P �� �(PF)
T �
V �
COLUMN_COUNT COLCOUNT INTEGER � �� � �� � �. ��� ��
���.
ROW_LENGTH RECLENGTH82
INTEGER � �� ��� �� ��. ��� �
����.
TABLE_TEXT LABEL VARCHAR(50) �� ���� LABEL��� �� ��.
LONG_COMMENT REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
TABLE_SCHEMA DBNAME VARCHAR(128) �, � �� ��� �� �� SQL ���
�
LAST_ALTERED_TIMESTAMP ALTEREDTS TIMESTAMP � �� � ����
SYSTEM_TABLE_NAME SYS_TNAME CHAR(10) ��� � ��
SYSTEM_TABLE_SCHEMA SYS_DNAME CHAR(10) ��� ����
FILE_TYPE FILETYPE CHAR(1) � �
D �� � �� ��
S �� �
BASE_TABLE_SCHEMA TBDBNAME VARCHAR(128)
�� ��
��� ��� ��� � �� � �
� �� �� �� SQL ����� ��.
�� ��� � ��� �����.
SYSTABLES
�� G. iSeries� DB2 UDB ���� � 979
� 115. SYSTABLES � (�)
��
��� ��
(Column
Name) � �� ��
BASE_TABLE_NAME TBNAME VARCHAR(128)
�� ��
��� ��� ��� � �� ��
��� ��.
�� ��� � ��� �����.
BASE_TABLE_MEMBER TBMEMBER VARCHAR(10)
�� ��
��� ��� ��� � ����
��. �� ���� *FIRST� ����
�. �� ���� ���� ����.
�� ��� � ��� �����.
SYSTEM_TABLE SYSTABLE CHAR(1) ��� �
N �� ��� �� ����.
Y �� ��� ���.
SELECT_OMIT SELECTOMIT CHAR(1) ��/�� � �
N �� ��/�� � �� ���
�.
Y �� ��/�� � ���.
IS_INSERTABLE_INTO INSERTABLE VARCHAR(3) ��� INSERT� ���� ��� ��
���.
NO INSERT� � ��� ��� �
���.
YES INSERT� � ��� �� ��.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
82. ��� ������ ��� ��� �� �� , �� ����� ��� ����.
SYSTABLES
980 iSeries� DB2 UDB SQL ��� V5R2
||||
||
||
||||
||
|
||
|||||
||
|
||
|||||
SYSTRIGCOL
SYSTRIGCOL ��� WHEN�� ������ ������ ��� �� �
�� ��� ��� SQL�� �� �� �� �� ����. �� ����
SYSTRIGCOL �� � �����.
� 116. SYSTRIGCOL �
��
��� ��
(Column
Name) � �� ��
TRIGGER_SCHEMA TRIGSCHEMA VARCHAR(128) ��� �� �� ����
TRIGGER_NAME TRIGNAME VARCHAR(128) ���
TABLE_SCHEMA TABSCHEMA VARCHAR(128) ���� ��� � � �� ��
�� �� ����
TABLE_NAME TABNAME VARCHAR(128) ���� ��� � �� �� �� �
� ��
COLUMN_NAME TABCOLUMN VARCHAR(128) ���� ��� � ��
OBJECT_TYPE BTYPE VARCHAR(10) ���� ��� � �� �� ���
� ��� �� �����.
FUNCTION
���� ���.
TABLE ���� ���.
VIEW ���� ���.
SYSTRIGCOL
�� G. iSeries� DB2 UDB ���� � 981
|||||
|
|
||
||
SYSTRIGDEP
SYSTRIGDEP ��� WHEN�� ��� �� � ��� �� ��� ��
� SQL�� �� �� �� �� ����. �� ���� SYSTRIGDEP ��
� �����.
� 117. SYSTRIGDEP �
��
��� ��
(Column
Name) � �� ��
TRIGGER_SCHEMA TRIGSCHEMA VARCHAR(128) ��� �� �� ����
TRIGGER_NAME TRIGNAME VARCHAR(128) ���
OBJECT_SCHEMA BSCHEMA VARCHAR(128) ���� ��� ���� �� �� �
���
OBJECT_NAME BNAME VARCHAR(128) ���� ��� ����
OBJECT_TYPE BTYPE CHAR(10) ���� ��� ���� ��� �
� �����.
ALIAS ���� ����.
FUNCTION
���� ���.
INDEX ���� ����.
PACKAGE
���� �����.
PROCEDURE
���� �������.
SCHEMA
���� �����.
TABLE ���� ���.
TYPE ���� �� ���.
VIEW ���� ���.
PARM_SIGNATURE SIGNATURE VARCHAR(10000)
�� ��
� � �� ��� �����.
���� ��� � ��� ���
��.
SYSTRIGDEP
982 iSeries� DB2 UDB SQL ��� V5R2
|
|
|||||
||
SYSTRIGGERS
SYSTRIGGERS ��� SQL ���� � ��� �� �� �� �� ����.
�� ���� SYSTRIGGERS �� � �����.
� 118. SYSTRIGGERS �
��
��� ��
(Column
Name) � �� ��
TRIGGER_SCHEMA TRIGSCHEMA VARCHAR(128) ��� �� �� ����
TRIGGER_NAME TRIGNAME VARCHAR(128) ���
EVENT_MANIPULATION TRIGEVENT VARCHAR(6) ��� ���� � ���� ���
��.
DELETE
DELETE� �� ��.
INSERT
INSERT� �� ��.
UPDATE
DELETE� �� ��.
READ �� ��� � ��� �� �
�. ��� ADDPFTRG ���
��� ����� ��� � ��
��.
EVENT_OBJECT_SCHEMA TABSCHEMA VARCHAR(128) ��� ��� �� �� ����
EVENT_OBJECT_TABLE TABNAME VARCHAR(128) ��� �� ��
ACTION_ORDER ORDERSEQNO INTEGER �� �� �� �� ����� � ��
� �. ��� ��� ��� ���
�����.
ACTION_CONDITION CONDITION DBCLOB(1048576)
�� ��
� ��� �� WHEN�� ���
WHEN�� �� ��� �����.
ACTION_STATEMENT TEXT DBCLOB(1048576)
�� ��
�� ��� SQL� ���
ADDPFTRG ��� ��� ���
��� �����.
ACTION_ORIENTATION GRANULAR VARCHAR(9) ROW ���� STATEMENT ���
�� �����.
ROW � �� �� ��� �� �
�.
STATEMENT
� ��� �� ��� ��
��.
SYSTRIGGERS
�� G. iSeries� DB2 UDB ���� � 983
� 118. SYSTRIGGERS � (�)
��
��� ��
(Column
Name) � �� ��
ACTION_TIMING TRIGTIME VARCHAR(6) ��(BEFORE) ���� ��(AFTER)
����� �����.
BEFORE
��� ��� � �� ����
�� ��.
AFTER �� ���� ���� ��
� �� ��.
TRIGGER_MODE TRIGMODE VARCHAR(6) �� �� ��� �����.
DB2SQL
�� ��� DB2SQL��.
DB2ROW
�� ��� DB2ROW��.
ACTION_REFERENCE_OLD_ROW OLD_ROW VARCHAR(128)
�� ��
OLD ROW ���� ��
OLD ROW ���� ��� ���� �
�� �����.
ACTION_REFERENCE_NEW_ROW NEW_ROW VARCHAR(128)
�� ��
NEW ROW ���� ��
NEW ROW ���� ��� ����
��� �����.
ACTION_REFERENCE_OLD_TABLE OLD_TABLE VARCHAR(128)
�� ��
OLD TABLE ���� ��
OLD TABLE ���� ��� ����
��� �����.
ACTION_REFERENCE_NEW_TABLE NEW_TABLE VARCHAR(128)
�� ��
NEW TABLE ���� ��
NEW TABLE ���� ��� ����
��� �����.
SQL_PATH SQL_PATH VARCHAR(3483)
�� ��
��� ��� � ��� SQL �
ADDPFTRG ��� ��� ���
��� �����.
CREATED CREATE_DTS TIMESTAMP ��� ���� �� ����
TRIGGER_PROGRAM_NAME TRIGPGM VARCHAR(128) �� �����
TRIGGER_PROGRAM_LIBRARY TRIGPGMLIB VARCHAR(128) �� ����� �� �� ���� ��
��
OPERATIVE OPERATIVE VARCHAR(1) ��� ��� � ���(��� �� �
� ��� ���) ��� �����.
Y ��� �������.
N ��� ����� ����.
SYSTRIGGERS
984 iSeries� DB2 UDB SQL ��� V5R2
|
� 118. SYSTRIGGERS � (�)
��
��� ��
(Column
Name) � �� ��
ENABLED ENABLED VARCHAR(1) ��� ��� � ��� ��� ����
�(CL � CHGPFTRG ��).
Y ��� ����� ����.
N ��� ��������.
THREADSAFE THDSAFE VARCHAR(8) ��� ��� ����� ��� ����
�.
YES ��� ��� ������.
NO ��� ��� ���� ���
�.
UNKNOWN
� � ��� ��� ���� �
� ����.
MULTITHREADED_JOB_ACTION MLTTHDACN VARCHAR(8) � ��� ���� �� ����� ��
� � ��� � ��� �����.
SYSVAL
QMLTTHDACN ��� �� ��
� ��� � ��� �����.
MSG � ��� ���� �� ���
�� ���� �� ���� �
���.
NORUN
� ��� ���� �� ���
�� ��� ����.
RUN � ��� ���� �� ���
�� �����.
ALLOW_REPEATED_CHANGE ALWREPCHG VARCHAR(8) � ���� ��� ���� � ��
��� �����.
YES ��� ��� �� �� ��
�� � � ��� � ����.
NO ��� �� �� �� ��� �
� ��� ����.
SYSTRIGGERS
�� G. iSeries� DB2 UDB ���� � 985
|
|
|
|
|
|
|
� 118. SYSTRIGGERS � (�)
��
��� ��
(Column
Name) � �� ��
TRIGGER_UPDATE_CONDITION TRGUPDCND CHAR(8)
�� ��
UPDATE ��� � ���� �� �
�� ��� �� �� �� ���
�� ��� ��� ��� �����.
ALWAYS
��� � ���� �� ��
��.
CHANGE
��� �� �� ���
�� � ���� �� ��.
��� UPDATE ��� � ��
� �����.
LONG_COMMENT REMARKS VARGRAPHIC(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
SYSTRIGGERS
986 iSeries� DB2 UDB SQL ��� V5R2
SYSTRIGUPD
SYSTRIGUPD ��� UPDATE ����� ��� � � �� �� �� �
����. �� ���� SYSTRIGUPD �� � �����.
� 119. SYSTRIGUPD �
��
��� ��
(Column
Name) � �� ��
TRIGGER_SCHEMA TRIGSCHEMA VARCHAR(128) ��� �� �� ����
TRIGGER_NAME TRIGNAME VARCHAR(128) ���
EVENT_OBJECT_SCHEMA TABSCHEMA VARCHAR(128) ��� ��� �� �� ����
EVENT_OBJECT_TABLE TABNAME VARCHAR(128) ��� �� ��
TRIGGERED_UPDATE_COLUMNS TABCOLUMN VARCHAR(128) ��� UPDATE ���� ���
��.
SYSTRIGUPD
�� G. iSeries� DB2 UDB ���� � 987
SYSTYPES
SYSTYPES ��� CREATE DISTINCT TYPE ��� �� ��� � �� �
� �� � �� �� �� �� �� �� ����. �� ����
SYSTYPES �� � �� �����.
� 120. SYSTYPES �
��
��� ��
(Column
Name) � �� ��
USER_DEFINED_TYPE_SCHEMA TYPESCHEMA VARCHAR(128) �� �� ��� ��
USER_DEFINED_TYPE_NAME TYPENAME VARCHAR(128) �� � ��
USER_DEFINED_TYPE_DEFINER DEFINER VARCHAR(128) �� �� ��� ����
SOURCE_SCHEMA SRCSCHEMA VARCHAR(128)
�� ��
� �� �� �� �� �� �� ��
���.
� �� �� �� ��� ����
�.
SOURCE_TYPE SRCTYPE VARCHAR(128)
�� ��
� �� �� �� �� � ��
� �� �� �� ��� ����
�.
SYSTEM_TYPE_SCHEMA SYSTSCHEMA CHAR(10) �� �� �� �� ��� ��� ��
SYSTEM_TYPE_NAME SYSTNAME CHAR(10) �� �� �� �� ��� ��
METATYPE METATYPE CHAR(1) �� �� �� �����.
S ��� ���� �� �
T ��� ��� �� �
SYSTYPES
988 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
� 120. SYSTYPES � (�)
��
��� ��
(Column
Name) � �� ��
LENGTH LENGTH INTEGER �� �� �� � �� ���, ��
0� � ��� 2� � � ���.
8�� BIGINT
4�� INTEGER
2�� SMALLINT
� ��� DECIMAL
� ��� NUMERIC
8�� FLOAT, FLOAT(n) ��
� n� 25 - 53 ��
DOUBLE PRECISION
4�� FLOAT, FLOAT(n) ��
� n� 1 - 24 �� ��
REAL
��� �� CHARACTER
��� �� �� VARCHAR �� CLOB
��� ��� ��
GRAPHIC
��� ��� �� ��
VARGRAPHIC � �
DBCLOB
2� ���� �� ��
BLOB
4�� DATE
3�� TIME
10�� TIMESTAMP
� � URL � ��� �� ��
DATALINK
40�� ROWID
�� ��� ��� �
DISTINCT
NUMERIC_SCALE SCALE INTEGER
�� ��
� ��� ���
�� �� ��, � �� 2�� �
��� �����.
SYSTYPES
�� G. iSeries� DB2 UDB ���� � 989
||
� 120. SYSTYPES � (�)
��
��� ��
(Column
Name) � �� ��
CCSID CCSID INTEGER
�� ��
CHAR, VARCHAR, CLOB, DATE,
TIME, TIMESTAMP, GRAPHIC,
VARGRAPHIC, DBCLOB �
DATALINK �� �� �� CCSID �.
�� �� �� ��� �����.
SYSTYPES
990 iSeries� DB2 UDB SQL ��� V5R2
� 120. SYSTYPES � (�)
��
��� ��
(Column
Name) � �� ��
STORAGE STORAGE INTEGER � �� ���� ����
8�� BIGINT
4�� INTEGER
2�� SMALLINT
(���/2) + 1 DECIMAL
� ��� NUMERIC
8�� FLOAT, FLOAT(n) ��
� n� 25 - 53 ��
DOUBLE PRECISION
4�� FLOAT, FLOAT(n) ��
� n� 1 - 24 �� ��
REAL
��� �� CHAR
��� �� �� + 2
VARCHAR
��� �� �� + 29
CLOB
��� �� * 2 GRAPHIC
��� �� �� * 2 + 2
VARGRAPHIC
��� �� �� * 2 + 29
DBCLOB
4�� DATE
3�� TIME
10�� TIMESTAMP
� � URL � ��� �� �� + 24
DATALINK
42�� ROWID
�� ��� ��� �
DISTINCT
�: � � �� �� �� �� ����
����� �����.
SYSTYPES
�� G. iSeries� DB2 UDB ���� � 991
||
� 120. SYSTYPES � (�)
��
��� ��
(Column
Name) � �� ��
NUMERIC_PRECISION PRECISION INTEGER
�� ��
�� � �� �� ���.
�: � � ���� � ���� �� �
��� � �� � �� �� �
��� �����.
NUMERIC_PRECISION_RADIX � �
� �� 2� ����� �� �����
� �����.
�� �� �� � ��� ��
���.
CHARACTER_MAXIMUM_LENGTH CHARLEN INTEGER
�� ��
2��, ��, � ��� �� �� �
�� �� ��
�� �� ���� � ��� �
����.
CHARACTER_OCTET_LENGTH CHARBYTE INTEGER
�� ��
2��, ��, � ��� �� �� �
� �� �
�� �� ���� � ��� �
����.
ALLOCATE ALLOCATE INTEGER
�� ��
2��, �� ��� �� � �� ��� �
��� �� �� ���� �� �
�
�� �� � �� �� ��� �
�� �����.
NUMERIC_PRECISION_RADIX RADIX INTEGER
�� ��
NUMERIC_PRECISION �� ���
���� 2� �� �� ���� ��� �
����� ��� �����.
2 2�. �� ��� ���� 2� �
��� �� ��.
10 ��. �� �� � �� ��
���� �� ��.
�� �� �� � ��� ���
��.
DATETIME_PRECISION DATPRC INTEGER
�� ��
�, �� �� ����� �� ��
0 DATE � TIME �� ��
6 TIMESTAMP �� �� (�
��� �� �)
�� �� �, �� �� ����� �
��� �����.
SYSTYPES
992 iSeries� DB2 UDB SQL ��� V5R2
� 120. SYSTYPES � (�)
��
��� ��
(Column
Name) � �� ��
CREATE_TIME CRTTIME TIMESTAMP �� �� ��� �� ����� ���
��.
LONG_COMMENT REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� �
�.
� �� �� ��� �����.
IASP_NUMBER IASPNUMBER SMALLINT �� �� �� �� ���� �(IASP)
�� �����.
LAST_
ALTERED
ALTEREDTS TIMESTAMP
�� ��
��. � �� �����.
SYSTYPES
�� G. iSeries� DB2 UDB ���� � 993
|||||
||||||
SYSVIEWDEP
SYSVIEWDEP ���� SQL ����� �� � �� �� �� ���� �
����. �� ���� SYSVIEWDEP �� � �����.
� 121. SYSVIEWDEP �
��
��� ��
(Column
Name) � �� ��
VIEW_NAME DNAME VARCHAR(128) � ��. �� ��� SQL � ��� �
�. ��� ��� ��� � ��� � �
��.
VIEW_OWNER DCREATOR VARCHAR(128) � ��
OBJECT_NAME ONAME VARCHAR(128) �� ��� ��� ��.
OBJECT_SCHEMA OSCHEMA VARCHAR(128) �� �� ���� �� �� SQL �
���
OBJECT_TYPE OTYPE CHAR(10) �� ��� ���� �
FUNCTION
�
TABLE �
TYPE �� �
VIEW �
VIEW_SCHEMA DDBNAME VARCHAR(128) �� ����
SYSTEM_VIEW_NAME SYS_VNAME CHAR(10) ��� � ��
SYSTEM_VIEW_SCHEMA SYS_VDNAME CHAR(10) ��� � ���
SYSTEM_TABLE_NAME SYS_TNAME CHAR(10)
�� ��
��� � ��
���� � �� �� ��
��� �����.
SYSTEM_TABLE_SCHEMA SYS_DNAME CHAR(10)
�� ��
��� � ���
���� � �� �� ��
��� �����.
TABLE_NAME BNAME VARCHAR(128)
�� ��
�� ��� � �� �� ��. �� �
�� SQL � ��� ��. ��� ���
��� � ��� � ���.
���� � �� �� ��
��� �����.
TABLE_OWNER BCREATOR VARCHAR(128)
�� ��
�� ��� � �� �� ��.
���� � �� �� ��
��� �����.
TABLE_SCHEMA BDBNAME VARCHAR(128)
�� ��
�� �� � �� �� ��� SQL ��
��
���� � �� �� ��
��� �����.
SYSVIEWDEP
994 iSeries� DB2 UDB SQL ��� V5R2
||||
|||||
||||
|
|
||
||
||
|||||||
||
|||||
||
||||||
||
� 121. SYSVIEWDEP � (�)
��
��� ��
(Column
Name) � �� ��
TABLE_TYPE BTYPE CHAR(1)
�� ��
�� ��� ���� �.
T �
P �� �(PF)
V �
L � �
���� � �� �� �� �
�� �����.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
PARM_SIGNATURE SIGNATURE VARCHAR(10000)
�� ��
� � �� ��� �����.
���� ��� � ��� ���
��.
SYSVIEWDEP
�� G. iSeries� DB2 UDB ���� � 995
|||||
||
||
||
||
|
|
|||||
|||||
||
SYSVIEWS
SYSVIEWS ��� SQL ����� �� � SQL ���� � �� ��
�� �� �� ����. �� ���� SYSVIEWS �� � �����.
� 122. SYSVIEWS �
��
��� ��
(Column
Name) � �� ��
TABLE_NAME NAME VARCHAR(128) � ��. �� ��� SQL � ��� �
�. ��� ��� ��� � ��� � �
��.
VIEW_OWNER CREATOR VARCHAR(128) � ��
SEQNO SEQNO INTEGER � �� ����. �� 1��.
CHECK_OPTION CHECK CHAR(1) � �� ��� �� ��
N �� ��� ��� �����.
Y �� ��� ������.
C � ��� ������.
VIEW_DEFINITION TEXT VARCHAR(10000)
�� ��
CREATE VIEW ��� �� ��� �
�.
� ��� � ��� �� � � ��
��� ���.
IS_UPDATABLE UPDATES CHAR(1) �� ��� ��� �����.
Y �� �� �����.
N �� �� �� �����.
TABLE_SCHEMA DBNAME VARCHAR(128) �� �� �� SQL ����.
SYSTEM_VIEW_NAME SYS_VNAME CHAR(10) ��� � ��
SYSTEM_VIEW_SCHEMA SYS_VDNAME CHAR(10) ��� � ����
IS_INSERTABLE_INTO INSERTABLE VARCHAR(3) ��� INSERT� ���� ��� ��
���.
NO INSERT� � ��� ��� �
���.
YES INSERT� � ��� �� ��.
IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����
�.
SYSVIEWS
996 iSeries� DB2 UDB SQL ��� V5R2
|||||
||
|
||
|||||
ODBC � JDBC ���� �
������ SYSIBM �� � �� �� � � �� ����.
View Name ��
998 ���� �SQLCOLPRIVILEGES� � ��� ��� �� ��
999 ���� �SQLCOLUMNS� �� �� ��
1004 ���� �SQLFOREIGNKEYS� �� �� �� ��
1005 ���� �SQLPRIMARYKEYS� 1� �� �� ��
1006 ���� �SQLPROCEDURECOLS� ����� ��� �� ��
1012 ���� �SQLPROCEDURES� ������ �� ��
1013 ���� �SQLSCHEMAS� ���� �� ��
1014 ���� �SQLSPECIALCOLUMNS� �� �� ��� � ��� � �� � � �� ��
1016 ���� �SQLSTATISTICS� �� �� �� ��
1017 ���� �SQLTABLEPRIVILEGES� �� ��� ��� �� ��
1018 ���� �SQLTABLES� �� �� ��
1019 ���� �SQLTYPEINFO� �� �� �� ��
1024 ���� �SQLUDTS� �� �� �� �� �� �� ��
ODBC � JDBC ����
�� G. iSeries� DB2 UDB ���� � 997
|
|
|||
||
||
||
||
||
||
||
||
||
||
||
||
|||
SQLCOLPRIVILEGES
SQLCOLPRIVILEGES �� � �� �� ��� �� �� �� �� ���
�. � ���� �� ���� � �� ��� ��� ��� ��� ��� �
��� � ����. � ��� ��� �� ��� ��� �� ��� ��
(*ALLOBJ �)� �� ��� ����. �� ���� �� � �����.
� 123. SQLCOLPRIVILEGES �
�� � �� ��
TABLE_CAT VARCHAR(128) ��� �������
TABLE_SCHEM VARCHAR(128) �� �� �� SQL ����.
TABLE_NAME VARCHAR(128) � ��
COLUMN_NAME VARCHAR(128) ��
GRANTOR VARCHAR(128)
�� ��
��. � �� �����.
GRANTEE VARCHAR(128) ��� ��� ��� ���
PRIVILEGE VARCHAR(10) ��� ��:
UPDATE
��� � � �����.
REFERENCES
��� ��� �� ���� � �����.
IS_GRANTABLE VARCHAR(3) �� ����� ��� ��� � ��� ��� �����.
NO ��� ��� � ����.
YES ��� ��� � ����.
DBNAME VARCHAR(8)
�� ��
��. � � �� �����.
SQLCOLPRIVILEGES
998 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
|
|
||
|||
|||
|||
|||
|||
||||
|||
|||
|
|
|
|
|||
||
||
||||
|
SQLCOLUMNS
SQLCOLUMNS �� �, � �� ��� �� � �� �� �� �� ���
�. �� ���� �� � �����.
� 124. SQLCOLUMNS �
�� � �� ��
TABLE_CAT VARCHAR(128) ��� �������
TABLE_SCHEM VARCHAR(128) �� �� �� SQL ����.
TABLE_NAME VARCHAR(128) � ��
COLUMN_NAME VARCHAR(128) ��
DATA_TYPE SMALLINT � �� �:
-5 BIGINT
4 INTEGER
5 SMALLINT
3 DECIMAL
2 NUMERIC
8 DOUBLE PRECISION
7 REAL
1 CHARACTER
-2 CHARACTER FOR BIT DATA
12 VARCHAR
-3 VARCHAR FOR BIT DATA
40 CLOB
-95 GRAPHIC
-96 VARGRAPHIC
-350 DBCLOB
30 BLOB
9 DATE
10 TIME
11 TIMESTAMP
70 DATALINK
-100 ROWID
17 DISTINCT
SQLCOLUMNS
�� G. iSeries� DB2 UDB ���� � 999
|
|
|
||
|||
|||
|||
|||
|||
|||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
� 124. SQLCOLUMNS � (�)
�� � �� ��
TYPE_NAME VARCHAR(128) � �� � ��:
BIGINT BIGINT
INTeger INTEGER
SMALLINT SMALLINT
DECIMAL DECIMAL
NUMERIC NUMERIC
FLOAT DOUBLE PRECISION
REAL REAL
CHARacter CHARACTER
CHARacter FOR BIT DATA
CHARACTER FOR BIT DATA
VARCHAR VARCHAR
VARCHAR FOR BIT DATA
VARCHAR FOR BIT DATA
CLOB CLOB
GRAPHIC GRAPHIC
VARGRAPHIC VARGRAPHIC
DBCLOB DBCLOB
BLOB BLOB
DATE DATE
TIME TIME
TIMESTAMP TIMESTAMP
DATALINK DATALINK
ROWID ROWID
��� Type Name
DISTINCT
COLUMN_SIZE INTEGER � ��.
BUFFER_LENGTH INTEGER ���� � ��� �����.
DECIMAL_DIGITS SMALLINT
�� ��
� � ���� �����.
���� �� � ��� �����.
NUM_PREC_RADIX SMALLINT
�� ��
� � radix� �����.
���� �� � ��� �����.
SQLCOLUMNS
1000 iSeries� DB2 UDB SQL ��� V5R2
|
|||
|||
||
||
||
||
||
||
||
||
|
|
||
|
|
||
||
||
||
||
||
||
||
||
||
|
|
|||
|||
||||
|
||||
|
� 124. SQLCOLUMNS � (�)
�� � �� ��
NULLABLE SMALLINT � � �� ����� ��� �����.
0 � �� ��� ����.
1 � �� �����.
REMARKS VARCHAR(2000)
�� ��
�� ���� COMMENT��� �� ��.
� �� �� ��� �����.
COLUMN_DEF VARCHAR(2000)
�� ��
� ��� �.
��� �� �� ��� �����.
SQL_DATA_TYPE SMALLINT � SQL �� �� �����.
SQL_DATETIME_SUB SMALLINT
�� ��
�� �� � �� � �
1 DATE
2 TIME
3 TIMESTAMP
� ���� �� �� � ��� �����.
CHAR_OCTET_LENGTH INTEGER
�� ��
� �� ��� �����.
� ���� � ��� �����.
ORDINAL_POSITION INTEGER ��� � � �� �����.
IS_NULLABLE VARCHAR(3) � � �� ����� ��� �����.
NO � �� �� ��� ����.
YES � �� �� ��� ����.
SQLCOLUMNS
�� G. iSeries� DB2 UDB ���� � 1001
|
|||
|||
||
||
||||
|
||||
|
|||
||||
||
||
||
|
||||
|
|||
|||
||
||
� 124. SQLCOLUMNS � (�)
�� � �� ��
JDBC_DATA_TYPE SMALLINT � JDBC �� �� �����.
-5 BIGINT
4 INTEGER
5 SMALLINT
3 DECIMAL
2 NUMERIC
8 DOUBLE PRECISION
7 REAL
1 CHARACTER
-2 CHARACTER FOR BIT DATA
12 VARCHAR
-3 VARCHAR FOR BIT DATA
2005 CLOB
1 GRAPHIC
12 VARGRAPHIC
1111 DBCLOB
2004 BLOB
91 DATE
92 TIME
93 TIMESTAMP
70 DATALINK
1111 ROWID
2001 DISTINCT
SCOPE_CATALOG VARCHAR(128)
�� ��
��. � �� �����.
SCOPE_SCHEMA VARCHAR(128)
�� ��
��. � �� �����.
SCOPE_TABLE VARCHAR(128)
�� ��
��. � �� �����.
SOURCE_DATA_TYPE VARCHAR(128)
�� ��
� �� �� � �� �� �� �
�� �� �� �� � ��� �����.
DBNAME VARCHAR(8)
�� ��
��. � �� �����.
SQLCOLUMNS
1002 iSeries� DB2 UDB SQL ��� V5R2
|
|||
|||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||||
||||
||||
||||
|
||||
� 124. SQLCOLUMNS � (�)
�� � �� ��
COLUMN_TEXT VARCHAR(50)
�� ��
� ���.
� ���� �� ��� �����.
PSEUDO_COLUMN SMALLINT ��� ROWID �� ID �� ��� �����.
1 � ROWID �� ID � ����.
2 � ROWID �� ID ��.
SQLCOLUMNS
�� G. iSeries� DB2 UDB ���� � 1003
|
|||
||||
|
|||
||
|||
SQLFOREIGNKEYS
SQLFOREIGNKEYS �� �� �� ��� ������ �� �� �� �� �
���. �� ���� �� � �����.
� 125. SQLFOREIGNKEYS �
�� � �� ��
PKTABLE_CAT VARCHAR(128) ��� �������
PKTABLE_SCHEM VARCHAR(128) � �� �� �� SQL ����.
PKTABLE_NAME VARCHAR(128) � � ��
PKCOLUMN_NAME VARCHAR(128) � � ��
FKTABLE_CAT VARCHAR(128) ��� �������
FKTABLE_SCHEM VARCHAR(128) �� ����� � �� �� �� SQL ����
FKTABLE_NAME VARCHAR(128) �� ����� � � ��
FKCOLUMN_NAME VARCHAR(128) � � ��
KEY_SEQ SMALLINT � �� �.
UPDATE_RULE SMALLINT � ��
1 RESTRICT
3 NO ACTION
DELETE_RULE SMALLINT �� �:
0 CASCADE
1 RESTRICT
2 SET NULL
3 NO ACTION
4 SET DEFAULT
FK_NAME VARCHAR(128) ��� �� �� �
PK_NAME VARCHAR(128) � ���� ��
DEFERRABILITY SMALLINT ���� ��� ��� � ��� ��� �����. �� 7
��.
SQLFOREIGNKEYS
1004 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
||
|||
|||
|||
|||
|||
|||
|||
|||
|||
|||
|||
||
||
|||
||
||
||
||
||
|||
|||
|||||
SQLPRIMARYKEYS
SQLPRIMARYKEYS �� �� �� 1� ���� �� �� �� �� �� �
���. �� ���� �� � �����.
� 126. SQLPRIMARYKEYS �
�� � �� ��
TABLE_CAT VARCHAR(128) ��� �������
TABLE_SCHEM VARCHAR(128) 1� �� �� �� �� �� ����
TABLE_NAME VARCHAR(128) 1� �� �� �� ��
COLUMN_NAME VARCHAR(128) 1� � ��
KEY_SEQ SMALLINT � �� �
PK_NAME VARCHAR(128) 1� � ���� ��
SQLPRIMARYKEYS
�� G. iSeries� DB2 UDB ���� � 1005
|
|
|
||
|||
|||
|||
|||
|||
|||
||||
SQLPROCEDURECOLS
SQLPROCEDURECOLS �� ������ �� ��� �� �� �� ��
����. �� ���� �� � �����.
� 127. SQLPROCEDURECOLS �
�� � �� ��
PROCEDURE_CAT VARCHAR(128) ��� �������
PROCEDURE_SCHEM VARCHAR(128) ����� ���� ���(schema) ��
PROCEDURE_NAME VARCHAR(128) ����� ���� ��
COLUMN_NAME VARCHAR(128)
�� ��
����� ��� ��
��� ��� ��� �� ��� �����.
COLUMN_TYPE SMALLINT �� �:
1 IN
2 INOUT
4 OUT
SQLPROCEDURECOLS
1006 iSeries� DB2 UDB SQL ��� V5R2
|
|
|
||
|||
|||
|||
|||
||||
|
|||
||
||
||