iseries¿ë db2 udb sql ÂüÁ¶¼ v5r2

1112
iSeries iSeries DB2 Universal Database SQL 5 E Rserver

Upload: others

Post on 06-Feb-2022

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

iSeries

iSeries� DB2 Universal Database SQL ���

�� 5

ERserver

���

Page 2: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 3: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

iSeries

iSeries� DB2 Universal Database SQL ���

�� 5

ERserver

���

Page 4: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

© Copyright International Business Machines Corporation 1998, 2002. All rights reserved.

Page 5: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

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

||

||

||

||

||

||

||

||

Page 6: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �� . . . . . . . . . . . . . . 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

||

||

||

||

Page 7: 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

||

||

||

Page 8: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||

||

||

||

Page 9: 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

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

Page 10: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� . . . . . . . . . . . . . . . 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

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

Page 11: 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

||

Page 12: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� . . . . . . . . . . . . . . . . 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

||

||

||

||

||

||

||

||

||

||

||

||

||

||

Page 13: 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

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

Page 14: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||

||

Page 15: 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

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

Page 16: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||

||

||

||

||

||

||

||

||

Page 17: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 18: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

Page 19: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 20: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �� �� ��

� ���� ��� �� ��� ��� ��� ��� �����.

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

|

Page 21: 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

|

|

|

|

|

|

|

|

|

|

|

|

Page 22: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 23: 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

|

|

|

|

|

|

|

|

|

|

Page 24: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

xxii iSeries� DB2 UDB SQL ��� V5R2

Page 25: 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

|

|

|

|

Page 26: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 27: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 28: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

����� �� 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

Page 29: 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

Page 30: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 31: 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

|

|

|

Page 32: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 33: 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

Page 34: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� � � � �� ����� �� � ��� �� �� , �� �����

� ��� � �� ��� ��� � �� ��. ���, 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

Page 35: 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

Page 36: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� �� ��� ��� ��� � ��� ��� ��� � ��

� � �� ��� ����.

v � �� ��� ��� �� �����.

v �� ���� � �� ��� �� SQL ��� �����. � ���

�, � �� �� � � ����.

v �� �� ��� ��� � �� �� �� ���� ��� �� �

�� ��� �� ��� ���� �����.

��� ����� ���� ��� �� � ��� ��. � ��

� �� �� � �� ���. �� �� �� ��� ��� �

� � � ��� ��� �� ��� �� � ��� � ��� �� � � ���

���� �����.

�� ��� ��� �� ��� ��� ��� ��� ��� SQL� ��

��. �� ��� �� �� � SQL�� �� ��.

��� ��� ��� �� � ��� �� ��� � ����. ��� �� ���

��� �� ��. �� ��� ��� �� �(� ��)� �� ��� � �

(� ��)� �� ���� ��� ��� ���� ��� � �� ���

�����. � �� � �� � �� �� SET �� �� ��� ��

� �� � ����. ��� �� � ��� �� ��� � �� ��� �� �

� ��� ���. �� � �� � �� ��� ��� � ��� ��

� ��� �� �� ��� ��� ��� �����. �� �� �� ��

�� ��� � ����. ��� �� �� �� � � � �� �� ��� �

����.

�, ��� �� �� ��� ��� � ��� ��� � ����. ���

��� ��� ��� ��� �����. ��� �� ��� ��� ��� �

� ���� �� ��.

�� ��� �� �� � � ����. ��� �� �� �� ���

��� �� ����� SQL�� ��� ��� ���� ����. ��

� ��� � ��� ��� �� �, ��� ���� �� ���

� � ����. �� �� ��� � �� �, � �� � ����

������� �� ��� �� ���� ��� ���� ��� � ���

�.

���� ��� �� �� ��� ��� ��� ��� � ��. ���,

�� ��� NC(�� ��)� � �� �� �� ���� ��� ��

��� ��� �� ��.

12 iSeries� DB2 UDB SQL ��� V5R2

Page 37: 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

Page 38: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 39: 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

Page 40: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ����� ��� ����� 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

Page 41: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

����

������ �� ����� �������� ��� �� ��� �� �� � �

�� ������. � ��� ����� ������ ���. ���� ��� �

�� �� �, ��, �����, ���, �, �� � ����� �� ��� �

� ����.

������ ���� ���� �� �� �� �����. �� �� IBM SQL �

�� �� ������ ���� �� , ANSI � ISO ��(���� �� ���

(schema)�� )� �� ���� ��� ���� �����. QSYS2� ����

�� 1. ��� ������ �� ������

�� 2. ��� ������ �� ������

� 1 � � 17

Page 42: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� �� �� �, ���, �, �� � ����� �� ��� ��.

�� 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

|

|

|

|

|

|

|

Page 43: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� 4� ������ ����, �� ������ ������ � �� � ��

��� �����. �� � ��� �� �� ��� ��� ����. � ��

A� B� �� �� ���� ��� ����. � �� A�� B�� �� ��

�� ��� �� ��� ��� �� ��� � ��� ��� � ��� ���

�. � ��� � �� C� �� �� ��� ����. � � ���� ��� �

�(commit) � �� ��� C ��� ����� ���� ��� ����.

�� ��� �� ��� ��� �� �� �� �����.

�� 3. �� �� ��� �� � ��

�� 4. �� �� ��� �� � ��

� 1 � � 19

Page 44: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��, ��, ��

�� �� ��� ��� ������ ���� � � ��� ��� ��� �

�� ���� ��� � ����. ��� �� � �� �� ���(data integrity)

� ���� � �� ��. ��� � ������ ����� ��� ��

� �� � �� ��� ���.

������ ���� �� �� ��� ��� � ��� �� ��� �� �

� ��� ��� �� �� �� � ��� �����. ��� ��

� �� ��� � ��� �� ��. � ��� �� ��� �� ��.

��� � ��� � �� � ��� ����� ��� � ������ ���

� � ��� ��� �� ��� �����. ���� ���� ��� � ��

�� ����� ��� �� ����. � ��� ����� ���. �� ���

� ��� ��� ��� ��� ��� ����.

������ ���� �� �� �� ���� ��� �� �� ��� �

�� �����. ������ ���� ��� �� � �� ��� �� ��

����� ��� � ����.

v ������ ����� ��� � ��� � ��� ��� �� �� �� �

�� �� �� �� ��. ��� � ��� � �� � ��� ���

�� ��� � � ��� ��� �� ���� ��� �� �� �� �

�.

v �� �� � � ��� �� ��� ����� �� ���� ��� �

� ��� �� ��� ��� ��� �� ���� ��� �� �� �

� ��.

v �� �� � � ��� �� �� ����� ��� �� ��� ������

� �� ��� �� ��� ��� ��� �� ���� ��� �� �

� �� ��.

���� ������ �� ���� ����� ��� �� ����. � ��

� ����� ���.

� ��� �� ������ ���� �� ��� ��� �� � � ���

��� �� ��. LOCK TABLE�� �� ����� ��� ��� COMMIT

HOLD �� ROLLBACK HOLD� ��� �� � � ��� �� � ��

�� ��� � ����.

��� ��� �� �� ����� �� � ����. � ��� ��� �� �

� ���.

v �� �� ��� ��� �� ��� ��� �� ��� ��� ���.

20 iSeries� DB2 UDB SQL ��� V5R2

Page 45: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

v �� �� ��� ��� DELETE �� UPDATE�� ��� �� ��� ��

� ���.

� �

�� � (�� �� �� � �� �� � ��� )� ����� ��� ��

��. � �� ��� � ��� �� � ��� �����. �� ��� ��

�� � � ����.

�� ��� ��� � �� �� �� � � ���� �� ���� ��� � �

� � � �� ��. �� � � �� ��, �� �� �� � �� ��� ��

��. ��(commit) �� �� ��� �� �� ��� ��� �� � ��

������ ��� ��� ����. �� ��� �� �� �� ��

COMMIT(*CS), COMMIT(*RS) � COMMIT(*RR)�� ��� �� �� ��

� ��� �� � ��� �� ��� � ����. �� ��� ��� ��

��. �� �� ��� �� �� ���� ��� �� � ��� ��

���� � �� , �� � �� ��� ����.

�� � �� � �� � �� ��� ���� �����. �� ��, �� ��

��� � ���� �� ��� ��� �����. �� ����� ��� � ��

���� ��� �� ��� � �� �����. �� �� � ��� ��

� ����. ��� �� ��� ��� ��� �� ���� �� ��. �

�� � ��� �� ��� ��� �� � � ��� � ����. �� �

� � �� �� ��� ��� � ��� �� ��� ��.

� ��

������ ���� �� � � �� ��� �� ��� ���� ��� �

����. �� ���� ����� ���� �� ��.

�� 5. �� ��� �� �� �

� 1 � � 21

|

|

Page 46: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ���� ��

SQL ROLLBACK�� TO SAVEPOINT� �� ��� �� �� ��� ��

��. �� �� ��� ����� ����� ������ ���� ��� �

� �� ��� �� � � ��� �� � �� �� ���� �����.

�, �� �������� ��, ������ ���� ��� �����.

���� ���� ��� ���� ��

���� �� � � �� ����� �� ��� �����. ������ ���

�� �� � �� ���� ��� ��, � � ��� �� ���� ��� �

�� ����� ��� � ����. �� ��, �� ����� ��� �� ��

� �� ��� ��� ��� � � ����. �� ��� ��� � ��� ��

��� ��� � �� , ������ ����� �� ��� ��� �� �

���� �� �� ������ ���� ��� �� �� �� ���� ��

�� � ���. SQL ����� SQL SAVEPOINT�� ��� ���� �

��, SQL ROLLBACK�� TO SAVEPOINT�� � ��� ��� �� �

�� �� �� ���� ���� ���, RELEASE SAVEPOINT�� ��

� ���� ����.

�� 6. �� ��� �� �� �

22 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 47: 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

Page 48: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

Page 49: 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

Page 50: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 51: 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

Page 52: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� �� ���� �� ��� ��� SQL ��� � �� �� ��

�� �� �� �� �����.

�: (�� ������� ) ���� �� �� ��� ��� ��� �� �

�� ��� �� � �� ��� �����. �� �� ���� RS� ��

� ��� RR �� ��� �� ��.

�� ��� ������

�� ��� ������� � �� � ���� ����� �� ���� ��

�� �� �� ���� ������. � �� ���� ��� �� ���

��� ������(RDB) ���� �� ����. ������ ���� ����

�� ���� �� �� ����� SQL�� ��� � ��� � ���� �

� �� �����.

�� ��� ������� �� ����-�� ���� � ��� � ��. �

����� ����� ��� �� ������ ��� �����. ��������

��� ������ ��� �� ������ �� ��� ��� ��� � �

���� �����. � � ��� ��� �� � ��� ��� �� ��

� ��.5 ������ ����� ��� � � � � ����� �� �

������ � �������� ��� �� ������� ���� �� �

�� � ����. ��� �� ��� ������ �� �� 8�� �����.

�� ��� ������ ��(DRDA)� �� ��� ��� �� ��� ����

�� �� ��� � �����.

5.�� ������ �� �� ���.

�� 8. �� ��� ������ �

28 iSeries� DB2 UDB SQL ��� V5R2

Page 53: 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

Page 54: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 55: 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

Page 56: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

������ �� �� � � �� ��

�� ��� ����.

v � ��� �� ��� �� ��� �� ��� , 0 ��� ��� ���

� ��� ����. � ��� � ��� ��� ���� �� �� ��

��.

v SQL ��� �� �� �� � ���.

– �� � ��

– �� � �� �� �

– �� � ��

– �� � �� �� �

�� ��� �� ��: � ��� ��� ��� ��� , �� �� ���

����. �� �� ��� �� � ����.

�� ��� �� ��� �����.

�� 10. ������ �� �� �� � �� � � �� �� �� ��

32 iSeries� DB2 UDB SQL ��� V5R2

Page 57: 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

Page 58: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �� ��� �����. � ��� ����� �� ��� ��� ���

�� �� � ���� �� ������ ����� 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

Page 59: 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

Page 60: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� ��� �� �� ��� �� ��� �� �� , ��� ���

� �� ��� �� ��� �� ��� ��� � ����. �� �� ����

��� 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

Page 61: 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

Page 62: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �� ��. 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

Page 63: 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

|

|

|

|

Page 64: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� �� *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

Page 65: 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

Page 66: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

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

Page 67: 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

Page 68: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��: �� 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

Page 69: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 70: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 71: 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

Page 72: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �����. 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

Page 73: 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

Page 74: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ����, ���(.), 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

Page 75: 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

||

Page 76: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ������ �� �� ��� ��� ��

��� �� ��. ���� ��� ��� �� �

�� �� �����. 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

Page 77: 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

||

Page 78: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 79: 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

|

|

||

||

|||||||

|

||||

|

||||

|

||||

|

||||

|

||||

|

|

|

|

||||

|

Page 80: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ����� �� ��(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

Page 81: 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

Page 82: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� �� �� �� ��� � �� ��� ��� ��� 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

Page 83: 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

Page 84: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 85: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�: �� �� ��� ��� ��. ��� �� � ��� �� �� �

���(�� �) �� ��� �����. �� �� �� ��� � ���

� �� ��� ��� ��� � ����. �� ��, ��, NOT NULL� ���

. �� ����� ��� � � ��, COUNT � COUNT_BIG �� ��

� �� � ����. ��� �� ROWID � �� ��� �� � ���

ROWID � ��� ��� � ����.

�� �� �� ��� ��� �� �� �����.

v 62 ���� �2� ����

v 62 ���� ��� ����

v 63 ���� ��� ���

� ��

� 2 � � �� 61

|

|

|

|

|

|

Page 86: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

Page 87: 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

Page 88: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

������ ���� �� �� �� ���� 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

|

Page 89: 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

Page 90: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ����(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

Page 91: 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

Page 92: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ��

� ��� 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

|

|

|

Page 93: 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

|

|

|

|

Page 94: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

Page 95: 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

|

||

||

||||||

|

|||||

|

||||

|

||||

|

||||

|

||||

|

|

|

|

Page 96: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�. �� ��(*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

|

Page 97: 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

|

||

||

||||||

|

|||||

|

||||

|

||||

|

||||

|

||||

|

|

|

|

Page 98: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 99: 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

|

|

|

|

|

|

|

|

|

|

|

Page 100: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� � �� ���� �����. 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

|

|

|

Page 101: 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

||

Page 102: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� � ���� �� �� �� �� ���� � ��� ��� �

��� ��� �� ����. ��� � ��� ��� ��� �� �

�� ��� ��� �� ��� ����� ��� �� ����.

�� ���� �� ��� �� �� �� � ���� ��� �

��� � 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

Page 103: 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

||

|||||||||||

|

Page 104: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|||

Page 105: 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

|

Page 106: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��

� �� �� ��� �!� �� �� ��� ��� ��� � ����. ���

���� �� ��� �� ��. ��� ��� ��� � ��

SQLCODE� �� � ����.

�� ��� ����.

v � ��� � � ��� ���

v ����� ��� �� ��� ��� ��� � � ��� ���

�� � �� ����.

����� ��� �� ��� ��� ��� � � ��� ��� . ��

�� ��� ��� ��� �� ����� ��� -2� �� ��.

�: ��� �� � ��� ����.

�: SQL CREATE TABLE��� ��� �� ��� �� ��� ���

�� ��� �� �� ��� � � ����. �� �� �� ��

�� �� �� ��� ��� �� � ��. SQL CREATE TABLE��

� ��� ��� �� �� �� ��� ��� ����.

� �� ���� �� ��

�� ��� �� ��� �����. �� �� �� �� ��� �� ���

�� ��� ��� ��� � �� ��� �� � ����.

� �� ��� ����(32�)� � ����(64�)� ��� ���� �

�����.

�� ���� ��� ��

�� �� �� ��� �� 2� �� �� ��� ��� � ��� ��

��� ���� ���� �� ��. ��� ���� 0�� �� �� ��� �

����. ��� �� �� ��� ��� �� �� �� ���� ���

�� �� ��� ��� ��� �� �� ��� � ��.

��� �

��� �� �� ��� ��� ��� �� ��� ���� ����

�� ��. ��� �� �� ��� ��� �� �� �� ���� ��

� �� �� ��� ��� ��� �� �� ��� � ��.

��� �

82 iSeries� DB2 UDB SQL ��� V5R2

Page 107: 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

Page 108: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� �� � �� ��� � � �� 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

Page 109: 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

Page 110: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 111: 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

Page 112: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� ��� ��� ���. ��� �� ��� �� �� ��� ��

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

Page 113: 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

Page 114: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� 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

Page 115: 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

Page 116: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 117: 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

Page 118: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �� �� �� �� ��� ����� �� ��� ��� �� �� �

� ��. � �� �� �� �� �� �� �� �� �� ��� ��� ��

� ������� �� �� ��.

���� � �� ��� ��� ��� �� ��� ����. ��� ��

��� �� �� ��. ���� � ��� ��� ��� �� ��� ��

� ��� ��� �� �� ��.

�� ��� �� �� ��� ��� �� ��� ����. �� ��, ��� �

���.

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

Page 119: 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

Page 120: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ��� ... � ���... �� � � ��...

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

Page 121: 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

Page 122: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 123: 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

Page 124: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

����(�� ��� �� ��� �) � ���� ����(�� ���

�) ��� ���� �����.

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

Page 125: 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

Page 126: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

Page 127: 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

|

||

||

|||||||

|

|||||

|

||||

|

||||

|

||||

|

||||

|

|

|

||

|

|

|

|

|

|

|

Page 128: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��

*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

|

Page 129: 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

|

|

|

|

Page 130: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ����� ��� ��� � ��� ����. 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

|

|

|

|

|

|

|

|

|

Page 131: 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

Page 132: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� ��� �� � 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

Page 133: 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

Page 134: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 135: 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

Page 136: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� � ���� ��� ��� ��� ��� ����. � �

� ���� � ���� �� ��� ��� � ��� ���� ��� � �

���.

� ��� ��� �� �� �� ���� � � ����. � �� ��

�� ��� �� ��� ���� ��� �� ���� ���. ��� 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

|

|

|

|

|

|

|

|

|

|

Page 137: 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

|

|

|

|

Page 138: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 139: 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

Page 140: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��, :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

|

|

|

Page 141: 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

Page 142: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�. ��� �������� �� ����� ��� ��� ��� ��

� �� ����. �, ����� ��� ��� � ��� �����.

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

Page 143: 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

Page 144: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��, 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

Page 145: 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

Page 146: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

(�: 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

|

|

Page 147: 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

|

|

|

|

|

|

|

|

Page 148: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� � ��: �� ��� ������ ��� � ������ ���� �

�� ����� ��� �� �� ���� ��� �����. �� ��� � �

�� ������ ���� ��� � ���� ����.

v � ��� ��� � ��� ��� �����.

v � ���� �� � ��� �� � ��� �� �� �����.

v � ��� �� � � ��� �� �� � ���� �� �� ��

�� ��� ��� � ����.

� �� �� � ��� ��� �� ��� ����� �� ��(125 ���

� ��� ��� �� �� ��� ��). �� �� ��� �� ��� 76 �

��� ��� �� ���� �����.

�� ����� ��� �� �� �� ��� ����.

��� �� � ��: ����� �� ��� ������ ����

��� � ���� ��� � � ��� ���� ���� ���. SQL

��� ��� ��� ���� �� ����. �(�� �� ��� 56 ����

���� � SQL �� ��)� � ���� ��� ������ ���� ��� �

� ��� �� �� �� �����.

v � ��� ��� � ��� ��� �����.

v � ���� �� � ��� �� � ��� � �� �� ����

�.

v � ��� �� � � ��� �� �� � ���� �� �� ��

�� ��� ��� � ����.

� �� �� � ��� ��� �� ��� ����� �� ��(125 ���

� ��� ��� �� �� ��� ��). �� �� ��� �� ��� 76 �

��� ��� �� ���� �����.

�� ����� ��� �� �� �� ��� ����.

�� �� ��� ��� �� ���� �� �� �� ��� ���

�.

������ ���� �� �� ��� � ��� � ���� �� ��� �

�� �����(125 ���� ��� ��� �� �� ��� ��). �� ���(�

���� ��� � ��� ���) � ���� �� ���� � �� ��

������ ���� SQL ��� �� �� ��� ���� �� ����

�.

� ��� �� �� � �� �� �� ��. �� �� ����

��� QSYS2� ����. ��� QSYS2� SQL �� ����� ��� ��

��

124 iSeries� DB2 UDB SQL ��� V5R2

Page 149: 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

Page 150: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�(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

Page 151: 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

Page 152: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

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

|

Page 153: 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

||

||

||

||

||

||

||

||

Page 154: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||

||

||

|

|

|

|

Page 155: 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

Page 156: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ����� ���� 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

|

|

|

Page 157: 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

|

|

|

|

|

|

|

|

Page 158: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 159: 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

Page 160: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��, 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

Page 161: 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

Page 162: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��

����� � ��� �� � ����.

�� ��: � ����(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

Page 163: 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

Page 164: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 165: 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

Page 166: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|||||

Page 167: 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

Page 168: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� �� �� �� ����� ��� ��� ����� �� ����.

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

|

|

|

|

||

Page 169: 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

|

|

Page 170: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� � �� �� � ��� ����.

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

Page 171: 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

Page 172: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 173: 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

Page 174: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 175: 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

Page 176: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 177: 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

Page 178: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 179: 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

Page 180: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� �� �� �� ���� ��� ��� �����.

� 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

Page 181: 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

|

|

|

|

|

|

|

|

|

|

|

|

||

||

||

||||

||

||

||

||

|||

||

||

||

||

||

||

||

Page 182: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

||

||

||

||

||

||

||

||

||

||

||

||

|||

||

||

||

|||

||||

||||

||

|||

|||

||

||

||

||

||

|||

|||

||

||

||

Page 183: 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

|

|||

||

|||

||

||

|||

|||

||

|||

|||

|||

|||

||

||

||

||

|||

||

||

||

||

||

||

||

||

|||

||

|||

||

||

||

Page 184: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

||

||

||

||

|||

|||

||

||

||

||

||

|||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

|||

||

||

||

||

||

||

||

||

||

Page 185: 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

|

|||

||

||

||

|||

|||

||

||

||

||

||

|||

||

||

||

|||

Page 186: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �

�� ��� 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

|

|

|

|

|

|

|

|

|

|

|||

|

|

|

|

|

|

Page 187: 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

Page 188: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

ANY_CALC� 4.66(�, 14/3)�� �� ��.

AVG

164 iSeries� DB2 UDB SQL ��� V5R2

Page 189: 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

Page 190: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 191: 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

|

|

|

|

Page 192: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 193: 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

Page 194: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 195: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

||||

|

Page 196: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 197: 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

|

|

|

|

||||

Page 198: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� �

��� �� ���� ��� � �� ��� ��� � ����. � ���

����� ��� �� � �� �� �� �� �� ��� ��� ���

�� ��� ����. ��� �� ��� �� � � ����. � �, ��

�� � ��� ��� ����� ��� �� �� ��� � ��

��� �� �����. �� ��, ��� �� ��� �� ��� �� �

�� ��� ��� �� �� � � ����.

�� SELECT�� ��� �� D01� ��� �� ��� � �� ����.

SELECT EMPNO, LASTNAME, YEAR(CURRENT DATE - BIRTHDATE)FROM EMPLOYEE

WHERE WORKDEPT = ’D01’

��� ��

174 iSeries� DB2 UDB SQL ��� V5R2

Page 199: 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

|

|

|

Page 200: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 201: 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

Page 202: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 203: 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

Page 204: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 205: 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

Page 206: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 207: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

v EMPLOYEE �� ��� �������� �� �� � � �� ���

EMPNO � �����.

SELECT BIGINT(SALARY)FROM EMPLOYEE

BIGINT

� 3 � �� � 183

Page 208: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 209: 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

Page 210: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 211: 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

|

Page 212: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� �� �� �� �����. � �� ��� �� � � �� �

�� �� � � �� , � �� ��� �� ��� ����.

�� � � ��

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

||

|

|

|

|

||

|

|

|

|

|

Page 213: 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

Page 214: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� �� �� �� ��� ����. ��� �� ��� � 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

||

||

||

Page 215: 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

||

||

||

||

||

||

Page 216: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 217: 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

Page 218: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 219: 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

|

|

|

|

|

|

|

Page 220: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���. ��� ��� �� ���� ���. �� ��� ��� ��

���� ��� ���� �����. ��� ��� 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

|

|

|

|

|

|

|

|

Page 221: 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

Page 222: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 223: 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

Page 224: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 225: 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

Page 226: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 227: 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

Page 228: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 229: 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

||

Page 230: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 231: 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

Page 232: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 233: 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

Page 234: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 235: 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

Page 236: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 237: 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

Page 238: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

SELECT DBCLOB(FIRSTNME)INTO :VAR_DESC

FROM EMPLOYEEWHERE EMPNO = ’000050’

DBCLOB

214 iSeries� DB2 UDB SQL ��� V5R2

Page 239: 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

Page 240: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 241: 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

Page 242: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 243: 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

Page 244: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 245: 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

Page 246: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 247: 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

Page 248: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 249: 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

Page 250: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 251: 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

Page 252: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 253: 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

Page 254: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 255: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

SELECT EMPNO, DOUBLE_PRECISION(SALARY)/COMMFROM EMPLOYEE

WHERE COMM > 0

DOUBLE_PRECISION �� DOUBLE

� 3 � �� � 231

Page 256: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 257: 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

Page 258: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 259: 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

Page 260: 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 �� ����.

��� � �����

GRAPHIC

236 iSeries� DB2 UDB SQL ��� V5R2

Page 261: 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

Page 262: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 263: 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

Page 264: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 265: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 266: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� ��� � �� 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 267: 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

|||||||||||

|

|

|

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

|||

||

|||

|

|

|

|

||||

|||

|||

|

|

|

|

|

Page 268: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||||

|||

|||

|

|

|

|

|||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|||

||

||

|||

|

|

|

|

Page 269: 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

Page 270: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 271: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

v EMPLOYEE �� ��� � ��(EDLEVEL)� �� �(SALARY) ��

�� �����. ��� �� ��� �����. ����� �� ��� ���

�� �� ��(EMPNO)� �� ���.

SELECT INTEGER(SALARY / EDLEVEL), SALARY, EDLEVEL, EMPNOFROM EMPLOYEE

INTEGER

� 3 � �� � 247

Page 272: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 273: 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

Page 274: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

LCASE

LCASE �� ��� CCSID� �� �� ��� ���� ��� ���� ��

��.

LCASE �� LOWER �� ����. ��� ��� 260 ���� �LOWER�

� �����.

�� LCASE ( string-expression ) ��

LCASE

250 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

|

|

|

|

Page 275: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 276: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� �� � � ��� ��� �� � � �� , �� ��� ��� ���

���.

��� 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

Page 277: 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

|

Page 278: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

||

|

|

||

|

Page 279: 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

Page 280: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 281: 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

Page 282: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 283: 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

Page 284: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

Page 285: 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

Page 286: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 287: 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

||

Page 288: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 289: 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

Page 290: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 291: 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

Page 292: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 293: 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

Page 294: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 295: 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

Page 296: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

Page 297: 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

|

|

|

|

|

|

|

|

|

|

Page 298: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 299: 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

Page 300: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

Page 301: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

PI

PI � 3.141592653589793� ����. ��� ����.

� ��� ���� �� �����. ��� �� � � ����.

v ��� ��� 10� �� �� ����.

SELECT PI()*10FROM SYSIBM.SYSDUMMY1

�� PI ( ) ��

PI

� 3 � �� � 277

Page 302: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 303: 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

Page 304: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 305: 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

Page 306: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

RADIANS

RADIANS �� ��� ��� ��� �� ��� �� ����.

��� �� � �� � �� �� �����. ��� ���� �� ��

� �� � �� �� � ��� ���� �� ��� �� �� �

�.

�� �� �� ���� �� �����. ��� �� � � �� ���

�� � � �� ��� �� ��� ����.

v ��� �� HDEG� � 180� �� INTEGER�� �����. �� ��� �

����.

SELECT RADIANS(:HDEG)FROM SYSIBM.SYSDUMMY1

��� �� 3.1415926536 �� �� ���� �� ��� �� ���

�.

�� RADIANS ( numeric-expression ) ��

RADIANS

282 iSeries� DB2 UDB SQL ��� V5R2

Page 307: 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

Page 308: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 309: 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

Page 310: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �� �� ����.

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

Page 311: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|||

Page 312: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

Page 313: 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

Page 314: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 315: 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

Page 316: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 317: 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

Page 318: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 319: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

v EMPLOYEE �� ��� � ��(EDLEVEL)� �� �(SALARY) ��

�� �����. ��� �� ��� �����. ����� �� ��� ���

�� �� ��(EMPNO)� �� ���.

SELECT SMALLINT(SALARY / EDLEVEL), SALARY, EDLEVEL, EMPNOFROM EMPLOYEE

SMALLINT

� 3 � �� � 295

Page 320: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

Page 321: 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

Page 322: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 323: 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

Page 324: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 325: 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

|

|

|

|

|

Page 326: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 327: 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

Page 328: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 329: 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

Page 330: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 331: 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

|

||

|

Page 332: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 333: 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

Page 334: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 335: 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

Page 336: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ‘pivAbiskA LAk. pLA..’� ����.

TRANSLATE

312 iSeries� DB2 UDB SQL ��� V5R2

Page 337: 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

Page 338: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� �� �� 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

Page 339: 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

Page 340: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �� �� ����.

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

Page 341: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

UCASE

UPPER �� ��� CCSID� �� �� ��� ���� ��� ���� ��

��.

UCASE �� UPPER �� ����. ��� ��� 318 ���� �UPPER��

�����.

�� UCASE ( string-expression ) ��

UCASE

� 3 � �� � 317

|

|

|

|

|

|

|

Page 342: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 343: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

VALUE

VALUE �� �� � � �� ��� �� ����.

VALUE �� COALESCE ��� �� ����. ��� ��� 197 ����

�COALESCE�� �����.

�� VALUE ( expression , expression ) ��

VALUE

� 3 � �� � 319

Page 344: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 345: 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

|

|

|

|

|

|

|

|

|

Page 346: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

Page 347: 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

|

|

|

|

|

|

|

|

Page 348: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 349: 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

Page 350: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 351: 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

Page 352: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 353: 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

Page 354: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 355: 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

Page 356: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� � �� ��� ��� 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

|

|

|

|

|

Page 357: 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

Page 358: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

ZONED

334 iSeries� DB2 UDB SQL ��� V5R2

Page 359: 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

Page 360: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 361: 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

Page 362: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 363: 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

|

|

|

Page 364: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� ��

�� � � ��� ��� ����.

�� �� 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

|||

||

|||

||

Page 365: 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

|

|

|

|

|

Page 366: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 367: 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

|

|

|

|

|

|

|

|

||||||||||

|

|

|||||

|

||

|

|

|||

|

Page 368: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 369: 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

Page 370: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

Page 371: 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

Page 372: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 373: 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

Page 374: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 375: 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

|

|

Page 376: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 377: 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

|

|

|

|

|

|

Page 378: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

Page 379: 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

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

||

|

|

|

|

|

|

Page 380: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� �� � �� ����� ��� ��� � � � ����. �� � �

��� ���� ��� ��� �� ��� �� ���� � ��. �� �� (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

Page 381: 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

Page 382: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 383: 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

Page 384: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 385: 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

|||

||

Page 386: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||||

Page 387: 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

|||

|||

||||

|||

Page 388: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||||

||

||||

Page 389: 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

Page 390: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�: 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

|

|

|

|

|

|

Page 391: 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

Page 392: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 393: 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

Page 394: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 395: 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

|

Page 396: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

v �� ��

��� ���� ID� �� � �� �� � �� �� �� USAGE ���

����.

v �� �� ����.

v �� �� �� USAGE ��� �������.

v �� �� �� *OBJOPR� *EXECUTE� ��� ��� �������.

ALTER TABLE

372 iSeries� DB2 UDB SQL ��� V5R2

Page 397: 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

|||||||

Page 398: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||||||

Page 399: 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

|||||

Page 400: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

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

Page 401: 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

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

Page 402: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 403: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 404: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ��� �� ��� � ����. ������ ���� 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

|

|

|

|

|

||

||

||

||

||

|

||

|

||

|

|

|

||

||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 405: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|||

|||

|||||

|||||||||

|

|

|

|

||

|

|

Page 406: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �� � �� �� �� �� ��� ��� ���.

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 407: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 408: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 409: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 410: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� 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

|

|

|

|

|

|

|

|

|

|

Page 411: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 412: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 413: 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

|

|

|

|

|

|

|

Page 414: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ��� ��� �� ����� ���. �� � � � �� ��

��� � ��. � 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

Page 415: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 416: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

– 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

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 417: 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

|

|

|

|

|

|

|

Page 418: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

– 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

Page 419: 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

Page 420: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 421: 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

Page 422: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

Page 423: 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

Page 424: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

Page 425: 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

Page 426: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 427: 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

Page 428: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 429: 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

Page 430: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 431: 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

Page 432: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 433: 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

Page 434: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

�� 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

Page 435: 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

Page 436: 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)� ��� ��� ������ ���� �� ��� �� ��

��� � ��� �� ��� ��� ��.

COMMENT

412 iSeries� DB2 UDB SQL ��� V5R2

Page 437: 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

|

|

|

|

Page 438: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 439: 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

Page 440: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 441: 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

|

|

|

|

|

Page 442: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

Page 443: 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

|

|

Page 444: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 445: 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

|

|

|

|

|

|

Page 446: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 447: 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

|

|

Page 448: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���

– ��� �� ��� ���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

Page 449: 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

Page 450: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� ������ � �� ����� ��� �� ��� ��� 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

Page 451: 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

|

|

|

|

|

|

Page 452: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 453: 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

Page 454: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

– 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

Page 455: 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

Page 456: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 457: 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

|

|

|

|

|

Page 458: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��: 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

|

|

|

|

|

|

Page 459: 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

Page 460: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

�� 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

|||||

Page 461: 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

|

|

Page 462: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|||||

Page 463: 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

Page 464: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||||

||||

Page 465: 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

|

|

|

|

|

|

|

Page 466: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 467: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|||||

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

Page 468: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

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

|

|

|

|

|

|

|

|

|

Page 469: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 470: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �� �� ���, ��� �� ��� �� ��� �� ��� �

� �� ��� ��� ������� ���, ���� ����� ��

� �� ���� �� �� � ������ �� ������ ��� ��

�� ��� �� ��� �����.

CREATE FUNCTION

446 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

|

Page 471: 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

Page 472: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �� �����, ��� ���� 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

|

|

|

|

|

|

|

|

|

|

|

Page 473: 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

Page 474: 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 FUNCTION(�� ���)

450 iSeries� DB2 UDB SQL ��� V5R2

|||||

Page 475: 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

|

|

|

|

Page 476: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 477: 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

Page 478: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 479: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 480: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

Page 481: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 482: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

Page 483: 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

|

|

|

|

|

|

|

|

|

|

|

|

Page 484: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� �� ��� ��� ��� �� �� � 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

Page 485: 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

Page 486: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �

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

|

|

|

|

|

|

|

Page 487: 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

|

|

|

|

|

|

Page 488: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 489: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 490: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

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

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

||

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

||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 491: 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

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

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

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

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

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

|||

Page 492: 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 FUNCTION(�� ���)

468 iSeries� DB2 UDB SQL ��� V5R2

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

|

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

||

Page 493: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 494: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 495: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 496: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 497: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

||

|

|

Page 498: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 499: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

||

|||

|||

|||

|||

|

|

|

|

|

|

|

|

|

|

|

|

|

|||

|

||

|

|

|

|

|

|||

|||

Page 500: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|||

|||||

|||

||||||||||

|||||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 501: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 502: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 503: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

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

|

Page 504: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

Page 505: 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

|

|

|

|

|

|

|

|

|

|

|

Page 506: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

�� 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

Page 507: 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

|||||

Page 508: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �� �(�� �� ��, ���, ���� 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

|

|

Page 509: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 510: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 511: 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

Page 512: 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 ���)

488 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 513: 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

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

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

||

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

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

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

||

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

|

Page 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 )

TIMESTAMP( 200 )

DATALINK( integer ) CCSID integer

ROWID

CREATE FUNCTION(SQL ���)

490 iSeries� DB2 UDB SQL ��� V5R2

|||||

Page 515: 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

|

|

|

Page 516: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �� �(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

|

|

|

|

|

|

|

|

|

Page 517: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 518: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 519: 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

|

|

|

|

|

|

|

|

Page 520: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��

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

|

|

|

|

|

|

|

Page 521: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 522: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

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

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

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

||

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

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

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

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

||

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

|

|

|

|

|

|

|

|

Page 523: 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

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

|

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

||

Page 524: 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 TABLE

�� �� �� �����.

�� �� N��� � �, (247-(N*2))/2 �� � �� ���.

CREATE FUNCTION(SQL �)

500 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 525: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 526: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 527: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 528: 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 �)

504 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 529: 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

|

|

|

|

|

|

|

|

|

|

|

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

|

Page 530: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 531: 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

Page 532: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 533: 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

Page 534: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 535: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

����� � �

�� ��� ���� �� � ������ ��� (�� �� �� ��

� ��), ��� ��� �� ����. ��� ��� ������ �

�, ��� ���, ��� ���, �� �� � �� �� ������ �

� ��� � ����.

SPECIFIC�� ��� ���, ��� �� ��.

CREATE PROCEDURE

� 5 � �� 511

|

|

|

|

|

|

Page 536: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

Page 537: 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

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

||

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

||

|

Page 538: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 539: 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

|||||

Page 540: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 541: 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

|

|

Page 542: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

Page 543: 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

|

|

|

|

|

|

|

Page 544: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� ���� �� ��. ��� ��� � !� ��� ��� �

��.

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 545: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 546: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� �����. � 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 547: 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

|

|

|

|

|

|

|

|

|

|

|

Page 548: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� ��

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 549: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

EXTERNAL NAME LIB1.PGM1LANGUAGE COBOL GENERAL;

EXEC SQLCALL PROC1 (’FIRSTNAME ’,’LASTNAME ’);

CREATE PROCEDURE(��)

� 5 � �� 525

Page 550: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

Page 551: 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

|

|

|

|

|

Page 552: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|||||||||||

Page 553: 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

|||||

Page 554: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 555: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 556: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� )� �����. 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 557: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 558: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� ��� � ��� 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

|

|

|

|

|

|

|

|

|

|

|

Page 559: 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

Page 560: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

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

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

||

Page 561: 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

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

|

|

||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 562: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 563: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 564: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|

|

|

|||||||||

|

|

|

||||||||

|

Page 565: 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

Page 566: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ���� 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

|

|

|

|

|

Page 567: 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

||||||

Page 568: 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 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

|||||

Page 569: 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

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

Page 570: 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

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

||||||||||

Page 571: 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

Page 572: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 573: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 574: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��(�(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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 575: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 576: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 577: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 578: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� � ����. 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

|

|

|

|

|

|||

||

||

||

||

||

||

||

|||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 579: 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

|

|

|

|

|

|

|

|

|||

|||

|||||

|||||||||

|

|

|

|

||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 580: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 581: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 582: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 583: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 584: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 585: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 586: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 587: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 588: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|||

||

||

||

||

||

||

||

|||

|

|

Page 589: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 590: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

(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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 591: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 592: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 593: 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

|

|

|

|

|

|

|

|

|

Page 594: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �� �/�� � ��� ��� ���� �� �� �� �� ��� � �

� � � ��� ��� �����.

�� �� ��� ��� �� � �� �� �� �� � �� ���.

��� ��� � ���, 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

|||

Page 595: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 596: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� �� 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

|

|

|

|

|

Page 597: 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

Page 598: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 599: 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

Page 600: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 601: 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

Page 602: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

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

Page 603: 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

|

|

Page 604: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 605: 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

Page 606: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

Page 607: 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

|

|

|

|

|

|

|

|

|

|

Page 608: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� �� �� � � ����. ��� �� �� �� �

�� ��� �� ����� 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 609: 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

|

|

|

|

|

|

|

|

|

|

|

|

Page 610: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� ��� � ��� 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

|

|

|

|

|

|

|

|

|

Page 611: 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

Page 612: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 613: 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

Page 614: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

Page 615: 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

|

|

|

|

|

|

|

|

Page 616: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 617: 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

Page 618: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 619: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 620: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 621: 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

Page 622: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 623: 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

Page 624: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�, � � �� �� ���� ��� ��� ��� ����. 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

Page 625: 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

|

|

Page 626: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� � � �� ��� ���.

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 627: 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

Page 628: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|

||||

|

|

|

|

||||

|

Page 629: 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

Page 630: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 631: 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

|||||||||||

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

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

|

|

||

|

|

|

|

|

Page 632: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

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

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

|

|

||

||

|

||

Page 633: 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

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

|

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

|

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

Page 634: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

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

|

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

|

|

||

||

Page 635: 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

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

|

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

|

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

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

|

|

||

||

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 636: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ��� � �� � ��� 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|||

||

||

||

||

Page 637: 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

||

||

||

||

|||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 638: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �� ��� ���

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

|||

|||

|||||

|||||||||

|

|

|

|

||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 639: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 640: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 641: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 642: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ���� ��� �� �� �� ��� �� � ����. �� �

� ��� �� �� 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 643: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 644: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|||

||

||

||

||

||

||

||

|||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 645: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 646: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

||||||

|

|

|

|

||||

Page 647: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ���, ������ ���� SESSION� TEMPTAB1� ��� ���� �

����.

DECLARE GLOBAL TEMPORARY TABLE

� 5 � �� 623

|

|

Page 648: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 649: 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

Page 650: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|||||

Page 651: 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

Page 652: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

Page 653: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 654: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

Page 655: 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

|

|

|

|

|

|

Page 656: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� �� ��� ��� ��� �� �� � 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

|

|

|

|

|

|

|

|

Page 657: 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

|

|

|

|

|

|

|

|

|

Page 658: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 659: 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

Page 660: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 661: 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

|

|

|

|

|

Page 662: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 663: 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

Page 664: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 665: 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

Page 666: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 667: 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

Page 668: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ���: �� � �� �� ��� ��� � ��� �����. �

� �� ���� ��� � ����.

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

|

|

|

|

|

Page 669: 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

Page 670: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 671: 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

Page 672: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� � ��: ��� 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

|

|

|

|

|

|

|

|

|

|

Page 673: 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

Page 674: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 675: 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

Page 676: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 677: 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

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

|

|

|

Page 678: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

�� 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

Page 679: 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

Page 680: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 681: 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

Page 682: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

- ��� �� �� �� �� �� ��� �� *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

Page 683: 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

Page 684: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 685: 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

Page 686: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 687: 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

Page 688: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ���� �, ���, ����� �� ����� ��� � ���

� ��� ��� ��� �� ��� ����� �� � ��. � ��

���� ��� ��� ��� � ��.

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

Page 689: 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

Page 690: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

Page 691: 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

Page 692: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 693: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

END DECLARE SECTION�� �� �� ��� 398 ���� �BEGIN DECLARE

SECTION�� �����.

END DECLARE SECTION

� 5 � �� 669

Page 694: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 695: 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

Page 696: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 697: 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

Page 698: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ���� �� 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

Page 699: 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

Page 700: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 701: 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

Page 702: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� 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

Page 703: 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

Page 704: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� '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

Page 705: 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

|

|

|

|

Page 706: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 707: 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

|

|

|

|

Page 708: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 709: 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

|

|

|

|

|

Page 710: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|

|

Page 711: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

GRANT(� �� ����� ��)� � ��� GRANT�� � �� ������ �� ��� �����.

��

� ��� ������ ����� �� ����� �� � ����. �

��� ���� �� � �� �����.

����

��� ���� ID� �� ��� ��� �� � �� �� ���.

v ��� ��� � �� ������ �� ��� �� ��� ����.

– ��� ��� �� ��

– �� ������ �� *OBJMGT ��� ��

– �� ������ �� �� �� �(�� Java ��� ����)�

�� *EXECUTE ��� ��

v �� ��

WITH GRANT OPTION� ��� ��� ���� ID� �� �� �

�� �� � � �� ��� ��� � ��� ���.

v �� ������ �� ��

v �� ��

GRANT(�� �� ����� ��)

� 5 � �� 687

Page 712: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

�� 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

Page 713: 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

Page 714: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 715: 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

Page 716: 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� �� ��� �� �� ������ ���� ���.

TO

��� ���� ���� �����.

authorization-name,...

� ��� ���� ID� ����. ��� authorization-name� �

�� ��� ����.

PUBLIC

��� ��(���� ID)� ��� �����.

GRANT(�� �� ����� ��)

692 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

Page 717: 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

Page 718: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ���: �� � �� �� ��� ��� � ��� �����. �

� �� ���� ��� � ����.

v RUN � �� EXECUTE� ���� ��� � ����.

CORPDATA.PROCA ������ �� EXECUTE ��� PUBLIC� �����.

GRANT EXECUTEON PROCEDURE CORPDATA.PROCA

TO PUBLIC

GRANT(�� �� ����� ��)

694 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

Page 719: 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

Page 720: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

���� �� �� �� ����� ����. ���� �� 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

|

|

|

Page 721: 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

|

|

|

|

Page 722: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 723: 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

|

|

|

|

Page 724: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�����. � 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

|

|

|

|

|

|

Page 725: 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

Page 726: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 727: 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

Page 728: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 729: 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

|

|

|

|

|

|

|

|

|

Page 730: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 731: 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

Page 732: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 733: 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

Page 734: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

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

Page 735: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 736: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 737: 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

Page 738: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� �� �� �� �� ��� �� � ��. � �� �� �� �

� �� �� � ��� �� �� ��� ���.

��

� �� � 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

|

|

|

|

Page 739: 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

|

|

|

|

|

|

|

|

|

|

|

|

Page 740: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|||||

Page 741: 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

Page 742: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

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

|

|

|

|

Page 743: 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

|

Page 744: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ���: �� � �� �� ��� ��� � ��� �����. �

� �� ��� ��� ��� � ����.

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

|

|

|

Page 745: 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

|

|

|

|

|

|

|

|

|

|

|

|

Page 746: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 747: 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

Page 748: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�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

Page 749: 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

Page 750: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

– 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

Page 751: 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

Page 752: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 753: 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

|

|

|

|

Page 754: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 755: 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

||

|

|

Page 756: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ���� ��

�� �� �� � ��� �� ��. ��� ���� ����.

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

|||

Page 757: 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

|

|||

Page 758: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|||

|||

|||||

Page 759: 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

Page 760: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 761: 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

Page 762: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 763: 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

Page 764: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 765: 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

|

|

|

|

Page 766: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��� ��� ��� ����� �� �� ����� � �� �� ���

�� ��� ��� �� ����� � ��. ����� �� ���� �

� �� ���� �� ��� �� �� �� ��� 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

|

|

|

|

Page 767: 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

|

|

|

Page 768: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 769: 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

|

|

|

Page 770: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

REVOKE(� �� ����� ��)� ��� REVOKE�� �� ������ �� ��� ����.

��

� ��� ������ ����� �� ����� �� � ����. �

��� ���� �� � �� �����.

����

��� ���� ID� �� ��� ��� �� � �� �� ���.

v ��� ��� � �� ������ �� ��� �� ��� ����.

– ��� ��� �� ��

– �� ������ �� *OBJMGT ��� ��

– �� ������ �� �� �� �(�� Java ��� ����)�

�� *EXECUTE ��� ��

v �� ��

REVOKE(�� �� ����� ��)

746 iSeries� DB2 UDB SQL ��� V5R2

Page 771: 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

Page 772: 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)� ��� ��� ������ ���� �� ��� �� ��

��� � ��� �� ��� ��� ��.

REVOKE(�� �� ����� ��)

748 iSeries� DB2 UDB SQL ��� V5R2

Page 773: 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

Page 774: 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

����� ��� �����.

REVOKE(�� �� ����� ��)

750 iSeries� DB2 UDB SQL ��� V5R2

Page 775: 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

Page 776: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ������ �� ��� ��� �� ���� ���� �� �� ��

���� �� �� �� ��� ��� ��.

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

|

|

|

Page 777: 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

Page 778: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

Page 779: 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

Page 780: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 781: 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

Page 782: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 783: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 784: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 785: 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

|

|

|

|

|

|

Page 786: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|||||||

|

|

|

|

Page 787: 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

|

|

|

|

|

|

|

|

|

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

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

|

|

||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 788: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|||||||||

|

Page 789: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

SELECTSELECT ��� ��� � ����. ����� �� � ����. ��� �

�� 352 ���� �select�� � 335 ���� � 4 � ����� �����.

SELECT

� 5 � �� 765

|

|

|

Page 790: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 791: 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

|

|

|

|

|

Page 792: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

||||

|

Page 793: 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

|

|

|

Page 794: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 795: 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

|

|

Page 796: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||

Page 797: 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

Page 798: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

Page 799: 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

Page 800: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 801: 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

Page 802: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

*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

Page 803: 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

Page 804: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 805: 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

Page 806: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�: *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

|

|

|

|

|

|

|

|

|

|

Page 807: 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

Page 808: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

OUTPUT

��� � � ���� �� ��� �����. OUTPUT ��

� SQL � ��, ����� � ����� ��� � ����. ��� ��

��� �����.

*NONE

��� � � ���� ��� ����.

*PRINT

��� � � ���� �� ��.

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

Page 809: 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

Page 810: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 811: 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

|

|

|

|

|

Page 812: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 813: 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

Page 814: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 815: 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

|

|

|

|

Page 816: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 817: 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

|

|

|

|

|

|

|

|

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 818: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 819: 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

|

|

|

|

|

|

|

|

|

|

Page 820: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 821: 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

|

|

|

|

|

|

|

|

|

|

Page 822: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 823: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

||||||||

|

|

|

Page 824: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

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

|

Page 825: 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

Page 826: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ��� �� �� �� ��� ���. � �� �(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

Page 827: 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

Page 828: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 829: 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

Page 830: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

��

�� 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

Page 831: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 832: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� ������ ���� ��� ��� �� �� ��.

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

|

|

|

Page 833: 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

Page 834: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� ��� ��� ��� ���� ��� � ����. ����

�, �� ��� �� � ��� � �� �� ��. �� ��� �� �

��� � �� �� � �� ���� � �� ����.

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

Page 835: 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

|

|

|

|

|

|

|

Page 836: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 837: 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

Page 838: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 839: 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

Page 840: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 841: 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

Page 842: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

– ��� �� ��.

– ��� ��� 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

Page 843: 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

|

|

|

Page 844: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

Page 845: 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

|

|

|

|

|

|

|

Page 846: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

Page 847: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

v 864 ���� �WHILE��

SQL ���

� 6 � SQL ��� 823

Page 848: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 849: 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

|

|

||||||

Page 850: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

Page 851: 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

|

|

|

|

|

|

|

|

|

Page 852: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

Page 853: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 854: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

Page 855: 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

Page 856: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 857: 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

|||||

Page 858: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ��� �� � ��� �� � ��� 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 859: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 860: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

Page 861: 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

|

|

|

|

|

|

|

|

|

|

|

|

Page 862: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 863: 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

Page 864: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

Page 865: 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

|

|

|

|

|

|

|

|

|

|

|||

Page 866: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||||||||||

|

Page 867: 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

|

|

|

|

|

|

Page 868: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�� ���� �� 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

Page 869: 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

|

|

|

|

|

|

Page 870: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 871: 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

|

|

|

Page 872: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

INSERT INTO department (deptno,deptname,admrdept)VALUES(’NEW’, v_deptname, v_admdept);

END LOOP;CLOSE c1;END

ITERATE

848 iSeries� DB2 UDB SQL ��� V5R2

Page 873: 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

|

|

|

Page 874: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

SET v_counter = v_counter + 1;END LOOP fetch_loop;

SET counter = v_counter;CLOSE c1;END

LEAVE

850 iSeries� DB2 UDB SQL ��� V5R2

Page 875: 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

|

|

|

|

|

|

Page 876: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

END LOOP fetch_loop;SET counter = v_counter;CLOSE c1;END

LOOP

852 iSeries� DB2 UDB SQL ��� V5R2

Page 877: 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

|

|

|

|

|

|

Page 878: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 879: 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

|

|

|

|

|

Page 880: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

Page 881: 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

|

|

|

|

Page 882: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

|

|

|

|

|

|

|

Page 883: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 884: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 885: 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

|

|

|

|

|

|

Page 886: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 887: 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

Page 888: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

Page 889: 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

Page 890: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

866 iSeries� DB2 UDB SQL ��� V5R2

Page 891: 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

||

Page 892: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|

Page 893: 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

|

|

|

Page 894: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||

||

||

||

Page 895: 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

Page 896: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 897: 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

Page 898: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 899: 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

||

Page 900: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 901: 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

Page 902: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 903: 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

Page 904: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

SQLCA

880 iSeries� DB2 UDB SQL ��� V5R2

Page 905: 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

Page 906: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 907: 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

Page 908: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|

|

|

|

|

Page 909: 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

||

Page 910: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 911: 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

Page 912: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|||||

Page 913: 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

Page 914: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 915: 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

Page 916: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 917: 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

Page 918: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 919: 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

Page 920: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

896 iSeries� DB2 UDB SQL ��� V5R2

Page 921: 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

|

|

|

|

|

||

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

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

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

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

Page 922: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||

||||||||

|||||||||

|||||||||

||||||

|

Page 923: 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

|

Page 924: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|||||||||||

||||||||||

||||||||||

Page 925: 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

||||

|||||||||

Page 926: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|||||||||||

|||||||||||

Page 927: 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

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

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

|||||||||||

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

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

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

|||||||||||

Page 928: 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)

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

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

Page 929: 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

Page 930: 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)

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

Page 931: 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

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

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

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

Page 932: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 933: 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

Page 934: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 935: 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

|||||||||||

Page 936: 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)

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

Page 937: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

||

||||

|

|||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

|||||||

||||||

||||||

||||||

||||||

||||||

Page 938: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

||||

|

|||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

||||||

Page 939: 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

|

||||

|

|||

|

|

|

||

|

|

|

|

|

|

|

|

|

|

||

||||||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

||||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

Page 940: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

||||||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

|||||

||||||

|

|

|

Page 941: 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

|

|

|

|

|

|

|

Page 942: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|||||

Page 943: 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

|||||

Page 944: 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

��

�:

1 � ��� ������ ����� ��� ��� �� ��.

2 ���� ���� �� �� �� ��� ��� �� ���� ��� ��.

3 � ���� ���� ��� ���� ��(Extended) �� ��� �����. ��� ��� VM � VSE� DB2

�� �� �� �����.

920 iSeries� DB2 UDB SQL ��� V5R2

Page 945: 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

|||||

Page 946: 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

��

�:

1 ��� �� �� ��� �� �� ��� � � �� �� ��� ���� ��� ���. ��� VM � VSE�

DB2 �� DB2 UDB UWO� ��� TCP/IP ��� ��� � �� ����.

2 � ��� ������ ����� ��� ��� �� ��.

3 ���� ���� �� �� �� ��� ��� �� ���� ��� ��.

922 iSeries� DB2 UDB SQL ��� V5R2

Page 947: 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

|||||

Page 948: 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

��

�:

1 ��� �� �� ��� �� �� ��� � � �� �� ��� ���� ��� ���. �� ��� VM � VSE�

DB2��, � ��� TCP/IP ��� ��� � �� ����.

2 � ��� ������ ����� ��� ��� �� ��.

3 ���� ���� �� �� �� ��� ��� �� ���� ��� ��.

4 DB2 UDB UWO�� ��� ��� COBOL ���� �� ��.

924 iSeries� DB2 UDB SQL ��� V5R2

Page 949: 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

Page 950: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

CONNECT(� 2)� ��� �� � �� �� ��� ��� 81

v � ��� �� �� �� ��� � ��� �� �� �� ����

�����. � � �� ���� �� ������.

v � � � ����, �� ���� �� �����.

CONNECT(� 2)� �� �� � � ��� ��� ���

v ��� �� � �� �� ��� �� ��� � ��� �� �

��� �� �� ���� �����. � � � ��� ����� �

� ���� �� �����.

v � � � ����, �� ���� �� �����.

81. � TCP/IP� �� �� DRDA ��� ��� iSeries� DB2 UDB� ��� �� � � ��� ��� ���.

926 iSeries� DB2 UDB SQL ��� V5R2

Page 951: 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

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

Page 952: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

�: �� � � ��� � ��� ��� �� ���� �� �����. �� �

� SYSIBM� ����, ������� � ��� �� ����. �� �

� ��� �� ���� �(IASP)� �� ��� �� ���� �� � �

���.

���� �

928 iSeries� DB2 UDB SQL ��� V5R2

|

|

|

|

Page 953: 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

Page 954: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� ���� �� � �� �� �� ��� ″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

|

|

|

|

|

|

Page 955: 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

|||

|||

Page 956: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

||

|

|||||

||||

||||

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

||||

|

|

|

|

|

|

|||||

||

Page 957: 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

|

|

|||||

|||||

||

||||

Page 958: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

||

Page 959: 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

Page 960: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

||

Page 961: 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

||

Page 962: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||

|

|

||

|

|

||

|

|

||

|

|

Page 963: 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

||

Page 964: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||

|

|

|

Page 965: 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

||||

||

||

Page 966: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|||||||

|

|

|

|

|

|

|||||

||

|||||

||

|||||

||

|||||

||

|||||||

||

||

|

|

|||||||

||

Page 967: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 99. SYSCOLUMNS � (�)

��

��� ��

(Column

Name) � �� ��

IDENTITY_ORDER ORDER VARCHAR(3)

�� ��

�� ���� ID �� ���� ��

��� �����.

NO �� ���� �� ��� ���

����.

YES �� ���� �� ���� �

��.

� IDENTITY � � ��� �

����.

SYSCOLUMNS

�� G. iSeries� DB2 UDB ���� � 943

||||||

||

|

||

|

|

|

Page 968: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|||||||

||

|||||

Page 969: 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

Page 970: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|||||

Page 971: 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

Page 972: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|

|

|

Page 973: 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

Page 974: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||

Page 975: 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

|

|

|

|

|

|

|

|

Page 976: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|||

||

|||||

||

|||||

||

||

|||||

Page 977: 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

||

|||||

Page 978: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|||||

Page 979: 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

|||||

||||

|||||

||||

||

||

|||||

Page 980: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 981: 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

Page 982: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||

Page 983: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 109. SYSPACKAGE � (�)

��

��� ��

(Column

Name) � �� ��

IASP_NUMBER IASPNUMBER SMALLINT �� �� ���� �(IASP) �� ����

�.

SYSPACKAGE

�� G. iSeries� DB2 UDB ���� � 959

|||||

Page 984: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||

Page 985: 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

||

Page 986: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 987: 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

|||||

Page 988: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

Page 989: 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

Page 990: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 991: 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

|||||||

||

|

||

|

|||||

Page 992: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 111. SYSPROCS � (�)

��

��� ��

(Column

Name) � �� ��

NEW_SAVEPOINT_LEVEL NEWSAVEPTL VARCHAR(3)

�� ��

� � ��� � ��� ��� ���

� ��� �����.

NO � ��� ��� ��� ���

�.

YES � ��� ��� �� ��.

SYSPROCS

968 iSeries� DB2 UDB SQL ��� V5R2

||||||

||

|

||

Page 993: 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

Page 994: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

||

|

|||||

||||

||||

||||

||||

|||||

||

|

|

||

|

|

|

|

||

||

||

|||||

||

|||||

|||||

||

Page 995: 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

Page 996: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 997: 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

Page 998: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||||

||

Page 999: 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

||

Page 1000: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 1001: 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

|||

||

|||||

||

|||||

||

||

|

|||||||

||

|

||

|

|

|||||

||||||

||

|

||

|

Page 1002: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||||

||

||

|||||

Page 1003: 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

Page 1004: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

||||

||

||

||||

||

|

||

|||||

||

|

||

|||||

Page 1005: 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

|||||

|

|

||

||

Page 1006: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|||||

||

Page 1007: 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

Page 1008: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

Page 1009: 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

|

|

|

|

|

|

|

Page 1010: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 1011: 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

Page 1012: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

Page 1013: 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

||

Page 1014: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 1015: 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

||

Page 1016: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

Page 1017: 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

|||||

||||||

Page 1018: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

||||

|||||

||||

|

|

||

||

||

|||||||

||

|||||

||

||||||

||

Page 1019: 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

|||||

||

||

||

||

|

|

|||||

|||||

||

Page 1020: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|||||

||

|

||

|||||

Page 1021: 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

|

|

|||

||

||

||

||

||

||

||

||

||

||

||

||

|||

Page 1022: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

|

|

||

|||

|||

|||

|||

|||

||||

|||

|||

|

|

|

|

|||

||

||

||||

|

Page 1023: 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

|

|

|

||

|||

|||

|||

|||

|||

|||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

Page 1024: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|||

|||

||

||

||

||

||

||

||

||

|

|

||

|

|

||

||

||

||

||

||

||

||

||

||

|

|

|||

|||

||||

|

||||

|

Page 1025: 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

|

|||

|||

||

||

||||

|

||||

|

|||

||||

||

||

||

|

||||

|

|||

|||

||

||

Page 1026: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

� 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

|

|||

|||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||

||||

||||

||||

||||

|

||||

Page 1027: 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

|

|||

||||

|

|||

||

|||

Page 1028: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

||

|||

|||

|||

|||

|||

|||

|||

|||

|||

|||

|||

||

||

|||

||

||

||

||

||

|||

|||

|||||

Page 1029: 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

|

|

|

||

|||

|||

|||

|||

|||

|||

||||

Page 1030: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2

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

|

|

|

||

|||

|||

|||

|||

||||

|

|||

||

||

||

Page 1031: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1032: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1033: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1034: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1035: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1036: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1037: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1038: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1039: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1040: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1041: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1042: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1043: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1044: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1045: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1046: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1047: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1048: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1049: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1050: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1051: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1052: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1053: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1054: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1055: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1056: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1057: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1058: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1059: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1060: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1061: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1062: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1063: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1064: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1065: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1066: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1067: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1068: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1069: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1070: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1071: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1072: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1073: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1074: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1075: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1076: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1077: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1078: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1079: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1080: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1081: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1082: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1083: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1084: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1085: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1086: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1087: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1088: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1089: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1090: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1091: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1092: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1093: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1094: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1095: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1096: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1097: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1098: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1099: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1100: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1101: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1102: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1103: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1104: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1105: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1106: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1107: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1108: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1109: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1110: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1111: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2
Page 1112: iSeries¿ë DB2 UDB SQL ÂüÁ¶¼ V5R2