Beruflich Dokumente
Kultur Dokumente
DB2 versin 9
para Linux, UNIX y Windows
SC11-3180-00
DB2
DB2 versin 9
para Linux, UNIX y Windows
SC11-3180-00
Antes de utilizar esta informacin y el producto al que da soporte, asegrese de leer la informacin general incluida en el
apartado Avisos.
Captulo 1. Conceptos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Bases de datos relacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Lenguaje de consulta estructurada (SQL) . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Consultas y expresiones de tabla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Interfaz de nivel de llamada (CLI) de DB2 y Open Database Connectivity (ODBC) . . . . . . . . . . . . 2
Programas de conectividad de bases de datos Java (JDBC) y SQL incorporado para Java (SQLJ) . . . . . . . 3
Esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Claves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Restricciones de unicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Restricciones de referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Restricciones de comprobacin de tabla . . . . . . . . . . . . . . . . . . . . . . . . . 10
Restricciones informativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
ndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Activadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Vistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Seudnimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Autorizaciones, privilegios y propiedad de objetos . . . . . . . . . . . . . . . . . . . . . . 15
Vistas de catlogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Procesos, simultaneidad y recuperacin de aplicaciones . . . . . . . . . . . . . . . . . . . . 21
Niveles de aislamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Comparacin de niveles de aislamiento . . . . . . . . . . . . . . . . . . . . . . . . . 25
Espacios de tablas y otras estructuras de almacenamiento . . . . . . . . . . . . . . . . . . . . 27
Conversin de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Bases de datos relacionales distribuidas . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Unidad de trabajo remota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Unidad de trabajo distribuida dirigida por aplicacin . . . . . . . . . . . . . . . . . . . . 35
Consideraciones sobre la representacin de los datos . . . . . . . . . . . . . . . . . . . . 40
Supervisores de sucesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Particin de bases de datos en varias particiones de base de datos . . . . . . . . . . . . . . . . . 42
Comportamiento de objetos grandes en las tablas con particiones . . . . . . . . . . . . . . . . . 43
Sistemas federados de DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Sistemas federados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Qu es una fuente de datos? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
La base de datos federada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Compilador de SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Derivadores y mdulos de derivador . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Definiciones de servidor y opciones de servidor . . . . . . . . . . . . . . . . . . . . . . 48
Correlaciones de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Apodos y objetos de fuente de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Opciones de columna de apodo . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Correlaciones de tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
El servidor federado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Contenido v
VARIANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Funciones escalares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
ABS o ABSVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
ACOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
ASIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
ATAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
ATAN2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
ATANH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
BIGINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
BLOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
CEILING o CEIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
CHAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
CHARACTER_LENGTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
CHR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
CLOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
COALESCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
CONCAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
COS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
COSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
COT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
DATAPARTITIONNUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
DAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
DAYNAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
DAYOFWEEK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
DAYOFWEEK_ISO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
DAYOFYEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
DAYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
DBCLOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
DBPARTITIONNUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
DECIMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
DECRYPT_BIN y DECRYPT_CHAR . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
DEGREES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
DEREF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
DIFFERENCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
DIGITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
ENCRYPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
EVENT_MON_STATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
EXP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
FLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
FLOOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
GETHINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
GENERATE_UNIQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
GRAPHIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
HASHEDVALUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
HEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
HOUR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
IDENTITY_VAL_LOCAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
INTEGER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
JULIAN_DAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
LCASE o LOWER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
LCASE (esquema SYSFUN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
LEFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
LENGTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
LN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
LOCATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
LOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
LOG10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Contenido vii
VARCHAR_FORMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
VARGRAPHIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
WEEK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
WEEK_ISO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
XMLATTRIBUTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
XMLCOMMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
XMLCONCAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
XMLDOCUMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
XMLELEMENT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
XMLFOREST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
XMLNAMESPACES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
XMLPARSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
XMLPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
XMLQUERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
XMLSERIALIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
XMLTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
XMLVALIDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
XMLXSROBJECTID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
YEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Funciones de tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
XMLTABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Funciones definidas por el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Contenido ix
SYSCAT.INDEXXMLPATTERNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
SYSCAT.KEYCOLUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
SYSCAT.NAMEMAPPINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
SYSCAT.NICKNAMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
SYSCAT.PACKAGEAUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
SYSCAT.PACKAGEDEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
SYSCAT.PACKAGES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
SYSCAT.PARTITIONMAPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
SYSCAT.PASSTHRUAUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
SYSCAT.PREDICATESPECS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
SYSCAT.REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
SYSCAT.ROUTINEAUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
SYSCAT.ROUTINEDEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
SYSCAT.ROUTINEOPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
SYSCAT.ROUTINEPARMOPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
SYSCAT.ROUTINEPARMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
SYSCAT.ROUTINES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
SYSCAT.ROUTINESFEDERATED . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
SYSCAT.SCHEMAAUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
SYSCAT.SCHEMATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
SYSCAT.SECURITYLABELACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
SYSCAT.SECURITYLABELCOMPONENTELEMENTS . . . . . . . . . . . . . . . . . . . . . 716
SYSCAT.SECURITYLABELCOMPONENTS . . . . . . . . . . . . . . . . . . . . . . . . 717
SYSCAT.SECURITYLABELS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
SYSCAT.SECURITYPOLICIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
SYSCAT.SECURITYPOLICYCOMPONENTRULES . . . . . . . . . . . . . . . . . . . . . . 720
SYSCAT.SECURITYPOLICYEXEMPTIONS. . . . . . . . . . . . . . . . . . . . . . . . . 721
SYSCAT.SURROGATEAUTHIDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
SYSCAT.SEQUENCEAUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
SYSCAT.SEQUENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
SYSCAT.SERVEROPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
SYSCAT.SERVERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
SYSCAT.STATEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
SYSCAT.TABAUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
SYSCAT.TABCONST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
SYSCAT.TABDEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
SYSCAT.TABDETACHEDDEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
SYSCAT.TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
SYSCAT.TABLESPACES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
SYSCAT.TABOPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
SYSCAT.TBSPACEAUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
SYSCAT.TRANSFORMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
SYSCAT.TRIGDEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
SYSCAT.TRIGGERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
SYSCAT.TYPEMAPPINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
SYSCAT.USEROPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
SYSCAT.VIEWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
SYSCAT.WRAPOPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
SYSCAT.WRAPPERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
SYSCAT.XDBMAPGRAPHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
SYSCAT.XDBMAPSHREDTREES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
SYSCAT.XSROBJECTAUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
SYSCAT.XSROBJECTCOMPONENTS . . . . . . . . . . . . . . . . . . . . . . . . . . 760
SYSCAT.XSROBJECTDEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
SYSCAT.XSROBJECTHIERARCHIES . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
SYSCAT.XSROBJECTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
SYSSTAT.COLDIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
SYSSTAT.COLGROUPDIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
SYSSTAT.COLGROUPDISTCOUNTS . . . . . . . . . . . . . . . . . . . . . . . . . . 766
SYSSTAT.COLGROUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
SYSSTAT.COLUMNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
Contenido xi
Tabla EXPLAIN_DIAGNOSTIC_DATA . . . . . . . . . . . . . . . . . . . . . . . . . . 842
Tabla EXPLAIN_INSTANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
Tabla EXPLAIN_OBJECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
Tabla EXPLAIN_OPERATOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
Tabla EXPLAIN_PREDICATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
Tabla EXPLAIN_STATEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
Tabla EXPLAIN_STREAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
Tabla ADVISE_INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Tabla ADVISE_INSTANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
Tabla ADVISE_MQT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
Tabla ADVISE_PARTITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
Tabla ADVISE_TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
Tabla ADVISE_WORKLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917
Contenido xiii
xiv Consulta de SQL - Volumen 1
Acerca de este manual
El manual Consulta de SQL en dos volmenes define el lenguaje SQL utilizado por
la base de datosDB2 para Linux, UNIX y Windows. ste incluye:
v Informacin acerca de los conceptos de las bases de datos relacionales, los
elementos del lenguaje, las funciones y los formatos de las consultas
(Volumen 1).
v Informacin acerca de la sintaxis y la semntica de las sentencias de SQL
(Volumen 2).
required_item
required_item
optional_item
optional_item
required_item
required_item required_choice1
required_choice2
required_item
opcin_opcional1
opcin_opcional2
Si uno de los elementos es el valor por omisin, aparecer por encima de la ruta
principal, y el resto de las elecciones se mostrarn por debajo.
default_choice
required_item
optional_choice
optional_choice
Una flecha que vuelve a la izquierda, por encima de la ruta principal, indica que se
puede repetir un elemento. En este caso, los elementos repetidos deben separarse
mediante uno o varios espacios en blanco.
required_item repeatable_item
Si la flecha de repetir contiene una coma, deber separar los elementos repetidos
con una coma.
required_item repeatable_item
Una flecha de repetir por encima de una pila indica que puede hacer ms de una
eleccin entre los elementos apilados o repetir una sola eleccin.
Las palabras clave aparecern en maysculas (por ejemplo, FROM). Se deben escribir
exactamente como se indica. Las variables aparecern en minsculas (por ejemplo,
nombre-columna). stas representan los nombres suministrados por el usuario o los
valores de la sintaxis.
required_item bloque-parmetro
bloque-parmetro:
parmetro1
parmetro2 parmetro3
parmetro4
Los segmentos contiguos que se producen entre puntos grandes (*) puede
especificarse en cualquier secuencia.
Condiciones de error
Una condicin de error se indica en el texto del manual listando entre parntesis el
SQLSTATE asociado al error. Por ejemplo:
Una signatura duplicada devuelve un error de SQL (SQLSTATE 42723).
Convenios de resaltado
Se utilizan los siguientes convenios en este manual.
Negrita Indica mandatos, palabras clave y otros elementos cuyos nombres estn
predefinidos por el sistema.
Cursiva Indica uno de los siguientes:
v Nombres o valores (variables) que debe suministrar el usuario
v nfasis general
v La presentacin de un trmino nuevo
v Una referencia a otra fuente de informacin
Monoespaciado Indica uno de los siguientes:
v Archivos y directorios
v Informacin que se indica al usuario que escriba en un indicador de
mandatos o en una ventana
v Ejemplos de valores de datos especficos
v Ejemplos de texto similar a lo que puede mostrar el sistema
v Ejemplos de mensajes del sistema
Documentacin relacionada
Las siguientes publicaciones pueden resultarle tiles al preparar las aplicaciones:
v Administration Guide
Contiene la informacin necesaria para disear, implementar y mantener una
base de datos a la que se va a acceder de forma local o en un entorno de
cliente/servidor
v Iniciacin al desarrollo de aplicaciones de bases de datos
Presenta el desarrollo de la aplicacin DB2 e incluye los requisitos previos de
la plataforma, el software de desarrollo soportado y una orientacin sobre las
ventajas y limitaciones de los API de programacin soportados.
v Desarrollo de SQL y rutinas externas
Contiene informacin que describe cmo disear y crear bases de datos y
objetos de base de datos, entre los que se encuentran las tablas, las
restricciones, los activadores, las vistas y los procedimientos y funciones
almacenados en SQL y definidos por el usuario. Tambin explica cmo
consultar y modificar datos y cmo controlar el acceso a los objetos de base
de datos.
v DB2 Universal Database for iSeries SQL Reference
Este manual define el SQL soportado por DB2 Query Manager y SQL
Development Kit en iSeries (AS/400). Contiene informacin de consulta para
las tareas de administracin del sistema, administracin de la base de datos,
programacin de aplicaciones y operacin. Este manual incluye sintaxis, notas
acerca del uso, palabras claves y ejemplos para cada una de las sentencias de
SQL utilizadas en sistemas iSeries (AS/400) que ejecutan DB2.
v DB2 Universal Database for z/OS and OS/390 SQL Reference
Este manual define el SQL utilizado en DB2 para z/OS (OS/390). Proporciona
formatos de consulta, sentencias de SQL, sentencias de procedimientos de
SQL, lmites de DB2, SQLCA, SQLDA, tablas de catlogos y palabras
reservadas de SQL para sistemas z/OS que ejecutan DB2.
v DB2 Spatial Extender Users Guide and Reference
Una base de datos relacional particionada es una base de datos relacional cuyos
datos se gestionan repartidos en mltiples particiones de base de datos. Esta
separacin de los datos entre particiones de base de datos es transparente para los
usuarios de la mayora de sentencias de SQL. Sin embargo, algunas sentencias DLL
(lenguaje de definicin de datos) tienen en cuenta la informacin de las particiones
de base de datos (por ejemplo, CREATE DATABASE PARTITION GROUP). El
lenguaje de definicin de datos es el subconjunto de sentencias de SQL que se
utilizan para describir las relaciones de los datos de una base de datos.
Una base de datos federada es una base de datos relacional cuyos datos estn
almacenados en varias fuentes de datos (tales como bases de datos relacionales
separadas). Los datos son tratados como si pertenecieran a una sola gran base de
datos y se pueden acceder mediante las consultas SQL normales. Los cambios en
los datos se pueden dirigir explcitamente hacia la fuente datos apropiada.
Las sentencias de SQL las ejecuta un gestor de bases de datos. Una de las
funciones del gestor de bases de datos es transformar la especificacin de una tabla
resultante en una secuencia de operaciones internas que optimicen la recuperacin
de los datos. Esta transformacin se produce en dos fases: preparacin y
vinculacin.
Una expresin de tabla crea una tabla de resultados temporal a partir de una
consulta sencilla. Las clusulas definen mejor la tabla de resultados. Por ejemplo,
puede utilizar una expresin de tabla como una consulta para seleccionar todos los
directores de varios departamentos, que deben tener una experiencia laboral de
ms de 15 aos y que deben estar ubicados en la oficina de Nueva York.
Una expresin de tabla comn es como una vista temporal dentro de una consulta
compleja. Se puede hacer referencia a la misma en otros puntos de la consulta y se
puede utilizar en lugar de una vista. Cada uso de una expresin de tabla comn
dentro de una consulta compleja comparte la misma vista temporal.
Informacin relacionada:
v Sentencia select en la pgina 574
v Consultas de SQL en la pgina 529
Esquemas
Un esquema es un conjunto de objetos con nombre que proporciona una forma de
agrupar los objetos lgicamente. Tambin es un calificador de nombres que
proporciona una forma de utilizar el mismo nombre natural para varios objetos y
de evitar referencias ambiguas a esos objetos; por ejemplo, los nombres de
esquema INTERNAL y EXTERNAL facilitan la distincin de dos tablas SALES
diferentes (INTERNAL.SALES, EXTERNAL.SALES).
Adems, los esquemas permiten que varias aplicaciones almacenen datos en una
sola base de datos sin encontrarse con colisiones de espacios de nombres.
Captulo 1. Conceptos 3
Esquemas
El usuario A puede emitir la siguiente sentencia para crear una tabla llamada X en
el esquema C (siempre que el usuario A cuente con la autorizacin CREATETAB
sobre la base de datos:
CREATE TABLE C.X (COL1 INT)
Cuando se crea una base de datos, todos los usuarios tienen la autorizacin
IMPLICIT_SCHEMA. Esto permite a cualquier usuario crear objetos en cualquier
esquema que an no exista. Un esquema creado implcitamente permite que
cualquier usuario cree otros objetos en este esquema. La posibilidad de crear alias,
tipos diferenciados, funciones y activadores se ampla a los esquemas creados
implcitamente. Los privilegios por omisin de un esquema creado implcitamente
proporcionan compatibilidad con las versiones anteriores.
Los esquemas tambin tienen privilegios, que permiten al propietario del esquema
controlar qu usuarios tienen el privilegio de crear, modificar copiar y eliminar
objetos del esquema. Esto proporciona una forma de controlar la manipulacin de
un subconjunto de objetos de la base de datos. A un propietario de esquema se le
dan inicialmente todos estos privilegios en el esquema, con la posibilidad de
otorgarlos a otros usuarios. Un esquema creado implcitamente es de propiedad
del sistema y a todos los usuarios se les proporciona inicialmente el privilegio de
crear objetos en dicho esquema. Un usuario con autorizacin SYSADM o DBADM
puede cambiar los privilegios que poseen los usuarios en cualquier esquema. Por
lo tanto, se puede controlar el acceso para crear, modificar, copiar y eliminar
objetos en cualquier esquema (incluso uno creado implcitamente).
Conceptos relacionados:
v Grouping objects by schema en Administration Guide: Implementation
v Schema privileges en Administration Guide: Implementation
Tareas relacionadas:
v Creating a schema en Administration Guide: Implementation
Informacin relacionada:
v Apndice G, Nombres de esquema reservados y palabras reservadas, en la
pgina 827
Tablas
Las tablas son estructuras lgicas mantenidas por el gestor de bases de datos. Las
tablas estn formadas por columnas y filas. Las filas de una tabla no estn
necesariamente ordenadas (el orden lo determina el programa de aplicacin). En la
interseccin de cada columna con una fila hay un elemento de datos especfico
denominado valor. Una columna es un conjunto de valores del mismo tipo o de uno
de sus subtipos. Una fila es una secuencia de valores ordenados de forma que el
valor n sea el valor de la columna n de la tabla.
Una tabla base se crea con la sentencia CREATE TABLE y se utiliza para conservar
los datos habituales de los usuarios. Una tabla resultante es un conjunto de filas que
el gestor de bases de datos selecciona o genera a partir de una o varias tablas base
para satisfacer una consulta.
Una tabla de resumen es una tabla definida por una consulta que se utiliza tambin
para determinar los datos de la tabla. Las tablas de resumen se pueden utilizar
para mejorar el rendimiento de las consultas. Si el gestor de bases de datos
determina que se puede resolver una parte de una consulta utilizando una tabla de
resumen, el gestor de bases de datos puede volver a escribir la consulta para
utilizar la tabla de resumen. Esta decisin se basa en valores de configuracin de la
base de datos como, por ejemplo, los registros especiales CURRENT REFRESH
AGE y CURRENT QUERY OPTIMIZATION.
Una tabla puede definir el tipo de datos de cada columna por separado o basar los
tipos en los atributos de un tipo estructurado definido por el usuario. Esto se
denomina una tabla con tipo. Un tipo estructurado definido por el usuario puede
formar parte de una jerarqua de tipos. Un subtipo hereda los atributos de su
supertipo. De manera similar, una tabla con tipo puede formar parte de una
jerarqua de tablas. Una subtabla hereda las columnas de su supertabla. Tenga en
cuenta que el trmino subtipo se aplica a un tipo estructurado definido por el
usuario y a todos los tipos estructurados definidos por el usuario que estn por
debajo del mismo en la jerarqua de tipos. Un subtipo correspondiente de un tipo
estructurado T es un tipo estructurado por debajo de T en la jerarqua de tipos. De
forma similar, el trmino subtabla se aplica a una tabla con tipo y a todas las tablas
con tipo que estn por debajo de la misma en la jerarqua de tablas. Una subtabla
correspondiente de una tabla T es una tabla que est por debajo de T en la jerarqua
de tablas.
Una tabla temporal declarada se crea mediante una sentencia DECLARE GLOBAL
TEMPORARY TABLE y se utiliza para contener datos temporales para una
aplicacin individual. Esta tabla se elimina implcitamente cuando la aplicacin se
desconecta de la base de datos.
Claves
Una clave es un conjunto de columnas que se pueden utilizar para identificar o
para acceder a una fila o filas determinadas. La clave viene identificada en la
descripcin de una tabla, ndice o restriccin de referencia. Una misma columna
puede formar parte de ms de una clave.
Una clave de unicidad es una clave restringida de manera que no puede tener dos
valores iguales. Las columnas de una clave de unicidad no pueden contener
Captulo 1. Conceptos 5
Claves
Una clave primaria es un caso especial de clave de unicidad. Una tabla no puede
tener ms de una clave primaria.
Una clave fornea es una clave que se especifica en la definicin de una restriccin
de referencia.
Una clave de distribucin es una clave que forma parte de la definicin de una tabla
de una base de datos particionada. La clave de distribucin se utiliza para
determinar la particin de base de datos en la que se almacena la fila de datos. Si
se define una clave de distribucin, las claves exclusivas y las claves primarias
debern incluir las mismas columnas que la clave de distribucin, pero pueden
tener columnas adicionales. Una tabla no puede tener ms de una clave de
distribucin.
Restricciones
Una restriccin es una regla que impone el gestor de bases de datos.
Restricciones de unicidad
Una restriccin de unicidad es la regla que establece que los valores de una clave
slo son vlidos si son exclusivos en una tabla. Las restricciones de unicidad son
opcionales y pueden definirse en las sentencias CREATE TABLE o ALTER TABLE
utilizando la clusula PRIMARY KEY o la clusula UNIQUE. Las columnas
especificadas en una restriccin de unicidad deben definirse como NOT NULL. El
gestor de bases de datos utiliza un ndice de unicidad para forzar la unicidad de la
clave durante los cambios en las columnas de la restriccin de unicidad.
Observe que existe una distincin entre la definicin de una restriccin de unicidad
y la creacin de un ndice de unicidad. Aunque ambos impongan la exclusividad,
un ndice de unicidad permite la existencia de columnas que pueden contener
valores nulos y generalmente no puede utilizarse como una clave padre.
Restricciones de referencia
La integridad de referencia es el estado de una base de datos en la que todos los
valores de todas las claves forneas son vlidos. Una clave fornea es una columna
o un conjunto de columnas de una tabla cuyos valores deben coincidir
obligatoriamente con, como mnimo, un valor de una clave primaria o de una
clave de unicidad de una fila de su tabla padre. Una restriccin de referencia es la
regla que establece que los valores de la clave fornea slo son vlidos si se
cumple una de las condiciones siguientes:
v Aparecen como valores de una clave padre.
v Algn componente de la clave fornea es nulo.
Captulo 1. Conceptos 7
Restricciones
Regla de insercin
La regla de insercin de una restriccin de referencia es la que establece que un
valor de insercin que no sea nulo de la clave fornea debe coincidir con algn
Regla de actualizacin
La regla de actualizacin de una restriccin de referencia se especifica al definir la
restriccin de referencia. Las opciones son NO ACTION y RESTRICT. La regla de
actualizacin se aplica al actualizar una fila de la tabla padre o una fila de la tabla
dependiente.
El valor de la clave fornea compuesta ser nulo si algn componente del valor es
nulo.
Regla de supresin
La regla de supresin de una restriccin de referencia se especifica al definir la
restriccin de referencia. Las opciones son NO ACTION, RESTRICT, CASCADE o
SET NULL. SET NULL slo puede especificarse si hay alguna columna de la clave
fornea que permita valores nulos.
Cada restriccin de referencia en la que una tabla sea padre tiene su propia regla
de supresin, y todas las reglas de supresin aplicables se utilizan para determinar
el resultado de la operacin de supresin. As, una fila no puede suprimirse si
tiene dependientes en una restriccin de referencia con una regla de supresin
RESTRICT o NO ACTION o la supresin se propaga en cascada a cualquiera de
Captulo 1. Conceptos 9
Restricciones
La supresin de una fila de la tabla padre P implica a otras tablas y puede afectar
a las filas de dichas tablas:
v Si la tabla D es dependiente de P y la regla de supresin es RESTRICT o NO
ACTION, D se implicar en la operacin pero no se ver afectada por la misma.
v Si D es dependiente de P y la regla de supresin es SET NULL, D estar
implicada en la operacin y las filas de D podrn actualizarse durante la
operacin.
v Si D es dependiente de P y la regla de supresin es CASCADE, D estar
implicada en la operacin y las filas de D podrn suprimirse durante la
operacin.
Si se suprimen filas de D, se dice que la operacin de supresin en P se propaga
a D. Si D es tambin una tabla padre, las acciones descritas en esta lista se
aplican a su vez a los elementos dependientes de D.
Se dice que cualquier tabla que participe en una operacin de supresin de P est
suprimida-conectada a P. As, una tabla est suprimida-conectada a la tabla P si
depende de P o de una tabla en la que se realicen supresiones de P en cascada.
Restricciones informativas
Una restriccin informativa es una regla que el compilador de SQL puede utilizar
para mejorar la va de acceso a los datos. Las restricciones informativas no vienen
impuestas por el gestor de bases de datos y no se utilizan para verificar los datos
de forma adicional. Simplemente se utilizan para mejorar el rendimiento de la
consulta.
Informacin relacionada:
v Apndice H, Interaccin de los activadores con las restricciones, en la pgina
831
v Sentencia SET INTEGRITY en Consulta de SQL, Volumen 2
ndices
Un ndice es un conjunto ordenado de punteros para filas de una tabla base. Cada
ndice se basa en los valores de los datos de una o varias columnas de la tabla. Un
ndice es un objeto que est separado de los datos de la tabla. Cuando se crea un
ndice, el gestor de bases de datos crea este objeto y lo mantiene automticamente.
Activadores
Un activador define un conjunto de acciones que se ejecutan en respuesta a una
operacin de insercin, actualizacin o supresin en una tabla determinada.
Cuando se ejecuta una de estas operaciones de SQL, se dice que el activador se ha
activado.
Captulo 1. Conceptos 11
Activadores
Los activadores pueden utilizarse, junto con las restricciones de referencia y las
restricciones de comprobacin, para imponer las reglas de integridad de los datos.
Los activadores tambin pueden utilizarse para provocar actualizaciones en otras
tablas, para transformar o generar valores automticamente en las filas insertadas o
actualizadas, o para invocar funciones que realicen tareas como la de emitir alertas.
Los activadores son un mecanismo til para definir e imponer reglas empresariales
transicionales, que son reglas que incluyen diferentes estados de los datos (por
ejemplo, un salario que no se puede aumentar ms del 10 por ciento).
La accin activada puede hacer referencia a los valores del conjunto de filas
afectadas utilizando variables de transicin. Las variables de transicin utilizan los
nombres de las columnas de la tabla sujeto, calificados por un nombre especificado
que identifica si la referencia es al valor anterior (antes de la actualizacin) o al
valor nuevo (despus de la actualizacin). El nuevo valor tambin se puede
cambiar utilizando la sentencia variable SET en activadores anteriores, de insercin
o actualizacin.
Otra forma de hacer referencia a los valores del conjunto de filas afectadas
consisten en utilizar tablas de transicin. Las tablas de transicin tambin utilizan los
nombres de las columnas de la tabla sujeto pero especifican un nombre para
permitir que el conjunto completo de filas afectadas se trate como una tabla. Las
tablas de transicin slo se pueden utilizar en activadores posteriores y es posible
definir tablas de transicin independientes para los valores anteriores y los nuevos.
Conceptos relacionados:
v Activadores en el desarrollo de aplicaciones en Desarrollo de SQL y rutinas
externas
Tareas relacionadas:
v Creating triggers en Administration Guide: Implementation
Informacin relacionada:
v Apndice H, Interaccin de los activadores con las restricciones, en la pgina
831
Vistas
Una vista proporciona una manera distinta de ver los datos de una o varias tablas;
es una especificacin con nombre de una tabla resultante. La especificacin es una
sentencia SELECT que se ejecuta siempre que se hace referencia a la vista en una
sentencia de SQL. Una vista tiene columnas y filas igual que una tabla base. Todas
las vistas se pueden utilizar como si fueran tablas base para efectuar una
recuperacin. Si una vista pueda utilizarse o no en una operacin de insercin,
actualizacin o supresin depender de su definicin.
Es posible utilizar las vistas para controlar el acceso a datos sensibles, porque las
vistas permiten que muchos usuarios vean presentaciones distintas de los mismos
datos. Por ejemplo, es posible que varios usuarios accedan a una tabla de datos
sobre los empleados. Un director ve los datos sobre sus empleados pero no de los
empleados de otro departamento. Un oficial de reclutamiento ve las fechas de
contratacin de todos los empleados, pero no sus salarios; un oficial de finanzas ve
los salarios, pero no las fechas de contratacin. Cada uno de estos usuarios trabaja
con una vista derivada de la tabla base. Cada vista se parece a una tabla y tiene
nombre propio.
las mismas restricciones de referencia a las que lo est la tabla base. Asimismo, si
la tabla base de una vista es una tabla padre, las operaciones de supresin y
actualizacin que utilicen dicha vista estarn sujetas a las mismas reglas que las
operaciones de supresin y actualizacin de la tabla base.
Una vista puede obtener el tipo de datos de cada columna de la tabla resultante o
basar los tipos en los atributos de un tipo estructurado definido por el usuario.
Esta vista se denomina vista con tipo. De manera similar a una tabla con tipo, una
vista con tipo puede formar parte de una jerarqua de vistas. Una subvista hereda
las columnas de su supervista. El trmino subvista se aplica a una vista con tipo y a
todas las vistas con tipo que estn por debajo de la misma en la jerarqua de vistas.
Una subvista correspondiente de una vista V es una vista por debajo de V en la
jerarqua de vistas con tipo.
Una vista puede quedar no operativa (por ejemplo, si se elimina la tabla base); si
ocurre esto, la vista ya no estar disponible para operaciones de SQL.
Seudnimos
Un seudnimo es un nombre alternativo para una tabla o una vista. Se puede
utilizar para hacer referencia a una tabla o vista en aquellos casos en los que pueda
hacerse referencia a una tabla o vista existente. Un seudnimo no puede utilizarse
en todos los contextos; por ejemplo, no puede utilizarse en la condicin de
comprobacin de una restriccin de comprobacin. Un seudnimo no puede hacer
referencia a una tabla temporal declarada.
Al igual que las tablas o las vistas, un seudnimo puede crearse, eliminarse y tener
comentarios asociados. Sin embargo, a diferencia de las tablas, los seudnimos
pueden hacerse referencia entre s en un proceso llamado encadenamiento. Los
seudnimos son nombres de referencia pblica, por lo que no es necesaria ninguna
autorizacin ni privilegio especial para utilizarlos. Sin embargo, el acceso a la tabla
o a la vista a la que un seudnimo hace referencia s que requiere la autorizacin
asociada con estos objetos.
Hay otros tipos de seudnimos como, por ejemplo, los seudnimos de base de
datos y de red. Tambin se pueden crear seudnimos para apodos que hagan
referencia a vistas o tablas de datos ubicadas en sistemas federados.
Paquetes
Un paquete es un objeto generado durante la preparacin de un programa que
contiene todas las secciones en un nico archivo fuente. Una seccin es el formato
compilado de una sentencia de SQL. Aunque cada seccin corresponde a una
sentencia, no cada sentencia no tiene una seccin. Las secciones creadas para SQL
esttico son comparables al formato vinculado u operativo de las sentencias de
SQL. Las secciones creadas para SQL dinmico son comparables a las estructuras
de control de espacios reservados utilizadas en tiempo de ejecucin.
El gestor de bases de datos necesita que todos los usuarios estn especficamente
autorizados, ya sea implcita o explcitamente, para utilizar cada una de las
funciones de la base de datos necesarias para realizar una tarea especfica. Las
autorizaciones o los privilegios explcitos se otorgan al usuario (GRANTEETYPE de
U en los catlogos de bases de datos). Las autorizaciones o los privilegios implcitos
se otorgan a un grupo al que pertenece el usuario (GRANTEETYPE de G en los
catlogos de bases de datos).
Autorizacin administrativa:
SYSADM
CUSTOMER
SYSCTRL Autorizaciones de
bases de datos
SYSMAINT
SYSMON
EMPLOYEE
Autorizaciones de
bases de datos
Privilegios:
Los privilegios son las actividades que se permite realizar a un usuario. Los
usuarios autorizados pueden crear objetos, tener acceso a los objetos de los que son
propietarios y pueden transmitir privilegios sobre sus propios objetos a otros
usuarios mediante la sentencia GRANT.
Captulo 1. Conceptos 17
Privilegios, niveles de autorizacin y autorizaciones de bases de datos
El propietario puede otorgar ciertos privilegios sobre el objeto, como por ejemplo
modificar una tabla, privilegios que un usuario que tenga autorizacin SYSADM o
DBADM puede revocar para el propietario. El propietario no puede otorgar ni
revocar determinados privilegios sobre el objeto, como por ejemplo el de comentar
una tabla. Utilice la sentencia TRANSFER OWNERSHIP para mover dichos
privilegios a otro usuario. Cuando se cree un objeto, el ID de autorizacin de la
Captulo 1. Conceptos 19
Privilegios, niveles de autorizacin y autorizaciones de bases de datos
sentencia ser el propietario del objeto. Sin embargo, cuando se cree un paquete y
se especifique la opcin de vinculacin OWNER, el propietario de los objetos
creados mediante sentencias SQL estticas del paquete ser el valor de la opcin de
vinculacin OWNER. Adems, si se especifica la clusula AUTHORIZATION en
una sentencia CREATE SCHEMA, el nombre de autorizacin especificado detrs de
la palabra clave AUTHORIZATION ser el propietario del esquema.
Conceptos relacionados:
v Controlling access to database objects en Administration Guide: Implementation
v Database administration authority (DBADM) en Administration Guide:
Implementation
v Database authorities en Administration Guide: Implementation
v Index privileges en Administration Guide: Implementation
v Indirect privileges through a package en Administration Guide: Implementation
v LOAD authority en Administration Guide: Implementation
v Package privileges en Administration Guide: Implementation
v Routine privileges en Administration Guide: Implementation
v Schema privileges en Administration Guide: Implementation
v Security administration authority (SECADM) en Administration Guide:
Implementation
v Sequence privileges en Administration Guide: Implementation
v System administration authority (SYSADM) en Administration Guide:
Implementation
v System control authority (SYSCTRL) en Administration Guide: Implementation
v System maintenance authority (SYSMAINT) en Administration Guide:
Implementation
v System monitor authority (SYSMON) en Administration Guide: Implementation
v Table and view privileges en Administration Guide: Implementation
v Table space privileges en Administration Guide: Implementation
Informacin relacionada:
v Sentencia GRANT (Autorizaciones de base de datos) en Consulta de SQL,
Volumen 2
Vistas de catlogo
El gestor de bases de datos mantiene un conjunto de vistas tablas base que
contienen informacin sobre los datos que se encuentran bajo su control. Estas
vistas y tablas base se conocen en su conjunto como el catlogo. El catlogo
contiene informacin acerca de la estructura lgica y fsica de los objetos de la base
de datos como, por ejemplo, tablas, vistas, ndices, paquetes y funciones. Tambin
contiene informacin estadstica. El gestor de bases de datos garantiza que las
descripciones del catlogo siempre sean precisas.
Las vistas de catlogo son como cualquier otra vista de la base de datos. Se
pueden utilizar sentencias de SQL para ver los datos de las vistas de catlogo. Para
modificar ciertos valores del catlogo puede utilizarse un conjunto de vistas
actualizables del catlogo.
Informacin relacionada:
v Vistas de catlogo del sistema en la pgina 613
El gestor de bases de datos adquiere bloqueos para evitar que los cambios no
confirmados efectuados por un proceso de aplicacin sean percibidos
accidentalmente por otro proceso. El gestor de bases de datos libera todos los
bloqueos que ha adquirido y retenido en nombre de un proceso de aplicacin
cuando finaliza dicho proceso. Sin embargo, un proceso de aplicacin puede
solicitar explcitamente que se liberen antes los bloqueos. Esto se consigue
utilizando una operacin de confirmacin, que libera bloqueos adquiridos durante
la unidad de trabajo y tambin confirma cambios en la base de datos durante la
unidad de trabajo.
Tanto la CLI (call level interface) de DB2 como SQL incorporado permiten una
modalidad de conexin llamada transacciones simultneas, que admite varias
Captulo 1. Conceptos 21
Procesos, simultaneidad y recuperacin de aplicaciones
Conceptos relacionados:
v Niveles de aislamiento en la pgina 23
Niveles de aislamiento
El nivel de aislamiento asociado con un proceso de aplicacin define el grado de
aislamiento de dicho proceso de aplicacin respecto a otros procesos de aplicacin
que se ejecutan simultneamente. Por consiguiente, el nivel de aislamiento de un
proceso de aplicacin especifica:
v El grado al que las filas ledas y actualizadas por la aplicacin estn disponibles
para otros procesos de aplicacin que se ejecutan simultneamente.
v El grado al que puede afectar a la aplicacin la actividad de actualizacin de
otros procesos de aplicacin que se ejecutan simultneamente.
consulta ms de una vez pueden ver filas adicionales producidas por la adicin
de informacin nueva a la base de datos que realizan otros procesos de
aplicacin. Estas filas adicionales se denominan filas fantasma.
Por ejemplo, puede aparecer una fila fantasma en la situacin siguiente:
1. El proceso de aplicacin P1 lee el conjunto de filas n que satisfacen alguna
condicin de bsqueda.
2. Entonces el proceso de aplicacin P2 inserta una o ms filas que satisfacen la
condicin de bsqueda y confirma esas nuevas inserciones.
3. P1 lee nuevamente el conjunto de filas con la misma condicin de bsqueda
y obtiene tanto las filas originales como las filas insertadas por P2.
Adems de los bloqueos de exclusividad, un proceso de aplicacin que se
ejecute al nivel de aislamiento RS adquiere, como mnimo, bloqueos de
compartimiento en todas las filas calificadas para ello.
v Estabilidad del cursor (CS)
Al igual que el nivel de Lectura repetible, el nivel de Estabilidad del cursor
asegura que cualquier fila que haya sido modificada por otro proceso de
aplicacin no pueda leerse hasta que sea confirmada por dicho proceso de
aplicacin.
A diferencia de la Lectura repetible, la Estabilidad del cursor slo asegura que
otros procesos de aplicacin no modifiquen la fila actual de cada cursor
actualizable. De este modo, las filas ledas durante una unidad de trabajo
pueden ser modificadas por otros procesos de aplicacin.
Adems de los bloqueos de exclusividad, un proceso de aplicacin que se
ejecute al nivel de aislamiento CS adquiere, como mnimo, un bloqueo de
compartimiento sobre la fila actual de cada cursor.
v Lectura no confirmada (UR)
Para una operacin SELECT INTO, una operacin FETCH con un cursor de slo
lectura, una operacin de seleccin completa de INSERT, una operacin de
seleccin completa de fila en UPDATE o una operacin de seleccin completa
escalar (dondequiera que se utilice), el nivel de Lectura no confirmada permite
que:
Cualquier fila leda durante una unidad de trabajo sea modificada por otros
procesos de aplicacin.
Cualquier fila cambiada por otro proceso de aplicacin pueda leerse aunque
dicho proceso de aplicacin no ha confirmado el cambio.
Para otras operaciones, se aplican las reglas asociadas con el nivel CS.
UR CS RS RR
La aplicacin puede ver los cambios no S No No No
confirmados realizados por otros procesos de
aplicacin?
La aplicacin puede actualizar los cambios no No No No No
confirmados realizados por otros procesos de
aplicacin?
3
Pueden otros procesos de aplicacin afectar a S S S No
la operacin de volver a ejecutar una sentencia?
Consulte el fenmeno P3 (fantasma) al final de la
tabla.
Captulo 1. Conceptos 25
Niveles de aislamiento
UR CS RS RR
Pueden otros procesos de aplicacin actualizar No No No No
filas actualizadas? Consulte la Nota 1 al final
de la tabla.
Pueden otros procesos de aplicacin que se No No No No
ejecutan a un nivel de aislamiento que no sea
UR leer las filas actualizadas?
Pueden otros procesos de aplicacin que se S S S S
ejecutan al nivel de aislamiento UR leer las filas
actualizadas?
Pueden otros procesos de aplicacin actualizar S S No No
las filas a las que se ha accedido? Consulte el
fenmeno P2 (lectura no repetible) al final de la
tabla.
Pueden otros procesos de aplicacin leer las S S S S
filas a las que se ha accedido?
Pueden otros procesos de aplicacin actualizar Consulte Consulte No No
o suprimir la fila actual? Consulte el fenmeno la nota 2 la nota 2
P1 (lectura sucia) al final de la tabla. al final al final
de la de la
tabla. tabla.
Notas:
1. El nivel de aislamiento no ofrece proteccin a la aplicacin si sta lee y escribe una tabla.
Por ejemplo, una aplicacin abre un cursor en una tabla y entonces realiza una operacin
de insercin, actualizacin o supresin en la misma tabla. Es posible que la aplicacin
vea datos incoherentes al buscar ms filas desde el cursor abierto.
2. Si el cursor no es actualizable, con CS la fila actual puede actualizarse o suprimirse por
otros procesos de aplicacin en algunos casos. Por ejemplo, el almacenamiento
intermedio puede hacer que la fila actual del cliente sea distinta de la fila actual que
realmente aparece en el servidor.
3. Si las credenciales de control de acceso basado en etiquetas (LBAC) cambian entre
lecturas, es posible que los resultados de la segunda lectura sean diferentes, ya que se
tiene acceso a filas diferentes.
Ejemplos de fenmenos:
P1 Lectura sucia. La unidad de trabajo UW1 modifica una fila. La unidad de trabajo
UW2 lee dicha fila antes que UW1 ejecute COMMIT. Si UW1 realiza entonces una
operacin ROLLBACK, UW2 ha ledo una fila no existente.
P2 Lectura no repetible. La unidad de trabajo UW1 lee una fila. La unidad de trabajo
UW2 modifica dicha fila y realiza una operacin COMMIT. Si UW1 vuelve a leer la
fila, puede recibir un valor modificado.
P3 Fantasma. La unidad de trabajo UW1 lee el conjunto de n filas que satisface alguna
condicin de bsqueda. La unidad de trabajo UW2 inserta (INSERT) una o varias
filas que satisfacen la condicin de bsqueda y la confirma (COMMIT). Si UW1
repite la lectura inicial con la misma condicin de bsqueda, obtiene las filas
originales ms las filas insertadas.
Informacin relacionada:
v Sentencia DECLARE CURSOR en Consulta de SQL, Volumen 2
En una base de datos particionada, los datos se reparten entre distintas particiones
de base de datos. El grupo de particiones de base de datos que est asignado al
espacio de tablas determina exactamente qu particiones de base de datos se
incluyen. Un grupo de particiones de base de datos es un grupo formado por una o
varias particiones de base de datos que estn definidas como parte de la base de
datos. Un espacio de tablas incluye uno o varios contenedores para cada particin
del grupo de particiones de base de datos. El gestor de bases de datos utiliza una
correlacin de distribucin asociada a cada grupo de particiones de base de datos,
para determinar en qu particin de base de datos se va a almacenar una fila de
datos determinada. La correlacin de distribucin es una matriz formada por 4096
nmeros de particin de base de datos. El ndice de la correlacin de distribucin
producido por la funcin de particin para cada fila de una tabla se utiliza como
ndice en la correlacin de distribucin para determinar la particin de base de
datos en la que se almacenar una fila. Por ejemplo, la figura siguiente muestra
cmo una fila con el valor de clave de distribucin (c1, c2, c3) se correlaciona con
el ndice de correlacin de distribucin 2 que, a su vez, hace referencia a la
particin de base de datos p5.
Captulo 1. Conceptos 27
Espacios de tablas y otras estructuras de almacenamiento
Conceptos relacionados:
v Particin de bases de datos en varias particiones de base de datos en la pgina
42
Informacin relacionada:
v Sentencia CREATE BUFFERPOOL en Consulta de SQL, Volumen 2
v Sentencia CREATE DATABASE PARTITION GROUP en Consulta de SQL,
Volumen 2
v Sentencia CREATE TABLESPACE en Consulta de SQL, Volumen 2
Conversin de caracteres
Una serie es una secuencia de bytes que puede representar caracteres. Todos los
caracteres de una serie tienen una representacin de codificacin comn. En
algunos casos, puede ser necesario convertir estos caracteres a una representacin
de cdigos diferente, conocida como conversin de caracteres. La conversin de
caracteres, cuando es necesaria, es automtica y, cuando es satisfactoria, es
transparente para la aplicacin.
Captulo 1. Conceptos 29
Conversin de caracteres
Informacin relacionada:
v Asignaciones y comparaciones en la pgina 117
v Reglas para la conversin de series en la pgina 133
Captulo 1. Conceptos 31
Bases de datos relacionales distribuidas
La CLI (call level interface) de DB2 y SQL incorporado dan soporte a una
modalidad de conexin llamada transacciones simultneas que permite mltiples
conexiones, cada una de las cuales es una transaccin independiente. Una
aplicacin puede tener mltiples conexiones simultneas con la misma base de
datos.
v Todos los objetos a los que se hace referencia en una sola sentencia de SQL
deben ser gestionados por el mismo servidor de aplicaciones.
v Todas las sentencias de SQL de una unidad de trabajo debe ejecutarlas el mismo
servidor de aplicaciones.
Captulo 1. Conceptos 33
Unidad de trabajo remota
Una unidad de trabajo distribuida dirigida por aplicacin utiliza una conexin de
tipo 2. Una conexin de tipo 2 conecta un proceso de aplicacin al servidor de
aplicaciones identificado y establece las reglas para la unidad de trabajo distribuida
dirigida por aplicacin.
Captulo 1. Conceptos 35
Unidad de trabajo distribuida dirigida por aplicacin
Una conexin individual tiene siempre uno de los estados de conexin siguientes:
v actual y mantenido
v actual y pendiente de liberacin
v inactivo y mantenido
v inactivo y pendiente de liberacin
Figura 8. Transacciones de estado de conexin de unidad de trabajo distribuida dirigida por aplicacin
Captulo 1. Conceptos 37
Estados de conexin de procesos de aplicacin
Estados de conexin
Si un proceso de aplicacin ejecuta una sentencia CONNECT y el peticionario de
aplicaciones conoce el nombre de servidor pero ste no est en el conjunto de
conexiones existentes del proceso de aplicacin:
v La conexin actual se coloca en el estado de conexin inactivo y
v El nombre del servidor se aade al conjunto de conexiones y
v La nueva conexin se coloca en el estado de conexin actual y en el estado de
conexin mantenido.
Las nicas sentencias de SQL que pueden fluir en una conexin inactiva son
COMMIT, ROLLBACK, DISCONNECT y RELEASE. Las sentencias SET
CONNECTION y CONNECT cambian el estado de conexin del servidor
especificado a actual y cualquier conexin existente se coloca o permanece en
estado inactivo. En todo momento, slo una conexin puede estar en estado actual.
Si una conexin inactiva pasa a ser actual en la misma unidad de trabajo, el estado
de todos los bloqueos, cursores y sentencias preparadas es el mismo que el estado
en estaban la ltima vez que la conexin era actual.
Captulo 1. Conceptos 39
Opciones que controlan la semntica de la unidad de trabajo distribuida
Las que no tienen cursores WITH HOLD abiertos y las que se han marcado
para su liberacin (CONDITIONAL)
Todas las conexiones (AUTOMATIC).
v SYNCPOINT (ONEPHASE | TWOPHASE | NONE). Especifica el modo en que
se van a coordinar las operaciones COMMIT y ROLLBACK entre varias
conexiones de bases de datos. Esta opcin se ignora y se incluye nicamente
para la compatibilidad con versiones anteriores.
Las actualizaciones slo pueden producirse respecto a una base de datos de la
unidad de trabajo y el resto de las bases de datos son de slo lectura
(ONEPHASE). Cualquier intento de actualizacin en otra base de datos
producir un error (SQLSTATE 25000).
Se utiliza un gestor de transacciones (TM) en tiempo de ejecucin para
coordinar las operaciones COMMIT de dos fases entre las bases de datos que
den soporte a este protocolo (TWOPHASE).
No utiliza ningn TM para realizar las operaciones COMMIT de dos fases y
no impone un actualizador nico y un lector mltiple (NONE). Cuando se
ejecuta una sentencia COMMIT o ROLLBACK, las sentencias COMMIT o
ROLLBACK individuales se envan a todas las bases de datos. Si hay una o
varias operaciones ROLLBACK anmalas, se produce un error (SQLSTATE
58005). Si hay una o varias operaciones COMMIT anmalas, se produce un
error (SQLSTATE 40003).
Informacin relacionada:
v Sentencia CONNECT (Tipo 1) en Consulta de SQL, Volumen 2
v Sentencia CONNECT (Tipo 2) en Consulta de SQL, Volumen 2
Supervisores de sucesos
Los supervisores de sucesos se utilizan para reunir informacin sobre la base de
datos y las aplicaciones conectadas cuando se producen los eventos especificados.
Los sucesos representan transiciones en la actividad de la base de datos, como por
ejemplo, conexiones, puntos muertos, sentencias o transacciones. Es posible definir
un supervisor de sucesos por el tipo de suceso o los sucesos que desea supervisar.
Por ejemplo, un supervisor de sucesos espera que se produzca un punto muerto.
Cuando se produce, rene la informacin sobre las aplicaciones implicadas y los
bloqueos en contencin.
Por omisin, todas las bases de datos tienen definido un supervisor de sucesos
denominado DB2DETAILDEADLOCK el cual registra informacin detallada sobre
los sucesos de punto muerto. El supervisor de sucesos DB2DETAILDEADLOCK se
inicia automticamente al iniciar la base de datos.
Cada supervisor de sucesos tiene su propia vista lgica privada de los datos de la
instancia en los elementos del supervisor. Si un supervisor de eventos determinado
se desactiva y se vuelve a activar, se restablece su vista de estos contadores. Slo se
ve afectado el supervisor de sucesos que acaba de activarse; todos los otros
supervisores de sucesos continuarn utilizando sus vistas de los valores del
contador (ms cualquier adicin nueva).
Conceptos relacionados:
v Database system monitor en System Monitor Guide and Reference
Tareas relacionadas:
v Collecting information about database system events en System Monitor Guide
and Reference
v Creating an event monitor en System Monitor Guide and Reference
Informacin relacionada:
v Event monitor sample output en System Monitor Guide and Reference
v Event types en System Monitor Guide and Reference
Captulo 1. Conceptos 41
Particin de bases de datos en varias particiones de base de datos
Para poder utilizar las particiones de base de datos para almacenar datos, es
preciso definirlas en el gestor de bases de datos. Las particiones de base de datos
estn definidas en un archivo llamado db2nodes.cfg.
DB2 permite la desagrupacin parcial, lo que significa que se puede distribuir una
tabla por un subconjunto de particiones de base de datos del sistema (es decir, un
grupo de particiones de base de datos). Las tablas no tienen que distribuirse
obligatoriamente por todas las particiones de base de datos del sistema.
DB2 tiene la posibilidad de reconocer si los datos a los que se est accediendo para
una unin o una subconsulta se encuentran en la misma particin del mismo
grupo de particiones de base de datos. Esto se conoce como colocacin de tablas. Las
filas de las tablas colocadas con los mismos valores de clave de distribucin se
encuentran en la misma particin de base de datos. DB2 puede elegir realizar el
Informacin relacionada:
v Tipos de datos compatibles entre particiones de base de datos en la pgina 135
Captulo 1. Conceptos 43
Particin de bases de datos en varias particiones de base de datos
Por ejemplo, la siguiente sentencia CREATE TABLE crea objetos para los datos
CLOB para cada particin de datos del mismo espacio de tablas que los datos:
CREATE TABLE documento(id INT, contenido CLOB)
PARTITION BY RANGE(id)
(STARTING FROM 1 ENDING AT 100 IN tbsp1,
STARTING FROM 101 ENDING AT 200 IN tbsp2,
STARTING FROM 201 ENDING AT 300 IN tbsp3,
STARTING FROM 301 ENDING AT 400 IN tbsp4);
Puede utilizar LONG IN para situar los datos CLOB en uno o ms espacios de
tablas grandes, diferentes de aquellos donde se encuentran los datos.
CREATE TABLE documento(id INT, contenido CLOB)
PARTITION BY RANGE(id)
(STARTING FROM 1 ENDING AT 100
IN tbsp1 LONG IN large1,
STARTING FROM 101 ENDING AT 200
IN tbsp2 LONG IN large1,
STARTING FROM 201 ENDING AT 300
IN tbsp3 LONG IN large2,
STARTING FROM 301 ENDING AT 400
IN tbsp4 LONG IN large2);
Nota: Slo se permite una nica clusula LONG IN en el nivel de tabla y para
cada particin de datos.
Conceptos relacionados:
v Data partitions en Administration Guide: Planning
v Understanding index behavior on partitioned tables en Performance Guide
v Large object (LOB) column considerations en Administration Guide:
Implementation
v Partitioned materialized query table behavior en Administration Guide:
Implementation
v Optimization strategies for partitioned tables en Performance Guide
v Partitioned tables en Administration Guide: Planning
v Space requirements for large object data en Administration Guide: Planning
v Table partitioning en Administration Guide: Planning
Tareas relacionadas:
v Creating partitioned tables en Administration Guide: Implementation
Informacin relacionada:
v Sentencia CREATE TABLE en Consulta de SQL, Volumen 2
v Objeto grande (LOB) en la pgina 97
Sistemas federados
Un sistema federado es un tipo especial de sistema de gestin de bases de datos
distribuidas (DBMS). Un sistema federado consta de una instancia DB2 que
funciona como un servidor federado, una base de datos que acta como la base de
datos federada, una o ms fuentes de datos y clientes (usuarios y aplicaciones) que
acceden a la base de datos y a fuentes de datos.
Familia
DB2
DB2 UDB
para z/OS
Sybase
VSAM
Oracle
CA-Datacom
CA-IDMS Teradata
ODBC
XML
Captulo 1. Conceptos 45
Sistemas federados de DB2
Por medio de algunas fuentes de datos, puede acceder a otras fuentes de datos.
Por ejemplo, con el derivador ODBC puede acceder a un servidor WebSphere
Classic Federation para fuentes de datos de z/OS tales como DB2 UDB para z/OS,
IMS, CA-IDMS, CA-Datacom, Software AG Adabas y VSAM.
El mtodo, o protocolo, que se utiliza para acceder a una fuente de datos depende
del tipo de fuente de datos. Por ejemplo, DRDA se utiliza para acceder a fuentes
de datos DB2 para z/OS.
Las fuentes de datos son autnomas. Por ejemplo, el servidor federado puede
enviar consultas a fuentes de datos Oracle al mismo tiempo que aplicaciones
Oracle acceden a estas fuentes de datos. Un sistema federado no monopoliza o
restringe el acceso al resto de fuentes de datos, ms all de restricciones de
integridad y bloqueo.
El sistema federado procesa sentencias de SQL como si los datos de las fuentes de
datos fuesen tablas relacionales ordinarias o vistas dentro de la base de datos
federada. Como resultado de ello:
v El sistema federado puede correlacionar datos relacionales con datos en formatos
no relacionales. Esto tambin se aplica cuando las fuentes de datos utilizan
distintos dialectos de SQL o cuando no dan soporte a SQL.
v Las caractersticas de la base de datos federada tienen prioridad cuando existen
diferencias entre las caractersticas de la base de datos federada y las
caractersticas de las fuentes de datos. Los resultados de la consulta se ajustan a
la semntica de DB2, incluso si los datos de otras fuentes de datos no DB2 se
utilizan para computar el resultado de la consulta.
Ejemplos:
La pgina de cdigos que el servidor federado utiliza es diferente a la pgina
de cdigos utilizada por la fuente de datos. En este caso, los datos de carcter
de la fuente de datos se convierten en base a la pgina de cdigos utilizada
por la base de datos federada, cuando los datos se devuelven a un usuario
federado.
La secuencia de clasificacin que el servidor federado utiliza es diferente a la
secuencia de clasificacin utilizada por la fuente de datos. En este caso,
cualquier operacin de clasificacin en datos de carcter se realiza en el
servidor federado en lugar de en la fuente de datos.
Compilador de SQL
El compilador de SQL de DB2 recopila informacin para ayudarle a procesar
consultas.
Para obtener datos desde fuentes de datos, los usuarios y las aplicaciones envan
consultas en SQL a la base de datos federada. Cuando se enva una consulta, el
compilador de SQL de DB2 consulta informacin del catlogo global y del
derivador de fuentes de datos para ayudarle a procesar la consulta. Esto incluye
informacin sobre la conexin a la fuente de datos, informacin de servidor,
correlaciones, informacin de ndice y estadsticas de proceso.
Estas rutinas permiten a la base de datos federada realizar operaciones tales como
conectar con una fuente de datos y recuperar datos de la misma interactivamente.
Normalmente, el propietario de la instancia federada utiliza la sentencia CREATE
WRAPPER para registrar un derivador en la base de datos federada. Puede
registrar un derivador como protegido o fiable utilizando la opcin de derivador
DB2_FENCED.
Debe crear un derivador para cada tipo de fuente de datos al que desee acceder.
Por ejemplo, desea acceder a tres tablas de base de datos DB2 para z/OS, una
tabla DB2 para iSeries , dos tablas de Informix y una vista de Informix. En este
caso, necesita crear un derivador para los objetos de fuente de datos DB2 y un
derivador para los objetos de fuente de datos Informix. Despus de registrar estos
derivadores en la base de datos federada, puede utilizar estos derivadores para
acceder a otros objetos desde esas fuentes de datos. Por ejemplo, puede utilizar el
derivador de DRDA con todos los objetos de fuente de datos de la familia de DB2
DB2 Versin 9.1 para Linux, UNIX y Windows, DB2 para z/OS, DB2 para
iSeries y Servidor DB2 para VM y VSE.
Para identificar los datos especficos (nombre, ubicacin, etc.) de cada objeto de
fuente de datos, debe utilizar las definiciones y apodos del servidor.
Captulo 1. Conceptos 47
Sistemas federados de DB2
Por ejemplo, una fuente de datos de la familia DB2 puede tener mltiples bases
de datos. La definicin debe especificar la base de datos a la que puede conectarse
el servidor federado. En cambio, una fuente de datos Oracle tiene una sola base de
datos, y el servidor federado puede conectarse a la base de datos sin conocer su
nombre. El nombre de la base de datos no est incluido en la definicin de
servidor federado de una fuente de datos Oracle.
Correlaciones de usuarios
Normalmente, se debe definir una asociacin entre el servidor federado y una
fuente de datos.
Los apodos no son nombres alternativos para los objetos de fuente de datos de la
misma forma en que los alias son nombres alternativos. Son punteros mediante los
cuales el servidor federado hace referencia a esos objetos. Normalmente los apodos
se definen mediante la sentencia CREATE NICKNAME junto con determinadas
opciones de columna de apodo y opciones de apodo.
Cuando un usuario final o una aplicacin cliente enva una peticin distribuida al
servidor federado, la peticin no necesita especificar las fuentes de datos. En lugar
de ello, la peticin especifica los objetos de fuente de datos utilizando sus apodos.
Los apodos estn correlacionados con objetos especficos contenidos en la fuente de
datos. Estas correlaciones eliminan la necesidad de calificar los apodos con los
nombres de las fuentes de datos. El usuario final y la aplicacin cliente no
necesitan conocer la ubicacin de los objetos de fuente de datos.
Suponga que define el apodo DEPT para representar una tabla de bases de datos
Informix llamada NFX1.PERSON. El servidor federado admite la sentencia
SELECT * FROM DEPT. Sin embargo, la sentencia SELECT * FROM
NFX1.PERSON no est permitida desde el servidor federado (excepto en una
sesin de paso a travs) a menos que haya una tabla local en el servidor federado
llamada NFX1.PERSON.
Los datos de apodo basados en objetos de fuente de datos que utilizan un sistema
de seguridad de etiquetas no se ponen en antememoria normalmente, de modo
que los datos del objeto permanecen seguros. Por ejemplo con el derivador de
Oracle Net8, si crea un apodo en una tabla de Oracle que utiliza Oracle Label
Security (seguridad de etiqueta de Oracle), la tabla se identifica automticamente
Captulo 1. Conceptos 49
Sistemas federados de DB2
No puede utilizar el programa de utilidad Cross Loader para realizar una carga
cruzada en un apodo.
Las opciones de columna de apodo indican al derivador que debe manejar los
datos de una columna de forma distinta a como normalmente los manejara. El
compilador de SQL y el optimizador de consultas utilizan los metadatos para
desarrollar mejores planes para acceder a los datos.
Suponga que una fuente de datos tiene una secuencia de clasificacin que difiere
de la secuencia de clasificacin de la base de datos federada. El servidor federado
normalmente no clasificara ninguna columna que contuviese datos de carcter en
la fuente de datos. Devolvera los datos a la base de datos federada y realizara la
clasificacin localmente. Sin embargo, suponga que los datos de la columna son de
tipo carcter (CHAR o VARCHAR) y que slo contiene caracteres numricos
(0,1,...,9). Puede indicar este hecho asignando el valor Y a la opcin de
columna de apodo NUMERIC_STRING. Esto proporciona al optimizador de
consultas de DB2 la posibilidad de realizar la clasificacin en la fuente de datos. Si
la clasificacin se realiza de forma remota, puede evitar la actividad que supone
transferir los datos al servidor federado y realizar la clasificacin localmente.
Para la mayor parte de fuentes de datos, las correlaciones de tipos por omisin se
encuentran en los derivadores. Las correlaciones de tipos por omisin para fuentes
de datos DB2 estn en el derivador de DRDA. Las correlaciones de tipos por
omisin para Informix estn en el derivador de INFORMIX, etc.
El servidor federado
En un sistema federado se hace referencia al servidor DB2 como el servidor
federado. Puede configurarse el nmero de instancias de DB2 que se desee para
que funcionen como servidores federados. Como servidores federados, puede
utilizar instancias de DB2 existentes o bien crear nuevas instancias especficamente
para el sistema federado.
Captulo 1. Conceptos 51
Sistemas federados de DB2
8.1
DB2 Universal Database 5.2 con las siguientes DRDA
para iSeries APAR y PTF aplicadas:
v APAR SE06003, PTF
SI04582
v APAR SE07533, PTF
SI05991
v APAR SE08416, PTF
SI07135
v APAR II13348, PTFs
SF99502, SI11626,
SI11378
5.3
En Solaris, el cliente de
Informix SDK versin
2.81.FC2 no est soportado.
Si est utilizando el cliente
de Informix versin 2.81.FC2,
actualice el cliente a la
versin 2.81.FC2R1 o
posterior.
En Windows, el cliente de
Informix SDK versin
2.81.TC2 o posterior.
En el sistema operativo
zLinux en la modalidad de
64 bits, el cliente de Informix
versin 2.81.FC1 o 2.81.FC2
no est soportado.Si est
utilizando una de estas
versiones cliente, actualice el
cliente a la versin 2.81.FC3 o
posterior.
KEGG KEGG API 3.2 Funciones definidas por el
usuario para KEGG
Microsoft Excel 97, 2000, 2002, 2003 Excel 97, 2000, 2002 o 2003
instalado en el servidor
federado
Captulo 1. Conceptos 53
Sistemas federados de DB2
En UNIX:
v Controlador de DataDirect
Technologies
(antiguamente MERANT)
Connect ODBC 4.2 (o
posterior).
v El derivador de Microsoft
SQL Server con base de
datos UTF-8 requiere
DataDirect Connect para
ODBC 4.2 Service Pack 2 o
posterior.
ODBC 3.x Controlador ODBC para la
fuente de datos.Acceso de
controlador ODBC a
Redbrick y acceso de
controlador ODBC a
WebSphere Classic
Federation Server para
fuentes de datos z/OS, como
por ejemplo, IMS, VSAM,
CA-Datacom, CA-IDMS y
Software AG Adabas.
OLE DB 2.7, 2.8 OLE DB 2.0 (o posterior)
OMIM soportados HTTP. Conexin con NCBI
por medio de la Web y del
programa de utilidad
query.fcgi de OMIM.Use el
derivador Entrez para
acceder a esta fuente de
datos.
Oracle 8.1.7, 9.0, 9.1, 9.2, 9i, 10g Cliente de red Oracle o
software de cliente de NET8
PeopleSoft 8.x IBM WebSphere Business
Integration Adapter for
PeopleSoft v2.3.1, 2.4.
Requiere WebSphere MQ
Series.
PubMed soportados HTTP. Conexin con NCBI
por medio de la Web. Use el
derivador Entrez para
acceder a esta fuente de
datos.
SAP 3.x, 4.x IBM WebSphere Business
Integration Adapter for
mySAP.com v2.3.1, 2.4.
Requiere WebSphere MQ
Series.
En Windows, el cliente de
Teradata TTU 7.0 o posterior
y la biblioteca de API de
Teradata CLIv2 4.7.0 o
posterior en el servidor
federado.
Servicios Web Especificaciones de HTTP, HTTPS. Las funciones
SOAP 1.0., 1.1, WSDL definidas por el usuario de
1.0, 1.1 SOAP consumen servicios
Web.
WebSphere MQ Server edition 6.0 Funciones definidas por el
usuario de WebSphere MQ
en los esquemas DB2MQ,
DB2MQ1C y DB2MQT.
XML Especificacin 1.0 Ninguno
Captulo 1. Conceptos 55
Sistemas federados de DB2
El catlogo global tambin incluye informacin acerca de las fuentes de datos. Por
ejemplo, el catlogo global incluye informacin que el servidor federado utiliza
para conectarse con la fuente de datos y para correlacionar las autorizaciones de
los usuarios federados con las autorizaciones de los usuarios de la fuente de datos.
El catlogo global contiene atributos acerca de la fuente de datos que el usuario
establece explcitamente, como por ejemplo, las opciones de servidor.
Optimizador de consultas
Como parte del proceso del compilado de SQL, el optimizador de consultas analiza
una consulta. El compilador desarrolla estrategias alternativas, llamadas planes de
acceso, para procesar la consulta.
Secuencias de clasificacin
El orden en el que los datos de carcter se almacenan en una base de datos
depende de la estructura de los datos y de la secuencia de clasificacin definida
para la base de datos.
Suponga que los datos de una base de datos estn todos en letras maysculas y no
contienen caracteres numricos o especiales. Una clasificacin de los datos debera
dar como resultado la misma salida, independientemente de si los datos estn
almacenados en la fuente de datos o en la base de datos federada. La secuencia de
clasificacin utilizada por cada base de datos no debera impactar los resultados de
clasificacin. De la misma manera, si los datos de la base de datos estn todos en
letras minsculas o son todos caracteres numricos, una clasificacin de los datos
debera generar los mismos resultados independientemente de si la clasificacin se
efecta realmente.
Captulo 1. Conceptos 57
Sistemas federados de DB2
Suponga que la fuente de datos es DB2 para z/OS. Las clasificaciones que se
definen en una clusula ORDER BY las implementa una secuencia de clasificacin
basada en una pgina de cdigos EBCDIC. Para recuperar datos de DB2 para z/OS
Captulo 1. Conceptos 59
60 Consulta de SQL - Volumen 1
Captulo 2. Elementos del lenguaje
Este captulo describe los elementos del lenguaje que son comunes a muchas
sentencias de SQL:
v Caracteres
v Seales en la pgina 63
v Identificadores en la pgina 65
v Tipos de datos en la pgina 88
v Constantes en la pgina 137
v Registros especiales en la pgina 141
v Funciones en la pgina 172
v Mtodos en la pgina 181
v Expresiones en la pgina 189
v Predicados en la pgina 224
Caracteres
Los smbolos clave de palabras clave y operadores en el lenguaje SQL son
caracteres de un nico byte que forman parte de todos los conjuntos de caracteres
de IBM. Los caracteres del lenguaje se clasifican en letras, dgitos y caracteres
especiales.
Todos los caracteres de mltiples bytes se tratan como letras, excepto el blanco de
doble byte, que es un carcter especial.
Seales
Los smbolos son las unidades sintcticas bsicas de SQL. Un smbolo es una
secuencia de uno o varios caracteres. Un smbolo no puede contener caracteres en
blanco, a menos que sea una constante de tipo serie o un identificador delimitado,
que pueden contener blancos.
Informacin relacionada:
v Sentencia PREPARE en Consulta de SQL, Volumen 2
v Cmo se invocan las sentencias de SQL en Consulta de SQL, Volumen 2
Identificadores
Un identificador es un smbolo que se utiliza para formar un nombre. En una
sentencia de SQL, un identificador es un identificador de SQL o un identificador
del lenguaje principal.
v identificadores de SQL
Existen dos tipos de identificadores de SQL: ordinarios y delimitados.
Un identificador ordinario es una letra mayscula seguida por cero o ms
caracteres, cada uno de los cuales es una letra en mayscula, un dgito o el
carcter de subrayado. Un identificador ordinario no debe ser idntico a una
palabra reservada.
Ejemplos
WKLYSAL WKLY_SAL
Un identificador delimitado es una secuencia de uno o varios caracteres entre
comillas dobles. Dos comillas consecutivas se utilizan para representar unas
comillas dentro del identificador delimitado. De esta manera un identificador
puede incluir letras en minsculas.
Ejemplos
"WKLY_SAL" "WKLY SAL" "UNION" "wkly_sal"
Las conversin de caracteres de los identificadores creados en una pgina de
cdigos de doble byte pero utilizados por una aplicacin o una base de datos en
una pgina de cdigos de mltiples bytes pueden necesitar una consideracin
especial.
v Identificadores del lenguaje principal
Un identificador del lenguaje principal es un nombre declarado en el programa de
lenguaje principal. Las reglas para formar un identificador de lenguaje principal
son las reglas del lenguaje principal. Un identificador de sistema principal no
debera tener ms de 255 bytes de longitud y no debera empezar por SQL o
DB2 (en mayscula o en minscula).
Seudnimos
Un seudnimo de tabla se puede considerar como un nombre alternativo de una
tabla o una vista. Por lo tanto, en una sentencia de SQL se puede hacer referencia a
una tabla o a una vista por su nombre o por su seudnimo de tabla.
La opcin de para hacer referencia a una tabla o una vista mediante un seudnimo
no se muestra explcitamente en los diagramas de sintaxis, ni se menciona en las
descripciones de las sentencias de SQL.
se convierte en realidad en
SELECT * FROM DSPN014.DIST4_SALES_148
Ejemplos:
v Supongamos que SMITH es el ID de usuario y el ID de autorizacin que el
gestor de bases de datos ha obtenido al establecer una conexin con el proceso
de aplicacin. La siguiente sentencia se ejecuta interactivamente:
GRANT SELECT ON TDEPT TO KEENE
Comportamiento de ejecucin
DB2 utiliza el ID de autorizacin del usuario (el ID
que inicialmente se ha conectado a DB2) que
ejecuta el paquete como el valor que debe utilizarse
para la comprobacin de autorizacin de las
sentencias SQL dinmico y para el valor inicial
utilizado para la calificacin implcita de
referencias de objetos no calificados dentro de
sentencias SQL dinmico.
Comportamiento de vinculacin
Durante la ejecucin, DB2 utiliza todas las reglas
que se aplican a SQL esttico para la autorizacin y
la calificacin. Utiliza el ID de autorizacin del
propietario del paquete como el valor que se
utilizar para la comprobacin de autorizacin de
las sentencias de SQL dinmico y el calificador por
omisin del paquete para la calificacin implcita
de las referencias a objetos no calificadas de las
sentencias de SQL dinmico.
Comportamiento de definicin
El comportamiento de definicin slo se aplica si la
sentencia de SQL dinmico est en un paquete que
se ejecuta en un contexto de rutina y el paquete se
ha vinculado con DYNAMICRULES DEFINEBIND
o DYNAMICRULES DEFINERUN. DB2 utiliza el
ID d autorizacin del definidor de rutina (no el
vinculador de paquetes de la rutina) como valor
que debe utilizarse para la comprobacin de
autorizacin de las sentencias SQL dinmico, y
para la cualificacin implcita de referencias objetos
sin cualificar dentro de sentencias SQL dentro de
dicha rutina.
Comportamiento de invocacin
El comportamiento de invocacin slo se aplica si
la sentencia de SQL dinmico est en un paquete
que se ejecuta en un contexto de rutina y el
paquete se ha vinculado con DYNAMICRULES
INVOKEBIND o DYNAMICRULES INVOKERUN.
DB2 utiliza el ID de autorizacin de sentencias
vigente cuando la rutina se invoca como el valor
que debe utilizarse para comprobar la autorizacin
del SQL dinmico y para la cualificacin implcita
Captulo 2. Elementos del lenguaje 73
Caractersticas de SQL dinmico durante la ejecucin
En caso de que se haga referencia a varios paquetes durante una sola conexin,
todas las sentencias de SQL dinmico que estos paquetes hayan preparado
mostrarn el comportamiento especificado por la opcin DYNAMICRULES para
dicho paquete en concreto y el entorno en el que se utilicen.
Nombres de columna
El significado de un nombre de columna depende de su contexto. Un nombre de
columna sirve para:
v Declarar el nombre de una columna como, por ejemplo, en una sentencia
CREATE TABLE.
v Identificar una columna como, por ejemplo, en una sentencia CREATE INDEX.
v Especificar los valores de la columna como, por ejemplo, en los contextos
siguientes:
En una funcin de columna, un nombre de columna especifica todos los
valores de la columna en la tabla de resultado intermedia o de grupo a los
que se aplica la funcin. Por ejemplo, MAX(SALARY) aplica la funcin MAX
a todos los valores de la columna SALARY de un grupo.
En una clusula GROUP BY o ORDER BY, un nombre de columna especifica
todos los valores de la tabla de resultado intermedia a los que se aplica la
clusula. Por ejemplo, ORDER BY DEPT ordena una tabla de resultado
intermedia segn los valores de la columna DEPT.
En una expresin, una condicin de bsqueda o una funcin escalar, un
nombre de columna especifica un valor para cada fila o grupo al que se aplica
la construccin. Por ejemplo, cuando la condicin de bsqueda CODE = 20 se
aplica a alguna fila, el valor especificado por el nombre de columna CODE es
el valor de la columna CODE en esa fila.
v Redenominar temporalmente una columna, como en la clusula-correlacin de una
referencia-tabla en una clusula FROM.
Nombres de correlacin
Un nombre de correlacin puede definirse en la clusula FROM de una consulta y en
la primera clusula de una sentencia UPDATE o DELETE. Por ejemplo, la clusula
FROM X.MYTABLE Z establece Z como nombre de correlacin para X.MYTABLE.
FROM X.MYTABLE Z
Ejemplo
FROM EMPLOYEE E
WHERE EMPLOYEE.PROJECT=ABC * incorrecto*
Un nombre de tabla, vista, apodo o seudnimo que est expuesto en una clusula
FROM puede ser igual a otro nombre de tabla, vista o apodo expuesto en esa
clusula FROM o cualquier nombre de correlacin de la clusula FROM. Esta
situacin puede dar como resultado una serie de referencias ambiguas de nombres
de columna que acaban devolviendo un cdigo de error (SQLSTATE 42702).
Las dos primeras clusulas FROM mostradas ms abajo son correctas, porque cada
una no contiene ms de una referencia a EMPLOYEE que est expuesta:
1. Dada una clusula FROM:
FROM EMPLOYEE E1, EMPLOYEE
una referencia calificada como, por ejemplo, EMPLOYEE.PROJECT indica una
columna de la segunda instancia de EMPLOYEE en la clusula FROM. La
referencia calificada a la primera instancia de EMPLOYEE debe utilizar el
nombre de correlacin E1 (E1.PROJECT).
2. Dada una clusula FROM:
FROM EMPLOYEE, EMPLOYEE E2
una referencia calificada como, por ejemplo, EMPLOYEE.PROJECT indica una
columna de la primera instancia de EMPLOYEE en la clusula FROM. Una
referencia calificada a la segunda instancia de EMPLOYEE debe utilizar el
nombre de correlacin E2 (E2.PROJECT).
3. Dada una clusula FROM:
FROM EMPLOYEE, EMPLOYEE
los dos nombres de tabla expuestos que se incluyen en esta clusula
(EMPLOYEE y EMPLOYEE) son los mismos. Esto est permitido, pero las
referencias a nombres de columnas especficos resultaran ambiguas (SQLSTATE
42702).
4. Dada la sentencia siguiente:
SELECT *
FROM EMPLOYEE E1, EMPLOYEE E2 * incorrecto *
WHERE EMPLOYEE.PROJECT = ABC
la referencia calificada EMPLOYEE.PROJECT es incorrecta, porque las dos
instancias de EMPLOYEE en la clusula FROM tienen nombres de correlacin.
En cambio, las referencias a PROJECT deben estar calificadas con algn nombre
de correlacin (E1.PROJECT o E2.PROJECT).
5. Dada una clusula FROM:
FROM EMPLOYEE, X.EMPLOYEE
una referencia a una columna en la segunda instancia de EMPLOYEE debe
utilizar X.EMPLOYEE (X.EMPLOYEE.PROJECT). Si X es el valor del registro
especial CURRENT SCHEMA en SQL dinmico o la opcin de
precompilacin/vinculacin QUALIFIER de SQL esttico, no se puede hacer
ninguna referencia a las columnas porque resultara ambigua.
una referencia calificada como, por ejemplo, D.NUM indica la primera columna de
la tabla DEPARTMENT que se ha definido en la tabla como DEPTNO. Una
referencia a D.DEPTNO utilizando esta clusula FROM es incorrecta ya que el
nombre de columna DEPTNO es un nombre de columna no expuesto.
Una expresin de tabla anidada o una funcin de tabla trata las referencias-tabla que
la preceden en la clusula FROM como tablas de objetos. Las referencias-tabla que
siguen no se tratan como tablas de objetos.
Cada designador de tabla debe ser exclusivo en una clusula FROM determinada
para evitar la aparicin de referencias ambiguas a columnas.
anidada que es el operando derecho de una unin externa derecha o una unin
externa completa y el nombre de columna no hace referencia a una columna de
una referencia-tabla de la seleccin completa de la expresin de tabla anidada. La
referencia no est definida.
Debido a que una misma tabla, vista o apodo pueden estar identificados en
muchos niveles, se recomienda utilizar nombres de correlacin exclusivos como
designadores de tabla. Si se utiliza T para designar una tabla en ms de un nivel
(T es el propio nombre de tabla o es un nombre de correlacin duplicado), T.C
hace referencia al nivel donde se utiliza T que contiene de forma ms directa la
subconsulta que incluye T.C. Si es necesario un nivel de correlacin superior, debe
utilizarse un nombre de correlacin exclusivo.
a la que se hace referencia en una sentencia de SQL. Las variables del lenguaje
principal se definen directamente mediante las sentencias del lenguaje principal o
indirectamente mediante extensiones de SQL.
Una variable del lenguaje principal en una sentencia de SQL debe identificar una
variable del lenguaje principal descrita en el programa segn las normas para la
declaracin de variables del lenguaje principal.
Todas las variables del lenguaje principal utilizadas en una sentencia de SQL deben
estar declaradas en una seccin DECLARE de SQL en todos los lenguajes
principales excepto en REXX. No se debe declarar ninguna variable fuera de una
seccin DECLARE de SQL con nombres que sean idnticos a variables declaradas
en una seccin DECLARE de SQL. Una seccin DECLARE de SQL empieza por
BEGIN DECLARE SECTION y termina por END DECLARE SECTION.
Este ejemplo muestra una sentencia de SQL dinmico que utiliza marcadores de
parmetros:
INSERT INTO DEPARTMENT VALUES (?, ?, ?, ?)
:identificador-lengpral
INDICATOR
:identificador-lengpral
Una sentencia de SQL que haga referencia a variables del lenguaje principal debe
pertenecer al mbito de la declaracin de esas variables del lenguaje principal. En
cuanto a las variables a las que la sentencia SELECT del cursor hace referencia, esa
regla se aplica ms a la sentencia OPEN que a la sentencia DECLARE CURSOR.
Una variable localizadora de una sentencia de SQL debe identificar una variable
localizadora descrita en el programa de acuerdo a las reglas de declaracin de
variables localizadoras. Siempre se produce indirectamente a travs de una
sentencia de SQL.
Como sucede con el resto de variables del lenguaje principal, una variable
localizadora de LOB puede tener asociada una variable indicadora. Las variables
indicadoras para las variables localizadoras del lenguaje principal de objeto grande
funcionan de la misma manera que las variables indicadoras de otros tipos de
datos. Cuando una base de datos devuelve un valor nulo, se define la variable
indicadora y la variable localizadora del lenguaje principal no se cambia. Esto
significa que un localizador jams puede apuntar a un valor nulo.
COBOL, sql_file_append en
FORTRAN y APPEND en
REXX.)
Longitud de datos
No se utiliza en la entrada. En la salida, la
implantacin establece la longitud de datos
en la longitud de los nuevos datos
grabados en el archivo. La longitud se
mide en bytes.
Como sucede con el resto de variables del lenguaje principal, una variable de
referencia a archivos puede tener asociada una variable indicadora.
datos nativos, se utilizan las extensiones SQL y los precompiladores generan las
construcciones de lenguaje principal necesarias para poder representar a cada
variable.
Al igual que en todas las dems variables del lenguaje principal, una variable de
tipo estructurado puede tener una variable indicadora asociada. Las variables
indicadoras correspondientes a las variables del lenguaje principal de tipo
estructurado actan de la misma manera que las variables indicadoras de otros
tipos de datos. Cuando una base de datos devuelve un valor nulo, se define la
variable indicadora y la variable del lenguaje principal de tipo estructurado no
cambia.
Ejemplo: Defina las variables del lenguaje principal hv_poly y hv_point (de tipo
POLYGON, utilizando el tipo interno BLOB(1048576)) en un programa C.
EXEC SQL BEGIN DECLARE SECTION;
SQL esttico
TYPE IS POLYGON AS BLOB(1M)
hv_poly, hv_point;
EXEC SQL END DECLARE SECTION;
Informacin relacionada:
v Apndice N, Consideraciones sobre el cdigo UNIX ampliado (EUC) en japons
y chino tradicional, en la pgina 893
v Objeto grande (LOB) en la pgina 97
v Apndice G, Nombres de esquema reservados y palabras reservadas, en la
pgina 827
v Apndice A, Lmites de SQL y XQuery, en la pgina 585
v Sentencia CREATE ALIAS en Consulta de SQL, Volumen 2
v Sentencia PREPARE en Consulta de SQL, Volumen 2
v Sentencia SET SCHEMA en Consulta de SQL, Volumen 2
v Consultas de SQL en la pgina 529
v Apndice C, SQLDA (rea de descriptores de SQL), en la pgina 601
Tipos de datos
Tipos de datos
La unidad ms pequea de datos que se puede manipular en SQL se denomina un
valor. Los valores se interpretan segn el tipo de datos de su fuente. Entre los
fuentes se incluyen:
v Constantes
v Columnas
v Variables del lenguaje principal
v Funciones
v Expresiones
v Registros especiales.
Todos los tipos de datos incluyen el valor nulo. El valor nulo es un valor especial
que se diferencia de todos los valores que no son nulos y, por lo tanto, indica la
ausencia de un valor (no nulo). Aunque todos los tipos de datos incluyen el valor
nulo, las columnas definidas como NOT NULL no pueden contener valores nulos.
Informacin relacionada:
v Tipos definidos por el usuario en la pgina 105
Nmeros
Todos los nmeros tienen un signo y una precisin. El signo se considera positivo
si el valor de un nmero es cero. La precisin es el nmero de bits o de dgitos
excluyendo el signo.
Todos los valores de una columna decimal tienen la misma precisin y escala. El
rango de una variable decimal o de los nmeros de una columna decimal es de n
a +n, donde el valor absoluto de n es el nmero mayor que puede representarse
con la precisin y escalas aplicables. El rango mximo va de -10**31+1 a 10**31-1.
Informacin relacionada:
v Sentencia CREATE TABLE en Consulta de SQL, Volumen 2
v Apndice C, SQLDA (rea de descriptores de SQL), en la pgina 601
Series de caracteres
Una serie de caracteres es una secuencia de bytes. La longitud de la serie es el
nmero de bytes en la secuencia. Si la longitud es cero, el valor se denomina la
serie vaca. Este valor no debe confundirse con el valor nulo.
Las funciones del esquema SYSFUN que toman como argumento VARCHAR no
aceptarn las VARCHAR que tengan ms de 4 000 bytes de longitud como
argumento. Sin embargo, muchas de estas funciones tambin pueden tener una
signatura alternativa que acepte un CLOB(1M). Para estas funciones, el usuario
puede convertir explcitamente las series VARCHAR mayores que 4 000 en datos
CLOB y luego reconvertir el resultado en datos VARCHAR de la longitud deseada.
Datos mixtos Datos que pueden contener una mezcla de caracteres de un juego
de caracteres de un solo byte y de un juego de caracteres de
mltiples bytes (MBCS).
La longitud calculada de una serie obtenida mediante OCTETS (bytes) puede ser
diferente de la que se calcula mediante CODEUNITS16 o CODEUNITS32. Cuando
se utiliza OCTETS, la longitud de la serie se determina simplemente contando el
nmero de bytes de la serie, mientras que cuando se utiliza CODEUNITS16 o
CODEUNITS32, la longitud de la serie se determina contando el nmero de
unidades de cdigo de 16 bits o de 32 bits necesarias para representar la serie en
UTF-16 o UTF-32, respectivamente. La longitud que se determine mediante
CODEUNITS16 o CODEUNITS32 ser idntica, a menos que los datos contengan
caracteres suplementarios (vea Diferencia entre CODEUNITS16 y CODEUNITS32
en la pgina 93).
Series grficas
Una serie grfica es una secuencia de bytes que representa datos de caracteres de
doble byte. La longitud de la serie es el nmero de caracteres de doble byte de la
secuencia. Si la longitud es cero, el valor se denomina la serie vaca. Este valor no
debe confundirse con el valor nulo.
Las series grficas no se comprueban para asegurarse de que sus valores slo
contienen elementos de cdigo de caracteres de doble byte. (La excepcin a esta
regla es una aplicacin precompilada con la opcin WCHARTYPE CONVERT. En
este caso, s que se efecta la validacin.) En lugar de esto, el gestor de bases de
datos supone que los datos de caracteres de doble byte estn contenidos en
campos de datos grficos. El gestor de bases de datos s que comprueba que un
valor de la longitud de una serie grfica sea nmero par de bytes.
Se aplican restricciones especiales a una expresin que d como resultado una serie
grfica de longitud variable cuya longitud mxima sea mayor que 127 bytes. Estas
restricciones son las mismas que las especificadas en el apartado Series de
caracteres de longitud variable en la pgina 91.
Series binarias
Una serie binaria es una secuencia de bytes. A diferencia de las series de caracteres,
que suelen contener datos de texto, las series binarios se utilizan para contener
datos no tradicionales como, por ejemplo, imgenes, voz o soportes mixtos. Las
series de caracteres del subtipo FOR BIT DATA puede utilizarse para fines
similares, pero los dos tipos de datos no son compatibles. La funcin escalar BLOB
puede utilizarse para convertir una serie de caracteres FOR BIT DATA en una serie
binaria. Las series binarias no estn asociadas a ninguna pgina de cdigos. Tienen
las mismas restricciones que las series de caracteres (consulte los detalles en el
apartado Series de caracteres de longitud variable en la pgina 91).
Los valores LOB pueden ser muy grandes y la transferencia de dichos valores
desde servidor de bases de datos a las variables del lenguaje principal del
programa de aplicacin cliente puede tardar mucho tiempo. Como normalmente
los programas de aplicacin procesan los valores LOB de fragmento en fragmento
en lugar de como un todo, las aplicaciones pueden hacer referencia a un valor LOB
utilizando un localizador de objeto grande.
Cuando se selecciona un valor nulo en una variable del lenguaje principal normal,
la variable indicadora se establece en -1, lo que significa que el valor es nulo. Sin
embargo, en el caso de los localizadores de LOB, el significado de las variables
indicadoras es ligeramente distinto. Como una variable del lenguaje principal del
localizador en s nunca puede ser nula, un valor negativo de variable indicadora
significa que el valor LOB representado por el localizador de LOB es nulo. La
informacin de nulo se mantiene local para el cliente en virtud del valor de la
variable indicadora el servidor no hace ningn seguimiento de los valores nulos
con localizadores vlidos.
Fecha
Una fecha es un valor que se divide en tres partes (ao, mes y da). El rango de la
parte correspondiente al ao va de 0001 a 9999. El rango de la parte
correspondiente al mes va de 1 a 12. El rango de la parte correspondiente al da va
de 1 a x, donde x depende del mes.
La representacin interna de una fecha es una serie de 4 bytes. Cada byte consta
de 2 dgitos decimales empaquetados. Los 2 primeros bytes representan el ao, el
tercer byte el mes y el ltimo byte el da.
Hora
Una hora es un valor que se divide en tres partes (hora, minuto y segundo) que
indica una hora del da de un reloj de 24 horas. El rango de la parte
correspondiente a la hora va de 0 a 24. El rango de la otra parte va de 0 a 59. Si la
hora es 24, las especificaciones de los minutos y segundos son cero.
de fecha y hora, ste debe asignarse a una variable de serie. La funcin GRAPHIC
(slo para bases de datos Unicode) puede utilizarse para cambiar el valor de fecha
y hora a una representacin de serie. Normalmente, la representacin de serie es el
formato por omisin de los valores de fecha y hora asociados con el cdigo
territorial de la aplicacin, a menos que se alteren temporalmente por la
especificacin de la opcin DATETIME al precompilar el programa o vincularlo
con la base de datos.
Las series de fecha, hora e indicacin de fecha y hora slo deben contener
caracteres y dgitos.
Series de fecha: Una representacin de serie de una fecha es una serie que
empieza por un dgito y que tiene una longitud de 8 caracteres como mnimo.
Pueden incluirse blancos de cola; pueden omitirse los ceros iniciales de las partes
correspondientes al mes y al da.
Los formatos vlidos para las series se indican en la tabla siguiente. Cada formato
se identifica mediante el nombre y la abreviatura asociada.
Tabla 3. Formatos para las representaciones de serie de fechas
Formato de
Nombre del formato Abreviatura fecha Ejemplo
International Standards ISO aaaa-mm-dd 1991-10-27
Organization
Estndar IBM USA USA mm/dd/aaaa 10/27/1991
Estndar IBM European EUR dd.mm.aaaa 27.10.1991
Era Japanese Industrial Standard JIS aaaa-mm-dd 1991-10-27
Christian
Definido-sitio LOC Depende del
cdigo territorial
de la aplicacin
Series de hora: Una representacin de serie de una hora es una serie que empieza
por un dgito y que tiene una longitud de 4 caracteres como mnimo. Pueden
incluirse blancos de cola; puede omitirse un cero inicial de la parte correspondiente
a la hora y pueden omitirse por completo los segundos. Si se omiten los segundos,
se supone una especificacin implcita de 0 segundos. De este modo, 13:30 es
equivalente a 13:30:00.
Los formatos vlidos para las series de horas se indican en la tabla siguiente. Cada
formato se identifica mediante el nombre y la abreviatura asociada.
Notas:
1. En el formato ISO, EUR o JIS, .ss (o :ss) es opcional.
2. La organizacin International Standards Organization ha cambiado el formato
de la hora, de modo que ahora es idntico al de Japanese Industrial Standard
Christian Era. Por lo tanto, utilice el formato JIS si una aplicacin necesita el
formato actual de International Standards Organization.
3. En el formato de serie de hora USA, puede omitirse la especificacin de los
minutos, con lo que se indica una especificacin implcita de 00 minutos. Por lo
tanto, 1 PM equivale a 1:00 PM.
4. En el formato de hora USA, la hora no debe ser mayor que 12 y no puede ser
0, excepto en el caso especial de 00:00 AM. Hay un solo espacio antes de AM
o PM. AM y PM pueden representarse en minsculas o en maysculas.
Si se utiliza el formato JIS del reloj de 24 horas, la correspondencia entre el
formato USA y el reloj de 24 horas es la siguiente:
12:01 AM a 12:59 AM corresponde a 00:01:00 a 00:59:00.
01:00 AM a 11:59 AM corresponde a 01:00:00 a 11:59:00.
12:00 PM (medioda) a 11:59 PM corresponde a 12:00:00 a 23:59:00.
12:00 AM (medianoche) corresponde a 24:00:00 y 00:00 AM (medianoche)
corresponde a 00:00:00.
Valores DATALINK
Un valor DATALINK es un valor encapsulado que contiene una referencia lgica
de la base de datos a un archivo almacenado fuera de la base de datos. Los
atributos de este valor encapsulado son los siguientes:
tipo de enlace
El tipo de enlace soportado actualmente es 'URL' (Uniform Resource Locator).
ubicacin de datos
Ubicacin de un archivo enlazado a una referencia dentro de DB2, en forma de
un URL. Para este URL se pueden utilizar estos nombres de esquema:
v HTTP
v FILE
v UNC
Las dems partes del URL son:
v el nombre del servidor de archivos para los esquemas HTTP, FILE y UNC
v la va de acceso completa dentro del servidor de archivos
comentario
Hasta 200 bytes de informacin descriptiva, incluido el atributo de ubicacin de
los datos. Est pensado para los usos especficos de una aplicacin, como, por
ejemplo, una identificacin alternativa o ms detallada de la ubicacin de los
datos.
Informacin relacionada:
v Apndice O, Especificaciones de formato de Backus-Naur (BNF) para los
enlaces de datos, en la pgina 901
v Identificadores en la pgina 65
Valores XML
Un valor XML representa el XML con formato correcto en forma de documento
XML, contenido XML o secuencia de nodos XML. Una valor XML que est
almacenado en una tabla como valor de una columna definida con el tipo de datos
XML debe ser un documento XML con formato correcto. Los valores XML se
procesan en una representacin interna que no se puede comparar con ningn
valor de serie. Un valor XML puede transformarse en una valor de serie
serializado que representa el documento XML mediante la funcin
XMLSERIALIZE. Igualmente, un valor de serie que representa un documento XML
puede transformarse en un valor XML utilizando la funcin XMLPARSE. Un valor
XML puede analizarse o serializarse implcitamente cuando se intercambia con
tipos de datos binarios y de serie de aplicacin.
Informacin relacionada:
v XMLPARSE en la pgina 489
v XMLSERIALIZE en la pgina 497
Tipos diferenciados
Un tipo diferenciado es un tipo de datos definido por el usuario que comparte su
representacin interna con un tipo existente (su tipo fuente), pero se considera
un tipo independiente e incompatible para la mayora de operaciones. Por ejemplo,
se desea definir un tipo de imagen, un tipo de texto y un tipo de audio, todos ellos
tienen semnticas bastante diferentes, pero utilizan el tipo de datos interno BLOB
para su representacin interna.
Aunque AUDIO tenga la misma representacin que el tipo de datos interno BLOB,
se considera un tipo independiente; esto permite la creacin de funciones escritas
especialmente para AUDIO y asegura que dichas funciones no se aplicarn a
valores de ningn otro tipo de datos (imgenes, texto, etc.)
Los tipos diferenciados dan soporte a una gran escritura asegurando que slo
aquellas funciones y operadores que estn explcitamente definidos en un tipo
diferenciado se puedan aplicar a sus instancias. Por esta razn, un tipo
diferenciado no adquiere automticamente las funciones y operadores de su tipo
fuente, ya que estas podran no tener ningn significado. (Por ejemplo, la funcin
LENGTH del tipo AUDIO puede devolver la longitud de su objeto en segundos en
lugar de bytes.)
Los tipos diferenciados que derivan de los tipos LONG VARCHAR, LONG
VARGRAPHIC, LOB o DATALINK estn sujetos a las mismas restricciones que su
tipo fuente.
Tipos estructurados
Un tipo estructurado es un tipo de datos definido por el usuario con una estructura
definida en la base de datos. Contiene una secuencia de atributos con nombre, cada
uno de los cuales tiene un tipo de datos. Un tipo estructurado tambin incluye un
conjunto de especificaciones de mtodo.
Un tipo estructurado puede utilizarse como tipo de una tabla, de una vista o de
una columna. Cuando se utiliza como tipo para una tabla o vista, esa tabla o vista
se denomina tabla con tipo o vista con tipo, respectivamente. Para las tablas con tipo
y vistas con tipo, los nombres y tipos de datos de los atributos del tipo
estructurado pasan a ser los nombres y tipos de datos de las columnas de esta
tabla o vista con tipo. Las filas de la tabla o vista con tipo pueden considerarse una
representacin de instancias del tipo estructurado. Cuando se utiliza como tipo de
datos para una columna, la columna contiene valores de ese tipo estructurado (o
valores de cualquiera de los subtipos de ese tipo, tal como se describe ms abajo).
Los mtodos se utilizan para recuperar o manipular atributos de un objeto de
columna estructurado.
Un tipo puede no estar definido para que uno de sus tipos de atributo se utilice,
directa o indirectamente, a s mismo. Si es necesario tener una configuracin as,
considere la posibilidad de utilizar una referencia como atributo. Por ejemplo, en el
caso de atributos de tipos estructurados, no puede existir una instancia de
empleado que tenga el atributo director cuando director es de tipo
empleado. En cambio, puede existir un atributo director cuyo tipo sea
REF(empleado).
Un tipo no se puede descartar si ciertos otros objetos utilizan el tipo, ya sea directa
o indirectamente. Por ejemplo, no se puede descartar un tipo si una columna de
una tabla o vista hace uso directa o indirectamente del tipo.
Tipos de referencia
Un tipo de referencia es un tipo compaero de un tipo estructurado. De manera
similar a un tipo diferenciado, un tipo de referencia es un tipo escalar que
comparte una representacin comn con uno de los tipos de datos internos. Todos
los tipos de la jerarqua de tipos comparten esta misma representacin. La
representacin de un tipo de referencia se define cuando se crea el tipo raz de una
jerarqua de tipos. Cuando se utiliza un tipo de referencia, se especifica un tipo
estructurado como parmetro del tipo. Este parmetro se denomina el tipo de
destino de la referencia.
El destino de una referencia siempre es una fila de una tabla con tipo o una vista
con tipo. Cuando se utiliza un tipo de referencia, puede tener definido un mbito.
El mbito identifica una tabla (denominada tabla de destino) o una vista
(denominada vista de destino) que contiene la fila de destino de un valor de
referencia. La tabla de destino o la vista de destino debe tener el mismo tipo que el
tipo de destino del tipo de referencia. Una instancia de un tipo de referencia con
mbito identifica de forma exclusiva una fila en una tabla con tipo o en una vista
con tipo, denominada fila de destino.
Informacin relacionada:
v Asignaciones y comparaciones en la pgina 117
v Series de caracteres en la pgina 91
v CURRENT PATH en la pgina 160
v Sentencia DROP en Consulta de SQL, Volumen 2
La Tabla 5 muestra la lista de prioridad (por orden) para cada tipo de datos y se
puede utilizar para determinar los tipos de datos a los que se puede promover un
tipo de datos determinado. La tabla muestra que la mejor eleccin siempre es el
mismo tipo de datos en lugar de elegir la promocin a otro tipo de datos.
Tabla 5. Tabla de prioridades de tipos de datos
Tipo de datos Lista de prioridad de tipos de datos (por orden de mejor a peor)
CHAR CHAR, VARCHAR, LONG VARCHAR, CLOB
VARCHAR VARCHAR, LONG VARCHAR, CLOB
LONG LONG VARCHAR, CLOB
VARCHAR
GRAPHIC GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC, DBCLOB
VARGRAPHIC VARGRAPHIC, LONG VARGRAPHIC, DBCLOB
LONG LONG VARGRAPHIC, DBCLOB
VARGRAPHIC
BLOB BLOB
CLOB CLOB
DBCLOB DBCLOB
SMALLINT SMALLINT, INTEGER, BIGINT, decimal, real, double
INTEGER INTEGER, BIGINT, decimal, real, double
BIGINT BIGINT, decimal, real, double
decimal decimal, real, double
real real, double
double double
DATE DATE
TIME TIME
TIMESTAMP TIMESTAMP
DATALINK DATALINK
udt udt (mismo nombre) o un supertipo de udt
REF(T) REF(S) (en el caso de que S sea un supertipo de T)
Notas:
1. Los tipos en minsculas anteriores se definen de la siguiente manera:
v decimal = DECIMAL(p,s) o NUMERIC(p,s)
v real = REAL o FLOAT(n), donde n not es mayor que 24
v double = DOUBLE, DOUBLE-PRECISION, FLOAT o FLOAT(n), donde n es mayor que
24
v udt = un tipo definido por el usuario
Los sinnimos, ms cortos o ms lagos, de los tipos de datos listados se consideran
iguales a la forma listada.
2. Para una base de datos Unicode, los siguientes se consideran tipos de datos
equivalentes:
v CHAR y GRAPHIC
v VARCHAR y VARGRAPHIC
v LONG VARCHAR y LONG VARGRAPHIC
v CLOB y DBCLOB
Informacin relacionada:
v Asignaciones y comparaciones en la pgina 117
v Conversiones entre tipos de datos en la pgina 110
v Funciones en la pgina 172
Cuando los valores de una serie de caracteres se convierten a valores XML, el valor
elemental xs:string obtenido no puede contener caracteres XML ilegales
(SQLSTATE 0N002). Si la serie de caracteres de entrada no est en Unicode, dichos
caracteres se convertirn a Unicode.
La tabla siguiente lista los tipos XQuery que se obtienen de dicha conversin.
Tabla 8. Conversiones soportadas de valores XML a valores que no son XML
Tipo de datos fuente
Tipo de destino XQuery
Tipo de datos de destino XML correspondiente
SMALLINT S xs:short
INTEGER S xs:int
BIGINT S xs:long
DECIMAL o NUMERIC S xs:decimal
REAL S xs:float
DOUBLE S xs:double
FLOAT S xs:double o xs:float
CHAR S xs:string
VARCHAR S xs:string
LONG VARCHAR N no convertible
CLOB S xs:string
GRAPHIC S xs:string
VARGRAPHIC S xs:string
LONG VARGRAPHIC N no convertible
DBCLOB S xs:string
DATE S xs:date
TIME (sin huso horario) S xs:time
TIMESTAMP (sin huso horario) S xs:dateTime
BLOB S xs:base64Binary
CHAR FOR BIT DATA N no convertible
VARCHAR FOR BIT DATA S xs:base64Binary
tipo diferenciado utilice esta tabla con el tipo fuente del
tipo diferenciado
referencia de fila estructurada / otros N no convertible
ADT
En los casos de restriccin siguientes, se utiliza un tipo de datos del esquema XML
derivado por restriccin, como tipo de datos de destino para la conversin XQuery.
v Los valores XML que se van a convertir en tipos de series deben caber dentro de
los lmites de longitud de dichos tipos de DB2 sin que los caracteres o bytes se
trunquen. El nombre utilizado para el tipo de esquema XML derivado es el
nombre del tipo SQL en maysculas seguido de un carcter subrayado y la
longitud mxima de la serie; por ejemplo, VARCHAR_20 si el tipo de datos de
destino XMLCAST es VARCHAR(20).
v Los valores XML que se van a convertir en valores DECIMAL deben caber
dentro de la precisin de los valores DECIMAL especificados y despus de la
coma de decimales no deben contener ms dgitos que no sean cero que la
escala. El nombre utilizado para el tipo de esquema XML derivado es
DECIMAL_precisin_escala, donde precisin es la precisin de los tipos de datos
SQL de destino y escala es la escala de los tipos de datos SQL de destino; por
ejemplo, DECIMAL_9_2 si el tipo de datos de destino XMLCAST es
DECIMAL(9,2).
v Los valores XML que se van a convertir a valores TIME no pueden contener un
componente de segundos con dgitos que no sean cero despus de la coma
decimal. El nombre utilizado para el tipo de esquema XML derivado es TIME.
Antes de que la conversin XQuery procese un valor XML, se eliminarn todos los
nodos de documento de la secuencia y cada hijo directo de nodo del documento
eliminado se convertir en un elemento de la secuencia. Si el nodo del documento
tiene varios nodos hijo directos, la secuencia revisada tendr ms elementos que la
secuencia original. El valor XML sin ningn tipo de nodo de documento se
atomiza mediante la funcin XQuery fn:data y se utiliza el valor de secuencia
atomizada resultante en la conversin XQuery. Si la secuencia atomizada es una
secuencia vaca, la conversin devuelve un valor nulo sin ningn proceso posterior.
Si el valor de la secuencia atomizada contiene varios elementos, se devolver un
error (SQLSTATE 10507).
Conceptos relacionados:
v Atomization (DB2 XQuery) en IBM DB2 XQuery Reference
Informacin relacionada:
v Sentencia CREATE FUNCTION en Consulta de SQL, Volumen 2
v Asignaciones y comparaciones en la pgina 117
v Especificaciones CAST en la pgina 204
v CURRENT PATH en la pgina 160
Asignaciones y comparaciones
Las operaciones bsicas de SQL son la asignacin y la comparacin. Las
operaciones de asignacin se realizan durante la ejecucin de sentencias de
variables de transicin INSERT, UPDATE, FETCH, SELECT INTO, VALUES INTO
y SET. Los argumentos de las funciones tambin se asignan cuando se invoca una
funcin. Las operaciones de comparacin se realizan durante la ejecucin de las
sentencias que incluyen predicados y otros elementos del lenguaje como, por
ejemplo, MAX, MIN, DISTINCT, GROUP BY y ORDER BY.
Una regla bsica para las dos operaciones es que el tipo de datos de los operandos
implicados debe ser compatible. La regla de compatibilidad tambin se aplica a las
operaciones de conjuntos.
Otra regla bsica para las operaciones de asignacin es que no pueda asignarse un
valor nulo a una columna que no pueda contener valores nulos, ni a una variable
del lenguaje principal que no tenga una variable indicadora asociada.
Asignaciones numricas
La regla bsica para las asignaciones numricas es que la parte entera de un
nmero decimal o entero no se trunca nunca. Si la escala del nmero de destino es
menor que la escala del nmero asignado, se trunca el exceso de dgitos de la
fraccin de un nmero decimal.
Asignaciones de series
Existen dos tipos de asignaciones:
v En la asignacin de almacenaje, se asigna un valor y no es conveniente el
truncamiento de datos significativos; por ejemplo, cuando se asigna un valor a
una columna
v En la asignacin de recuperacin, se asigna un valor y se permite truncamiento;
por ejemplo, cuando se recuperan datos de la base de datos
Para las bases de datos Unicode, las series de caracteres pueden asignarse a una
columna grfica y las series grficas pueden asignarse a una columna de
caracteres.
Si un valor de serie grfica (la serie fuente) se asigna a un tipo de datos de serie
grfica de longitud fija (el destino, que puede ser una columna o una variable del
lenguaje principal), y la longitud de la serie fuente es menor que el destino, ste
contendr una copia de la serie fuente que se habr rellenado por la derecha con el
nmero necesario de caracteres blancos de doble byte para crear un valor cuya
longitud sea igual a la del destino.
Si se asigna un valor de serie grfica a una variable del lenguaje principal de serie
grfica y la longitud de la serie fuente es mayor que la longitud de la variable del
lenguaje principal, sta contendr una copia de la serie fuente que se habr
truncado por la derecha el nmero necesario de caracteres de doble byte para crear
un valor cuya longitud sea igual al de la variable del lenguaje principal. (Tenga en
cuenta que para este caso, es necesario que el truncamiento no implique la
biseccin de un carcter de doble byte; si hubiera que realizar una biseccin, el
valor fuente o la variable del lenguaje principal de destino tendran un tipo de
datos de serie grfica mal definido.) El distintivo de aviso SQLWARN1 de SQLCA
se establecer en W. La variable indicadora, si se especifica, contendr la longitud
original (en caracteres de doble byte) de la serie fuente. Sin embargo, en el caso de
DBCLOB, la variable indicadora no contiene la longitud original.
Cuando el destino es una variable del lenguaje principal, se aplican las reglas
siguientes:
v Para DATE: Si la longitud de la variable es menor que 10 caracteres, se produce
un error.
v Para TIME: Si se utiliza el formato USA, la longitud de la variable no debe ser
menor que 8 caracteres; en otros formatos la longitud no debe ser menor que 5
caracteres.
Si se utilizan los formatos ISO o JIS, y la longitud de la variable del lenguaje
principal es menor que 8 caracteres, la parte correspondiente a los segundos de
Asignaciones de XML
La norma general que rige las asignaciones de XML es que slo se puede asignar
un valor XML a las columnas o a las variables XML. A continuacin, indicamos las
excepciones a la norma.
v Proceso de las variables del sistema principal XML de entrada: Caso especial de
la norma de asignacin de XML, ya que la variable del sistema principal est
basada en el valor de una serie. Para realizar la asignacin de XML dentro de
SQL, el valor de la serie se analiza implcitamente en un valor XML utilizando el
valor del registro especial CURRENT IMPLICIT XMLPARSE OPTION. Esto
permite determinar si se conservarn o se eliminarn los espacios en blanco, a
menos que la variable del lenguaje principal sea un argumento de la funcin
XMLVALIDATE, que siempre elimina los espacios en blanco innecesarios.
v Asignacin de series a marcadores de parmetros de entrada del tipo de datos
XML: Si un marcador de parmetros de entrada tiene un tipo de datos XML
implcito o explcito, el valor vinculado (asignado) al marcador de parmetros
podra ser una variable de serie de caracteres, una variable de serie de grficos o
una variable de serie binaria. En dicho caso, el valor de serie se analiza
implcitamente en un valor XML utilizando el valor del registro especial
CURRENT IMPLICIT XMLPARSE OPTION para determinar si se conservarn o
se eliminarn los espacios en blanco, a menos que el marcador de parmetros
sea un argumento de la funcin XMLVALIDATE, que siempre elimina los
espacios en blanco innecesarios.
v Asignacin directa de series a columnas XML en sentencias de cambio de datos:
Si se realizan asignaciones directas a una columna del tipo XML en una
sentencia de cambio de formato, la expresin asignada podr ser tambin una
serie de caracteres o una serie binaria. En dicho caso, el resultado de XMLPARSE
(DOCUMENT expresin STRIP WHITESPACE) se asignar a la columna de destino.
Los tipos de datos de serie soportados se definen mediante los argumentos
soportados para la funcin XMLPARSE. Tenga en cuenta que esta excepcin de
la asignacin de XML no permite asignar valores de serie de caracteres o
binarios a variables SQL o a parmetros de SQL del tipo de datos XML.
v Asignacin de XML de recuperacin a series: Si se estn recuperando valores
XML en variables del lenguaje principal utilizando una sentencia FETCH INTO
o una sentencia EXECUTE INTO en SQL incorporado, los tipos de datos de la
variable del lenguaje principal pueden ser CLOB, DBCLOB o BLOB. Si se
utilizan otras interfaces de programacin de aplicaciones (como CLI, JDBC o
.NET), los valores XML se podrn recuperar en tipos de series binarias, grficas
o de caracteres soportados por la interfaz de programacin de aplicaciones. En
todos estos casos, el valor XML se serializa implcitamente en una serie
codificada en UTF-8 y, en el caso de las variables de series de caracteres o
grficas, se convierte en la pgina de cdigos del cliente.
La asignacin a variables del lenguaje principal tiene lugar sobre la base del tipo
de representacin del tipo de referencia. Es decir, sigue la regla:
v Un valor de un tipo de referencia del lado derecho de una asignacin puede
asignarse a una variable del lenguaje principal del lado izquierdo si y slo si el
tipo de representacin de este tipo de referencia puede asignarse a esta variable
del lenguaje principal.
Comparaciones numricas
Los nmeros se comparan algebraicamente; es decir, tomando en consideracin el
signo. Por ejemplo, 2 es menor que +1.
Dos nmeros de coma flotante slo son iguales si las configuraciones de bits de
sus formatos normalizados son idnticos.
Comparaciones de series
Las series de caracteres se comparan de acuerdo con el orden de clasificacin
especificado cuando se ha creado la base de datos, excepto aquellos con un
atributo FOR BIT DATA, que siempre se comparan de acuerdo con sus valores de
bits.
Las series de caracteres (excepto las series de caracteres con el distintivo FOR BIT
DATA) se comparan de acuerdo con el orden de clasificacin especificado al crear
la base de datos. Por ejemplo, el orden de clasificacin por omisin proporcionado
por el gestor de bases de datos puede dar el mismo peso a la versin en
minsculas y en maysculas del mismo carcter. El gestor de bases de datos
realiza una comparacin en dos pasos para asegurarse de que slo se consideran
iguales las series idnticas. En el primer paso, las series se comparan de acuerdo
con el orden de clasificacin de la base de datos. Si los pesos de los caracteres de
las series son iguales, se realiza un segundo paso de desempate para comparar
las series en base a sus valores de elemento de cdigo real.
Dos series son iguales si los dos estn vacas o si todos los bytes correspondientes
son iguales. Si cualquier operando es nulo, el resultado es desconocido.
Ejemplos:
Ahora considere cuatro caracteres DBCS D1, D2, D3 y D4 con los elementos de
cdigo 0xC141, 0xC161, 0xE141 y 0xE161, respectivamente. Si estos caracteres
DBCS estn en columnas CHAR, se clasifican como una secuencia de bytes segn
los pesos de clasificacin de estos bytes. Los primeros bytes tienen pesos de 138 y
139, por consiguiente D3 y D4 vienen antes que D2 y D1; los segundos bytes
tienen pesos de 135 y 136. Por consiguiente, el orden es el siguiente:
D4 < D3 < D2 < D1
Sin embargo, si los valores que se comparan tienen el atributo FOR BIT DATA o si
estos caracteres DBCS se guardaron en una columna GRAPHIC, los pesos de
clasificacin no se tienen en cuenta y los caracteres se comparan de acuerdo con
los elementos de cdigo del modo siguiente:
A < a < <
Los caracteres DBCS de las columnas CHAR se clasifican como una secuencia de
bytes, de acuerdo con sus pesos (primer pase) y luego de acuerdo con los
elementos de cdigo para romper el empate (segundo pase). Los primeros bytes
tienen pesos iguales, por lo tanto los elementos de cdigo (0xC1 y 0xE1) rompen el
empate. Por consiguiente, los caracteres D1 y D2 se clasifican antes que los
caracteres D3 y D4. A continuacin, se comparan los segundos bytes de una forma
similar y el resultado es el siguiente:
D1 < D2 < D3 < D4
Una vez ms, si los datos de las columnas CHAR tienen el atributo FOR BIT
DATA o si los caracteres DBCS se guardan en una columna GRAPHIC, los pesos
de clasificacin no se tienen en cuenta y se comparan los caracteres de acuerdo con
los elementos de cdigo:
D1 < D2 < D3 < D4
Para este ejemplo en concreto, el resultado parece ser el mismo que cuando se
utilizaron los pesos de clasificacin, pero obviamente, ste no siempre es el caso.
Las series de caracteres mixtas se comparan byte a byte. Esto puede provocar
resultados anmalos para los caracteres de mltiples bytes que aparezcan en series
mixtas, porque cada byte se toma en cuenta independientemente.
Ejemplo:
Para este ejemplo, los caracteres de doble byte A, B, a y b tienen los valores
de elemento de cdigo X'8260', X'8261', X'8281' y X'8282', respectivamente.
y
AB < AA < Aa < Ab < aB < aA < aa < ab
Las comparaciones de series grficas son vlidas entre todos los tipos de datos de
series grficas excepto LONG VARGRAPHIC. Los tipos de datos LONG
VARGRAPHIC y DBCLOB no estn permitidos en una operacin de comparacin.
y
AA < AB < Aa < Ab < aA < aB < aa < ab
Dos valores grficos son iguales si los dos estn vacos o si todos los grficos
correspondientes son iguales. Si cualquier operando es nulo, el resultado es
desconocido. Si dos valores no son iguales, su relacin se determina por una
simple comparacin de series binarias.
Tal como se indica en esta seccin, la comparacin de series byte a byte puede
producir resultados inslitos; es decir, un resultado que difiere de lo que se espera
en una comparacin carcter a carcter. Los ejemplos que se muestran suponen
que se utiliza la misma pgina de cdigos MBCS, sin embargo, la situacin puede
complicarse ms cuando se utilizan distintas pginas de cdigos de mltiples bytes
con el mismo idioma nacional. Por ejemplo, considere el caso de la comparacin de
una serie de una pgina de cdigos DBCS japonesa y una pgina de cdigos EUC
japonesa.
Las comparaciones que implican valores TIMESTAMP son cronolgicas sin tener en
cuenta las representaciones que puedan considerarse equivalentes.
Ejemplo:
TIMESTAMP(1990-02-23-00.00.00) > 1990-02-22-24.00.00
Ejemplo:
Informacin relacionada:
v Conversiones entre tipos de datos en la pgina 110
v Valores de fecha y hora en la pgina 99
v Identificadores en la pgina 65
v Predicado LIKE en la pgina 236
v POSSTR en la pgina 398
v Reglas para los tipos de datos del resultado en la pgina 129
v Reglas para la conversin de series en la pgina 133
Estas reglas se aplican, sujetas a otras restricciones, sobre series largas para las
distintas operaciones.
A continuacin encontrar las reglas que se refieren a los distintos tipos de datos.
En algunos casos, se utiliza una tabla para mostrar los posibles tipos de datos
resultantes.
El primer par da como resultado un tipo CHAR(4). Los valores del resultado
siempre tienen 4 bytes. El tipo resultante final es VARCHAR(4). Los valores del
resultado de la primera operacin UNION siempre tendrn una longitud de 4.
Series de caracteres
Las series de caracteres son compatibles con otras series de caracteres. Las series de
caracteres incluyen los tipos CHAR, VARCHAR, LONG VARCHAR y CLOB.
Si un operando es... Y el otro operando es... El tipo de datos del resultado es...
CHAR(x) CHAR(y) CHAR(z) donde z = max(x,y)
CHAR(x) VARCHAR(y) VARCHAR(z) donde z = max(x,y)
VARCHAR(x) CHAR(y) o VARCHAR(z) donde z = max(x,y)
VARCHAR(y)
LONG VARCHAR CHAR(y), VARCHAR(y) LONG VARCHAR
o LONG VARCHAR
CLOB(x) CHAR(y), VARCHAR(y) CLOB(z) donde z = max(x,y)
o CLOB(y)
CLOB(x) LONG VARCHAR CLOB(z) donde z = max(x,32700)
Series grficas
Las series grficas son compatibles con otras series grficas. Las series grficas
incluyen los tipos de datos GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC y
DBCLOB.
Si un operando es... Y el otro operando es... El tipo de datos del resultado es...
GRAPHIC(x) GRAPHIC(y) GRAPHIC(z) donde z = max(x,y)
VARGRAPHIC(x) GRAPHIC(y) o VARGRAPHIC(z) donde z = max(x,y)
VARGRAPHIC(y)
LONG VARGRAPHIC GRAPHIC(y), LONG VARGRAPHIC
VARGRAPHIC(y) o
LONG VARGRAPHIC
DBCLOB(x) GRAPHIC(y), DBCLOB(z) donde z = max (x,y)
VARGRAPHIC(y) o
DBCLOB(y)
DBCLOB(x) LONG VARGRAPHIC DBCLOB(z) donde z = max (x,16350)
Si un operando es... Y el otro operando es... El tipo de datos del resultado es...
GRAPHIC(x) CHAR(y) o GRAPHIC(y) GRAPHIC(z) donde z = max(x,y)
VARGRAPHIC(x) CHAR(y) o VARGRAPHIC(z) donde z = max(x,y)
VARCHAR(y)
VARCHAR(x) GRAPHIC(y) o VARGRAPHIC(z) donde z = max(x,y)
VARGRAPHIC
LONG VARGRAPHIC CHAR(y) o LONG VARGRAPHIC
VARCHAR(y) o LONG
VARCHAR
LONG VARCHAR GRAPHIC(y) o LONG VARGRAPHIC
VARGRAPHIC(y)
DBCLOB(x) CHAR(y) o DBCLOB(z) donde z = max (x,y)
VARCHAR(y) o CLOB(y)
DBCLOB(x) LONG VARCHAR DBCLOB(z) donde z = max (x,16350)
CLOB(x) GRAPHIC(y) o DBCLOB(z) donde z = max (x,y)
VARGRAPHIC(y)
CLOB(x) LONG VARGRAPHIC DBCLOB(z) donde z = max (x,16350)
Numrico
Los tipos numricos son compatibles con otros tipos numricos. Los tipos
numricos incluyen SMALLINT, INTEGER, BIGINT,DECIMAL, REAL y DOUBLE.
Si un operando es... Y el otro operando es... El tipo de datos del resultado es...
SMALLINT SMALLINT SMALLINT
INTEGER INTEGER INTEGER
INTEGER SMALLINT INTEGER
BIGINT BIGINT BIGINT
BIGINT INTEGER BIGINT
BIGINT SMALLINT BIGINT
DECIMAL(w,x) SMALLINT DECIMAL(p,x) donde
p = x+max(w-x,5)1
DECIMAL(w,x) INTEGER DECIMAL(p,x) donde
p = x+max(w-x,11)1
DECIMAL(w,x) BIGINT DECIMAL(p,x) donde
p = x+max(w-x,19)1
DECIMAL(w,x) DECIMAL(y,z) DECIMAL(p,s) donde
p = max(x,z)+max(w-x,y-z)1s
= max(x,z)
REAL REAL REAL
REAL DECIMAL, BIGINT, DOUBLE
INTEGER o SMALLINT
DOUBLE cualquier tipo numrico DOUBLE
1
La precisin no puede exceder de 31.
DATE
Una fecha es compatible con otra fecha o con cualquier expresin CHAR o
VARCHAR que contiene una representacin de serie vlida de una fecha. El tipo
de datos del resultado es DATE.
TIME
Una hora es compatible con otra hora o con cualquier expresin CHAR o
VARCHAR que contenta una representacin de serie vlida de una hora. El tipo de
datos del resultado es TIME.
TIMESTAMP
Una indicacin de fecha y hora es compatible con otra indicacin de fecha y hora o
con cualquier expresin CHAR o VARCHAR que contenga una representacin de
serie vlida de una indicacin de fecha y hora. El tipo de datos del resultado es
TIMESTAMP.
XML
Un operando XML es compatible con otro operando XML. El tipo de datos del
resultado es XML.
como tipo de destino. Si todos los operandos tienen la tabla de mbito idntica, el
resultado tiene esta tabla de mbito. De lo contrario, el resultado no tiene mbito.
Los tipos estructurados del tipo esttico E y F son compatibles con el tipo esttico
resultante de B, que es el supertipo menos comn de E y F.
Informacin relacionada:
v BLOB en la pgina 306
v Reglas para la conversin de series en la pgina 133
La pgina de cdigos del resultado se determina por las pginas de cdigos de los
operandos. Las pginas de cdigos de los dos primeros operandos determinan una
pgina de cdigos del resultado intermedia, esta pgina de cdigos y la del
siguiente operando determinan una nueva pgina de cdigos del resultado
intermedia (si se aplica), etctera. La ltima pgina de cdigos del resultado
intermedia y la pgina de cdigos del ltimo operando determinan la pgina de
cdigos de la serie o columna del resultado. En cada par de pginas de cdigos, el
resultado se determina por la aplicacin secuencial de las reglas siguientes:
v Si las pginas de cdigos son iguales, el resultado es dicha pgina de cdigos.
v Si cualquiera de las dos pginas de cdigos es BIT DATA (pgina de cdigos 0),
la pgina de cdigos del resultado es BIT DATA.
v En una base de datos Unicode, si una pgina de cdigos denota datos en un
esquema de codificacin que es distinto de la otra pgina de cdigos, el
resultado es UCS-2 sobre UTF-8 (es decir, los datos de tipo grfico sobre los
datos de tipo carcter). (En una base de datos que no sea Unicode, no se permite
la conversin entre distintos esquemas de codificacin.
v Para los operandos que son variables del lenguaje principal (cuya pgina de
cdigos no es BIT DATA), la pgina de cdigos resultante es la pgina de
cdigos de la base de datos. Los datos de entrada de este tipo de variables del
lenguaje principal se convierten de la pgina de cdigos de la aplicacin a la
pgina de cdigos de la base de datos antes de utilizarse.
Ejemplos
la pgina de cdigos del resultado de los dos operandos es 850, porque los datos
de variables del lenguaje principal se convertirn a pgina de cdigos de la base
de datos antes de utilizarse.
la pgina de cdigos del resultado es 850. Por lo tanto, la pgina de cdigos del
resultado para la funcin escalar COALESCE ser la pgina de cdigos 850.
Constantes
Una constante (a veces llamada un literal) especifica un valor. Las constantes se
clasifican en constantes de tipo serie y constantes numricas. Las constantes
numricas pueden, a su vez, ser constantes enteras, de coma flotante y decimales.
Un valor de cero negativo en una constante numrica (-0) indica el mismo valor
que un cero sin el signo (0).
Los tipos definidos por el usuario son difciles de escribir. Esto significa que un
tipo definido por el usuario slo es compatible con su propio tipo. Sin embargo,
una constante tiene un tipo interno. Por lo tanto, una operacin que implique un
tipo definido por el usuario y una constante slo es posible si el tipo definido por
el usuario se ha convertido al tipo interno de la constante o si la constante se ha
convertido al tipo definido por el usuario. Por ejemplo, si se utiliza la tabla y el
tipo diferenciado del apartado Comparaciones de tipos definidos por el usuario
en la pgina 127, sern vlidas las siguientes comparaciones con la constante 14:
SELECT * FROM CAMP_DB2_ROSTER
WHERE AGE > CAST(14 AS YOUTH)
SELECT * FROM CAMP_DB2_ROSTER
WHERE CAST(AGE AS INTEGER) > 14
Constantes enteras
Una constante entera especifica un entero en forma de nmero, con signo o sin
signo, con un mximo de 19 dgitos que no incluye ninguna coma decimal. El tipo
de datos de una constante entera es entero grande si su valor est comprendido en
el rango de un entero grande. El tipo de datos de una constante entera es un
entero superior si su valor se encuentra fuera del rango de un entero grande, pero
est comprendido en el rango de un entero superior. Una constante definida fuera
del rango de valores enteros superior se considera una constante decimal.
Ejemplos:
64 -15 +100 32767 720176 12345678901
Ejemplos:
15E1 2,E5 2,2E-1 +5,E+2
Constantes decimales
Una constante decimal es un nmero con o sin signo de 31 dgitos de longitud como
mximo y que incluye una coma decimal o no est comprendido dentro del rango
de enteros binarios. Debe estar comprendido en el rango de nmeros decimales. La
precisin es el nmero total de dgitos (incluyendo los ceros iniciales y de cola); la
escala es el nmero de dgitos situados a la derecha de la coma decimal
(incluyendo los ceros de cola).
Ejemplos:
25,5 1000, -15, +37589,3333333333
Ejemplos:
'12/14/1985'
'32'
'DON''T CHANGE'
Constantes hexadecimales
Una constante hexadecimal especifica una serie de caracteres de longitud variable de
la pgina de cdigos de la seccin.
Ejemplos:
X'FFFF' que representa el patrn de bits '1111111111111111'
Ejemplos:
G'serie de caracteres de doble byte'
N'serie de caracteres de doble byte'
Ejemplos:
GX'FFFF'
Ejemplo:
UX'0042006F006200620079'
Informacin relacionada:
v Asignaciones y comparaciones en la pgina 117
v Expresiones en la pgina 189
Registros especiales
Registros especiales
Un registro especial es un rea de almacenamiento que el gestor de bases de datos
define para un proceso de aplicacin. Se utiliza para almacenar informacin a la
que se puede hacer referencia en sentencias de SQL. Una referencia a un registro
especial es una referencia a un valor proporcionado por el servidor actual. Si el
valor es una serie, su CCSID es el CCSID por omisin del servidor actual. Se hace
referencia a los registros especiales de la forma siguiente:
CURRENT CLIENT_ACCTNG
CLIENT ACCTNG
CURRENT CLIENT_APPLNAME
CLIENT APPLNAME
CURRENT CLIENT_USERID
CLIENT USERID
CURRENT CLIENT_WRKSTNNAME
CLIENT WRKSTNNAME
CURRENT DATE
(1)
CURRENT_DATE
CURRENT DBPARTITIONNUM
CURRENT DEFAULT TRANSFORM GROUP
CURRENT DEGREE
CURRENT EXPLAIN MODE
CURRENT EXPLAIN SNAPSHOT
CURRENT FEDERATED ASYNCHRONY
CURRENT IMPLICIT XMLPARSE OPTION
CURRENT ISOLATION
CURRENT LOCK TIMEOUT
CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION
CURRENT PACKAGE PATH
CURRENT PATH
(1)
CURRENT_PATH
CURRENT QUERY OPTIMIZATION
CURRENT REFRESH AGE
CURRENT SCHEMA
(1)
CURRENT_SCHEMA
CURRENT SERVER
(1)
CURRENT_SERVER
CURRENT TIME
(1)
CURRENT_TIME
CURRENT TIMESTAMP
(1)
CURRENT_TIMESTAMP
CURRENT TIMEZONE
(1)
CURRENT_TIMEZONE
CURRENT USER
(1)
CURRENT_USER
SESSION_USER
USER
SYSTEM_USER
Notas:
1 El estndar bsico de 1999 de SQL utiliza el formato con el subrayado.
Cuando se hace referencia a un registro especial en una rutina, el valor del registro
especial de la rutina depende de si el registro especial es actualizable o no. Para
registros especiales no actualizables, el valor se define en el valor por omisin del
registro especial. Para registros especiales actualizables, el valor inicial se hereda
del invocador de la rutina y puede modificarse con una sentencia SET posterior
dentro de la rutina.
CURRENT CLIENT_ACCTNG
El registro especial CURRENT CLIENT_ACCTNG (o CLIENT ACCTNG) contiene
el valor de la serie de contabilidad a partir de la informacin de cliente
especificada para esta conexin. El tipo de datos del registro es VARCHAR(255). El
valor por omisin de este registro es una serie vaca.
CURRENT CLIENT_APPLNAM
El registro especial CLIENT_APPLNAME (o CLIENT APPLNAME) contiene el
valor del nombre de la aplicacin a partir de la informacin de cliente especificada
para esta conexin. El tipo de datos del registro es VARCHAR(255). El valor por
omisin de este registro es una serie vaca.
Ejemplo: Seleccione los departamentos a los que se les permite utilizar la aplicacin
que se est usando en esta conexin.
SELECT DEPT
FROM DEPT_APPL_MAP
WHERE APPL_NAME = CURRENT CLIENT_APPLNAME
CURRENT CLIENT_USERID
El registro especial CLIENT_USERID (o CLIENT USERID) contiene el valor del ID
de usuario de cliente a partir de la informacin de cliente especificada para esta
conexin. El tipo de datos del registro es VARCHAR(255). El valor por omisin de
este registro es una serie vaca.
CURRENT CLIENT_WRKSTNNAME
El registro especial CLIENT_WRKSTNNAME (o CLIENT WRKSTNNAME)
contiene el valor del nombre de la estacin de trabajo a partir de la informacin de
cliente especificada para esta conexin. El tipo de datos del registro es
VARCHAR(255). El valor por omisin de este registro es una serie vaca.
El valor del nombre de estacin de trabajo puede cambiarse utilizando la API para
Establecer informacin de cliente (sqleseti).
Ejemplo: Obtenga el nombre de estacin de trabajo que se est utilizando para esta
conexin.
VALUES (CURRENT CLIENT_WRKSTNNAME)
INTO :WS_NAME
CURRENT DATE
El registro especial CURRENT DATE (o CURRENT_DATE) especifica una fecha
basada en la lectura del reloj cuando se ejecuta la sentencia de SQL en el servidor
de aplicaciones. Si este registro especial se utiliza ms de una vez en la misma
sentencia de SQL o bien con CURRENT TIME o CURRENT TIMESTAMP en una
sola sentencia, todos los valores se basan en la misma lectura del reloj.
CURRENT DBPARTITIONNUM
El registro especial CURRENT DBPARTITIONNUM especifica un valor INTEGER
que identifica el nmero de nodo coordinador de la sentencia. Para las sentencias
emitidas desde una aplicacin, el coordinador es la particin de base de datos a la
que se conecta la aplicacin. Para las sentencias emitidas desde una rutina, el
coordinador es la particin de base de datos desde la que se invoca la rutina.
Informacin relacionada:
v Sentencia CONNECT (Tipo 1) en Consulta de SQL, Volumen 2
En un sentencia de SQL dinmico (es decir, una sentencia que interacciona con
variables del lenguaje principal), el nombre del grupo de transformacin utilizado
para intercambiar valores es el mismo que el nombre de este registro especial, a
menos que el registro contenga la serie vaca. Si el registro contiene la serie vaca
(no se ha definido ningn valor utilizando la sentencia SET CURRENT DEFAULT
TRANSFORM GROUP), se utiliza el grupo de transformacin DB2_PROGRAM
para la transformacin. Si el grupo de transformacin DB2_PROGRAM no est
definido para el tipo estructurado indicado, se emite un error durante la ejecucin
(SQLSTATE 42741).
Ejemplos:
CURRENT DEGREE
El registro especial CURRENT DEGREE especifica el grado de paralelismo
intraparticin para la ejecucin de sentencias de SQL dinmico. (Para SQL esttico,
la opcin de vinculacin de DEGREE proporciona el mismo control.) El tipo de
datos del registro es CHAR(5). Los valores vlidos son ANY o la representacin de
serie de un entero entre 1 y 32 767, inclusive.
Informacin relacionada:
v Sentencia SET CURRENT DEGREE en Consulta de SQL, Volumen 2
El valor inicial es NO. Este valor puede cambiarse invocando la sentencia SET
CURRENT EXPLAIN MODE.
Informacin relacionada:
v Apndice J, Valores de los registros de EXPLAIN, en la pgina 871
v Sentencia SET CURRENT EXPLAIN MODE en Consulta de SQL, Volumen 2
Slo las siguientes sentencias tienen en cuenta el valor de este registro: DELETE,
INSERT, SELECT, SELECT INTO, UPDATE, VALUES y VALUES INTO. Los valores
posibles son YES, EXPLAIN, NO y REOPT. (Para SQL esttico, la opcin de
vinculacin EXPLSNAP proporciona el mismo control. En el caso de los mandatos
PREP y BIND, los valores de la opcin EXPLSNAP son: YES, NO y ALL.)
YES Habilita el recurso de instantneas de Explain y realiza una instantnea de
la representacin interna de una sentencia de SQL dinmico al compilar la
sentencia.
EXPLAIN
Habilita el recurso de instantneas de Explain pero no se ejecutan las
sentencias dinmicas.
NO Inhabilita el recurso de instantneas de Explain.
REOPT
Habilita el recurso Explain y hace que la informacin de Explain para una
sentencia de SQL dinmico (o de vinculacin incremental) slo se capture
cuando se reoptimice la sentencia utilizando valores reales para las
variables de entrada (variables del lenguaje principal, registros especiales o
marcadores de parmetros).
El valor inicial es NO. Este valor puede cambiarse invocando la sentencia SET
CURRENT EXPLAIN SNAPSHOT.
Informacin relacionada:
v Apndice J, Valores de los registros de EXPLAIN, en la pgina 871
v Sentencia SET CURRENT EXPLAIN SNAPSHOT en Consulta de SQL, Volumen
2
Informacin relacionada:
v Sentencia SET CURRENT FEDERATED ASYNCHRONY en Consulta de SQL,
Volumen 2
Ejemplos:
Informacin relacionada:
v Sentencia SET CURRENT IMPLICIT XMLPARSE OPTION en Consulta de SQL,
Volumen 2
v XMLVALIDATE en la pgina 502
CURRENT ISOLATION
El registro especial CURRENT ISOLATION mantiene un valor CHAR(2) que
identifica el nivel de aislamiento (en relacin a otras sesiones simultneas)
correspondiente a las sentencias de SQL dinmico emitidas desde la sesin actual.
Hasta que se emita una sentencia SET CURRENT ISOLATION en una sesin o
despus de especificar RESET para SET CURRENT ISOLATION, el registro
especial CURRENT ISOLATION est establecido en blancos y no se aplica a
sentencias de SQL dinmico; el nivel de aislamiento utilizado se toma del atributo
de aislamiento del paquete que ha emitido la sentencia de SQL dinmico. Una vez
emitida una sentencia SET CURRENT ISOLATION, el registro especial CURRENT
ISOLATION proporciona el nivel de aislamiento correspondiente a cualquier
sentencia de SQL dinmico siguiente compilada dentro de la sesin, con
independencia de los valores del paquete que emita la sentencia. Esto permanecer
vigente hasta que finalice la sesin o hasta que se emita una sentencia SET
CURRENT ISOLATION con la opcin RESET.
Conceptos relacionados:
v Niveles de aislamiento en la pgina 23
Informacin relacionada:
v Sentencia SET CURRENT ISOLATION en Consulta de SQL, Volumen 2
Los valores vlidos para el registro especial CURRENT LOCK TIMEOUT son los
enteros comprendidos entre -1 y 32767, ambos inclusive. Este registro especial
tambin puede establecerse en un valor nulo. Un valor de -1 especifica que no
deben producirse tiempos de espera excedidos y que la aplicacin debe esperar
hasta que se libere el bloqueo o se detecte un punto muerto. Un valor de 0
especifica que la aplicacin no debe esperar un bloqueo; si no es posible obtener
un bloqueo, debe devolverse un error inmediatamente.
Informacin relacionada:
v Sentencia SET CURRENT LOCK TIMEOUT en Consulta de SQL, Volumen 2
Informacin relacionada:
v dft_mttb_types - Default maintained table types for optimization configuration
parameter en Performance Guide
v Sentencia SET CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION
en Consulta de SQL, Volumen 2
El valor puede ser una serie vaca o en blanco o una lista de uno o varios nombres
de esquema delimitados por comillas dobles y separados por comas. Las comillas
dobles que aparezcan como parte de la serie debern representarse como dos
comillas dobles, como suele hacerse con los identificadores delimitados. Los
delimitadores y las comas contribuyen a la longitud del registro especial.
Ejemplos:
Una aplicacin utilizar varios paquetes SQLJ(en los esquemas SQLJ1 y SQLJ2) y
paquete JDBC (en el esquema DB2JAVA). El registro especial CURRENT PACKAGE
PATH debe establecerse para comprobar SQLJ1, SQLJ2 y DB2JAVA, en este orden.
SET CURRENT PACKAGE PATH = "SQLJ1", "SQLJ2", "DB2JAVA"
Informacin relacionada:
v CURRENT PATH en la pgina 160
v Sentencia SET CURRENT PACKAGE PATH en Consulta de SQL, Volumen 2
CURRENT PATH
El registro especial CURRENT PATH (o CURRENT_PATH) especifica un valor
VARCHAR(254) que identifica la va de acceso de SQL que se ha de utilizar para
resolver las referencias de funciones y las referencias de tipos de datos de
sentencias de SQL preparadas dinmicamente. CURRENT FUNCTION PATH es
sinnimo de CURRENT PATH. CURRENT PATH tambin se utiliza para resolver
las referencias de procedimientos almacenados en sentencias CALL. El valor inicial
es el valor por omisin que se especifica ms abajo. Para SQL esttico, la opcin de
vinculacin FUNCPATH proporciona una va de acceso de SQL que se utiliza para
la resolucin de funciones y tipos de datos.
El registro especial CURRENT PATH contiene una lista de uno o varios nombres
de esquema escritos entre comillas dobles y separados por comas. Por ejemplo, una
va de acceso de SQL que especifica que el gestor de bases de datos primero debe
mirar en el esquema FERMAT, luego en el esquema XGRAPHIC y por ltimo en el
esquema SYSIBM se devuelve en el registro especial CURRENT PATH de la
siguiente manera:
"FERMAT","XGRAPHIC","SYSIBM"
Informacin relacionada:
v Funciones en la pgina 172
v Sentencia SET PATH en Consulta de SQL, Volumen 2
Informacin relacionada:
v Sentencia SET CURRENT QUERY OPTIMIZATION en Consulta de SQL,
Volumen 2
El valor de CURRENT REFRESH debe ser 0 99 999 999 999 999. El valor inicial es
0. El valor puede cambiarse invocando la sentencia SET CURRENT REFRESH
AGE.
Informacin relacionada:
v Sentencia SET CURRENT REFRESH AGE en Consulta de SQL, Volumen 2
CURRENT SCHEMA
El registro especial CURRENT SCHEMA (o CURRENT_SCHEMA) especifica un
valor VARCHAR(128) que identifica el nombre de esquema utilizado para calificar
las referencias a objetos de base de datos, donde corresponda, en sentencias de
SQL preparadas dinmicamente. Para mantener la compatibilidad con DB2 para
OS/390, se puede especificar CURRENT SQLID (o CURRENT_SQLID) en lugar de
CURRENT SCHEMA.
CURRENT SERVER
El registro especial CURRENT SERVER (o CURRENT_SERVER) especifica un valor
VARCHAR(18) que identifica el servidor de aplicaciones actual. El registro contiene
el nombre real del servidor de aplicaciones, no un seudnimo.
Informacin relacionada:
v Sentencia CONNECT (Tipo 1) en Consulta de SQL, Volumen 2
CURRENT TIME
El registro especial CURRENT TIME (o CURRENT_TIME) especifica una hora
basada en la lectura del reloj cuando se ejecuta la sentencia de SQL en el servidor
de aplicaciones. Si este registro especial se utiliza ms de una vez en la misma
sentencia de SQL o bien con CURRENT DATE o CURRENT TIMESTAMP en una
sola sentencia, todos los valores se basan en la misma lectura del reloj.
CURRENT TIMESTAMP
El registro especial CURRENT TIMESTAMP (o CURRENT_TIMESTAMP) especifica
una indicacin de fecha y hora basada en la lectura del reloj cuando se ejecuta la
sentencia de SQL en el servidor de aplicaciones. Si este registro especial se utiliza
ms de una vez en la misma sentencia de SQL o bien con CURRENT DATE o
CURRENT TIME en una sola sentencia, todos los valores se basan en la misma
lectura del reloj.
CURRENT TIMEZONE
El registro especial CURRENT TIMEZONE (o CURRENT_TIMEZONE) especifica la
diferencia entre UTC (Hora coordinada universal, conocida anteriormente como
GMT) y la hora local del servidor de aplicaciones. La diferencia se representa por
un perodo de tiempo (un nmero decimal cuyos dos primeros dgitos
corresponden a las horas, los dos siguientes a los minutos y los dos ltimos a los
segundos). El nmero de horas est entre -24 y 24, exclusive. Al restar CURRENT
TIMEZONE de la hora local se convierte esa hora a UTC. La hora se calcula a
partir de la hora del sistema operativo en el momento en que se ejecuta la
sentencia de SQL. (El valor de CURRENT TIMEZONE se determina a partir de las
funciones de tiempo de ejecucin de C).
CURRENT USER
El registro especial CURRENT USER (o CURRENT_USER) especifica el ID de
autorizacin que se va a utilizar para autorizacin de sentencia. Para sentencias de
SQL esttico, el valor representa el ID de autorizacin que se utiliz cuando se
vincul el paquete. Para sentencias de SQL dinmico, el valor es el mismo que el
valor del registro especial SESSION_USER para paquetes vinculados con la opcin
de vinculacin DYNAMICRULES(RUN). El tipo de datos del registro es
VARCHAR(128).
Ejemplo: Seleccione nombres de tablas cuyo esquema coincida con el valor del
registro especial CURRENT USER.
SELECT TABNAME FROM SYSCAT.TABLES
WHERE TABSCHEMA = CURRENT USER AND TYPE = T
Si esta sentencia se ejecuta como una sentencia de SQL esttico, devuelve las tablas
cuyo nombre de esquema coincide con el vinculador del paquete que incluye la
sentencia. Si esta sentencia se ejecuta como una sentencia de SQL dinmico,
devuelve las tablas cuyo nombre de esquema coincide con el valor actual del
registro especial SESSION_USER.
SESSION_USER
El registro especial SESSION_USER especifica el ID de autorizacin que se debe
utilizar para la sesin actual. El valor de este registro se utiliza para la
comprobacin de autorizacin de sentencias de SQL dinmico cuando el
comportamiento de ejecucin DYNAMICRULES est en vigor para el paquete. El
tipo de datos del registro es VARCHAR(128).
Informacin relacionada:
v Sentencia SET SESSION AUTHORIZATION en Consulta de SQL, Volumen 2
SYSTEM_USER
El registro especial SYSTEM_USER especifica el ID de autorizacin del usuario que
se ha conectado a la base de datos. El valor de este registro slo se puede
modificar conectndose como un usuario con otro ID de autorizacin. El tipo de
datos del registro es VARCHAR(128).
Informacin relacionada:
v Sentencia SET SESSION AUTHORIZATION en Consulta de SQL, Volumen 2
USER
El registro especial USER especifica el ID de autorizacin de tiempo de ejecucin
que se pasa al gestor de bases de datos cuando se inicia una aplicacin en una
base de datos. El tipo de datos del registro es VARCHAR(128).
Ejemplo: Seleccione todas las notas de la tabla IN_TRAY que el usuario haya
colocado ah.
SELECT * FROM IN_TRAY
WHERE SOURCE = USER
Funciones
Una funcin es una operacin denotada por un nombre de funcin seguido por uno
o ms operandos que se incluyen entre parntesis. Por ejemplo, se pueden pasar a
la funcin TIMESTAMP valores de datos de entrada del tipo DATE y TIME y el
resultado ser TIMESTAMP. Las funciones pueden estar incorporadas o puede
definirlas el usuario.
v Con el gestor de bases de datos se proporcionan funciones incorporadas.
Devuelven un solo valor del resultado y se identifican como parte del esquema
SYSIBM. Entre estas funciones se incluyen funciones de columna (por ejemplo,
AVG), funciones con operadores (por ejemplo, +) y funciones de conversin (por
ejemplo, DECIMAL).
v Las funciones definidas por el usuario son funciones que estn registradas en una
base de datos de SYSCAT.ROUTINES (utilizando la sentencia CREATE
FUNCTION). Estas funciones nunca forman parte del esquema SYSIBM. El
gestor de bases de datos proporciona un conjunto de estas funciones en un
esquema denominado SYSFUN.
Las funciones definidas por el usuario amplan las posibilidades del sistema de
bases de datos aadiendo definiciones de funciones (proporcionadas por
usuarios o proveedores) que pueden aplicarse en el propio ncleo de la base de
datos. La ampliacin de las funciones de la base de datos permite que la base de
datos explote las mismas funciones en su ncleo que las que utiliza una
aplicacin, proporcionando ms sinergia entre la aplicacin y la base de datos.
Una funcin de fila es una funcin que devuelve una fila de valores. Se puede
utilizar slo como funcin de transformacin, que correlaciona valores de atributos
de un tipo estructurado con valores de una fila. Las funciones de fila deben estar
definidas como funciones de SQL.
Una funcin de tabla es una funcin que devuelve una tabla a la sentencia de SQL
donde se invoca la funcin. Slo se puede hacer referencia a la funcin en la
clusula FROM de una sentencia SELECT. Una funcin as puede utilizarse para
aplicar la potencia de proceso del lenguaje SQL a datos que no son de o para DB2
convertir tales datos a una tabla DB2. Esta funcin podra, por ejemplo, tomar un
archivo y convertirlo en una tabla, tomar muestras de datos de la Web y
disponerlos en forma de tabla o acceder a una base de datos Lotus Notes y
devolver informacin sobre mensajes de correo, tal como la fecha, el remitente y el
texto del mensaje. Esta informacin puede unirse a otras tablas de la base de datos.
Una funcin de tabla se puede definir como una funcin externa o como una
funcin de SQL. (Una funcin de tabla no puede ser una funcin derivada).
Signaturas de funcin
Una funcin se identifica por su esquema, un nombre de funcin el nmero de
parmetros y los tipos de datos de sus parmetros. Esto se denomina signatura de
funcin, que debe ser exclusiva en la base de datos. Varias funciones pueden tener
el mismo nombre dentro de un esquema, siempre que el nmero de parmetros o
bien los tipos de datos de los parmetros sean diferentes. Un nombre de funcin
para el que existen mltiples instancias de funcin se llama funcin sobrecargada.
Un nombre de funcin puede estar sobrecargado dentro de un esquema, en cuyo
caso hay ms de una funcin con el mismo nombre en el esquema. Estas funciones
deben tener tipos de parmetros distintos. Un nombre de funcin tambin puede
estar sobrecargado en una va de acceso de SQL, en cuyo caso hay ms de una
funcin con el mismo nombre en la va de acceso. Estas funciones no es necesario
que tengan tipos de parmetros distintos.
Una funcin se puede invocar haciendo referencia (en un contexto que lo permita)
a su nombre calificado (esquema y nombre de funcin), seguido por la lista de
argumentos, entre parntesis. Tambin se puede invocar sin especificar el nombre
del esquema, obteniendo como resultado una serie de posibles funciones de
diferentes esquemas que tienen los mismos parmetros o bien parmetros
aceptables. En este caso, la va de acceso de SQL se utiliza como ayuda para resolver
la funcin. La va de acceso de SQL es una lista de esquemas que se examinan
para identificar una funcin con el mismo nombre, nmero de parmetros y tipos
de datos aceptables. Para las sentencias de SQL esttico, la va de acceso de SQL se
especifica utilizando la opcin de vinculacin FUNCPATH. Para las sentencias de
SQL dinmico, la va de acceso de SQL es el valor del registro especial CURRENT
PATH.
Resolucin de funcin
Despus de invocar una funcin, el gestor de bases de datos debe decidir cul de
las posibles funciones con el mismo nombre es la ms apropiada . Esto incluye la
resolucin de funciones incorporadas y definidas por el usuario.
v Ninguna funcin se considera la mejor. Tomando como ejemplo las dos mismas
funciones del caso anterior y la siguiente referencia de funcin (donde C es una
columna CHAR(5)):
SELECT ... RISK(C) ...
v Si, por algn motivo, es necesario crear una funcin definida por el usuario con
el mismo nombre que una funcin incorporada, asegrese de calificar todas las
referencias a la misma.
Existen siete funciones ACT, en tres esquemas diferentes, registradas del modo
siguiente:
CREATE FUNCTION AUGUSTUS.ACT (CHAR(5), INT, DOUBLE) SPECIFIC ACT_1 ...
CREATE FUNCTION AUGUSTUS.ACT (INT, INT, DOUBLE) SPECIFIC ACT_2 ...
CREATE FUNCTION AUGUSTUS.ACT (INT, INT, DOUBLE, INT) SPECIFIC ACT_3 ...
CREATE FUNCTION JULIUS.ACT (INT, DOUBLE, DOUBLE) SPECIFIC ACT_4 ...
CREATE FUNCTION JULIUS.ACT (INT, INT, DOUBLE) SPECIFIC ACT_5 ...
CREATE FUNCTION JULIUS.ACT (SMALLINT, INT, DOUBLE) SPECIFIC ACT_6 ...
CREATE FUNCTION NERO.ACT (INT, INT, DEC(7,2)) SPECIFIC ACT_7 ...
Suponga que la aplicacin que efecta esta referencia tiene una va de acceso de
SQL establecida como:
"JULIUS","AUGUSTUS","CAESAR"
invocacin de funciones
Cuando ya se ha seleccionado la funcin, pueden darse todava algunos motivos
por los cuales no se pueda utilizar alguna funcin. Cada funcin est definida para
devolver un resultado con un tipo de datos concreto. Si este tipo de datos
resultante no es compatible con el contexto en el que se invoca la funcin, se
producir un error. Por ejemplo, con las funciones denominadas STEP, en esta
ocasin con tipos de datos diferentes como resultado:
Otros ejemplos en los que puede ocurrir esto son los siguientes, ambos darn como
resultado un error en la sentencia:
v Se ha hecho referencia a la funcin en una clusula FROM, pero la funcin
seleccionada en el paso de resolucin de las funciones ha sido una funcin
escalar o de columna.
v El caso contrario en el que el contexto llama a una funcin escalar o de columna
y la resolucin de la funcin selecciona una funcin de tabla.
Piense en una base de datos con dos funciones que tienen las signaturas
SCHEMA1.BAR(INTEGER) y SCHEMA2.BAR(DOUBLE). Supongamos que una va
de acceso de SQL contiene los dos esquemas, SCHEMA1 y SCHEMA2 (aunque su
orden en la va de acceso de SQL carece de importancia). A USER1 se le ha
otorgado el privilegio EXECUTE sobre la funcin SCHEMA2.BAR(DOUBLE).
Supongamos que USER1 crea una vista que llama a BAR(INT_VAL). Esta se
resolver en la funcin SCHEMA2.BAR(DOUBLE). La vista siempre utilizar
SCHEMA2.BAR(DOUBLE), aunque alguien otorgue a USER1 el privilegio
EXECUTE sobre SCHEMA1.BAR(INTEGER) despus de crear la vista.
Piense en una base de datos con dos funciones que tienen las signaturas
SCHEMA1.BAR(INTEGER) y SCHEMA2.BAR(DOUBLE). A USER1 se le ha
otorgado el privilegio EXECUTE sobre la funcin SCHEMA2.BAR(DOUBLE).
Supongamos que USER1 crea una vista que llama a BAR(INT_VAL). Esta se
resolver en la funcin SCHEMA2.BAR(DOUBLE). La vista siempre utilizar
SCHEMA2.BAR(DOUBLE), aunque alguien otorgue a USER1 el privilegio
EXECUTE sobre SCHEMA1.BAR(INTEGER) despus de crear la vista.
Informacin relacionada:
v Asignaciones y comparaciones en la pgina 117
v CURRENT PATH en la pgina 160
v Promocin de tipos de datos en la pgina 108
Mtodos
Un mtodo de base de datos de un tipo estructurado es una relacin entre un
conjunto de valores de datos de entrada y un conjunto de valores resultantes,
donde el primer valor de entrada (o argumento sujeto) tiene el mismo tipo, o es un
subtipo del tipo sujeto (tambin llamado parmetro sujeto) del mtodo. Por ejemplo,
es posible pasar valores de datos de entrada de tipo VARCHAR a un mtodo
denominado CITY, de tipo ADDRESS y el resultado ser un valor ADDRESS (o un
subtipo de ADDRESS).
Los mtodos definidos explcitamente o mtodos definidos por el usuario son mtodos
que se registran en el catlogo SYSCAT.ROUTINES de una base de datos,
utilizando una combinacin de las sentencias CREATE TYPE (o ALTER TYPE ADD
METHOD) y CREATE METHOD. Todos los mtodos definidos para un tipo
estructurado se definen en el mismo esquema que el tipo.
Los mtodos definidos por el usuario para tipos estructurados amplan la funcin
de sistema de bases de datos aadiendo definiciones de mtodo (proporcionadas
por usuarios o proveedores) que pueden aplicarse a instancias de tipo estructurado
en el ncleo de la base de datos. La definicin de los mtodos de la base de datos
permite que la base de datos explote los mismos mtodos en su ncleo que los que
utiliza una aplicacin, proporcionando ms sinergia entre la aplicacin y la base de
datos.
Un mtodo definido por el usuario puede devolver un solo valor cada vez que se
invoca. Este valor puede ser un tipo estructurado. Un mtodo se puede definir
como preservador del tipo (utilizando SELF AS RESULT), para permitir que el tipo
dinmico del argumento sujeto sea el tipo devuelto del mtodo. Todos los mtodos
mutadores definidos implcitamente son preservadores del tipo.
Signaturas de mtodo
Un mtodo se identifica por su tipo sujeto, un nombre de mtodo, el nmero de
parmetros y los tipos de datos de sus parmetros. Esto se denomina una signatura
de mtodo y debe ser exclusiva en la base de datos.
Resolucin de mtodos
Despus de invocar un mtodo, el gestor de bases de datos debe decidir cul de
los posibles mtodos con el mismo nombre es el ms apropiado . Las funciones
(incorporadas o definidas por el usuario) no se tienen en cuenta durante la
resolucin del mtodo.
Existen siete mtodos FOO para tres tipos estructurados definidos en una jerarqua
de GOVERNOR como un subtipo de EMPEROR, como un subtipo de
HEADOFSTATE, registrados con las signaturas siguientes:
CREATE METHOD FOO (CHAR(5), INT, DOUBLE) FOR HEADOFSTATE SPECIFIC FOO_1 ...
CREATE METHOD FOO (INT, INT, DOUBLE) FOR HEADOFSTATE SPECIFIC FOO_2 ...
CREATE METHOD FOO (INT, INT, DOUBLE, INT) FOR HEADOFSTATE SPECIFIC FOO_3 ...
CREATE METHOD FOO (INT, DOUBLE, DOUBLE) FOR EMPEROR SPECIFIC FOO_4 ...
CREATE METHOD FOO (INT, INT, DOUBLE) FOR EMPEROR SPECIFIC FOO_5 ...
CREATE METHOD FOO (SMALLINT, INT, DOUBLE) FOR EMPEROR SPECIFIC FOO_6 ...
CREATE METHOD FOO (INT, INT, DEC(7,2)) FOR GOVERNOR SPECIFIC FOO_7 ...
Invocacin de mtodos
Una vez seleccionado el mtodo, pueden todava existir algunos motivos por los
cuales no se pueda utilizar el mtodo.
Cada mtodo est definido para devolver un resultado con un tipo de datos
especfico. Si este tipo de datos resultante no es compatible con el contexto donde
se invoca el mtodo, se produce un error. Por ejemplo, supongamos que se definen
los siguientes mtodos llamados STEP, cada uno con un tipo de datos diferentes
como resultado:
STEP(SMALLINT) FOR TYPEA RETURNS CHAR(5)
STEP(DOUBLE) FOR TYPEA RETURNS INTEGER
en este caso se elige el primer STEP, pues hay una coincidencia exacta del tipo del
argumento. Se produce un error en la sentencia, porque el tipo resultante es
CHAR(5) en lugar de un tipo numrico, tal como necesita un argumento del
operador de suma.
Ejemplo:
Liste todas las personas que tengan unos ingresos mnimos de $40000:
SELECT id, persona, name
FROM aTable
WHERE persona..ingresos() >= 40000;
Informacin relacionada:
v Asignaciones y comparaciones en la pgina 117
v Promocin de tipos de datos en la pgina 108
Expresiones
Expresiones
Una expresin especifica un valor. Puede ser un valor simple, formado slo por
una constante o un nombre de columna, o puede ser ms complejo. Si se utilizan
repetidamente expresiones complejas similares, puede plantearse la utilizacin de
una funcin SQL para encapsular una expresin comn.
En una base de datos Unicode, una expresin que acepte una serie de caracteres o
grfica aceptar todo tipo de serie para el que se soporte la conversin.
expresin:
operador
funcin
+ (expresin)
constante
nombre-columna
variable
registro-especial
(1)
(seleccin-completa-escalar)
(2)
duracin-etiquetada
(3)
expresin-case
(4)
especificacin-cast
(5)
especificacin-xmlcast
(6)
operacin-desreferencia
(7)
funcin-OLAP
(8)
invocacin-mtodo
(9)
tratamiento-subtipo
(10)
referencia-secuencia
operador:
(11)
CONCAT
/
*
+
Notas:
1 Vea Seleccin completa escalar en la pgina 196 para obtener ms
informacin.
Ejemplos:
SALARY:SALARYSALARYMAX(SALARY)
Si ambos operandos pueden ser nulos, el resultado tambin podr ser nulo; si
alguno de ellos es nulo, el resultado es el valor nulo. De lo contrario, el resultado
constar de la serie del primer operando seguida por la del segundo. La
comprobacin se efecta para detectar los datos mixtos formados defectuosamente
al realizar la concatenacin.
Observe que, para que haya compatibilidad con las versiones anteriores, no hay
escalada automtica de los resultados que implica tipos de datos LONG a los tipos
de datos LOB. Por ejemplo, la concatenacin de un valor CHAR(200) y un valor
Ejemplo 2: Dado:
v COLA definido como VARCHAR(5) con valor AA
v :host_var definida como una variable del lenguaje principal con una longitud 5
y el valor BB
v COLC definido como CHAR(5) con valor CC
v COLD definido como CHAR(5) con valor DDDDD
Ejemplo 3: Dado:
COLA definido como CHAR(10)
COLB definido como VARCHAR(5)
Si cualquier operando puede ser nulo o la base de datos est configurada con
DFT_SQLMATHWARN establecido en s, el resultado puede ser nulo.
Los operadores numricos se pueden aplicar a tipos numricos con signo y a tipos
de fecha y hora (vea Aritmtica de fecha y hora en SQL en la pgina 198). Por
ejemplo, USER+2 no es vlido. Las funciones derivadas se pueden definir para
operaciones aritmticas sobre tipos diferenciados con un tipo fuente que sea un
tipo numrico con signo.
Si estos tipos de efectos no son aceptables, deben seguirse pasos adicionales para
manejar el error aritmtico y producir resultados aceptables. Algunos ejemplos son:
v aadir una expresin case para comprobar la divisin por cero y establecer el
valor deseado para dicha situacin
v aadir predicados adicionales para manejar los nulos (por ejemplo, una
restriccin de comprobacin en columnas sin posibilidad de nulos dara:
check (c1*c2 is not null and c1*c2>5000)
El resultado de una operacin decimal no debe tener una precisin mayor que 31.
El resultado de una suma, resta y multiplicacin decimal se obtiene de un
resultado temporal que puede tener una precisin mayor que 31. Si la precisin del
resultado temporal no es mayor que 31, el resultado final es el mismo que el
resultado temporal.
Informacin relacionada:
v Sentencia CREATE FUNCTION (Escalar de SQL, tabla o fila) en Consulta de
SQL, Volumen 2
v Asignaciones y comparaciones en la pgina 117
v Seleccin completa en la pgina 569
v Reglas para la conversin de series en la pgina 133
v Consultas de SQL en la pgina 529
Duraciones
Una duracin es un nmero que representa un intervalo de tiempo. Existen cuatro
tipos de duraciones:
Duraciones etiquetadas:
duracin-etiquetada:
funcin YEAR
(expresin) YEARS
constante MONTH
nombre-columna MONTHS
variable-lengpral DAY
DAYS
HOUR
HOURS
MINUTE
MINUTES
SECOND
SECONDS
MICROSECOND
MICROSECONDS
Una duracin etiquetada representa una unidad de tiempo especfica expresada por
un nmero (que puede ser el resultado de una expresin) seguido de una de las
siete palabras clave de duracin: YEARS, MONTHS, DAYS, HOURS, MINUTES,
SECONDS o MICROSECONDS. (Tambin se acepta la forma singular de estas
palabras clave: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND y
MICROSECOND.) El nmero especificado se convierte como si se asignara a un
nmero DECIMAL(15,0). Slo puede utilizarse una duracin etiquetada como
operando de un operador aritmtico en el que el otro operando sea un valor de
tipo de datos DATE, TIME o TIMESTAMP. As pues, la expresin HIREDATE + 2
MONTHS + 14 DAYS es vlida, mientras que la expresin HIREDATE + (2
MONTHS + 14 DAYS) no lo es. En ambas expresiones, las duraciones etiquetadas
son 2 MONTHS (meses) y 14 DAYS (das).
Las normas para la utilizacin del operador de resta con valores de fecha y hora
no son las mismas que para la suma, porque un valor de fecha y hora no puede
restarse de una duracin, y porque la operacin de restar dos valores de fecha y
hora no es la misma que la operacin de restar una duracin de un valor de fecha
y hora. A continuacin se muestran las normas especficas que rigen la utilizacin
del operador de resta con valores de fecha y hora.
v El primer operando es una fecha, el segundo operando debe ser una fecha, una
duracin de fecha, una representacin de una fecha en forma de serie o una
duracin etiquetada de YEARS, MONTHS o DAYS.
v Si el segundo operando es una fecha, el primer operando debe ser una fecha o
una representacin de una fecha en forma de serie.
v Si el primer operando es una hora, el segundo operando debe ser una hora, una
duracin de hora, una representacin de una hora en forma de serie o una
duracin etiquetada de HOURS, MINUTES o SECONDS.
v Si el segundo operando es una hora, el primer operando debe ser una hora o
una representacin de una hora en forma de serie.
v Si el primer operando es una fecha y hora, el segundo operando debe ser una
fecha y hora, una representacin de una fecha y hora en forma de serie o una
duracin.
v Si el segundo operando es una fecha y hora, el primer operando debe ser una
fecha y hora o una representacin de una fecha y hora en forma de serie.
v Ningn operando del operador de resta puede ser un marcador de parmetros.
mayor o igual que DATE2, DATE2 se resta de DATE1. Si DATE1 es menor que
DATE2, DATE1 se resta de DATE2 y el signo del resultado se convierte en
negativo. La descripcin siguiente clarifica los pasos que intervienen en el
resultado de la operacin = DATE1 DATE2.
Si DAY(DATE2) <= DAY(DATE1)
entonces DAY(RESULT) = DAY(DATE1) DAY(DATE2).
Si DAY(DATE2) > DAY(DATE1)
entonces DAY(RESULT) = N + DAY(DATE1)
DAY(DATE2)
donde N = el ltimo da de MONTH(DATE2).
MONTH(DATE2) se aumenta en 1.
Si MONTH(DATE2) <= MONTH(DATE1)
entonces MONTH(RESULT) = MONTH(DATE1)
- MONTH(DATE2).
Si MONTH(DATE2) > MONTH(DATE1)
entonces MONTH(RESULT) = 12 + MONTH(DATE1)
- MONTH(DATE2).
YEAR(DATE2) se aumenta en 1.
YEAR(RESULT) = YEAR(DATE1) YEAR(DATE2).
Incremento y disminucin de las fechas: Al aadir o restar una duracin a una fecha
se obtiene como resultado tambin una fecha. (En esta operacin, un mes equivale
a una pgina de un calendario. La adicin de meses a una fecha es como ir
pasando pginas a un calendario, empezando por la pgina en la que aparece la
fecha.) El resultado debe estar comprendido entre las fechas 1 de enero de 0001 y
31 de diciembre de 9999, ambos inclusive.
Del mismo modo, si se suma o resta una duracin de meses, solamente los meses,
y los aos si fuera necesario, se vern afectados. La parte de una fecha
correspondiente a los aos no se cambia a no ser que el resultado no fuera vlido
(31 de setiembre, por ejemplo). En este caso, el da se establece en el ltimo da del
mes y se define un indicador de aviso en la SQLCA para indicar el ajuste.
Cuando se suma una duracin de fecha positiva a una fecha, o una duracin de
fecha negativa se resta de una fecha, la fecha aumenta el nmero especificado de
aos, meses y das, en ese orden. As pues, DATE1 + X, donde X es un nmero
DECIMAL(8,0) positivo, equivale a la expresin:
DATE1 + YEAR(X) YEARS + MONTH(X) MONTHS + DAY(X) DAYS.
Cuando una duracin de fecha positiva se resta de una fecha, o bien se aade una
duracin de fecha negativa a una fecha, la fecha disminuye en el nmero das,
meses y aos especificados, en este orden. As pues, DATE1 X, donde X es un
nmero DECIMAL(8,0) positivo, equivale a la expresin:
DATE1 DAY(X) DAYS MONTH(X) MONTHS YEAR(X) YEARS.
Resta de los valores de horas: El resultado de restar una hora (HOUR2) de otra
(HOUR1) es una duracin que especifica el nmero de horas, minutos y segundos
entre las dos horas. El tipo de datos del resultado es DECIMAL(6,0).
Las duraciones de hora, tanto positivas como negativas, pueden tambin sumarse
y restarse a las horas. El resultado es una hora que se ha incrementado o
disminuido en el nmero especificado de horas, minutos y segundos, por ese
orden.TIME1 + X, donde X es un nmero DECIMAL(6,0) equivalente a la
expresin:
TIME1 + HOUR(X) HOURS + MINUTE(X) MINUTES + SECOND(X) SECONDS
Nota: Aunque la hora 24:00:00 se acepta como una hora vlida, no se devuelve
nunca como resultado de una suma o resta de horas, ni siquiera aunque el
operando de duracin sea cero (por ejemplo, hora(24:00:00)0 segundos =
00:00:00).
Si TS1 es mayor o igual que TS2, TS2 se resta de TS1. Si TS1 es menor que TS2,
TS1 se resta de TS2 y el signo del resultado se convierte en negativo. La
descripcin siguiente clarifica los pasos que intervienen en el resultado de la
operacin = TS1 TS2:
Si MICROSECOND(TS2) <= MICROSECOND(TS1)
entonces MICROSECOND(RESULT) = MICROSECOND(TS1)
MICROSECOND(TS2).
Si MICROSECOND(TS2) > MICROSECOND(TS1)
entonces MICROSECOND(RESULT) =
1000000 +
MICROSECOND(TS1) MICROSECOND(TS2)
y SECOND(TS2) se aumenta en 1.
Expresiones CASE
expresin-case:
ELSE NULL
CASE clusula-searched-when END
clusula-simple-when ELSE expresin-resultado
clusula-searched-when:
clusula-simple-when:
Si la expresin CASE est en una clusula VALUES, un predicado IN, una clusula
GROUP BY o en una clusula ORDER BY, la condicin-bsqueda de una
clusula-searched-when no puede ser un predicado cuantificado, un predicado IN
que hace uso de una seleccin completa ni un predicado EXISTS (SQLSTATE
42625).
Una expresin-resultado es una expresin que sigue a las palabras clave THEN o
ELSE. Debe haber, como mnimo, una expresin-resultado en la expresin CASE
(NULL no puede especificarse para cada case) (SQLSTATE 42625). Todas las
expresiones-resultado deben tener tipos de datos compatibles (SQLSTATE 42804).
Ejemplos:
SELECT LASTNAME,
CASE LASTNAME
WHEN Haas THEN Presidente
...
Informacin relacionada:
v Reglas para los tipos de datos del resultado en la pgina 129
Especificaciones CAST
especificacin-cast:
)
(1)
SCOPE nombre-tabla-tipo
nombre-vista-tipo
Notas:
1 La clusula SCOPE slo se aplica al tipo de datos REF.
v Para un operando cast que sea una expresin, los tipos de datos de destino a
los que se da soporte dependen del tipo de datos del operando cast (tipo de
datos fuente).
v Para un operando cast que sea la palabra clave NULL se puede utilizar
cualquier tipo de datos existente.
v Para un operando cast que sea un marcador de parmetros, el tipo de datos
de destino puede ser cualquier tipo de datos existente. Si el tipo de datos es
un tipo diferenciado definido por el usuario, la aplicacin que hace uso del
marcador de parmetros utilizar el tipo de datos fuente del tipo
diferenciado definido por el usuario. Si el tipo de datos es un tipo
estructurado definido por el usuario, la aplicacin que hace uso del
marcador de parmetros utilizar el tipo de parmetro de entrada de la
funcin de transformacin TO de SQL para el tipo estructurado definido por
el usuario.
SCOPE
Cuando el tipo de datos es un tipo de referencia, puede definirse un mbito
que identifique la tabla de destino o la vista de destino de la referencia.
nombre-tabla-tipo
El nombre de una tabla con tipo. Ya debe existir la tabla (SQLSTATE
42704). La conversin debe hacerse hacia el tipo-datos REF(S), donde S es el
tipo de nombre-tabla-tipo (SQLSTATE 428DM).
nombre-vista-tipo
El nombre de una vista con tipo. La vista debe existir o tener el mismo
nombre que la vista a crear que incluye la conversin del tipo de datos
como parte de la definicin de la vista (SQLSTATE 42704). La conversin
debe hacerse hacia el tipo-datos REF(S), donde S es el tipo de
nombre-vista-tipo (SQLSTATE 428DM).
Ejemplos:
v A una aplicacin slo le interesa la parte entera de SALARY (definido como
decimal (9,2)) de la tabla EMPLOYEE. Se podra preparar la siguiente consulta,
con el nmero de empleado y el valor del entero de SALARY.
SELECT EMPNO, CAST(SALARY AS INTEGER) FROM EMPLOYEE
v Supongamos que hay un tipo diferenciado denominado T_AGE que se define
como SMALLINT y se utiliza para crear la columna AGE en la tabla
PERSONNEL. Supongamos tambin que existe tambin un tipo diferenciado
denominado R_YEAR que est definido en INTEGER y que se utiliza para crear
la columna RETIRE_YEAR en la tabla PERSONNEL. Se podra preparar la
siguiente sentencia de actualizacin.
UPDATE PERSONNEL SET RETIRE_YEAR =?
WHERE AGE = CAST( ? AS
T_AGE)
El primer parmetro es un marcador de parmetros no tipificado que tendra un
tipo de datos de R_YEAR, si bien la aplicacin utilizar un entero para este
marcador de parmetros. Esto no necesita la especificacin explcita de CAST
porque se trata de una asignacin.
Informacin relacionada:
v Conversiones entre tipos de datos en la pgina 110
v CHAR en la pgina 308
v INTEGER en la pgina 366
v Especificaciones XMLCAST en la pgina 207
Especificaciones XMLCAST
especificacin-xmlcast:
Ejemplos:
v Crear un valor XML nulo.
XMLCAST(NULL AS XML)
v Convertir un valor extrado de una expresin XMLQUERY en un INTEGER:
XMLCAST(XMLQUERY($m/PRODUCT/QUANTITY
PASSING BY REF xmlcol AS "m" RETURNING SEQUENCE) AS INTEGER)
v Convertir un valor extrado de una expresin XMLQUERY en una serie de
caracteres de longitud variable:
XMLCAST(XMLQUERY($m/PRODUCT/ADD-TIMESTAMP
PASSING BY REF xmlcol AS "m" RETURNING SEQUENCE) AS VARCHAR(30))
v Convertir un valor extrado de una subconsulta escalar SQL en un valor XML.
XMLCAST((SELECT quantity FROM product AS p
WHERE p.id = 1077) AS XML)
Informacin relacionada:
v Conversiones entre tipos de datos en la pgina 110
v Especificaciones CAST en la pgina 204
Operaciones de desreferencia
operacin-desreferencia:
expresin
Ejemplos:
v Suponga que existe una tabla EMPLOYEE que contiene una columna
denominada DEPTREF, que es un tipo de referencia con mbito para una tabla
con tipo basada en un tipo que incluye el atributo DEPTNAME. Los valores de
DEPTREF de la tabla EMPLOYEE deben corresponderse con los valores de la
columna de OID de la tabla de destino de la columna DEPTREF.
SELECT EMPNO, DEPTREF>DEPTNAME
FROM EMPLOYEE
v Utilizando las mismas tablas que en el ejemplo anterior, utilice una operacin de
desreferencia para invocar un mtodo llamado BUDGET, con la fila destino
como parmetro sujeto y '1997' como parmetro adicional.
SELECT EMPNO, DEPTREF>BUDGET(1997) AS DEPTBUDGET97
FROM EMPLOYEE
Informacin relacionada:
v Sentencia CREATE TABLE en Consulta de SQL, Volumen 2
Funciones OLAP
especificacin-OLAP:
especificacin-ordenamiento
especificacin-numeracin
especificacin-agregacin
especificacin-ordenamiento:
RANK () OVER (
DENSE_RANK () clusula-particin-ventana
clusula-orden-ventana )
especificacin-numeracin:
ROW_NUMBER () OVER (
clusula-particin-ventana
)
clusula-orden-ventana
especificacin-agregacin:
funcin-columna OVER (
clusula-particin-ventana
)
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
clusula-orden-ventana
clusula-grupo-agregacin-ventana
clusula-particin-ventana:
PARTITION BY expresin-particionamiento
clusula-orden-ventana:
opcin asc:
NULLS FIRST
opcin desc:
NULLS FIRST
DESC
NULLS LAST
clusula-grupo-agregacin-ventana:
ROWS inicio-grupo
RANGE entre-grupo
final-grupo
inicio-grupo:
UNBOUNDED PRECEDING
constante-sin-signo PRECEDING
CURRENT ROW
entre-grupo:
lmite-grupo1:
UNBOUNDED PRECEDING
constante-sin-signo PRECEDING
constante-sin-signo FOLLOWING
CURRENT ROW
lmite-grupo2:
UNBOUNDED FOLLOWING
constante-sin-signo PRECEDING
constante-sin-signo FOLLOWING
CURRENT ROW
final-grupo:
UNBOUNDED FOLLOWING
constante-sin-signo FOLLOWING
Cuando se utiliza una funcin OLAP, se especifica una ventana que define las filas
a las que se aplica la funcin, y en qu orden. Cuando la funcin OLAP se utiliza
con una funcin de columna, las filas pertinentes se pueden definir con ms
detalle, con respecto a la fila actual, en forma de rango o indicando un nmero de
filas que preceden y siguen a la fila actual. Por ejemplo, dentro de una divisin por
meses, se puede calcular un valor promedio respecto a los tres meses anteriores.
expresin-clave-clasificacin
Una expresin utilizada para definir la ordenacin de las filas dentro de una
particin de ventana. Cada nombre de columna referenciado en una
expresin-clave-clasificacin debe identificar, sin ambigedades, una columna del
conjunto resultante de la subseleccin, incluida la funcin OLAP (SQLSTATE
42702 42703). Una expresin-clave-clasificacin no puede incluir una seleccin
completa escalar. ni una expresin XMLQUERY ni XMLEXISTS (SQLSTATE
42822) ni cualquier funcin ni consulta que no sea determinista o que tenga
una accin externa (SQLSTATE 42845). Esta clusula es necesaria para las
funciones RANK y DENSE_RANK (SQLSTATE 42601).
ASC
Utiliza los valores de la expresin-clave-clasificacin en orden ascendente.
DESC
Utiliza los valores de la expresin-clave-clasificacin en orden descendente.
NULLS FIRST
La ordenacin de la ventana tiene en cuenta los valores nulos antes de todos
los valores no nulos en el orden de clasificacin.
NULLS LAST
La ordenacin de la ventana tiene en cuenta los valores nulos despus de todos
los valores no nulos en el orden de clasificacin.
ORDER OF diseador-tabla
Especifica que debe aplicarse el mismo orden utilizado en diseador-tabla a la
tabla resultante de la subseleccin. Debe haber una referencia de tabla que se
corresponda con diseador-tabla en la clusula FROM de la subseleccin que
especifica esta clusula (SQLSTATE 42703). La subseleccin (o seleccin
completa) correspondiente al diseador-tabla especificado debe incluir una
clusula ORDER BY que dependa de los datos (SQLSTATE 428FI). El orden
que se aplica es el mismo que si las columnas de la clusula ORDER BY de la
subseleccin anidada (o seleccin completa) se incluyeran en la subseleccin
exterior (o seleccin completa) y estas columnas se especificaran en lugar de la
clusula ORDER OF.
clusula-grupo-agregacin-ventana
El grupo de agregacin de una fila R es un conjunto de filas definidas en
relacin a R (en la ordenacin de las filas de la particin de R). Esta clusula
especifica el grupo de agregacin. Si no se especifica esta clusula, el valor por
omisin es el mismo que RANGE BETWEEN UNBOUNDED PRECEDING
AND CURRENT ROW, lo que proporciona un resultado de agregacin
acumulativo.
Si se especifica una clusula-orden-ventana, el comportamiento por omisin es
diferente cuando no se especifica clusula-grupo-agregacin-ventana. El grupo
de agregacin de ventana consta de todas las filas de la particin R que
preceden a R o que son iguales a R en la clasificacin de ventanas de la
particin de ventanas definida por la clusula-orden-ventana.
ROWS
Indica que el grupo de agregacin se define mediante el contaje de filas.
RANGE
Indica que el grupo de agregacin se define mediante un valor de
desplazamiento con respecto a una clave de clasificacin.
inicio-grupo
Especifica el punto de inicio del grupo de agregacin. El final del grupo de
Ejemplos:
v Este ejemplo muestra la ordenacin de los empleados, dispuestos por apellidos,
de acuerdo con un salario total (salario ms prima) que sea mayor que $30.000.
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE WHERE SALARY+BONUS > 30000
ORDER BY LASTNAME
Observe que si el resultado debe estar ordenado de acuerdo con la escala de
salarios, debe sustituir ORDER BY LASTNAME por:
ORDER BY RANK_SALARY
o
ORDER BY RANK() OVER (ORDER BY SALARY+BONUS DESC)
v Este ejemplo ordena los departamentos de acuerdo con su salario total medio.
SELECT WORKDEPT, AVG(SALARY+BONUS) AS AVG_TOTAL_SALARY,
RANK() OVER (ORDER BY AVG(SALARY+BONUS) DESC) AS RANK_AVG_SAL
FROM EMPLOYEE
GROUP BY WORKDEPT
ORDER BY RANK_AVG_SAL
v Este ejemplo ordena los empleados de un departamento de acuerdo con su nivel
de formacin. Si varios empleados de un departamento tienen el mismo nivel,
ello no debe suponer un aumento del nivel siguiente.
SELECT WORKDEPT, EMPNO, LASTNAME, FIRSTNME, EDLEVEL,
DENSE_RANK() OVER
(PARTITION BY WORKDEPT ORDER BY EDLEVEL DESC) AS RANK_EDLEVEL
FROM EMPLOYEE
ORDER BY WORKDEPT, LASTNAME
v Este ejemplo proporciona nmeros a las filas del resultado de una consulta.
SELECT ROW_NUMBER() OVER (ORDER BY WORKDEPT, LASTNAME) AS NUMBER,
LASTNAME, SALARY
FROM EMPLOYEE
ORDER BY WORKDEPT, LASTNAME
v Este ejemplo lista los cinco empleados con mayores ingresos.
SELECT EMPNO, LASTNAME, FIRSTNME, TOTAL_SALARY, RANK_SALARY
FROM (SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE) AS RANKED_EMPLOYEE
WHERE RANK_SALARY < 6
ORDER BY RANK_SALARY
Informacin relacionada:
v Identificadores en la pgina 65
Invocacin de mtodos
invocacin-mtodo:
expresin-sujeto..nombre-mtodo
( )
,
expresin
y
((a..b)..c) + ((x..y)..z)
Si un mtodo no tiene ningn otro parmetro que no sea su sujeto, ste se puede
invocar con o sin parntesis. Por ejemplo, las dos expresiones siguientes son
equivalentes:
point1..x
point1..x()
Nota: Los mtodos de los tipos definidos con WITH FUNCTION ACCESS tambin
se pueden invocar utilizando la notacin normal de funciones. La resolucin
de la funcin considera como aceptables todas las funciones, as como los
mtodos con acceso a funcin. Sin embargo, las funciones no se pueden
invocar utilizando la invocacin de mtodo. La resolucin del mtodo
considera aceptables todos los mtodos, pero no las funciones. Si la
resolucin no proporciona una funcin o mtodo apropiado, se produce un
error (SQLSTATE 42884).
Ejemplo:
v Este ejemplo utiliza el operador .. para invocar un mtodo llamado AREA. Se
supone que existe una tabla llamada RINGS, con una columna CIRCLE_COL del
tipo estructurado CIRCLE. Se supone tambin que el mtodo AREA se ha
definido previamente para el tipo CIRCLE como AREA() RETURNS DOUBLE.
SELECT CIRCLE_COL..AREA() FROM RINGS
Informacin relacionada:
v Mtodos en la pgina 181
Ejemplo:
v En este ejemplo, todas las instancias de objetos de la columna CIRCLE_COL
estn definidas con el tipo dinmico COLOREDCIRCLE para una aplicacin. Se
utiliza la consulta siguiente para invocar el mtodo RGB para tales objetos. Se
supone que existe una tabla llamada RINGS, con una columna CIRCLE_COL del
tipo estructurado CIRCLE. Se supone tambin que COLOREDCIRCLE es un
subtipo de CIRCLE y que el mtodo RGB se ha definido previamente para
COLOREDCIRCLE como RGB() RETURNS DOUBLE.
SELECT TREAT (CIRCLE_COL AS COLOREDCIRCLE)..RGB()
FROM RINGS
Durante la ejecucin, si hay instancias del tipo dinmico CIRCLE, se produce un
error (SQLSTATE 0D000). Este error se puede evitar utilizando el predicado
TYPE en una expresin CASE, del modo siguiente:
SELECT (CASE
WHEN CIRCLE_COL IS OF (COLOREDCIRCLE)
THEN TREAT (CIRCLE_COL AS COLOREDCIRCLE)..RGB()
ELSE NULL
END)
FROM RINGS
Informacin relacionada:
v Predicado TYPE en la pgina 242
Referencia de secuencia
referencia-secuencia:
expresin-nextval
expresin-prevval
expresin-nextval:
expresin-prevval:
Notas:
v Se genera un valor nuevo para una secuencia cuando la expresin NEXT VALUE
especifica el nombre de dicha secuencia. Sin embargo, si existen mltiples
instancias de una expresin NEXT VALUE que especifican el mismo nombre de
secuencia en una consulta, el contador para la secuencia se incrementa slo una
vez para cada fila del resultado y todas las instancias de NEXT VALUE
devuelven el mismo valor para una fila del resultado.
v Se puede utilizar el mismo nmero de secuencia como valor de clave de
unicidad en dos tablas independientes haciendo referencia al nmero de
secuencia con una expresin NEXT VALUE para la primera fila (esto genera el
valor de secuencia) y una expresin PREVIOUS VALUE para las dems filas (la
instancia de PREVIOUS VALUE hace referencia al valor de secuencia generado
ms recientemente en la sesin actual), tal como se muestra a continuacin:
INSERT INTO order(orderno, cutno)
VALUES (NEXT VALUE FOR order_seq, 123456);
La sentencia SELECT para la que la SELECT externa est combinada con otra
sentencia SELECT utilizando el operador establecido UNION, INTERSECT o
EXCEPT
Una expresin de tabla anidada
La lista de parmetros de una funcin de tabla
La clusula WHERE de la sentencia SELECT ms externa o una sentencia
DELETE o UPDATE
La clusula ORDER BY de la sentencia SELECT ms externa
La clusula-select de la seleccin completa (fullselect) de una expresin, en la
clusula SET de una sentencia UPDATE
La sentencia IF, WHILE, DO ... UNTIL o CASE de una rutina SQL
v Cuando se genera un valor para una secuencia, se consume dicho valor y, la
siguiente vez que se solicita un valor, se genera un valor nuevo. Esto es vlido
incluso cuando la sentencia que contiene la expresin NEXT VALUE falla o se
retrotrae.
Si una sentencia INSERT incluye una expresin NEXT VALUE en la lista
VALUES para la columna y si se produce un error en algn punto durante la
ejecucin de INSERT (puede ser un problema al generar el siguiente valor de
secuencia o un problema con el valor de otra columna), se produce una
anomala de insercin (SQLSTATE 23505) y se considera que el valor generado
para la secuencia se ha consumido. En algunos casos, al volver a emitir la misma
sentencia INSERT se puede obtener un resultado satisfactorio.
Por ejemplo, considere un error que es el resultado de la existencia de un ndice
de unicidad para la columna para la que se ha utilizado NEXT VALUE y el
valor de secuencia generado ya existe en el ndice. Es posible que el siguiente
valor generado para la secuencia sea un valor que no existe en el ndice y, por
consiguiente, el INSERT subsiguiente dar un resultado satisfactorio.
v Si al generar un valor para un secuencia, se excede el valor mximo para la
secuencia (o el valor mnimo para una secuencia descendente) y no se permiten
ciclos, se producir un error (SQLSTATE 23522). En este caso, el usuario puede
modificar (ALTER) la secuencia para ampliar el rango de valores aceptables,
habilitar ciclos para la secuencia o eliminar (DROP) la secuencia y crear
(CREATE) una nueva con un tipo de datos diferente que tenga un mayor rango
de valores.
Por ejemplo, una secuencia puede haberse definido con un tipo de datos de
SMALLINT y, finalmente, la secuencia se queda sin valores asignables. Elimine
(DROP) y vuelva a crear la secuencia con la nueva definicin para volver a
definir la secuencia como INTEGER.
v Una referencia a una expresin NEXT VALUE en la sentencia de seleccin
(select) de un cursor hace referencia a un valor que se genera para una fila de la
tabla resultante. Se genera un valor de secuencia para una expresin NEXT
VALUE para cada fila que se busca desde la base de datos. Si se realiza el
bloqueo en el cliente, puede que los valores se hayan generado en el servidor
antes del proceso de la sentencia FETCH. Esto puede producirse cuando existe
bloqueo de las filas de la tabla resultante. Si la aplicacin cliente no capta
(FETCH) explcitamente todas las filas que la base de datos ha materializado, la
aplicacin no ver los resultados de todos los valores de secuencia generados
(para las filas materializadas que no se ha devuelto).
v Una referencia a una expresin PREVIOUS VALUE de la sentencia de seleccin
(select) de un cursor hace referencia a un valor que se ha generado para la
secuencia especificada antes de la apertura del cursor. Sin embargo, el cierre del
cursor puede afectar a los valores devueltos por PREVIOUS VALUE para la
secuencia especificada en las sentencias futuras o incluso para la misma
Ejemplos:
Supongamos que existe una tabla llamada order y que se crea una secuencia
llamada order_seq del modo siguiente:
CREATE SEQUENCE order_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO CYCLE
CACHE 24
o
UPDATE order
SET orderno = NEXT VALUE FOR order_seq
WHERE custno = 123456;
o
VALUES NEXT VALUE FOR order_seq INTO :hv_seq;
Predicados
Predicados
Un predicado especifica una condicin que es cierta, falsa o desconocida acerca de
una fila o un grupo determinado.
Una seleccin completa es una forma de sentencia SELECT que, cuando se utiliza
en un predicado, tambin se denomina una subconsulta.
Informacin relacionada:
v Seleccin completa en la pgina 569
v Reglas para la conversin de series en la pgina 133
Condiciones de bsqueda
condicin-bsqueda:
predicado
NOT SELECTIVITY constante-numrica
(condicin-bsqueda)
AND predicado
OR NOT SELECTIVITY constante-numrica
(condicin-bsqueda)
SELECTIVITY valor
La clusula SELECTIVITY se utiliza para indicar a DB2 qu porcentaje de
selectividad prevista corresponde al predicado. SELECTIVITY se puede
especificar slo cuando el predicado es un predicado definido por el usuario.
Un predicado definido por el usuario consta de una invocacin de funcin
definida por el usuario, en el contexto de una especificacin de predicado que
coincide con la existente en la clusula PREDICATES de CREATE FUNCTION.
Por ejemplo, si la funcin foo est definida con PREDICATES WHEN=1..., es
vlido utilizar SELECTIVITY de este modo:
SELECT *
FROM STORES
WHERE foo(parm,parm) = 1 SELECTIVITY 0.004
Se puede utilizar una funcin definida por el usuario (UDF) como predicado
definido por el usuario y, por tanto, puede permitir la utilizacin de ndices si:
v La especificacin de predicado est presente en la sentencia CREATE
FUNCTION
v la UDF se invoca en una clusula WHERE que se compara (sintcticamente)
de la misma manera que se especifica en la especificacin de predicado
v no existe ninguna negacin (operador NOT)
Ejemplos:
Sin embargo, como el resultado devuelto por CityRadius se utiliza como funcin
productora de rangos, el predicado definido por el usuario no podr utilizar la
extensin de ndice definida para la columna stores.loc. Por lo tanto, la UDF slo
utilizar el ndice definido en la columna customers.loc.
Informacin relacionada:
v Sentencia CREATE FUNCTION (Escalar externa) en Consulta de SQL, Volumen
2
Predicado bsico
expresin = expresin
(1)
<>
<
>
(1)
<=
(1)
>=
Notas:
1 Tambin se da soporte a los formatos siguientes de operadores de
comparacin en predicados bsicos y cuantificados: ^=, ^<, ^>, !=, !< y !>. En
las pginas de cdigos 437, 819 y 850, se da soporte a los formatos =, < y
>.
Para valores x e y:
Predicado Es verdadero si y slo si...
x=y x es igual a y
x <> y x es diferente de y
x<y x es menor que y
x>y x es mayor que y
x >= y x es mayor o igual que y
x <= y x es menor o igual que y
Ejemplos:
EMPNO=528671
SALARY < 20000
PRSTAFF <> :VAR1
SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE)
Predicado cuantificado
expresin1 = SOME (seleccin completa1)
(1) ANY
<> ALL
<
>
<=
>=
,
Notas:
1 Tambin se da soporte a los formatos siguientes de operadores de
comparacin en predicados bsicos y cuantificados: ^=, ^<, ^>, !=, !< y !>. En
las pginas de cdigos 437, 819 y 850, se da soporte a los formatos =, < y
>.
Ejemplos: Utilice las tablas siguientes al hacer referencia a los ejemplos siguientes.
Figura 13.
Ejemplo 1
SELECT COLA FROM TBLAB
WHERE COLA = ANY(SELECT COLX FROM TBLXY)
Ejemplo 2
SELECT COLA FROM TBLAB
WHERE COLA > ANY(SELECT COLX FROM TBLXY)
Ejemplo 3
SELECT COLA FROM TBLAB
WHERE COLA > ALL(SELECT COLX FROM TBLXY)
Ejemplo 4
SELECT COLA FROM TBLAB
WHERE COLA > ALL(SELECT COLX FROM TBLXY
WHERE COLX<0)
Ejemplo 5
SELECT * FROM TBLAB
WHERE (COLA,COLB+10) = SOME (SELECT COLX, COLY FROM TBLXY)
Ejemplo 6
SELECT * FROM TBLAB
WHERE (COLA,COLB) = ANY (SELECT COLX,COLY-10 FROM TBLXY)
Predicado BETWEEN
expresin BETWEEN expresin AND expresin
NOT
El predicado BETWEEN:
valor1 BETWEEN valor2 AND valor3
El predicado BETWEEN:
valor1 NOT BETWEEN valor2 AND valor3
El primer operando (expresin) no puede incluir ninguna funcin que sea variante
o que tenga una accin externa (SQLSTATE 426804).
Ejemplos:
Ejemplo 1
EMPLOYEE.SALARY BETWEEN 20000 AND 40000
Ejemplo 2
SALARY NOT BETWEEN 20000 + :HV1 AND 40000
Suponiendo que :HV1 es 5000, da como resultado todos los salarios que son
inferiores a 25.000 dlares y superiores a 40.000.
Predicado EXISTS
EXISTS (seleccin completa)
Ejemplo:
EXISTS (SELECT * FROM TEMPL WHERE SALARY < 10000)
Predicado IN
expresin1 IN (seleccin completa1)
NOT ,
( expresin2 )
expresin2
,
es equivalente a:
expresin = ANY (seleccin completa)
Los valores para las expresiones del predicado IN (incluyendo las columnas
correspondientes de una seleccin completa)pueden tener pginas de cdigos
diferentes. Si se precisa realizar una conversin, la pgina de cdigos se determina
aplicando las reglas para las conversiones de series a la lista IN primero y,
posteriormente, al predicado, utilizando la pgina de cdigos derivada para la lista
IN como segundo operando.
Ejemplos:
las dos variables del lenguaje principal se convertirn a la pgina de cdigos 850,
en base a las reglas para las conversiones de series.
Informacin relacionada:
v Reglas para los tipos de datos del resultado en la pgina 129
v Reglas para la conversin de series en la pgina 133
Predicado LIKE
expresin-coincidencia LIKE expresin-patrn
NOT
ESCAPE expresin-escape
Ninguna de las expresiones puede tener un tipo diferenciado. Sin embargo, pueden
ser una funcin que convierta un tipo diferenciado en su tipo fuente.
expresin-coincidencia
Una expresin que especifica la serie que se debe examinar para ver si cumple
con un determinado patrn de caracteres.
La expresin se puede especificar mediante:
v Una constante
v Un registro especial
v Una variable del lenguaje principal (incluida una variable localizadora o una
variable de referencia de archivo)
v Una funcin escalar
v Un localizador de objeto grande
v Un nombre de columna
v Una expresin que concatene cualquiera de las anteriores
expresin-patrn
Una expresin que especifica la serie que se debe comparar.
La expresin se puede especificar mediante:
v Una constante
v Un registro especial
v Una variable del lenguaje principal
v Una funcin escalar cuyos operandos seas cualquiera de los anteriores
v Una expresin que concatene cualquiera de las anteriores
v Un parmetro de procedimiento SQL
con las siguientes restricciones:
v Ningn elemento de la expresin puede ser del tipo LONG VARCHAR,
CLOB, LONG VARGRAPHIC o DBCLOB. Adems, no puede tratarse de una
variable de referencia de archivo BLOB.
v La longitud real de expresin-patrn no puede superar los 32.672 bytes.
Una descripcin sencilla del uso del predicado LIKE es que el patrn se utilice
para especificar los criterios de cumplimiento correspondientes a los valores de
expresin-coincidencia, donde:
v El carcter de subrayado (_) representa cualquier carcter nico.
v El signo de porcentaje (%) representa una serie de cero o ms caracteres.
v Cualquier otro carcter se representa a s mismo.
Notas:
v El nmero de blancos finales es significativo tanto en expresin-coincidencia como
en expresin-patrn. Si las series no tienen la misma longitud, la serie ms corta
no se rellena con espacios en blanco. Por ejemplo, la expresin PADDED LIKE
PADDED no dara lugar a una coincidencia.
v Si el patrn especificado en un predicado LIKE es un marcador de parmetro y
se utiliza una variable del lenguaje principal de caracteres de longitud fija para
sustituir el marcador de parmetro, el valor especificado para la variable del
lenguaje principal debe tener la longitud correcta. Si no se especifica la longitud
correcta, la operacin select no devolver los resultados previstos.
Por ejemplo, si la variable del lenguaje principal se define como CHAR(10) y se
asigna el valor WYSE% a dicha variable del lenguaje principal, la variable del
lenguaje principal se rellena con blancos durante la asignacin. El patrn
utilizado es:
WYSE%
El gestor de bases de datos busca todos los valores que comienzan por WYSE y
terminan por cinco espacios en blanco. Si desea buscar slo valores que
comienzan por WYSE, asigne el valor WSYE%%%%%% a la variable del
lenguaje principal.
Ejemplos:
v Busque la serie SYSTEMS que aparezca en cualquier lugar dentro de la
columna PROJNAME de la tabla PROJECT.
SELECT PROJNAME FROM PROJECT
WHERE PROJECT.PROJNAME LIKE %SYSTEMS%
v Busque una serie cuyo primer carcter sea J que tenga exactamente dos
caracteres de longitud en la columna FIRSTNME de la tabla EMPLOYEE.
SELECT FIRSTNME FROM EMPLOYEE
WHERE EMPLOYEE.FIRSTNME LIKE J_
v Busque una serie de cualquier longitud, cuyo primer carcter sea J, en la
columna FIRSTNME de la tabla EMPLOYEE.
SELECT FIRSTNME FROM EMPLOYEE
WHERE EMPLOYEE.FIRSTNME LIKE J%
v En la tabla CORP_SERVERS, busque una serie en la columna LA_SERVERS que
coincida con el valor del registro especial CURRENT SERVER.
SELECT LA_SERVERS FROM CORP_SERVERS
WHERE CORP_SERVERS.LA_SERVERS LIKE CURRENT SERVER
v Recupere todas las series que comienzan por la secuencia de caracteres %_\ en
la columna A de la tabla T.
SELECT A FROM T
WHERE T.A LIKE \%\_\\% ESCAPE \
v Utilice la funcin escalar BLOB para obtener un carcter de escape de un byte
que sea compatible con los tipos de datos de patrn y de coincidencia (ambos
BLOB).
SELECT COLBLOB FROM TABLET
WHERE COLBLOB LIKE :var_patrn ESCAPE BLOB(XOE)
Predicado NULL
expresin IS NULL
NOT
Ejemplos:
PHONENO IS NULL
Predicado TYPE
expresin IS OF
NOT
IS
OF DYNAMIC TYPE
NOT
( nombre de tipo )
ONLY
Debe utilizarse la funcin DEREF siempre que el predicado TYPE tenga una
expresin que implique un valor de tipo de referencia. El tipo esttico de esta
forma de expresin es el tipo de destino de la referencia.
Ejemplos:
Existe una jerarqua de tablas que tiene una tabla raz EMPLOYEE de tipo EMP y
una subtabla MANAGER de tipo MGR. Otra tabla, ACTIVITIES, incluye una
columna denominada WHO_RESPONSIBLE que est definida como REF(EMP)
SCOPE EMPLOYEE. Lo siguiente es un predicado de tipo que devuelve un
resultado verdadero cuando una fila correspondiente a WHO_RESPONSIBLE es un
director (manager):
DEREF (WHO_RESPONSIBLE) IS OF (MGR)
Si una tabla contiene una columna EMPLOYEE de tipo EMP, EMPLOYEE puede
contener valores de tipo EMP y tambin valores de sus subtipos, tales como MGR.
El predicado siguiente
EMPL IS OF (MGR)
Informacin relacionada:
v DEREF en la pgina 340
Predicado VALIDATED
nombre-columna IS VALIDATED
El predicado VALIDATED slo est soportado en una base de datos Unicode con
una nica particin de base de datos.
Ejemplos:
Predicado XMLEXISTS
XMLEXISTS ( constante-expresin-xquery
)
,
BY REF
PASSING argumento-xquery
argumento-xquery:
expresin-variable-xquery AS identificador
BY REF
v Si el valor del resultado no es del tipo XML, debe ser convertible al tipo
de datos XML. Un valor nulo se convierte en una secuencia XML vaca.
El valor convertido se transforma en un valor-xml-entrada.
Cuando se evala la constante-expresin-xquery, se presenta un valor igual a
valor-xml-entrada a una variable XQuery y la clusula AS especifica un
nombre.
expresin-variable-xquery
Especifica una expresin SQL cuyo valor est disponible para la
expresin XQuery especificada por constante-expresin-xquery durante la
ejecucin. La expresin no puede contener una referencia de secuencia
(SQLSTATE 428F9) ni una funcin OLAP (SQLSTATE 42903).
AS identificador
Especifica que el valor generado por expresin-variable-xquery se pasar
a constante-expresin-xquery como una variable XQuery. El nombre de la
variable ser identificador. El signo de dlar inicial ($) que precede a los
nombres de variable en el lenguaje XQuery no se incluye en el
identificador. El identificador debe ser un nombre vlido de variable
XQuery y est restringido a un nombre XML NCName. El identificador
no debe tener ms de 128 bytes de longitud. Dos argumentos de la
misma clusula PASSING no pueden emplear el mismo identificador
(SQLSTATE 42711).
BY REF
Indica que un valor de entrada XML se debe pasar por referencia.
Cuando los valores XML se pasan por referencia, la evaluacin de
XQuery utiliza los rboles de nodos de entrada, si los hay,
directamente desde las expresiones de entrada especificadas, con lo que
se conservan todas las propiedades, incluyendo las identidades de
nodo originales y el orden del documento. Si dos argumentos pasan el
mismo valor XML, las comparaciones de identidad de nodo y orden de
documento en que intervienen algunos nodos incluidos entre los dos
argumentos de entrada pueden hacer referencia a nodos del mismo
rbol de nodos XML. Si no se especifica BY REF a continuacin de una
expresin-variable-xquery, los argumentos XML se pasan mediante el
mecanismo de pase por omisin que se proporciona mediante la
sintaxis situada tras la palabra clave PASSING. Esta opcin no puede
especificarse para valores que no son XML. Cuando se pasa un valor
que no es XML, el valor se convierte a XML; este proceso crea una
copia.
Notas:
Slo se puede utilizar el predicado XMLEXISTS en una base de datos Unicode con
una nica particin de base de datos (SQLSTATE 42997).
Ejemplo:
SELECT c.custid FROM customer c
WHERE XMLEXISTS($h/buyHistory/buyItem[ category = "fishing" ]
PASSING buyHistory AS "h")
Conceptos relacionados:
v XMLEXISTS predicate usage en Performance Guide
v XMLEXISTS predicate when querying XML data en XML Guide
Es posible que existan funciones adicionales, porque las funciones definidas por el
usuario pueden crearse en esquemas distintos, utilizando como fuente una de las
signaturas de funcin. Tambin es posible crear funciones externas en las
aplicaciones.
Conceptos relacionados:
v Funciones agregadas en la pgina 275
Informacin relacionada:
v Funciones en la pgina 172
v Subseleccin en la pgina 530
v Sentencia CREATE FUNCTION en Consulta de SQL, Volumen 2
Para ver las listas de las funciones incorporadas a las que se proporciona soporte
clasificadas por tipos, consulte las tablas siguientes:
v Funciones agregadas (Tabla 17 en la pgina 267)
v Funciones escalares de difusin (Tabla 18 en la pgina 268)
v Funciones escalares de particionamiento (Tabla 19 en la pgina 269)
v Funciones escalares de fecha y hora (Tabla 20 en la pgina 269)
v Funciones escalares numricas (Tabla 21 en la pgina 270)
v Funciones escalares de seguridad (Tabla 22 en la pgina 271)
v Funciones XML (Tabla 23 en la pgina 271)
v Funciones escalares de series (Tabla 24 en la pgina 272)
v Funciones escalares diversas (Tabla 25 en la pgina 274)
v VARCHAR,
SECLABEL_BY_NAME en la pgina DB2SECURITYLABEL
419 v GRAPHIC,
DB2SECURITYLABEL
v VARGRAPHIC,
DB2SECURITYLABEL
SYSIBM v CHAR, v serie con formato de Esta funcin escalar acepta una
DB2SECURITYLABEL serie de etiquetas de etiqueta de seguridad y devuelve una
serie que contiene todos los elementos
v VARCHAR, seguridad
de la etiqueta de seguridad.
SECLABEL_TO_CHAR en la pgina DB2SECURITYLABEL
420 v GRAPHIC,
DB2SECURITYLABEL
v VARGRAPHIC,
DB2SECURITYLABEL
1 Fracciones de un segundo
2 Segundos
TIMESTAMPDIFF en la pgina 447
4 Minutos
8 Horas
16 Das
32 Semanas
64 Meses
128 Trimestres
256 Aos
SYSIBM v igual que v igual que Esta funcin escalar devuelve una
VARCHAR_FORMAT VARCHAR_FORMAT representacin en el formato de
TO_CHAR en la pgina 449
caracteres de una indicacin de fecha
y hora.
SYSIBM v igual que v igual que Esta funcin escalar devuelve una
TO_DATE en la pgina 450 TIMESTAMP_FORMAT TIMESTAMP_FORMAT indicacin de la fecha y hora a partir
de una serie de caracteres.
SYSIBM v CHAR v CHAR Esta funcin escalar devuelve una
serie en la que uno o ms caracteres
v VARCHAR v VARCHAR se pueden haber convertido a otros
v CHAR, VARCHAR, v CHAR caracteres.
VARCHAR v VARCHAR
v VARCHAR, v CHAR
VARCHAR,
VARCHAR v VARCHAR
tipo-numrico
v TIMESTAMP,
DECIMAL(20,6)
v tipo-fechahora,
DOUBLE,
cdigo-duracin-
etiquetado
SYSIBM v tipo-numrico, v tipo-numrico-mx Multiplica dos operandos numricos.
*
tipo-numrico
SYSIBM v tipo-numrico, v tipo-numrico-mx Divide dos operandos numricos.
tipo-numrico
cualquier-tipo-integrado
Cualquier tipo de datos que no es un tipo diferenciado.
cualquier-tipo-estructurado
Cualquier tipo estructurado definido por el usuario ante la base de datos.
cualquier-tipo-comparable
Cualquier tipo que se puede comparar con otros tipos de argumento segn lo definido en Asignaciones y comparaciones en
la pgina 117.
cualquier-tipo-compatible-unin
Cualquier tipo que sea compatible con otros tipos de argumentos, segn lo definido en Reglas para los tipos de datos del
resultado en la pgina 129.
tipo-carcter Cualquiera de los siguientes tipos de series de caracteres: CHAR, VARCHAR, LONG VARCHAR, CLOB.
tipo-serie-compatible
Un tipo de serie que proviene de la misma agrupacin que el otro argumento (por ejemplo, si un argumento es un tipo-carcter
el otro tambin debe ser un tipo-carcter).
tipo-fechahora Cualquiera de los siguientes tipos de fecha y hora: DATE, TIME, TIMESTAMP.
tipo-numrico-exacto
Cualquiera de los tipos numricos exactos: SMALLINT, INTEGER, BIGINT, DECIMAL.
tipo-grfico Cualquiera de los siguientes tipos de series de caracteres de doble byte: GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC,
DBCLOB.
cdigo-duracin-etiquetado
Como tipo es SMALLINT. Si la funcin se invoca utilizando el formato infix del operador ms o menos, se pueden utilizar las
duraciones etiquetadas segn lo definido en Expresiones. Para una funcin fuente que no utiliza el carcter del operador
ms o menos como el nombre, se deben utilizar los siguientes valores para el argumento cdigo-duracin-etiquetado cuando
se invoca la funcin.
1 YEAR o YEARS
2 MONTH o MONTHS
3 DAY o DAYS
4 HOUR o HOURS
5 MINUTE o MINUTES
6 SECOND o SECONDS
7 MICROSECOND o MICROSECONDS
tipo-numrico-mx El tipo numrico mximo de los argumentos, donde mximo es el tipo-numrico que hay ms a la derecha.
tipo-serie-mx El tipo de serie mximo de los argumentos, donde mximo es el tipo-carcter o tipo-grfico que hay ms a la derecha. Si los
argumentos son BLOB, el tipo-serie-mx es BLOB.
tipo-numrico Cualquiera de los siguientes tipos numricos: SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE.
unidad-serie Especifica la unidad que se utilizar al determinar la longitud de una serie; puede ser OCTETS, CODEUNITS16 o
CODEUNITS32.
Funciones agregadas
El argumento de una funcin de columna es un conjunto de valores derivados de
una expresin. La expresin puede incluir columnas, pero no puede incluir una
seleccin-completa-escalar, otra funcin de columna ni una expresin XMLQUERY ni
XMLEXISTS (SQLSTATE 42607). El mbito del conjunto es un grupo o una tabla
resultante intermedia.
Informacin relacionada:
v Consultas de SQL en la pgina 529
AVG
ALL
AVG ( expresin )
DISTINCT
El esquema es SYSIBM.
Los valores del argumento deben ser nmeros (slo tipos internos) y su suma debe
estar dentro del rango del tipo de datos del resultado, excepto para un tipo de
datos de resultado decimal. Para los resultados decimales, la suma debe estar
dentro del rango soportado por un tipo de datos decimal que tenga una precisin
de 31 y una escala idntica a la escala de los valores del argumento. El resultado
puede ser nulo.
El tipo de datos del resultado es el mismo que el tipo de datos de los valores del
argumento, excepto que:
v El resultado es un entero grande si los valores del argumento son enteros
pequeos.
v El resultado es de coma flotante de precisin doble si los valores del argumento
son de coma flotante de precisin simple.
Ejemplos:
v Utilizando la tabla PROJECT, establezca la variable del lenguaje principal
AVERAGE (decimal(5,2)) en el nivel promedio de los trabajadores (PRSTAFF) de
los proyectos del departamento (DEPTNO) D11.
SELECT AVG(PRSTAFF)
INTO :AVERAGE
FROM PROJECT
WHERE DEPTNO = D11
Da como resultado que AVERAGE se establece en 4,25 (es decir 17/4) cuando se
utiliza la tabla de ejemplo.
v Utilizando la tabla PROJECT, establezca la variable del lenguaje principal
ANY_CALC (decimal(5,2)) en el promedio de cada valor de nivel exclusivo de
los trabajadores (PRSTAFF) de proyectos del departamento (DEPTNO) D11.
CORRELATION
CORRELATION ( expresin1 , expresin2 )
CORR
El esquema es SYSIBM.
El orden en el que los valores se agregan no est definido, pero cada resultado
intermedio debe estar dentro del rango del tipo de datos del resultado.
Ejemplo:
v Utilizando la tabla EMPLOYEE, establezca la variable del lenguaje principal
CORRLN (coma flotante de precisin doble) en la correlacin entre salario y
bonificacin para los empleados del departamento (WORKDEPT) A00.
SELECT CORRELATION(SALARY, BONUS)
INTO :CORRLN
FROM EMPLOYEE
WHERE WORKDEPT = A00
CORRLN se establece en 9,99853953399538E-001 aproximadamente cuando se
utiliza la tabla de ejemplo.
COUNT
ALL
COUNT ( expresin )
DISTINCT
*
El esquema es SYSIBM.
Ejemplos:
v Utilizando la tabla EMPLOYEE, establezca la variable del lenguaje principal
FEMALE (int) en el nmero de filas en que el valor de la columna SEX es F.
SELECT COUNT(*)
INTO :FEMALE
FROM EMPLOYEE
WHERE SEX = F
El resultado es que FEMALE se establece en 13 cuando se utiliza la tabla de
ejemplo.
v Utilizando la tabla EMPLOYEE, establezca la variable del lenguaje principal
FEMALE_IN_DEPT (int) en el nmero de departamentos (WORKDEPT) que
tienen como mnimo una mujer como miembro.
SELECT COUNT(DISTINCT WORKDEPT)
INTO :FEMALE_IN_DEPT
FROM EMPLOYEE
WHERE SEX = F
El resultado es que FEMALE_IN_DEPT se establece en 5 cuando se utiliza la
tabla de ejemplo. (Hay como mnimo una mujer en los departamentos A00, C01,
D11, D21 y E11.)
COUNT_BIG
ALL
COUNT_BIG ( expresin )
DISTINCT
*
El esquema es SYSIBM.
Ejemplos:
v Consulte los ejemplos de COUNT y sustituya COUNT_BIG por las apariciones
de COUNT. Los resultados son los mismos excepto por el tipo de datos del
resultado.
v Algunas aplicaciones pueden necesitar la utilizacin de COUNT pero necesitan
dar soporte a valores mayores que el entero ms grande. Esto se puede
conseguir mediante la utilizacin de funciones derivadas definidas por el
usuario y la definicin de la va de acceso de SQL. Las siguientes series de
sentencias muestran cmo crear una funcin derivada para dar soporte a
COUNT(*) basndose en COUNT_BIG y devolver un valor decimal con una
precisin de 15. La va de acceso de SQL se establece de manera que se utilice la
funcin derivada basada en COUNT_BIG en las sentencias subsiguientes, tal
como la consulta mostrada.
CREATE FUNCTION RICK.COUNT() RETURNS DECIMAL(15,0)
SOURCE SYSIBM.COUNT_BIG();
SET CURRENT FUNCTION PATH RICK, SYSTEM PATH;
SELECT COUNT(*) FROM EMPLOYEE;
Observe que la funcin derivada se define sin parmetros para dar soporte a
COUNT(*). Esto slo es efectivo si utiliza COUNT como nombre de la funcin y
no califica la funcin con el nombre de esquema cuando se utiliza. Para
conseguir el mismo efecto que COUNT(*) con un nombre distinto de COUNT,
invoque la funcin sin parmetros. Por lo tanto, si RICK.COUNT se ha definido
como RICK.MYCOUNT, la consulta se tendra que haber escrito de la siguiente
manera:
SELECT MYCOUNT() FROM EMPLOYEE;
Si la cuenta se efecta en una columna especfica, la funcin derivada debe
especificar el tipo de columna. Las sentencias siguientes crean una funcin
derivada que tomar cualquier columna CHAR como argumento y utilizar
COUNT_BIG para realizar el contaje.
CREATE FUNCTION RICK.COUNT(CHAR()) RETURNS DOUBLE
SOURCE SYSIBM.COUNT_BIG(CHAR());
SELECT COUNT(DISTINCT WORKDEPT) FROM EMPLOYEE;
COVARIANCE
COVARIANCE ( expresin1 , expresin2 )
COVAR
El esquema es SYSIBM.
El orden en el que los valores se agregan no est definido, pero cada resultado
intermedio debe estar dentro del rango del tipo de datos del resultado.
Ejemplo:
v Utilizando la tabla EMPLOYEE, establezca la variable del lenguaje principal
COVARNCE (coma flotante de precisin doble) en la covarianza entre salario y
bonificacin para los empleados del departamento (WORKDEPT) A00.
SELECT COVARIANCE(SALARY, BONUS)
INTO :COVARNCE
FROM EMPLOYEE
WHERE WORKDEPT = A00
GROUPING
GROUPING ( expresin )
El esquema es SYSIBM.
El argumento puede ser de cualquier tipo, pero debe ser un elemento de una
clusula GROUP BY.
Ejemplo:
La siguiente consulta:
SELECT SALES_DATE, SALES_PERSON,
SUM(SALES) AS UNITS_SOLD,
GROUPING(SALES_DATE) AS DATE_GROUP,
GROUPING(SALES_PERSON) AS SALES_GROUP
FROM SALES
GROUP BY CUBE (SALES_DATE, SALES_PERSON)
ORDER BY SALES_DATE, SALES_PERSON
da como resultado:
SALES_DATE SALES_PERSON UNITS_SOLD DATE_GROUP SALES_GROUP
---------- --------------- ----------- ----------- -----------
12/31/1995 GOUNOT 1 0 0
12/31/1995 LEE 6 0 0
12/31/1995 LUCCHESSI 1 0 0
12/31/1995 - 8 0 1
03/29/1996 GOUNOT 11 0 0
03/29/1996 LEE 12 0 0
03/29/1996 LUCCHESSI 4 0 0
03/29/1996 - 27 0 1
03/30/1996 GOUNOT 21 0 0
03/30/1996 LEE 21 0 0
03/30/1996 LUCCHESSI 4 0 0
03/30/1996 - 46 0 1
03/31/1996 GOUNOT 3 0 0
03/31/1996 LEE 27 0 0
03/31/1996 LUCCHESSI 1 0 0
03/31/1996 - 31 0 1
04/01/1996 GOUNOT 14 0 0
04/01/1996 LEE 25 0 0
04/01/1996 LUCCHESSI 4 0 0
04/01/1996 - 43 0 1
- GOUNOT 50 1 0
- LEE 91 1 0
- LUCCHESSI 14 1 0
- - 155 1 1
Informacin relacionada:
v Subseleccin en la pgina 530
MAX
ALL
MAX ( expresin )
DISTINCT
El esquema es SYSIBM.
Los valores del argumento pueden ser de cualquier tipo interno que no sea una
serie larga ni DATALINK.
El tipo de datos, la longitud y la pgina de cdigos del resultado son iguales que
el tipo de datos, la longitud y la pgina de cdigos de los valores del argumento.
El resultado se considera un valor derivado y puede ser nulo.
Ejemplos:
v Utilizando la tabla EMPLOYEE, establezca la variable del lenguaje principal
MAX_SALARY (decimal(7,2)) en el valor del salario mximo mensual
(SALARY/12).
SELECT MAX(SALARY) / 12
INTO :MAX_SALARY
FROM EMPLOYEE
MIN
ALL
MIN ( expresin )
DISTINCT
Los valores del argumento pueden ser de cualquier tipo interno que no sea una
serie larga ni DATALINK.
El tipo de datos, la longitud y la pgina de cdigos del resultado son iguales que
el tipo de datos, la longitud y la pgina de cdigos de los valores del argumento.
El resultado se considera un valor derivado y puede ser nulo.
Ejemplos:
v Utilizando la tabla EMPLOYEE, establezca la variable del lenguaje principal
COMM_SPREAD (decimal(7,2)) en la diferencia entre la comisin mxima y
mnima (COMM) de los miembros del departamento (WORKDEPT) D11.
SELECT MAX(COMM) - MIN(COMM)
INTO :COMM_SPREAD
FROM EMPLOYEE
WHERE WORKDEPT = D11
XMLAGG
XMLAGG
( expresin-XML )
,
ASC
ORDER BY clave-clasificacin
DESC
La funcin XMLAGG devuelve una secuencia XML que contiene un elemento por
cada valor que no sea nulo en un conjunto de valores XML.
expresin-XML
Especifica una expresin de tipo de datos XML.
ORDER BY
Especifica el orden de las filas del mismo conjunto de agrupacin que se
procesan en la agregacin. Si se omite la clusula ORDER BY o si sta no
puede distinguir el orden de los datos de la columna, las filas del mismo
conjunto de agrupacin se ordenan de forma arbitraria.
clave-clasificacin
La clave de clasificacin puede ser un nombre de columna o una
expresin-clave-clasificacin. Observe que si la clave de clasificacin es una
constante, no hace referencia a la posicin de la columna de salida(como en la
clusula ORDER BY normal) sino que es simplemente una constante, que no
implica ninguna clave de clasificacin.
Ejemplo:
SELECT XMLSERIALIZE(
CONTENT XMLELEMENT(
NAME "Department", XMLATTRIBUTES(
E.WORKDEPT AS "name"
),
XMLAGG(
XMLELEMENT(
NAME "emp", E.LASTNAME
)
ORDER BY E.LASTNAME
)
)
AS CLOB(110)
)
AS "dept_list"
FROM EMPLOYEE E
WHERE E.WORKDEPT IN (C01,E21)
GROUP BY WORKDEPT
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
Funciones de regresin
REGR_AVGX ( expresin1 , expresin2 )
REGR_AVGY
REGR_COUNT
REGR_INTERCEPT
REGR_ICPT
REGR_R2
REGR_SLOPE
REGR_SXX
REGR_SXY
REGR_SYY
El esquema es SYSIBM.
REGR_INTERCEPT(expresin1, expresin2) =
AVG(expresin1) - REGR_SLOPE(expresin1, expresin2) * AVG(expresin2)
REGR_R2(expresin1, expresin2) =
POWER(CORRELATION(expresin1, expresin2), 2) if VARIANCE(expresin1)>0
REGR_R2(expresin1, expresin2) = 1 if VARIANCE(expresion1)=0
REGR_AVGX(expresin1, expresin2) = AVG(expresin2)
REGR_AVGY(expresin1, expresin2) = AVG(expresin1)
REGR_SXX(expresin1, expresin2) =
REGR_COUNT(expresin1, expresin2) * VARIANCE(expresin2)
REGR_SYY(expresin1, expresin2) =
REGR_COUNT(expresin1, expresin2) * VARIANCE(expresin1)
REGR_SXY(expresin1, expresin2) =
REGR_COUNT(expresin1, expresin2) * COVARIANCE(expresin1, expresin2)
El orden en el que los valores se agregan no est definido, pero cada resultado
intermedio debe estar dentro del rango del tipo de datos del resultado.
Ejemplo:
STDDEV
ALL
STDDEV ( expresin )
DISTINCT
El esquema es SYSIBM.
El orden en el que los valores se agregan no est definido, pero cada resultado
intermedio debe estar dentro del rango del tipo de datos del resultado.
Ejemplo:
v Utilizando la tabla EMPLOYEE, establecer la variable de lenguaje principal en
DEV (coma flotante de doble precisin) en la desviacin estndar de los sueldos
de los empleados del departamento (WORKDEPT) A00.
SELECT STDDEV(SALARY)
INTO :DEV
FROM EMPLOYEE
WHERE WORKDEPT = A00
SUM
ALL
SUM ( expresin )
DISTINCT
El esquema es SYSIBM.
Los valores del argumento deben ser nmeros (slo tipos internos) y su suma debe
estar dentro del rango del tipo de datos del resultado.
El tipo de datos del resultado es el mismo que el tipo de datos de los valores del
argumento excepto que:
v El resultado es un entero grande si los valores del argumento son enteros
pequeos.
v El resultado es de coma flotante de precisin doble si los valores del argumento
son de coma flotante de precisin simple.
Ejemplo:
v Utilizando la tabla EMPLOYEE, establezca la variable del lenguaje principal
JOB_BONUS (decimal(9,2)) en el total de bonificaciones (BONUS) pagadas a los
conserjes (JOB=CLERK).
SELECT SUM(BONUS)
INTO :JOB_BONUS
FROM EMPLOYEE
WHERE JOB = CLERK
VARIANCE
ALL
VARIANCE ( expresin )
VAR DISTINCT
El esquema es SYSIBM.
Ejemplo:
v Utilizando la tabla EMPLOYEE, establezca la variable del lenguaje principal
VARNCE (coma flotante de precisin doble) en la varianza de los salarios para
los empleados del departamento (WORKDEPT) A00.
SELECT VARIANCE(SALARY)
INTO :VARNCE
FROM EMPLOYEE
WHERE WORKDEPT = A00
Funciones escalares
Una funcin escalar se puede utilizar siempre que se pueda utilizar una expresin.
Sin embargo, las restricciones que se aplican a la utilizacin de expresiones y a las
funciones de columna tambin se aplican cuando se utiliza una expresin o una
funcin de columna en una funcin escalar. Por ejemplo, el argumento de una
funcin escalar slo puede ser una funcin de columna si est permitida una
funcin de columna en el contexto en el que se utiliza la funcin escalar.
En una base de datos Unicode, todas las funciones escalares que acepten una serie
de caracteres o grfica aceptarn todos los tipos de serie para los que se soporte la
conversin.
ABS o ABSVAL
ABS ( expresin )
ABSVAL
El esquema es SYSIBM.
Esta funcin est disponible por primera vez en el FixPak 2 de la Versin 7.1. La
versin SYSFUN de la funcin ABS (o ABSVAL) contina estando disponible.
Ejemplo:
ABS(-51234)
ACOS
ACOS ( expresin )
Ejemplo:
Supongamos que la variable del lenguaje principal ACOSINE es una variable del
lenguaje principal DECIMAL(10,9) con un valor de 0,070737202.
SELECT ACOS(:ACOSINE)
FROM SYSIBM.SYSDUMMY1
ASCII
ASCII ( expresin )
El esquema es SYSFUN.
Devuelve el valor en cdigo ASCII del carcter que hay ms a la izquierda del
argumento como un entero.
ASIN
ASIN ( expresin )
ATAN
ATAN ( expresin )
ATAN2
ATAN2 ( expresin , expresin )
ATANH
ATANH ( expresin )
El esquema es SYSIBM.
BIGINT
BIGINT ( expresin-numrica )
expresin-caracteres
expresin-fechahora
El esquema es SYSIBM.
Ejemplos:
v En la tabla ORDERS_HISTORY, cuente el nmero de rdenes y devuelva el
resultado como un valor de entero superior.
SELECT BIGINT (COUNT_BIG(*))
FROM ORDERS_HISTORY
v Utilizando la tabla EMPLOYEE, seleccione la columna EMPNO en el formato de
enteros superiores para procesarla ms en la aplicacin.
SELECT BIGINT (EMPNO) FROM EMPLOYEE
BLOB
BLOB ( expresin-serie )
, entero
El esquema es SYSIBM.
Ejemplos
v Suponiendo una tabla con una columna BLOB denominada
TOPOGRAPHIC_MAP y una columna VARCHAR denominada MAP_NAME,
localice los mapas que contienen la serie Pellow Island y devuelva una sola
serie binaria con el nombre del mapa concatenado delante del mapa real.
SELECT BLOB(MAP_NAME CONCAT : ) CONCAT TOPOGRAPHIC_MAP
FROM ONTARIO_SERIES_4
WHERE TOPOGRAPHIC_MAP LIKE BLOB(%Pellow Island%)
CEILING o CEIL
CEILING ( expresin )
CEIL
Devuelve el valor del entero ms pequeo que es mayor o igual que el argumento.
El resultado puede ser nulo si el argumento puede ser nulo o la base de datos est
configurada con DFT_SQLMATHWARN establecido en YES; el resultado es el
valor nulo si el argumento es nulo.
CHAR
De caracteres a caracteres:
CHAR ( expresin-caracteres )
, entero
CHAR ( expresin-fechahora )
, ISO
USA
EUR
JIS
LOCAL
De entero a caracteres:
CHAR ( expresin-entero )
De decimal a caracteres:
CHAR ( expresin-decimal )
, carcter-decimal
CHAR ( expresin-coma-flotante )
, carcter-decimal
El primer argumento debe ser de un tipo de datos interno. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
Nota: La expresin CAST tambin se puede utilizar para devolver una expresin
de serie.
Ejemplos:
v Supongamos que la columna PRSTDATE tiene un valor interno equivalente a
1988-12-25. La funcin siguiente devuelve el valor 12/25/1988.
CHAR(PRSTDATE, USA)
v Supongamos que la columna STARTING tiene un valor interno equivalente a
17:12:30 y que la variable del lenguaje principal HOUR_DUR (decimal(6,0)) es
una duracin en horas con un valor de 050000 (es decir, 5 horas). La funcin
siguiente devuelve el valor 5:12 PM.
CHAR(STARTING, USA)
Informacin relacionada:
v Expresiones en la pgina 189
v VARCHAR en la pgina 461
CHARACTER_LENGTH
CHARACTER_LENGTH ( expresin USING CODEUNITS16 )
CHAR_LENGTH CODEUNITS32
OCTETS
, CODEUNITS16
CODEUNITS32
OCTETS
El esquema es SYSIBM.
Ejemplos:
v Supongamos que NAME es una columna VARCHAR(128) codificada en Unicode
UTF-8 que contiene el valor Jrgen. Las dos consultas siguientes devuelven el
valor 6:
SELECT CHARACTER_LENGTH(NAME, CODEUNITS32)
FROM T1 WHERE NAME = Jrgen
SELECT LENGTH(NAME)
FROM T1 WHERE NAME = Jrgen
v Los ejemplos siguientes funcionan con la serie Unicode &N~AB, siendo & el
carcter de clave G de smbolo musical y ~ el carcter de tilde de combinacin.
A continuacin se muestra esta cadena en distintos formatos de codificacin
Unicode:
& N ~ A B
UTF-8 X'F09D849E' X'4E' X'CC83' X'41' X'42'
UTF-16BE X'D834DD1E' X'004E' X'0303' X'0041' X'0042'
UTF-32BE X'0001D11E' X'0000004E' X'00000303' X'00000041' X'00000042'
Informacin relacionada:
v Series de caracteres en la pgina 91
v LENGTH en la pgina 372
v OCTET_LENGTH en la pgina 394
v POSITION en la pgina 395
v SUBSTRING en la pgina 434
CHR
CHR ( expresin )
El esquema es SYSFUN.
Devuelve el carcter que tiene el valor del cdigo ASCII especificado por el
argumento. Si el valor de expresin es 0, el resultado es el carcter en blanco (X20).
CLOB
CLOB ( expresin-serie-caracteres )
, entero
El esquema es SYSIBM.
COALESCE
(1)
COALESCE ( expresin , expresin )
Notas:
1 VALUE es sinnimo de COALESCE.
El esquema es SYSIBM.
Los argumentos deben ser compatibles. Puede ser de un tipo de datos interno o
definido por el usuario. (Esta funcin no puede utilizarse como una funcin fuente
cuando se crea una funcin definida por el usuario. Como esta funcin acepta
cualquier tipo de datos compatible como argumento, no es necesario crear
signaturas adicionales para dar soporte a los tipos de datos diferenciados definidos
por el usuario).
Ejemplos:
v Cuando se seleccionan todos los valores de todas las filas de la tabla
DEPARTMENT, si falta el director del departamento (MGRNO) (es decir, es
nulo), se ha de devolver un valor de ABSENT.
SELECT DEPTNO, DEPTNAME, COALESCE(MGRNO, ABSENT), ADMRDEPT
FROM DEPARTMENT
v Cuando se selecciona el nmero de empleado (EMPNO) y el salario (SALARY)
de todas las filas de la tabla EMPLOYEE, si falta el salario (es decir, es nulo), se
ha de devolver un valor de cero.
SELECT EMPNO, COALESCE(SALARY, 0)
FROM EMPLOYEE
Informacin relacionada:
v Reglas para los tipos de datos del resultado en la pgina 129
CONCAT
(1)
CONCAT ( expresin1 , expresin2 )
Notas:
1 || puede utilizarse como sinnimo de CONCAT.
El esquema es SYSIBM.
Informacin relacionada:
v Expresiones en la pgina 189
COS
COS ( expresin )
COSH
COSH ( expresin )
El esquema es SYSIBM.
COT
COT ( expresin )
DATAPARTITIONNUM
DATAPARTITIONNUM ( nombre-columna )
El esquema es SYSIBM.
Esta funcin no puede utilizarse como una funcin fuente cuando se crea una
funcin definida por el usuario. Ya que la funcin acepta cualquier tipo de datos
como argumento, no es necesario crear signaturas adicionales para dar soporte a
los tipos diferentes definidos por el usuario.
Ejemplo:
v SELECT DATAPARTITIONNUM (EMPNO, EMPNAME)
FROM EMPLOYEE
Para convertir un nmero de secuencia (por ejemplo, 0) en un nombre de
particin de datos que se pueda utilizar en otras sentencias SQL (como por
ejemplo, ALTER TABLE...DETACH PARTITION), puede consultar el catlogo del
sistema.
SELECT DATAPARTITIONNAME
FROM SYSCAT.DATAPARTITIONS
WHERE TABNAME = EMPLOYEE AND SEQNO = 0
DATE
DATE ( expresin )
El esquema es SYSIBM.
El argumento debe ser una fecha, indicacin de fecha y hora, nmero positivo
menor o igual que 3 652 059, representacin de serie vlida de una fecha o una
indicacin de fecha y hora o una serie de longitud 7 que no sea CLOB, LONG
VARCHAR ni LONG VARGRAPHIC.
Slo las bases de datos Unicode dan soporte a un argumento que es una
representacin de serie grfica de una fecha o una indicacin de fecha y hora. En
una base de datos Unicode, si un argumento proporcionado es una serie grfica, se
convertir a una serie de caracteres antes de que se ejecute la funcin.
Ejemplos:
DAY
DAY ( expresin )
El esquema es SYSIBM.
El argumento debe ser una fecha, una indicacin de fecha y hora, una duracin de
fecha, una duracin de una indicacin de fecha y hora o una representacin de
serie de caracteres vlida de una fecha o una indicacin de fecha y hora que no sea
CLOB ni LONG VARCHAR. En una base de datos Unicode, si un argumento
proporcionado es una serie grfica, se convertir a una serie de caracteres antes de
que se ejecute la funcin.
Ejemplos:
v Utilizando la tabla PROJECT, establezca la variable del lenguaje principal
END_DAY (smallint) en el da en que est planificado que el proyecto WELD
LINE PLANNING (PROJNAME) finalice (PRENDATE).
SELECT DAY(PRENDATE)
INTO :END_DAY
FROM PROJECT
WHERE PROJNAME = WELD LINE PLANNING
DAYNAME
DAYNAME ( expresin )
El esquema es SYSFUN.
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
DAYOFWEEK
DAYOFWEEK ( expresin )
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
DAYOFWEEK_ISO
DAYOFWEEK_ISO ( expresin )
El esquema es SYSFUN.
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
DAYOFYEAR
DAYOFYEAR ( expresin )
El esquema es SYSFUN.
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
DAYS
DAYS ( expresin )
El esquema es SYSIBM.
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
Ejemplos:
v Utilizando la tabla PROJECT, establezca la variable del lenguaje principal
EDUCATION_DAYS (int) en el nmero de das transcurridos (PRENDATE -
PRSTDATE) estimados para el proyecto (PROJNO) IF2000.
SELECT DAYS(PRENDATE) - DAYS(PRSTDATE)
INTO :EDUCATION_DAYS
FROM PROJECT
WHERE PROJNO = IF2000
DBCLOB
DBCLOB ( expresin-grfica )
, entero
El esquema es SYSIBM.
DBPARTITIONNUM
DBPARTITIONNUM ( nombre-columna )
El esquema es SYSIBM.
Esta funcin no puede utilizarse como una funcin fuente cuando se crea una
funcin definida por el usuario. Ya que la funcin acepta cualquier tipo de datos
como argumento, no es necesario crear signaturas adicionales para dar soporte a
los tipos diferentes definidos por el usuario.
Ejemplos:
v Cuente el nmero de instancias en las que la fila para un empleado de la tabla
EMPLOYEE est en una particin de base de datos distinta a la descripcin del
departamento del empleado de la tabla DEPARTMENT.
Informacin relacionada:
v Sentencia CREATE VIEW en Consulta de SQL, Volumen 2
DECIMAL
De numrico a decimal :
DECIMAL ( expresin-numrica
DEC
)
, entero-precisin
, entero-escala
De carcter a decimal:
DECIMAL ( expresin-caracteres
DEC
)
, entero-precisin
, entero-escala
, carcter-decimal
DECIMAL ( expresin-fechahora
DEC
)
, entero-precisin
, entero-escala
El esquema es SYSIBM.
entero-precisin
Una constante de enteros con un valor en el rango de 1 a 31.
El valor por omisin para entero-precisin depende del tipo de datos de
expresin-numrica:
v 15 para coma flotante y decimal
v 19 para entero superior
v 11 para entero grande
v 5 para entero pequeo.
entero-escala
Una constante de enteros en el rango de 0 al valor de entero-precisin.
El valor por omisin es cero.
Ejemplos:
v Utilice la funcin DECIMAL para forzar a que se devuelva un tipo de datos
DECIMAL (con una precisin de 5 y una escala de 2) en una lista-seleccin para
la columna EDLEVEL (tipo de datos = SMALLINT) en la tabla EMPLOYEE. La
columna EMPNO debe aparecer tambin en la lista de seleccin.
SELECT EMPNO, DECIMAL(EDLEVEL,5,2)
FROM EMPLOYEE
v Supongamos que la variable del lenguaje principal PERIOD es de tipo
INTEGER. En este caso, para utilizar su valor como duracin de fecha debe
convertirse a decimal(8,0).
SELECT PRSTDATE + DECIMAL(:PERIOD,8)
FROM PROJECT
v Supongamos que las actualizaciones en la columna SALARY se entran mediante
una ventana como una serie de caracteres que utiliza la coma como carcter
decimal (por ejemplo, el usuario entra 21400,50). Cuando se ha validado por la
aplicacin, se asigna a la variable del lenguaje principal newsalary definida
como CHAR(10).
UPDATE STAFF
SET SALARY = DECIMAL(:newsalary, 9, 2, ,)
WHERE ID = :empid;
Falla porque se especifica un punto (.) como el carcter decimal, pero aparece
una coma (,) en el primer argumento como delimitador.
Precisin y
DECIMAL(argumentos) escala Resultado
DECIMAL(2000-03-21) (8,0) 20000321
DECIMAL(2000-03-21, 10) (10,0) 20000321
DECIMAL(2000-03-21, 12, 2) (12,2) 20000321.00
DECIMAL(12:02:21) (6,0) 120221
DECIMAL(12:02:21, 10) (10,0) 120221
DECIMAL(12:02:21, 10, 2) (10,2) 120221.00
DECIMAL(2000-03-21- (20, 6) 20000321120221.123456
12.02.21.123456)
DECIMAL(2000-03-21- (23, 6) 20000321120221.123456
12.02.21.123456, 23)
DECIMAL(2000-03-21- (23, 4) 20000321120221.1234
12.02.21.123456, 23, 4)
DECRYPT_BIN y DECRYPT_CHAR
DECRYPT_BIN ( datos-cifrados )
DECRYPT_CHAR , expresin-serie-contrasea
El esquema es SYSIBM.
Si el primer argumento puede ser nulo, el resultado puede ser nulo. Si el primer
argumento es nulo, el resultado es el valor nulo.
Si los datos se descifran en un sistema diferente que utiliza una pgina de cdigos
que es diferente de la pgina de cdigos en la que se cifraron los datos, puede
producirse una expansin al convertir el valor descifrado a la pgina de cdigos de
la base de datos. En dichas situaciones, el valor datos-cifrados debe calcularse en
una serie VARCHAR con un nmero mayor de bytes.
Ejemplos:
v Utilizar la sentencia SET ENCRYPTION PASSWORD para establecer una
contrasea de cifrado para la sesin.
CREATE TABLE EMP (SSN VARCHAR(24) FOR BIT DATA);
SET ENCRYPTION PASSWORD = Ben123;
INSERT INTO EMP(SSN) VALUES ENCRYPT(289-46-8832);
SELECT DECRYPT_CHAR(SSN)
FROM EMP;
Informacin relacionada:
v ENCRYPT en la pgina 345
v GETHINT en la pgina 351
v Sentencia SET ENCRYPTION PASSWORD en Consulta de SQL, Volumen 2
DEGREES
DEGREES ( expresin )
El esquema es SYSFUN.
DEREF
DEREF ( expresin )
La funcin DEREF devuelve una instancia del tipo de destino del argumento.
El argumento puede ser cualquier valor con un tipo de datos de referencia que
tenga un mbito definido (SQLSTATE 428DT).
El tipo de datos esttico del resultado es el tipo de destino del argumento. El tipo
de datos dinmico del resultado es un subtipo del tipo de destino del argumento.
El resultado puede ser nulo. El resultado es un valor nulo si expresin es un valor
nulo o si expresin es una referencia que no tiene un OID correspondiente en la
tabla de destino.
Ejemplos:
Informacin relacionada:
v TYPE_NAME en la pgina 457
DIFFERENCE
DIFFERENCE ( expresin , expresin )
El esquema es SYSFUN.
Los argumentos pueden ser series de caracteres que sean CHAR o VARCHAR de
un mximo de 4.000 bytes. En una base de datos Unicode, si un argumento
proporcionado es una serie grfica, se convertir a una serie de caracteres antes de
que se ejecute la funcin.
Ejemplo:
VALUES (DIFFERENCE(CONSTRAINT,CONSTANT),SOUNDEX(CONSTRAINT),
SOUNDEX(CONSTANT)),
(DIFFERENCE(CONSTRAINT,CONTRITE),SOUNDEX(CONSTRAINT),
SOUNDEX(CONTRITE))
Informacin relacionada:
v SOUNDEX en la pgina 427
DIGITS
DIGITS ( expresin )
El esquema es SYSIBM.
El argumento debe ser una expresin que devuelva un valor con el tipo
SMALLINT, INTEGER, BIGINT o DECIMAL.
Ejemplos:
v Supongamos que una tabla llamada TABLEX contiene una columna INTEGER
llamada INTCOL que contiene nmeros de 10 dgitos. Liste las cuatro
combinaciones de dgitos de los cuatro primeros dgitos de la columna INTCOL.
SELECT DISTINCT SUBSTR(DIGITS(INTCOL),1,4)
FROM TABLEX
v Supongamos que la columna COLUMNX tiene el tipo de datos DECIMAL(6,2) y
que uno de sus valores es -6.28. Entonces, para este valor:
DIGITS(COLUMNX)
DOUBLE
De numrico a doble :
DOUBLE ( expresin-numrica )
FLOAT
DOUBLE_PRECISION
DOUBLE ( expresin-serie )
Ejemplo:
ENCRYPT
ENCRYPT
( expresin-serie-datos )
, expresin-serie-contrasea
, expresin-serie-indicacin
El esquema es SYSIBM.
Si el primer argumento puede ser nulo, el resultado puede ser nulo. Si el primer
argumento es nulo, el resultado es el valor nulo.
Tenga en cuenta que el resultado cifrado tiene una longitud mayor que la del valor
expresin-serie-datos. Por consiguiente, al asignar valores cifrados, asegrese de que
el destino se declara con un tamao suficiente para contener el valor cifrado
entero.
Notas:
Ejemplos:
v Utilizar la sentencia SET ENCRYPTION PASSWORD para establecer una
contrasea de cifrado para la sesin.
CREATE TABLE EMP (SSN VARCHAR(24) FOR BIT DATA);
SET ENCRYPTION PASSWORD = Ben123;
INSERT INTO EMP(SSN) VALUES ENCRYPT(289-46-8832);
v Pasar la contrasea de cifrado explcitamente.
INSERT INTO EMP(SSN) VALUES ENCRYPT(289-46-8832,Ben123);
v Definir una sugerencia de contrasea.
INSERT INTO EMP(SSN) VALUES ENCRYPT(289-46-8832,Pacfico,Ocano);
Informacin relacionada:
v DECRYPT_BIN y DECRYPT_CHAR en la pgina 337
v GETHINT en la pgina 351
v Sentencia SET ENCRYPTION PASSWORD en Consulta de SQL, Volumen 2
EVENT_MON_STATE
EVENT_MON_STATE ( expresin-serie )
El esquema es SYSIBM.
Ejemplo:
EXP
EXP ( expresin )
El esquema es SYSFUN.
FLOAT
FLOAT ( expresin-numrica )
El esquema es SYSIBM.
Informacin relacionada:
v DOUBLE en la pgina 343
FLOOR
FLOOR ( expresin )
Devuelve el valor del entero ms grande que es menor o igual que el argumento.
El resultado puede ser nulo si el argumento puede ser nulo o la base de datos est
configurada con DFT_SQLMATHWARN establecido en YES; el resultado es el
valor nulo si el argumento es nulo.
GETHINT
GETHINT ( datos-cifrados )
El esquema es SYSIBM.
Ejemplo:
Informacin relacionada:
v DECRYPT_BIN y DECRYPT_CHAR en la pgina 337
v ENCRYPT en la pgina 345
GENERATE_UNIQUE
GENERATE_UNIQUE ( )
El esquema es SYSIBM.
No hay ningn argumento para esta funcin (se han de especificar los parntesis
vacos).
El valor de indicacin de fecha y hora que forma parte del resultado de esta
funcin puede determinarse utilizando la funcin escalar TIMESTAMP con el
resultado de GENERATE_UNIQUE como argumento.
Ejemplos:
v Cree una tabla que incluya una columna que sea exclusiva para cada fila. Llene
esta columna utilizando la funcin GENERATE_UNIQUE. Tenga en cuenta que
la columna UNIQUE_ID tiene especificado FOR BIT DATA para identificar la
columna como una serie de caracteres de datos de bits.
CREATE TABLE EMP_UPDATE
(UNIQUE_ID CHAR(13) FOR BIT DATA,
EMPNO CHAR(6),
TEXT VARCHAR(1000))
INSERT INTO EMP_UPDATE
VALUES (GENERATE_UNIQUE(), 000020, Actualizar entrada...),
(GENERATE_UNIQUE(), 000050, Update entry...)
Esta tabla tendr un identificador exclusivo para cada fila siempre que la
columna UNIQUE_ID se establezca siempre utilizando GENERATE_UNIQUE.
Esto se puede realizar introduciendo un activador en la tabla.
GRAPHIC
De grfico a grfico:
GRAPHIC ( expresin-grfica )
, entero
De carcter a grfico:
GRAPHIC ( expresin-caracteres )
GRAPHIC ( expresin-fechahora )
, ISO
USA
EUR
JIS
LOCAL
expresin-caracteres
Una expresin cuyo valor debe ser de tipo de datos de serie de
caracteres distinto de LONG VARCHAR o CLOB y cuya longitud
mxima es de 16 336 bytes.
Informacin relacionada:
v VARGRAPHIC en la pgina 465
HASHEDVALUE
HASHEDVALUE ( nombre-columna )
El esquema es SYSIBM.
El tipo de datos del resultado es INTEGER en el rango de 0 a 4095. Para una tabla
que no tiene clave de distribucin, el resultado siempre es 0. Nunca se devuelve un
valor nulo. Puesto que se devuelve informacin a nivel de fila, los resultados son
los mismos, sin tener en cuenta las columnas que se especifican para la tabla.
Ejemplo:
v Lista de nmeros de empleados (EMPNO) de la tabla EMPLOYEE para todas las
filas cuyo ndice de mapa de distribucin es 100.
SELECT EMPNO FROM EMPLOYEE
WHERE HASHEDVALUE(PHONENO) = 100
Informacin relacionada:
v Sentencia CREATE VIEW en Consulta de SQL, Volumen 2
HEX
HEX ( expresin )
El esquema es SYSIBM.
El argumento puede ser una expresin que sea un valor de cualquier tipo de datos
interno, con una longitud mxima de 16.336 bytes.
v Longitud variable
El resultado es una serie de caracteres de longitud variable con una longitud
mxima cuatro veces la longitud mxima definida del argumento.
Ejemplos:
Supongamos que utiliza un servidor de aplicaciones DB2 para AIX para los
ejemplos siguientes.
v Utilizando la tabla DEPARTMENT establezca la variable del lenguaje principal
HEX_MGRNO (char(12)) en la representacin hexadecimal del nmero del
director (MGRNO) para el departamento PLANNING (DEPTNAME).
SELECT HEX(MGRNO)
INTO :HEX_MGRNO
FROM DEPARTMENT
WHERE DEPTNAME = PLANNING
HOUR
HOUR ( expresin )
El esquema es SYSIBM.
El argumento debe ser una hora, una indicacin de fecha y hora, una duracin de
la hora, una duracin de la indicacin de fecha y hora o una representacin de
serie de caracteres vlida de una hora o de una fecha y hora que no sea CLOB ni
LONG VARCHAR. En una base de datos Unicode, si un argumento proporcionado
es una serie grfica, se convertir a una serie de caracteres antes de que se ejecute
la funcin.
Ejemplo:
IDENTITY_VAL_LOCAL
IDENTITY_VAL_LOCAL ( )
El esquema es SYSIBM.
Notas:
v Las expresiones de la clusula VALUES de una sentencia INSERT se evalan
antes que las asignaciones para las columnas de destino de la sentencia INSERT.
Por consiguiente, una invocacin de una funcin IDENTITY_VAL_LOCAL en la
clusula VALUES de una sentencia INSERT utilizar el valor asignado ms
recientemente de una columna de identidad de una sentencia INSERT anterior.
La funcin devuelve el valor nulo si no se ha ejecutado ninguna sentencia
INSERT de fila individual anterior con una clusula VALUES para una tabla que
contiene una columna de identidad dentro del mismo nivel que la funcin
IDENTITY_VAL_LOCAL.
v El valor de la columna de identidad de la tabla para la que se define el
activador puede determinarse dentro de un activador, haciendo referencia a la
variable de transicin activador para la columna de identidad.
Ejemplos:
Ejemplo 1: Crear dos tablas, T1 y T2, cada una con una columna de identidad
llamada C1. Iniciar la secuencia de identificacin para la tabla T2 en 10. Insertar
algunos valores para C2 en T1.
CREATE TABLE T1
(C1 INTEGER GENERATED ALWAYS AS IDENTITY,
C2 INTEGER)
CREATE TABLE T2
SELECT * FROM T1
Insertar una nica fila en la tabla T2, donde la columna C2 obtiene un valor de la
funcin IDENTITY_VAL_LOCAL.
INSERT INTO T2 (C2) VALUES (IDENTITY_VAL_LOCAL())
SELECT * FROM T2
La primera sentencia INSERT activada inserta una fila en la tabla EMP_ACT. Esta
sentencia utiliza una variable de transicin activador para la columna EMPNO de
la tabla EMPLOYEE para indicar que el valor de identidad para la columna
EMPNO de la tabla EMPLOYEE debe copiarse en la columna EMPNO de la tabla
EMP_ACT. La funcin IDENTITY_VAL_LOCAL no se ha podido utilizar para
Captulo 3. Funciones 363
IDENTITY_VAL_LOCAL
ACNT_NUM EMPNO
-------- ------
1 1000
ID ACNT_NUM EMPNO
------ -------- ------
100 1 1000
Ejemplos relacionados:
v fnuse.out -- HOW TO USE BUILT-IN SQL FUNCTIONS (C)
v fnuse.sqc -- How to use built-in SQL functions (C)
v fnuse.out -- HOW TO USE FUNCTIONS (C++)
v fnuse.sqC -- How to use built-in SQL functions (C++)
INSERT
INSERT ( expresin1 , expresin2 , expresin3 , expresin4 )
El esquema es SYSFUN.
Ejemplo:
v Suprima un carcter de la palabra DINING e inserte VID, empezando en el
tercer carcter.
VALUES CHAR(INSERT(DINING, 3, 1, VID), 10)
Informacin relacionada:
v LOCATE en la pgina 375
INTEGER
INTEGER ( expresin-numrica )
INT expresin-caracteres
expresin-fecha
expresin-hora
El esquema es SYSIBM.
Ejemplos:
v Utilizando la tabla EMPLOYEE, seleccione una lista que contenga el salario
(SALARY) dividido por el nivel de formacin (EDLEVEL). Trunque cualquier
decimal en el clculo. La lista tambin debe contener los valores utilizados en el
clculo y el nmero de empleado (EMPNO). La lista debe estar en orden
descendente del valor calculado.
SELECT INTEGER (SALARY / EDLEVEL), SALARY, EDLEVEL, EMPNO
FROM EMPLOYEE
ORDER BY 1 DESC
v Utilizando la tabla EMPLOYEE, seleccione la columna EMPNO en el formato de
enteros para procesarla ms en la aplicacin.
JULIAN_DAY
JULIAN_DAY ( expresin )
El esquema es SYSFUN.
Devuelve una representacin de un valor entero del nmero de das desde el uno
de enero de 4713 A.C. (la fecha de inicio del calendario juliano) hasta el valor de
fecha especificado en el argumento.
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
LCASE o LOWER
LCASE ( expresin-serie )
LOWER
La funcin LCASE o LOWER devuelve una serie en la que todos los caracteres
SBCS se han convertido a minsculas. Es decir, los caracteres de la A a la Z se
convertirn en los caracteres de la a a la z y el resto de caracteres se convertirn en
sus minsculas equivalentes, si existen. Por ejemplo, en la pgina de cdigos 850,
se correlaciona con . Si la longitud del punto de cdigo del carcter del resultado
no es la misma que la longitud de punto de cdigo del carcter fuente, este ltimo
no se convierte. Puesto que no se convierten todos los caracteres,
LCASE(UCASE(expresin-serie)) no devuelve necesariamente el mismo resultado
que LCASE(expresin-serie).
El argumento debe ser una expresin cuyo valor sea un tipo de datos CHAR o
VARCHAR.
Ejemplo:
Informacin relacionada:
v LCASE (esquema SYSFUN) en la pgina 370
El esquema es SYSFUN.
LEFT
LEFT ( expresin1 , expresin2 )
El esquema es SYSFUN.
Devuelve una serie que consta de los expresin2 bytes situados ms a la izquierda
de expresin1. El valor expresin1 se rellena con blancos por la derecha para que la
subserie especificada de expresin1 exista siempre.
LENGTH
LENGTH ( expresin )
, CODEUNITS16
CODEUNITS32
OCTETS
El esquema es SYSIBM.
v 3 para hora
v 10 para fecha y hora
Ejemplos:
v Supongamos que la variable de lenguaje principal es una serie de caracteres de
longitud variable cuyo valor es 895 Don Mills Road.
LENGTH(:ADDRESS)
devuelve el valor 4.
v LENGTH(CHAR(START_DATE, EUR))
& N ~ A B
UTF-8 X'F09D849E' X'4E' X'CC83' X'41' X'42'
UTF-16BE X'D834DD1E' X'004E' X'0303' X'0041' X'0042'
UTF-32BE X'0001D11E' X'0000004E' X'00000303' X'00000041' X'00000042'
Informacin relacionada:
v Series de caracteres en la pgina 91
v CHARACTER_LENGTH en la pgina 313
v OCTET_LENGTH en la pgina 394
LN
LN ( expresin )
El esquema es SYSFUN.
LOCATE
LOCATE ( serie-bsqueda , serie-fuente )
, inicio , CODEUNITS16
CODEUNITS32
OCTETS
v Un registro especial
v Una variable del lenguaje principal (incluida una variable localizadora o una
variable de referencia de archivo)
v Una funcin escalar
v Un localizador de objeto grande
v Un nombre de columna
v Una expresin que concatene (mediante CONCAT o ||) cualquiera de los
elementos anteriores
inicio
Expresin que especifica la posicin entro de serie-fuente en la que debe
iniciarse la bsqueda. La expresin debe ser un entero que sea mayor o igual
que cero. Si se especifica inicio, la funcin LOCATE es parecida a la siguiente:
POSITION(serie-bsqueda,
SUBSTRING(serie-fuente, inicio,
unidad-serie),
unidad-serie) + inicio - 1
Ejemplos:
v Buscar la ubicacin de la primera aparicin del carcter 'N' en la serie 'DINING'.
SELECT LOCATE(N, DINING)
FROM SYSIBM.SYSDUMMY1
El resultado es el valor 3.
v Para todas las filas de la tabla denominada IN_TRAY, seleccionar la columna
RECEIVED, la columna SUBJECT y la posicin de inicio de la serie 'GOOD'
dentro de la columna NOTE_TEXT.
SELECT RECEIVED, SUBJECT, LOCATE(GOOD, NOTE_TEXT)
FROM IN_TRAY
WHERE LOCATE(GOOD, NOTE_TEXT) <> 0
v Localizar el carcter '' en la serie 'Jrgen lives on Hegelstrae', y definir la
variable de lenguaje principal LOCATION con la posicin, segn se mide en
unidades CODEUNITS32, dentro de la serie.
SET :LOCATION = LOCATE(, Jrgen lives on Hegelstrae, 1, CODEUNITS32)
& N ~ A B
UTF-8 X'F09D849E' X'4E' X'CC83' X'41' X'42'
UTF-16BE X'D834DD1E' X'004E' X'0303' X'0041' X'0042'
Informacin relacionada:
v Series de caracteres en la pgina 91
v POSITION en la pgina 395
v Reglas para la conversin de series en la pgina 133
LOG
LOG ( expresin )
El esquema es SYSFUN.
LOG10
LOG10 ( expresin )
El esquema es SYSFUN.
LONG_VARCHAR
LONG_VARCHAR ( expresin-serie-caracteres )
El esquema es SYSIBM.
LONG_VARGRAPHIC
LONG_VARGRAPHIC ( expresin-grfica )
El esquema es SYSIBM.
LTRIM
LTRIM ( expresin-serie )
Ejemplo:
Supongamos que la variable del lenguaje principal HELLO est definida como
CHAR(9) y tiene el valor de Hola.
VALUES LTRIM(:HELLO)
El resultado es Hola.
Informacin relacionada:
v LTRIM (esquema SYSFUN) en la pgina 384
El esquema es SYSFUN.
Devuelve los caracteres del argumento con los blancos iniciales eliminados.
MICROSECOND
MICROSECOND ( expresin )
El esquema es SYSIBM.
Ejemplo:
v Supongamos que una tabla TABLEA contiene dos columnas, TS1 y TS2, del tipo
TIMESTAMP. Seleccione todas las filas cuya parte correspondiente a los
microsegundos de TS1 no sea cero y las partes correspondientes a los segundos
de TS1 y TS2 sean idnticas.
SELECT * FROM TABLEA
WHERE MICROSECOND(TS1) <> 0
AND
SECOND(TS1) = SECOND(TS2)
MIDNIGHT_SECONDS
MIDNIGHT_SECONDS ( expresin )
El esquema es SYSFUN.
El argumento debe ser una hora, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una hora o indicacin de fecha y
hora que no sea CLOB ni LONG VARCHAR. En una base de datos Unicode, si un
argumento proporcionado es una serie grfica, se convertir a una serie de
caracteres antes de que se ejecute la funcin.
Ejemplos:
v Encuentre el nmero de segundos entre la medianoche y 00:10:10 y la
medianoche y 13:10:10.
VALUES (MIDNIGHT_SECONDS(00:10:10), MIDNIGHT_SECONDS(13:10:10))
MINUTE
MINUTE ( expresin )
El esquema es SYSIBM.
El argumento debe ser una hora, una indicacin de fecha y hora, una duracin de
la hora, una duracin de la indicacin de fecha y hora o una representacin de
serie de caracteres vlida de una hora o de una fecha y hora que no sea CLOB ni
LONG VARCHAR. En una base de datos Unicode, si un argumento proporcionado
es una serie grfica, se convertir a una serie de caracteres antes de que se ejecute
la funcin.
Ejemplo:
v Utilizando la tabla de ejemplo CL_SCHED, seleccione todas las clases con una
duracin inferior a 50 minutos.
SELECT * FROM CL_SCHED
WHERE HOUR(ENDING - STARTING) = 0
AND
MINUTE(ENDING - STARTING) < 50
MOD
MOD ( expresin , expresin )
El esquema es SYSFUN.
MONTH
MONTH ( expresin )
El esquema es SYSIBM.
El argumento debe ser una fecha, una indicacin de fecha y hora, una duracin de
fecha, una duracin de indicacin de fecha y hora o una representacin de serie de
caracteres vlida de una fecha o indicacin de fecha y hora que no sea CLOB ni
LONG VARCHAR. En una base de datos Unicode, si un argumento proporcionado
es una serie grfica, se convertir a una serie de caracteres antes de que se ejecute
la funcin.
Ejemplo:
v Seleccione todas las filas de la tabla EMPLOYEE de las personas que han nacido
(BIRTHDATE) en diciembre (DECEMBER).
SELECT * FROM EMPLOYEE
WHERE MONTH(BIRTHDATE) = 12
MONTHNAME
MONTHNAME ( expresin )
El esquema es SYSFUN.
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
MULTIPLY_ALT
MULTIPLY_ALT ( expresin_numrica_exacta ,
expresin_numrica_exacta )
El esquema es SYSIBM.
Los argumentos pueden ser cualquier tipo de datos numricos exactos interno
(DECIMAL, BIGINT, INTEGER o SMALLINT).
el resultado puede ser nulo si al menos un argumento puede ser nulo o si la base
de datos se configura con DFT_SQLMATHWARN establecido en YES; el resultado
es el valor nulo si uno de los argumentos es nulo.
Ejemplo:
NULLIF
NULLIF ( expresin , expresin )
El esquema es SYSIBM.
Los argumentos deben poderse comparar. Pueden ser de un tipo de datos interno
(que no sea una serie larga ni DATALINK)o de un tipo de datos diferenciado (que
no est basado en una serie larga ni en DATALINK). (Esta funcin no puede
utilizarse como una funcin fuente cuando se crea una funcin definida por el
usuario. Como esta funcin acepta cualquier tipo de datos compatible como
argumento, no es necesario crear signaturas adicionales para dar soporte a los tipos
de datos diferenciados definidos por el usuario). Los atributos del resultado son los
atributos del primer argumento.
Observe que cuando e1=e2 se evala como desconocido (porque uno o los dos
argumentos son NULL), las expresiones CASE lo consideran como no verdadero.
Por lo tanto, en esta situacin, NULLIF devuelve el valor del primer argumento.
Ejemplo:
v Supongamos que las variables del lenguaje principal PROFIT, CASH y LOSSES
tienen tipos de datos DECIMAL con los valores 4500.00, 500.00 y 5000.00
respectivamente:
NULLIF (:PROFIT + :CASH , :LOSSES )
Devuelve un valor nulo.
Informacin relacionada:
v Asignaciones y comparaciones en la pgina 117
OCTET_LENGTH
OCTET_LENGTH ( expresin )
El esquema es SYSIBM.
Para una portabilidad mayor, codifique la aplicacin para que sea capaz de aceptar
un resultado de tipo de datos DECIMAL(31).
Ejemplos:
v Supongamos que la tabla T1 tiene una columna GRAPHIC(10) denominada C1.
SELECT OCTET_LENGTH(C1) FROM T1
& N ~ A B
UTF-8 X'F09D849E' X'4E' X'CC83' X'41' X'42'
UTF-16BE X'D834DD1E' X'004E' X'0303' X'0041' X'0042'
Informacin relacionada:
v CHARACTER_LENGTH en la pgina 313
v LENGTH en la pgina 372
POSITION
POSITION
El esquema es SYSIBM.
v Un nombre de columna
v Una expresin que concatene (mediante CONCAT o ||) cualquiera de los
elementos anteriores
CODEUNITS16, CODEUNITS32, u OCTETS
Especifica la unidad de la serie del resultado. CODEUNITS16 especifica que el
resultado debe expresarse en unidades de cdigo UTF-16 de 16 bits.
CODEUNITS32 especifica que el resultado debe expresarse en unidades de
cdigo UTF-32 de 32 bits. OCTETS especifica que el resultado debe expresarse
en bytes.
Si una unidad de la serie se especifica como CODEUNITS16 o CODEUNITS32,
y serie-bsqueda o serie-fuente son una serie binaria o datos de bits, se devuelve
un error (SQLSTATE 428GC). Si se especifica una unidad de la serie como
OCTETS, serie-bsqueda se convierte en la pgina de cdigos de la serie-fuente si
tiene una pgina de cdigos distinta. En este caso, la operacin se realiza en la
pgina de cdigos de la serie-fuente. Si se especifica una unidad de la serie
como OCTETS y serie-bsqueda y serie-fuente son series binarias, se devuelve un
error (SQLSTATE 42815).
Para obtener ms informacin acerca de CODEUNITS16, CODEUNITS32 y
OCTETS, consulte Unidades de serie en funciones incorporadas en Series de
caracteres.
Ejemplos:
v Seleccione la columna RECEIVED, la columna SUBJECT y la posicin de inicio
de la serie GOOD BEER en la columna NOTE_TEXT para todas las filas de la
tabla IN_TRAY que contengan esa serie.
SELECT RECEIVED, SUBJECT, POSITION(GOOD BEER, NOTE_TEXT, OCTETS)
FROM IN_TRAY
WHERE POSITION(GOOD BEER, NOTE_TEXT, OCTETS) <> 0
v Localizar el carcter en la serie Jrgen lives on Hegelstrae y definir la
variable de lenguaje principal LOCATION con la posicin, segn se mide en
unidades CODEUNITS32, dentro de la serie.
SET :LOCATION = POSITION(
, Jrgen lives on Hegelstrae, CODEUNITS32
)
& N ~ A B
UTF-8 X'F09D849E' X'4E' X'CC83' X'41' X'42'
UTF-16BE X'D834DD1E' X'004E' X'0303' X'0041' X'0042'
Informacin relacionada:
v Series de caracteres en la pgina 91
v LOCATE en la pgina 375
v Reglas para la conversin de series en la pgina 133
POSSTR
POSSTR ( serie-fuente , serie-bsqueda )
El esquema es SYSIBM.
La funcin POSSTR acepta las series de datos mixtos. Sin embargo, POSSTR opera
sobre la base de un nmero de bytes estricto, ajeno a los cambios entre caracteres
de un solo byte o de mltiples bytes.
Ejemplo
v Seleccione las columnas RECEIVED y SUBJECT as como la posicin inicial de
las palabras GOOD BEER de la columna NOTE_TEXT para todas las entradas
de la tabla IN_TRAY que contienen estas palabras.
SELECT RECEIVED, SUBJECT, POSSTR(NOTE_TEXT, GOOD BEER)
FROM IN_TRAY
WHERE POSSTR(NOTE_TEXT, GOOD BEER) <> 0
POWER
POWER ( expresin1 , expresin2 )
El esquema es SYSFUN.
Los argumentos pueden ser de cualquier tipo de datos numrico interno. Los
argumentos DECIMAL y REAL se convierten a un nmero de coma flotante de
precisin doble.
QUARTER
QUARTER ( expresin )
El esquema es SYSFUN.
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
RADIANS
RADIANS ( expresin )
El esquema es SYSFUN.
RAISE_ERROR
RAISE_ERROR ( sqlstate , serie-diagnstico )
El esquema es SYSIBM.
Para utilizar esta funcin en un contexto en el que las reglas para los tipos de
datos del resultado no se aplican (por ejemplo, solo en una lista de seleccin), se
debe utilizar una especificacin de conversin (cast) para dar un tipo de datos al
valor nulo devuelto. La funcin RAISE_ERROR resultar ms til en una expresin
CASE.
Ejemplo:
Liste los nmeros de empleados y los niveles de formacin como, por ejemplo,
Postgraduado, Graduado y Diplomado. Si el nivel de formacin es mayor que 20,
genere un error.
SELECT EMPNO,
CASE WHEN EDUCLVL < 16 THEN Diplomado
WHEN EDUCLVL < 18 THEN Graduado
WHEN EDUCLVL < 21 THEN Postgraduado
ELSE RAISE_ERROR(70001,
EDUCLVL tiene un valor mayor que 20)
END
FROM EMPLOYEE
RAND
RAND ( )
expresin
El esquema es SYSFUN.
Si se especifica una expresin, sta se utiliza como el valor raz. La expresin debe
ser un tipo de datos SMALLINT o INTEGER incorporado con un valor
comprendido entre 0 y 2 147 483 647.
REAL
REAL ( expresin-numrica )
El esquema es SYSIBM.
Ejemplo:
REC2XML
REC2XML ( constante-decimal , serie-formato , serie-cdigo-fila
, nombre-columna )
El esquema es SYSIBM.
donde yn es equivalente a:
'<column name="' CONCAT xvcn CONCAT vn
y vn es equivalente a:
'">' CONCAT rn CONCAT
'</column>'
si la columna no es nula y
'" null="true"/>'
Sustitucin de caracteres:
Ejemplos:
Este ejemplo devuelve una fila para cada empleado que tiene un resumen en
formato XML. Cada fila devuelta ser una serie con el formato siguiente:
<row>
<column name="EMPNO">{nmero de empleado}</column>
<column name="RESUME_XML">{resumen en XML}</column>
</row>
REPEAT
REPEAT ( expresin , expresin )
El esquema es SYSFUN.
Ejemplo:
v Liste la frase REPITA ESTO cinco veces.
VALUES CHAR(REPEAT(REPEAT THIS, 5), 60)
REPLACE
REPLACE ( expresin1 , expresin2 , expresin3 )
El esquema es SYSFUN.
Ejemplo:
RIGHT
RIGHT ( expresin1 , expresin2 )
ROUND
ROUND ( expresin1 , expresin2 )
El tipo de datos y el atributo de longitud del resultado son iguales que el tipo de
datos y el atributo de longitud del primer argumento, excepto en que la precisin
se incrementa en uno si la expresin1 es DECIMAL y la precisin es inferior a 31.
Si cualquiera de los argumentos puede ser nulo o la base de datos est configurada
con DFT_SQLMATHWARN establecido en YES, el resultado puede ser nulo. Si
cualquiera de los argumentos es nulo, el resultado es el valor nulo.
Ejemplos:
RTRIM
RTRIM ( expresin-serie )
Ejemplo: Supongamos que la variable del lenguaje principal HELLO est definida
como CHAR(9) y tiene el valor Hola.
VALUES RTRIM(:HELLO)
El resultado es Hola.
Informacin relacionada:
v RTRIM (esquema SYSFUN) en la pgina 417
El esquema es SYSFUN.
Devuelve los caracteres del argumento con los blancos de cola eliminados.
SECLABEL
SECLABEL ( nombre-poltica-seguridad , constante-serie )
El esquema es SYSIBM.
Ejemplos:
v La sentencia siguiente inserta una fila en la tabla REGIONS que est protegida
por la poltica de seguridad CONTRIBUTIONS. SECLABEL proporciona la
etiqueta de seguridad para la fila que se debe insertar. La poltica de seguridad
CONTRIBUTIONS tiene dos componentes. La etiqueta de seguridad
proporcionada tiene el elemento LIFE MEMBER para el primer componente y
los elementos BLUE y YELLOW para el segundo componente.
INSERT INTO REGIONS
VALUES (SECLABEL(CONTRIBUTIONS, LIFE MEMBER:(BLUE,YELLOW)),
1, Northeast)
v La sentencia siguiente inserta una fila en la tabla CASE_IDS que est protegida
por la poltica de seguridad TS_SECPOLICY, que tiene tres componentes. La
funcin SECLABEL proporciona la etiqueta de seguridad. La etiqueta de
seguridad insertada tiene el elemento HIGH PROFILE para el primer
componente, el valor vaco para el segundo componente y el elemento G19 para
el tercer componente.
INSERT INTO CASE_IDS
VALUES (SECLABEL(TS_SECPOLICY,
HIGH PROFILE:():G19) , 3, KLB)
Conceptos relacionados:
v Built-in functions for dealing with LBAC security labels en Administration
Guide: Implementation
v LBAC security labels en Administration Guide: Implementation
v LBAC security policies en Administration Guide: Implementation
Informacin relacionada:
v Format for security label values en Administration Guide: Implementation
v SECLABEL_BY_NAME en la pgina 419
v SECLABEL_TO_CHAR en la pgina 420
SECLABEL_BY_NAME
SECLABEL_BY_NAME ( nombre-poltica-seguridad , nombre-etiqueta-seguridad )
El esquema es SYSIBM.
Ejemplos:
v La usuaria Tina intenta insertar una fila en la tabla REGIONS, protegida por la
poltica de seguridad CONTRIBUTIONS. Tina desea que la etiqueta de
seguridad EMPLOYEESECLABEL proteja a la fila. Esta sentencia falla porque
CONTRIBUTIONS.EMPLOYEESECLABEL es un identificador desconocido:
INSERT INTO REGIONS
VALUES (CONTRIBUTIONS.EMPLOYEESECLABEL, 1, Southwest) -- incorrecto
Esta sentencia falla porque el primer valor es una serie; no tiene un tipo de
datos de DB2SECURITYLABEL:
INSERT INTO REGIONS
VALUES (CONTRIBUTIONS.EMPLOYEESECLABEL, 1, Southwest) -- incorrecto
Conceptos relacionados:
v Built-in functions for dealing with LBAC security labels en Administration
Guide: Implementation
v LBAC security labels en Administration Guide: Implementation
v LBAC security policies en Administration Guide: Implementation
Informacin relacionada:
v SECLABEL en la pgina 418
v SECLABEL_TO_CHAR en la pgina 420
v Format for security label values en Administration Guide: Implementation
SECLABEL_TO_CHAR
SECLABEL_TO_CHAR ( nombre-poltica-seguridad , etiqueta-seguridad )
El esquema es SYSIBM.
Notas:
v Si el ID de autorizacin de la sentencia ejecuta esta funcin en una etiqueta de
seguridad que se lee desde una columna con un tipo de datos de
DB2SECURITYLABEL, entonces las credenciales LBAC de los ID de autorizacin
pueden afectar a la salida de la funcin. En tal caso no se incluye un elemento
en la salida si el ID de autorizacin no dispone de acceso de lectura a ese
elemento. Un ID de autorizacin tiene acceso de lectura a un elemento si sus
credenciales LBAC permitiesen leer datos protegidos por una etiqueta de
seguridad que slo contiene ese elemento, y no otros.
Para el conjunto de normas DB2LBACRULES, slo los componentes del tipo
TREE pueden contener elementos para los que no tenga acceso de lectura. Para
otros tipos de componentes, si alguno de los elementos bloquea el acceso de
lectura, el usuario no podr leer la fila. De este modo, slo los componentes de
tipo rbol tendrn elementos excluidos.
Ejemplo:
v La tabla EMP tiene dos columnas: RECORDNUM y LABEL. RECORDNUM
tiene tipo de datos INTEGER y LABEL tiene tipo de datos
DB2SECURITYLABEL. La tabla EMP est protegida por la poltica de seguridad
DATA_ACCESSPOLICY, que utiliza el conjunto de normas DB2LBACRULES y
que tiene un nico componente (GROUPS, de tipo TREE). GROUPS tiene cinco
elementos: PROJECT, TEST, DEVELOPMENT, CURRENT y FIELD. El diagrama
siguiente muestra la relacin de estos elementos entre s:
PROJECT
________|________
| |
TEST DEVELOPMENT
______|______
| |
CURRENT FIELD
La tabla EMP contiene los datos siguientes:
RECORDNUM LABEL
--------- ----------------
1 PROJECT
2 (TEST, FIELD)
3 (CURRENT, FIELD)
Djavan tiene una etiqueta de seguridad para lectura que slo contiene el
elemento DEVELOPMENT. Esto significa que Djavan tiene acceso de lectura
para los elementos DEVELOPMENT, CURRENT y FIELD:
SELECT RECORDNUM, SECLABEL_TO_CHAR(DATA_ACCESSPOLICY, LABEL) FROM EMP
devuelve:
RECORDNUM LABEL
--------- ----------------
2 FIELD
3 (CURRENT, FIELD)
La fila con un valor de 1 para RECORDNUM no est incluida en la salida,
porque las credenciales LBAC de Djavan no le permiten leer esta fila. En la fila
con un valor de 2 para RECORDNUM, el elemento TEST no est incluido en la
salida, porque Djavan no tiene acceso de lectura a ese elemento; Djavan no
podra haber accedido a la fila si TEST fuera el nico elemento en la etiqueta de
seguridad. Los elementos CURRENT y FIELD aparecen en la salida, porque
Djavan tiene acceso de lectura a ellos.
Ahora Djavan tiene otorgada una exencin para la norma DB2LBACREADTREE.
Esto significa que ningn elemento de un componente de tipo TREE bloquear
el acceso de lectura. La misma consulta devuelve:
RECORDNUM LABEL
--------- ----------------
1 PROJECT
2 (TEST, FIELD)
3 (CURRENT, FIELD)
Esta vez la salida contiene todas las filas y todos los elementos, porque la
exencin concede a Djavan el acceso de lectura para todos los elementos.
Conceptos relacionados:
v Built-in functions for dealing with LBAC security labels en Administration
Guide: Implementation
v LBAC security labels en Administration Guide: Implementation
v LBAC security policies en Administration Guide: Implementation
Informacin relacionada:
v SECLABEL en la pgina 418
v SECLABEL_BY_NAME en la pgina 419
v Format for security label values en Administration Guide: Implementation
SECOND
SECOND ( expresin )
El esquema es SYSIBM.
El argumento debe ser una hora, una indicacin de fecha y hora, una duracin de
la hora, una duracin de la indicacin de fecha y hora o una representacin de
serie de caracteres vlida de una hora o de una fecha y hora que no sea CLOB ni
LONG VARCHAR. En una base de datos Unicode, si un argumento proporcionado
es una serie grfica, se convertir a una serie de caracteres antes de que se ejecute
la funcin.
Ejemplos:
v Supongamos que la variable del lenguaje principal TIME_DUR (decimal(6,0))
tiene el valor 153045.
SECOND(:TIME_DUR)
Devuelve el valor 45.
v Supongamos que la columna RECEIVED (indicacin de fecha y hora) tiene un
valor interno equivalente a 1988-12-25-17.12.30.000000.
SECOND(RECEIVED)
Devuelve el valor 30.
SIGN
SIGN ( expresin )
SIN
SIN ( expresin )
SINH SINH
SINH ( expresin )
El esquema es SYSIBM.
SMALLINT
SMALLINT ( expresin-numrica )
expresin-caracteres
El esquema es SYSIBM.
SOUNDEX
SOUNDEX ( expresin )
El esquema es SYSFUN.
El argumento puede ser una serie de caracteres de tipo CHAR o VARCHAR, cuya
longitud no sea mayor que 4.000 bytes. En una base de datos Unicode, si un
argumento proporcionado es una serie grfica, se convertir a una serie de
caracteres antes de que se ejecute la funcin.
La funcin SOUNDEX es til para buscar series de las que se conoce el sonido
pero no su ortografa exacta. Realiza suposiciones de la manera en que el sonido
de las letras y de la combinacin de letras puede ayudar a buscar palabras con
sonidos similares. La comparacin puede realizarse directamente o pasando las
series como argumentos a la funcin DIFFERENCE.
Ejemplo:
Informacin relacionada:
v DIFFERENCE en la pgina 341
SPACE
SPACE ( expresin )
El esquema es SYSFUN.
SQRT
SQRT ( expresin )
El esquema es SYSFUN.
STRIP
STRIP ( expresin-serie )
, BOTH
B , carcter-supresin
LEADING
L
TRAILING
T
El resultado es una serie de longitud variable con la misma longitud mxima que
el atributo de longitud de la expresin-serie. La longitud real del resultado es la
longitud de la expresin-serie menos el nmero de bytes que se ha de suprimir. Si se
suprimen todos los caracteres, el resultado es una serie de longitud variable vaca.
La pgina de cdigos del resultado es la misma que la pgina de cdigos de la
expresin-serie.
Ejemplo:
v Supongamos que la variable BALANCE de sistema principal de tipo CHAR(9)
tiene un valor 000345.50.
SELECT STRIP(:BALANCE, LEADING, 0),
FROM SYSIBM.SYSDUMMY1
Informacin relacionada:
v en la pgina 453
SUBSTR
SUBSTR ( serie , inicio )
, longitud
Ejemplos:
v Supongamos que la variable del lenguaje principal NAME (VARCHAR(50)) tiene
un valor de BLUE JAY y la variable del lenguaje principal SURNAME_POS
(int) tiene un valor de 6.
SUBSTR(:NAME, :SURNAME_POS)
Informacin relacionada:
v Series de caracteres en la pgina 91
SUBSTRING
SUBSTRING (
El esquema es SYSIBM.
Notas:
v El atributo de longitud del resultado es igual al atributo de longitud de la
expresin de la serie de entrada. Este comportamiento es diferente del
comportamiento de la funcin SUBSTR, donde el atributo de longitud se obtiene
a partir de los argumentos inicio y longitud de la funcin.
Ejemplos:
v Seleccione todas las filas de la tabla PROJECT para las que el nombre del
proyecto (PROJNAME) empiece por la palabra OPERATION . El espacio al
final de la constante es necesario como preludio de las palabras iniciales como
OPERATIONS.
SELECT * FROM PROJECT
WHERE SUBSTRING(PROJNAME, 1, 10) = OPERATION
v FIRSTNAME es una columna VARCHAR(12) de la tabla T1. Uno de sus valores
es la serie de 6 caracteres Jrgen. Cuanto FIRSTNAME tiene este valor:
Funcin ... Devuelve ...
------------------------------------ ------------------------------------
SUBSTRING(FIRSTNAME,1,2,CODEUNITS32) J -- x4AC3BC
SUBSTRING(FIRSTNAME,1,2,CODEUNITS16) J -- x4AC3BC
SUBSTRING(FIRSTNAME,1,2,OCTETS) J -- x4A20 (una serie truncada)
SUBSTRING(FIRSTNAME,8,CODEUNITS16) una serie de longitud cero
SUBSTRING(FIRSTNAME,8,4,OCTETS) una serie de longitud cero
v C1 es una columna VARCHAR(12) de la tabla T1. Uno de sus valores es la serie
de caracteres ABCDEFG. Cuando C1 tiene este valor:
Funcin ... Devuelve ...
------------------------- --------------------
SUBSTRING(C1,-2,2,OCTETS) una serie de longitud cero
SUBSTRING(C1,-2,4,OCTETS) A
SUBSTRING(C1,-2,OCTETS) ABCDEFG
SUBSTRING(C1,0,1,OCTETS) una serie de longitud de cero
v El ejemplo siguiente ilustra cmo SUBSTRING sustituye los bytes de los puntos
de cdigo de mltiples bytes parciales iniciales o de cola con blancos cuando la
unidad de longitud de la serie de caracteres es OCTETS. Presupone que
UTF8_VAR contiene la representacin UTF-8 de la serie Unicode &N~AB,
donde & es el smbolo musical de la clave de sol y ~ es el carcter de tilde de
combinacin.
SUBSTRING(UTF8_VAR, 2, 5, OCTETS)
Informacin relacionada:
v CHARACTER_LENGTH en la pgina 313
v OCTET_LENGTH en la pgina 394
v POSITION en la pgina 395
v SUBSTR en la pgina 431
TABLE_NAME
TABLE_NAME ( nombreobjeto )
, esquemaobjeto
El esquema es SYSIBM.
TABLE_SCHEMA
TABLE_SCHEMA ( nombreobjeto )
, esquemaobjeto
El esquema es SYSIBM.
Ejemplos:
v PBIRD intenta seleccionar las estadsticas para una tabla determinada de
SYSCAT.TABLES utilizando un seudnimo PBIRD.A1 definido en la tabla
HEDGES.T1.
SELECT NPAGES, CARD FROM SYSCAT.TABLES
WHERE TABNAME = TABLE_NAME (A1)
AND TABSCHEMA = TABLE_SCHEMA (A1)
Las estadsticas solicitadas para HEDGES.T1 se recuperan del catlogo.
v Seleccione las estadsticas para un objeto llamado HEDGES.X1 de
SYSCAT.TABLES utilizando HEDGES.X1. Utilice TABLE_NAME y
TABLE_SCHEMA ya que no se conoce si HEDGES.X1 es un seudnimo o una
tabla.
SELECT NPAGES, CARD FROM SYSCAT.TABLES
WHERE TABNAME = TABLE_NAME (X1,HEDGES)
AND TABSCHEMA = TABLE_SCHEMA (X1,HEDGES)
Suponiendo que HEDGES.X1 sea una tabla, las estadsticas solicitadas para
HEDGES.X1 se recuperan del catlogo.
v Seleccione las estadsticas para una tabla determinada de SYSCAT.TABLES
utilizando un seudnimo PBIRD.A2 definido en HEDGES.T2 donde HEDGES.T2
no existe.
SELECT NPAGES, CARD FROM SYSCAT.TABLES
WHERE TABNAME = TABLE_NAME (A2,PBIRD)
AND TABSCHEMA = TABLE_SCHEMA (A2,PBIRD)
La sentencia devuelve 0 registros ya que no se encuentra ninguna entrada en
SYSCAT.TABLES que coincida donde TABNAME = T2 y TABSCHEMA =
HEDGES.
v Seleccione el nombre calificado de cada entrada en SYSCAT.TABLES junto con el
nombre de referencia final para cualquier entrada de seudnimo.
SELECT TABSCHEMA AS SCHEMA, TABNAME AS NAME,
TABLE_SCHEMA (BASE_TABNAME, BASE_TABSCHEMA) AS REAL_SCHEMA,
TABLE_NAME (BASE_TABNAME, BASE_TABSCHEMA) AS REAL_NAME
FROM SYSCAT.TABLES
La sentencia devuelve el nombre calificado para cada objeto en el catlogo y el
nombre de referencia final (despus de haberse resuelto el seudnimo) para
cualquier entrada de seudnimo. Para todas las entradas que no son
seudnimos, BASE_TABNAME y BASE_TABSCHEMA son nulos, por lo tanto
las columnas REAL_SCHEMA y REAL_NAME contendrn nulos.
TAN
TAN ( expresin )
TANH
TANH ( expresin )
El esquema es SYSIBM.
TIME
TIME ( expresin )
El esquema es SYSIBM.
El argumento debe ser una hora, una indicacin de fecha y hora o una
representacin de serie vlida de una hora o de una indicacin de fecha y hora que
no sea CLOB, LONG VARCHAR, DBCLOB ni LONG VARGRAPHIC.
Slo las bases de datos Unicode dan soporte a un argumento que sea una
representacin de serie grfica de una hora o una indicacin de fecha y hora. En
una base de datos Unicode, si un argumento proporcionado es una serie grfica, se
convertir a una serie de caracteres antes de que se ejecute la funcin.
Ejemplo:
v Seleccione todas las notas de la tabla de ejemplo IN_TRAY que se hayan recibido
como mnimo una hora ms tarde (de cualquier da) que la hora actual.
SELECT * FROM IN_TRAY
WHERE TIME(RECEIVED) >= CURRENT TIME + 1 HOUR
TIMESTAMP
TIMESTAMP ( expresin )
,expresin
El esquema es SYSIBM.
Slo las bases de datos Unicode dan soporte a un argumento que es una
representacin de serie grfica de una fecha, una hora o una indicacin de fecha y
hora. En una base de datos Unicode, si un argumento proporcionado es una serie
grfica, se convertir a una serie de caracteres antes de que se ejecute la funcin.
Ejemplo:
v Supongamos que la columna START_DATE (fecha) tiene un valor equivalente a
1988-12-25 y la columna START_TIME (hora) tiene un valor equivalente a
17.12.30.
TIMESTAMP(START_DATE, START_TIME)
Devuelve el valor 1988-12-25-17.12.30.000000.
TIMESTAMP_FORMAT
TIMESTAMP_FORMAT ( expresin-serie serie-formato )
El esquema es SYSIBM.
Ejemplo:
v Inserte una fila en la tabla in_tray con una indicacin de fecha y hora de
recepcin que sea igual a un segundo antes del comienzo del ao 2000 (31 de
diciembre de 1999 a las 23:59:59).
INSERT INTO in_tray (recepcin)
VALUES (TIMESTAMP_FORMAT(1999-12-31 23:59:59,
AAAA-MM-DD HH24:MI:SS))
TIMESTAMP_ISO
TIMESTAMP_ISO ( expresin )
El esquema es SYSFUN.
El argumento debe ser una fecha, una hora, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha, una hora o una
indicacin de fecha y hora que no sea ni CLOB ni LONG VARCHAR. En una base
de datos Unicode, si un argumento proporcionado es una serie grfica, se
convertir a una serie de caracteres antes de que se ejecute la funcin.
TIMESTAMPDIFF
TIMESTAMPDIFF ( expresin , expresin )
El esquema es SYSFUN.
Ejemplo:
TIMESTAMPDIFF(4,CHAR(TIMESTAMP(2001-09-29-11.25.42.483219) -
TIMESTAMP(2001-09-26-12.07.58.065497)))
TO_CHAR
TO_CHAR ( expresin-indicacinfechahora serie-formato )
El esquema es SYSIBM.
Informacin relacionada:
v VARCHAR_FORMAT en la pgina 463
TO_DATE
TO_DATE ( expresin-serie serie-formato )
El esquema es SYSIBM.
Informacin relacionada:
v TIMESTAMP_FORMAT en la pgina 444
TRANSLATE
expresin de serie de caracteres:
TRANSLATE ( exp-serie-car
)
,
, a-exp-serie , de-exp-serie
, car-relleno
,
)
, car-relleno
El esquema es SYSIBM.
La pgina de cdigos del resultado es la misma que la del primer operando. Para
la Versin 8, si el primer operando es una variable del lenguaje principal, la pgina
de cdigos del resultado es la pgina de cdigos de la base de datos. Cada uno de
los dems operandos se convierte a la pgina de cdigos resultante, a menos que
sta o el primer operando se defina como FOR BIT DATA (en cuyo caso no se
realiza ninguna conversin).
Ejemplos:
v Supongamos que la variable de lenguaje principal SITE (VARCHAR(30)) tiene el
valor Hanauma Bay.
TRANSLATE(:SITE)
TRIM ( expresin-serie )
BOTH
FROM
B carcter-supresin
LEADING
L
TRAILING
T
El resultado es una serie de longitud variable con la misma longitud mxima que
el atributo de longitud de la expresin-serie. La longitud real del resultado es la
longitud de la expresin-serie menos el nmero de bytes que se ha de suprimir. Si se
suprimen todos los caracteres, el resultado es una serie de longitud variable vaca.
La pgina de cdigos del resultado es la misma que la pgina de cdigos de la
expresin-serie.
Ejemplos:
v Supongamos que la variable HELLO de sistema principal de tipo CHAR(9) tiene
un valor Hello.
SELECT TRIM(:HELLO),
TRIM(TRAILING FROM :HELLO)
FROM SYSIBM.SYSDUMMY1
Informacin relacionada:
v STRIP en la pgina 430
TRUNCATE o TRUNC
TRUNCATE ( expresin1 , expresin2 )
TRUNC
El resultado puede ser nulo si el argumento puede ser nulo o la base de datos est
configurada con DFT_SQLMATHWARN establecido en YES; el resultado es el
valor nulo si el argumento es nulo.
Ejemplos:
v Utilizando la tabla EMPLOYEE, calcule el salario medio mensual del empleado
mejor pagado. Trunque el resultado dos posiciones a la derecha de la coma
decimal.
SELECT TRUNCATE(MAX(SALARY)/12,2)
FROM EMPLOYEE;
TYPE_ID
TYPE_ID ( expresin )
El esquema es SYSIBM.
El argumento debe ser un tipo estructurado definido por el usuario. (Esta funcin
no puede utilizarse como una funcin fuente cuando se crea una funcin definida
por el usuario. Como acepta cualquier tipo de datos estructurado como argumento,
no es necesario crear signaturas adicionales para dar soporte a los diferentes tipos
definidos por el usuario).
Ejemplos:
v Existe una jerarqua de tablas que tiene una tabla raz EMPLOYEE de tipo EMP
y una subtabla MANAGER de tipo MGR. Otra tabla ACTIVITIES incluye una
columna denominada WHO_RESPONSIBLE que se define como REF(EMP)
SCOPE EMPLOYEE. Para cada referencia de ACTIVITIES, visualice el
identificador de tipo interno de la fila que corresponda a la referencia.
SELECT TASK, WHO_RESPONSIBLE>NAME,
TYPE_ID(DEREF(WHO_RESPONSIBLE))
FROM ACTIVITIES
La funcin DEREF se utiliza para devolver el objeto correspondiente a la fila.
TYPE_NAME
TYPE_NAME ( expresin )
El esquema es SYSIBM.
El argumento debe ser un tipo estructurado definido por el usuario. (Esta funcin
no puede utilizarse como una funcin fuente cuando se crea una funcin definida
por el usuario. Como acepta cualquier tipo de datos estructurado como argumento,
no es necesario crear signaturas adicionales para dar soporte a los diferentes tipos
definidos por el usuario).
Ejemplos:
v Existe una jerarqua de tablas que tiene una tabla raz EMPLOYEE de tipo EMP
y una subtabla MANAGER de tipo MGR. Otra tabla ACTIVITIES incluye una
columna denominada WHO_RESPONSIBLE que se define como REF(EMP)
SCOPE EMPLOYEE. Para cada referencia de ACTIVITIES, visualice el tipo de la
fila que corresponda a la referencia.
SELECT TASK, WHO_RESPONSIBLE>NAME,
TYPE_NAME(DEREF(WHO_RESPONSIBLE)),
TYPE_SCHEMA(DEREF(WHO_RESPONSIBLE))
FROM ACTIVITIES
La funcin DEREF se utiliza para devolver el objeto correspondiente a la fila.
TYPE_SCHEMA
TYPE_SCHEMA ( expresin )
El esquema es SYSIBM.
El argumento debe ser un tipo estructurado definido por el usuario. Esta funcin
no puede utilizarse como una funcin fuente cuando se crea una funcin definida
por el usuario. Como acepta cualquier tipo de datos estructurado como argumento,
no es necesario crear signaturas adicionales para dar soporte a los diferentes tipos
definidos por el usuario.
Informacin relacionada:
v TYPE_NAME en la pgina 457
UCASE o UPPER
UCASE ( expresin )
UPPER
Informacin relacionada:
v TRANSLATE en la pgina 451
VALUE
El esquema es SYSIBM.
Informacin relacionada:
v COALESCE en la pgina 317
VARCHAR
De caracteres a varchar:
VARCHAR ( expresin-caracteres )
, entero
De grfico a varchar:
VARCHAR ( expresin-grfica )
, entero
VARCHAR ( expresin-fechahora )
El esquema es SYSIBM.
expresin-grfica
Una expresin cuyo valor debe ser de tipo de datos de serie grfica
distinto de LONG VARGRAPHIC o DBCLOB y cuya longitud mxima
es de 16 336 caracteres de doble byte.
entero
El atributo de longitud de la serie de caracteres de longitud variable
resultante. El valor debe estar entre 0 y 32 672. Si no se especifica este
argumento, el atributo de longitud del resultado es igual al atributo de
longitud del argumento.
De fecha y hora a varchar
expresin-fechahora
Una expresin cuyo valor debe ser del tipo de datos DATE, TIME o
TIMESTAMP.
Ejemplo:
v Establezca la variable del lenguaje principal JOB_DESC, definida como
VARCHAR(8), en el equivalente VARCHAR de la descripcin del trabajo (que es
el valor de la columna JOB), definido como CHAR(8), para la empleada Dolores
Quintana.
SELECT VARCHAR(JOB)
INTO :JOB_DESC
FROM EMPLOYEE
WHERE LASTNAME = QUINTANA
Informacin relacionada:
v CHAR en la pgina 308
VARCHAR_FORMAT
VARCHAR_FORMAT ( expresin-indicacinfechahora serie-formato )
El esquema es SYSIBM.
Por ejemplo, con el formato AAAA-MM-DD HH24:MI:SS y una hora y fecha de las 10
de la maana del 1 de enero de 2000, se devuelve lo siguiente:
2000-01-01 10:00:00
Aunque los valores para el mes y el da slo requieren un solo dgito, en este
ejemplo, cada dgito significativo va precedido de un cero inicial. Y, aunque el
valor tanto para los minutos como para los segundos sea cero, se utiliza el nmero
mximo de dgitos para cada uno y se devuelve 00 para cada una de estas partes
en el resultado.
Si el primer argumento puede ser nulo, el resultado puede ser nulo; si el primer
argumento es nulo, el resultado es el valor nulo. La pgina de cdigos del
resultado es la pgina de cdigos SBCS del sistema.
Ejemplo:
v Visualice los nombres de tabla y la indicacin de fecha y hora de creacin de
todas las tablas del sistema cuyo nombres empiece por SYSU.
SELECT VARCHAR(name, 20) AS TABLE_NAME,
VARCHAR_FORMAT(ctime, AAAA-MM-DD HH24:MI:SS) AS CREATION_TIME
FROM SYSCAT.TABLES
WHERE name LIKE SYSU%
VARGRAPHIC
De grfico a vargraphic:
VARGRAPHIC ( expresin-grfica )
, entero
De caracteres a vargraphic:
VARGRAPHIC ( expresin-caracteres )
VARGRAPHIC ( expresin-fechahora )
El esquema es SYSIBM.
De carcter a vargraphic
expresin-caracteres
Una expresin cuyo valor debe ser de tipo de datos de serie de
caracteres distinto de LONG VARCHAR o CLOB y cuya longitud
mxima es de 16 336 bytes.
Informacin relacionada:
v GRAPHIC en la pgina 354
v Apndice N, Consideraciones sobre el cdigo UNIX ampliado (EUC) en japons
y chino tradicional, en la pgina 893
WEEK
WEEK ( expresin )
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
WEEK_ISO
WEEK_ISO ( expresin )
El esquema es SYSFUN.
El argumento debe ser una fecha, una indicacin de fecha y hora o una
representacin de serie de caracteres vlida de una fecha o de una indicacin de
fecha y hora que no sea CLOB ni LONG VARCHAR. En una base de datos
Unicode, si un argumento proporcionado es una serie grfica, se convertir a una
serie de caracteres antes de que se ejecute la funcin.
Ejemplo:
XMLATTRIBUTES
,
XMLATTRIBUTES ( expresin-valor-atributo )
AS nombre-atributo
Ejemplos:
)
)
AS "Result"
FROM EMPLOYEE E WHERE E.EDLEVEL = 12
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
v XMLAGG en la pgina 288
XMLCOMMENT
XMLCOMMENT ( expresin-serie )
donde Char se define como cualquier carcter Unicode excepto los bloques de
sustitucin XFFFE y XFFFF. Bsicamente, el comentario XML no puede
contener dos guiones adyacentes y no puede acabar con un guin (SQLSTATE
2200S).
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
v XMLAGG en la pgina 288
XMLCONCAT
El tipo de datos del resultado es XML. El resultado es una secuencia XML que
contiene la concatenacin de los valores XML de entrada que no son nulos. Los
valores nulos de la entrada se pasan por alto. Si el resultado de cualquier
expresin-XML puede ser nulo, el resultado puede ser nulo; si el resultado de cada
valor de entrada es nulo, el resultado es el valor nulo.
Notas:
1. Soporte en bases de datos que no son Unicode y bases de datos de varias
particiones de base de datos: el resultado, en el nivel externo de anidamiento
de la funcin XML, debe ser un argumento de la funcin XMLSERIALIZE
(SQLSTATE 42997).
Ejemplo:
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
v XMLAGG en la pgina 288
XMLDOCUMENT
XMLDOCUMENT ( expresin-XML )
Los hijos del nodo de documento resultante se construyen como se describe en los
pasos siguientes. La expresin de entrada es una secuencia de nodos o valores
atmicos, a la que se hace referencia en estos pasos como secuencia de contenido.
1. Si la secuencia de contenido contiene un nodo de documento, este nodo se
sustituye en la secuencia de contenido por sus hijos.
2. Cada secuencia adyacente de uno o ms valores atmicos en la secuencia de
contenido se sustituye por un nodo de texto que contiene el resultado de la
conversin de cada valor atmico en una serie, insertndose un nico carcter
en blanco entre los valores adyacentes.
3. Para cada nodo de la secuencia de contenido, se construye una nueva copia en
profundidad del nodo. Una copia en profundidad de un nodo es una copia de
todo el subrbol cuya raz se encuentra en ese nodo, e incluye el propio nodo y
sus descendientes. Cada nodo copiado tiene una nueva identidad de nodo. Los
nodos de atributos y elementos copiados conservan su anotacin de tipo.
4. Los nodos de la secuencia de contenido se convierten en hijos del nuevo nodo
de documento.
es equivalente a
XMLDOCUMENT( expresin-XML )
Ejemplo:
v Insertar un documento construido en una columna XML.
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
v XMLAGG en la pgina 288
XMLELEMENT
XMLELEMENT ( NAME nombre-elemento
, declaracin-xmlnamespaces
, funcin-xmlattributes
, expresin-contenido-elemento
)
Notas:
1 La clusula OPTION slo puede especificarse si, como mnimo, se ha
especificado una funcin-xmlattributes o una expresin-contenido-elemento.
2 NULL ON NULL o EMPTY ON NULL slo puede especificarse si, como
mnimo, se ha especificado una expresin-contenido-elemento.
3 Una misma clusula no se debe especificar ms de una vez.
devuelve:
<c xmlns:tst="www.ipo.com" tst:b="2"/>
Un segundo ejemplo:
VALUES XMLELEMENT(
NAME "tst:c", XMLNAMESPACES(
www.tst.com AS "tst"
),
XMLQUERY(
declare namespace ipo="www.ipo.com"; $m/ipo:a/@ipo:b PASSING XMLPARSE(
DOCUMENT <tst:a xmlns:tst="www.ipo.com" tst:b="2"/>
) AS "m"
)
)
devuelve:
<tst:c xmlns:tst="www.tst.com" xmlns:db2ns-a1="www.ipo.com" db2ns-a1:b="2"/>
Ejemplos:
),
XMLAGG(
XMLELEMENT(
NAME "emp", E.FIRSTNME
)
ORDER BY E.FIRSTNME
)
)
AS "dept_list"
FROM EMPLOYEE E
WHERE E.WORKDEPT IN (A00, B01)
GROUP BY WORKDEPT
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLAGG en la pgina 288
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
XMLFOREST
XMLFOREST (
declaracin-xmlnamespaces ,
expresin-contenido-elemento
AS nombre-elemento
)
Notas:
1 Una misma clusula no se debe especificar ms de una vez.
Ejemplo:
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
v XMLAGG en la pgina 288
XMLNAMESPACES
declaracin-xmlnamespaces:
XMLNAMESPACES
( uri-espacio-nombres AS prefijo-espacio-nombres )
(1)
DEFAULT uri-espacio-nombres
NO DEFAULT
Notas:
1 Slo puede especificarse DEFAULT o NO DEFAULT una vez en los
argumentos de XMLNAMESPACES.
Ejemplos:
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
v XMLAGG en la pgina 288
XMLPARSE
STRIP WHITESPACE
XMLPARSE ( DOCUMENT expresin-serie )
PRESERVE WHITESPACE
Conceptos relacionados:
v XML parsing en XML Guide
Informacin relacionada:
v XMLAGG en la pgina 288
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
XMLPI
XMLPI ( NAME nombre-ip )
, expresin-serie
Ejemplos:
v Generar un nodo de instruccin de proceso XML.
SELECT XMLPI(
NAME "Instruction", Push the red button
)
FROM SYSIBM.SYSDUMMY1
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLTEXT en la pgina 500
v XMLVALIDATE en la pgina 502
v XMLAGG en la pgina 288
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
XMLQUERY
XMLQUERY ( constante-expresin-xquery
,
BY REF
PASSING argumento-xquery
BY REF
RETURNING SEQUENCE EMPTY ON EMPTY
)
argumento-xquery:
expresin-variable-xquery AS identificador
BY REF
Esta clusula no afectar al modo en que se pasan los valores que no son
XML. Los valores que no son XML crean una copia nueva del valor
durante la conversin a XML.
argumento-xquery
Especifica un argumento que se pasar a la expresin XQuery especificada
por constante-expresin-xquery. Un argumento especifica un valor y la forma
en que ese valor se debe pasar. El argumento contiene una expresin SQL
que se evala.
v Si el valor del resultado es del tipo XML, se convierte en un
valor-xml-entrada. Un valor XML nulo se convierte en una secuencia XML
vaca.
v Si el valor del resultado no es del tipo XML, debe ser convertible al tipo
de datos XML. Un valor nulo se convierte en una secuencia XML vaca.
El valor convertido se transforma en un valor-xml-entrada.
Cuando se evala la constante-expresin-xquery, se presenta un valor igual a
valor-xml-entrada a una variable XQuery y la clusula AS especifica un
nombre.
expresin-variable-xquery
Especifica una expresin SQL cuyo valor est disponible para la
expresin XQuery especificada por constante-expresin-xquery durante la
ejecucin. La expresin no puede contener una referencia de secuencia
(SQLSTATE 428F9) ni una funcin OLAP (SQLSTATE 42903).
AS identificador
Especifica que el valor generado por expresin-variable-xquery se pasar
a constante-expresin-xquery como una variable XQuery. El nombre de la
variable ser identificador. El smbolo de dlar inicial ($) que precede a
los nombres de variables en el lenguaje XQuery no se incluye en el
identificador. El identificador debe ser un nombre de variable XQuery
vlido y debe tener el formato de un nombre XML NCName
(SQLSTATE 42634). El identificador no debe tener ms de 128 bytes de
longitud. Dos argumentos de la misma clusula PASSING no pueden
emplear el mismo identificador (SQLSTATE 42711).
BY REF
Indica que un valor de entrada XML se debe pasar por referencia.
Cuando los valores XML se pasan por referencia, la evaluacin de
XQuery utiliza los rboles de nodos de entrada, si los hay,
directamente desde las expresiones de entrada especificadas, con lo que
se conservan todas las propiedades, incluyendo las identidades de
nodo originales y el orden del documento. Si dos argumentos pasan el
mismo valor XML, las comparaciones de identidad de nodo y orden de
documento en que intervienen algunos nodos incluidos entre los dos
argumentos de entrada pueden hacer referencia a nodos del mismo
rbol de nodos XML. Si no se especifica BY REF a continuacin de una
expresin-variable-xquery, los argumentos XML se pasan mediante el
mecanismo de pase por omisin que se proporciona mediante la
sintaxis situada tras la palabra clave PASSING. Esta opcin no puede
especificarse para valores que no son XML. Cuando se pasa un valor
que no es XML, el valor se convierte a XML; este proceso crea una
copia.
RETURNING SEQUENCE
Indica que la expresin XMLQUERY devuelve una secuencia.
BY REF
Indica que el resultado de la expresin XQuery se devuelve por referencia. Si
este valor contiene nodos, toda expresin que utilice el valor de retorno de la
expresin XQuery recibir directamente las referencias de nodo, con lo que se
conservan todas las propiedades de los nodos, como las identidades de nodo
originales y el orden del documento. Los nodos a los que se haga referencia
seguirn conectados dentro de sus rboles de nodos. Si no se especifica la
clusula BY REF y se especifica PASSING, se utiliza el mecanismo de pase por
omisin. Si no se especifica BY REF y no se especifica PASSING, el mecanismo
de retorno por omisin es BY REF.
EMPTY ON EMPTY
Especifica un resultado de secuencia vaca obtenido del proceso de la expresin
XQuery se devuelve como una secuencia vaca.
Conceptos relacionados:
v XMLQUERY overview en XML Guide
Informacin relacionada:
v XMLNAMESPACES en la pgina 486
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
XMLSERIALIZE
CONTENT
XMLSERIALIZE ( expresin-XML AS tipo-datos
tipo-datos:
(1)
CHARACTER
CHAR ( entero )
VARCHAR ( entero )
CHARACTER VARYING
CHAR
(1M)
CLOB
CHARACTER LARGE OBJECT ( entero )
CHAR K
M
G
(1M)
BLOB
BINARY LARGE OBJECT ( entero )
K
M
G
Notas:
1 Una misma clusula no se debe especificar ms de una vez.
VERSION 1.0
Especifica la versin XML del valor serializado. La nica versin soportada es
1.0, que se debe especificar como constante de tipo serie (SQLSTATE 42815).
EXCLUDING XMLDECLARATION o INCLUDING XMLDECLARATION
Especifica si se incluye una declaracin XML en el resultado. El valor por
omisin es EXCLUDING XMLDECLARATION.
EXCLUDING XMLDECLARATION
Especifica que una declaracin XML no est incluida en el resultado.
INCLUDING XMLDECLARATION
Especifica que una declaracin XML est incluida en el resultado. La
declaracin XML es la serie <?xml version=1.0 encoding=UTF-8?>.
El resultado tiene el tipo de datos especificado por el usuario. Una secuencia XML
se convierte efectivamente para tener un nico nodo de documento, aplicando
XMLDOCUMENT a la expresin-XML antes de serializar los nodos XML
resultantes. Si el resultado de la expresin-XML puede ser nulo, el resultado puede
ser nulo; si el resultado de la expresin-XML es nulo, el resultado es el valor nulo.
Notas:
1. Soporte en bases de datos que no son Unicode y en bases de datos de varias
particiones de base de datos: La funcin slo recibe el soporte que reciba en la
Versin 8. Se debe especificar la palabra clave CONTENT; no se puede
especificar un tipo de datos BLOB, y tampoco se puede especificar una opcin
XMLDECLARATION (SQLSTATE 42997).
2. Codificacin en el resultado serializado: El resultado serializado est
codificado con UTF-8. Si se utiliza XMLSERIALIZE con un tipo de datos de
caracteres, y se especifica la clusula INCLUDING XMLDECLARATION, es
posible que la serie de caracteres resultante que contiene XML serializado tenga
una declaracin de codificacin XML que no coincida con la pgina de cdigos
de la serie de caracteres. Despus de la serializacin, que utiliza codificacin
UTF-8, la serie de caracteres que se devuelve del servidor al cliente se convierte
en la pgina de cdigos del cliente, y es posible que esa pgina de cdigos sea
diferente de UTF-8.
Por consiguiente, las aplicaciones deben evitar la utilizacin directa de
XMLSERIALIZE INCLUDING XMLDECLARATION que devuelven tipos de
series caracteres y deben recuperar valores XML directamente en variables del
lenguaje principal para mantener la coincidencia entre la pgina de cdigos
externa y la codificacin de la declaracin XML. Si debe utilizarse
XMLSERIALIZE en esta situacin, debe especificarse un tipo BLOB para evitar
la conversin de la pgina de cdigos.
3. Sintaxis alternativa: se puede especificar XMLCLOB(expresin-XML) en lugar
de XMLSERIALIZE(expresin-XML AS CLOB(2G)). Recibe soporte solamente
para la compatibilidad con versiones anteriores de DB2.
Conceptos relacionados:
v XML serialization en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
XMLTEXT
XMLTEXT ( expresin-serie )
La funcin XMLTEXT devuelve un valor XML con un nico nodo de texto XQuery
cuyo contenido es el argumento de entrada.
expresin-serie
Una expresin cuyo valor tiene un tipo de serie de caracteres: CHAR,
VARCHAR o CLOB.
Ejemplos:
v Crear una consulta XMLTEXT simple.
VALUES (
XMLTEXT(
El smbolo para las acciones de Johnson&Johnson es JNJ.
)
)
Tenga en cuenta que el signo & se correlaciona con & cuando se serializa
un nodo de texto.
v Utilice XMLTEXT con XMLAGG para construir contenido mixto. Supongamos
que el contenido de la tabla T es como sigue:
seqno plaintext emphtext
------ ----------------------------------------------------------- -------------
1 Esta consulta muestra cmo construir contenido mixto
2 utilizando XMLAGG y XMLTEXT. Sin XMLTEXT
3 XMLAGG no tendr nodos de texto para agrupar con otros contenido mixto
nodos, por lo tanto, no puede generar
SELECT XMLELEMENT(
NAME "para", XMLAGG(
XMLCONCAT(
XMLTEXT(
PLAINTEXT
),
XMLELEMENT(
NAME "emphasis", EMPHTEXT
)
)
ORDER BY SEQNO
), .
) AS "result"
FROM T
Conceptos relacionados:
v Publishing XML values with SQL/XML en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLVALIDATE en la pgina 502
v XMLAGG en la pgina 288
XMLVALIDATE
DOCUMENT
XMLVALIDATE ( expresin-XML )
validar-XML-segn-clusula
Validar-XML-segn-clusula:
clusula-elemento-vlido-XML
clusula-elemento-vlido-XML:
ELEMENT nombre-elemento-XML
NAMESPACE uri3-XML
NO NAMESPACE
Ejemplos:
v Validar utilizando el esquema XML identificado por la sugerencia del esquema
XML en el documento de instancia XML.
INSERT INTO T1(XMLCOL)
VALUES (XMLVALIDATE(?))
Asimismo, se presupone que el esquema XML que est asociado con el espacio
de nombres de destino http://my.world.com y por la sugerencia
schemaLocation http://my.world.com/world.xsd se encuentra en el depsito
del esquema XML.
Basndose en estas suposiciones, se validar el valor de entrada XML y el tipo
anotado de acuerdo con ese esquema XML.
v Validar utilizando el esquema XML identificado por el nombre de SQL
PODOCS.WORLDPO.
INSERT INTO T1(XMLCOL)
VALUES (
XMLVALIDATE(
? ACCORDING TO XMLSCHEMA ID PODOCS.WORLDPO
)
)
Asumiendo que el esquema XML que est asociado con el nombre de SQL
FOO.WORLDPO se encuentre en el depsito XML, se validar el valor de
entrada XML y el tipo anotado de acuerdo con ese esquema XML.
v Validar un elemento especificado del valor XML.
Conceptos relacionados:
v XML validation en XML Guide
Informacin relacionada:
v XMLATTRIBUTES en la pgina 469
v XMLCOMMENT en la pgina 471
v XMLCONCAT en la pgina 472
v XMLDOCUMENT en la pgina 474
v XMLELEMENT en la pgina 476
v XMLFOREST en la pgina 482
v XMLNAMESPACES en la pgina 486
v XMLPARSE en la pgina 489
v XMLPI en la pgina 491
v XMLQUERY en la pgina 493
v XMLSERIALIZE en la pgina 497
v XMLTEXT en la pgina 500
v XMLAGG en la pgina 288
XMLXSROBJECTID
XMLXSROBJECTID ( expresin-valor-xml )
El esquema es SYSIBM.
Ejemplos:
v Recuperar el identificador de esquema XML para el documento XML XMLDOC
almacenado en la tabla MYTABLE.
SELECT XMLXSROBJECTID(XMLDOC) FROM MYTABLE
v Recuperar los documentos del esquema XML asociados al documento XML que
tiene un ID especfico (en este caso donde DOCKEY=1) en la tabla MYTABLE,
incluida la jerarqua de los documentos de esquema XML que forman el
esquema XML.
SELECT H.HTYPE, C.TARGETNAMESPACE, C.COMPONENT
FROM SYSCAT.XSROBJECTCOMPONENTS C, SYSCAT.XSROBJECTHIERARCHIES H
WHERE C.OBJECTID =
(SELECT XMLXSROBJECTID(XMLDOC) FROM MYTABLE
WHERE DOCKEY = 1)
AND C.OBJECTID = H.XSROBJECTID
YEAR
YEAR ( expresin )
El esquema es SYSIBM.
El argumento debe ser una fecha, una indicacin de fecha y hora, una duracin de
fecha, una duracin de indicacin de fecha y hora o una representacin de serie de
caracteres vlida de una fecha o indicacin de fecha y hora que no sea CLOB ni
LONG VARCHAR. En una base de datos Unicode, si un argumento proporcionado
es una serie grfica, se convertir a una serie de caracteres antes de que se ejecute
la funcin.
Las dems reglas dependen del tipo de datos del argumento especificado:
v Si el argumento es una fecha, una indicacin de fecha y hora o una
representacin vlida de una fecha o de una fecha y hora en forma de serie:
El resultado es la parte correspondiente al ao del valor, que es un entero
entre 1 y 9.999.
v Si el argumento es una duracin de fecha o duracin de indicacin de fecha y
hora:
El resultado es la parte correspondiente al ao del valor, que es un entero
entre 9.999 y 9.999. El resultado que no es cero tiene el mismo signo que el
argumento.
Ejemplos:
v Seleccione todos los proyectos de la tabla PROJECT que se han planificado para
empezar (PRSTDATE) y finalizar (PRENDATE) en el mismo ao.
SELECT * FROM PROJECT
WHERE YEAR(PRSTDATE) = YEAR(PRENDATE)
v Seleccione todos los proyectos de la tabla PROJECT que se haya planificado que
finalizasen en menos de un ao.
SELECT * FROM PROJECT
WHERE YEAR(PRENDATE - PRSTDATE) < 1
Funciones de tabla
Slo se puede utilizar una funcin de tabla en la clusula FROM de una sentencia.
Las funciones de tabla devuelven columnas de una tabla, de aspecto parecido a
una tabla creada mediante una sentencia CREATE TABLE simple. Las funciones de
tabla pueden calificarse con un nombre de esquema.
XMLTABLE
XMLTABLE ( constante-expresin-xquery-fila
declaracin-xmlnamespaces ,
,
BY REF
PASSING argumento-xquery-fila
COLUMNS definicin-columna-normal-tabla-xml )
argumento-xquery-fila:
expresin-variable-xquery AS identificador
BY REF
definicin-columna-normal-tabla-xml:
nombre-columna tipo-datos
BY REF clusula-predefinida PATH constante-expresin-xquery-columna
PASSING
Especifica valores de entrada y la manera en que estos valores se pasan a la
expresin XQuery especificada por la constante-expresin-xquery-fila.
BY REF
Especifica que cualquier argumento de entrada XML pasan por referencia
por omisin. Cuando los valores XML se pasan por referencia, la
evaluacin de XQuery utiliza los rboles de nodos de entrada, si los hay,
directamente desde las expresiones de entrada especificadas, con lo que se
conservan todas las propiedades, incluyendo las identidades de nodo
originales y el orden del documento. Si dos argumentos pasan el mismo
valor XML, las comparaciones de identidad de nodo y orden de
documento en que intervienen algunos nodos incluidos entre los dos
argumentos de entrada pueden hacer referencia a nodos del mismo rbol
de nodos XML.
Esta clusula no afectar al modo en que se pasan los valores que no son
XML. Los valores que no son XML crean una copia nueva del valor
durante la conversin a XML.
argumento-xquery-fila
Especifica un argumento que se debe pasar a la expresin XQuery
especificada por la constante-expresin-xquery-fila. Un argumento especifica
un valor y la forma en que ese valor se debe pasar. El argumento incluye
una expresin SQL que se evala antes de pasar el resultado a la expresin
XQuery.
v Si el valor del resultado es del tipo XML, pasa a ser un valor-xml-entrada.
Un valor XML nulo se convierte en una secuencia XML vaca.
v Si el valor del resultado no es del tipo XML, debe ser convertible al tipo
de datos XML. Un valor nulo se convierte en una secuencia XML vaca.
El valor convertido se transforma en un valor-xml-entrada.
Cuando se evala la constante-expresin-xquery-fila, se presenta una variable
XQuery con un valor equivalente al valor-xml-entrada y un nombre
especificado por la clusula AS.
expresin-variable-xquery
Especifica una expresin SQL cuyo valor est disponible para la
expresin XQuery especificada por la constante-expresin-xquery-fila
durante la ejecucin. La expresin no puede contener una expresin
NEXT VALUE, PREVIOUS VALUE (SQLSTATE 428F9) ni una funcin
OLAP (SQLSTATE 42903).
AS identificador
Especifica que el valor generado por la expresin-variable-xquery pasar
a la constante-expresin-xquery-fila como variable XQuery. El nombre de
la variable ser identificador. El smbolo de dlar inicial ($) que precede
a los nombres de variables en el lenguaje XQuery no se incluye en el
identificador. El identificador debe ser un nombre vlido de variable
XQuery y est restringido a un nombre XML NCName. El identificador
no debe tener ms de 128 bytes de longitud. Dos argumentos de la
misma clusula PASSING no pueden emplear el mismo identificador
(SQLSTATE 42711).
BY REF
Indica que un valor de entrada XML se debe pasar por referencia.
Cuando los valores XML se pasan por referencia, la evaluacin de
XQuery utiliza los rboles de nodos de entrada, si los hay,
directamente desde las expresiones de entrada especificadas, con lo que
Ejemplos:
v Listar como un resultado de tabla los elementos de la orden de compra para las
rdenes con un estado de NEW.
SELECT U."PO ID", U."Part #", U."Product Name",
U."Quantity", U."Price", U."Order Date"
FROM PURCHASEORDER P,
XMLTABLE(XMLNAMESPACES(http://podemo.org AS "pod"),
$po/PurchaseOrder/itemlist/item PASSING P.PORDER AS "po"
COLUMNS "PO ID" INTEGER PATH ../../@POid,
"Part #" CHAR(6) PATH product/@pid,
"Product Name" CHAR(50) PATH product/pod:name,
"Quantity" INTEGER PATH quantity,
"Price" DECIMAL(9,2) PATH product/pod:price,
"Order Date" TIMESTAMP PATH ../../dateTime
) AS U
WHERE P.STATUS = NEW
Conceptos relacionados:
v XMLTABLE overview en XML Guide
expresin
Las funciones definidas por el usuario (UDF) son extensiones o adiciones a las
funciones incorporadas existentes del lenguaje SQL. Una funcin definida por el
usuario puede ser una funcin escalar, que devuelve un solo valor cada vez que se
invoca; una funcin de columna, a la que se pasa un conjunto de valores similares
y devuelve un solo valor para el conjunto; una funcin de fila, que devuelve una
fila o una funcin de tabla, que devuelve una tabla.
Una UDF puede ser una funcin de columna slo si se deriva de una funcin de
columna existente. Se hace referencia a una UDF mediante un nombre de funcin
calificado o no calificado, seguido de parntesis que encierran los argumentos de la
funcin (si los hay). Una funcin de columna escalar definida por el usuario
registrada con la base de datos puede aludirse en los mismos contextos en que
pueda aparecer cualquier funcin incorporada. Una funcin de fila definida por el
usuario slo puede aludirse implcitamente cuando est registrada como funcin
de transformacin para un tipo definido por el usuario. Una funcin de tabla
definida por el usuario registrada en la base de datos slo puede aludirse en la
clusula FROM de una sentencia SELECT.
Informacin relacionada:
v Subseleccin en la pgina 530
v Sentencia CREATE FUNCTION en Consulta de SQL, Volumen 2
procedimiento XSR_ADDSCHEMADOC
XSR_ADDSCHEMADOC ( rschema , nombre , ubicacin-esquema ,
contenido , propiedad-doc )
El esquema es SYSPROC.
Cada esquema XML del depsito de esquemas XML (XSR) puede constar de uno o
ms documentos de esquema XML. Cuando un esquema XML consta de mltiples
documentos, se utiliza el procedimiento almacenado XSR_ADDSCHEMADOC para
aadir cada esquema XML en lugar del documento de esquema XML primario.
Autorizacin:
Ejemplo:
CALL SYSPROC.XSR_ADDSCHEMADOC(
user1,
POschema,
http://myPOschema/address.xsd,
:content_host_var,
0)
procedimiento XSR_COMPLETE
XSR_COMPLETE ( rschema , nombre , propiedades-esquema ,
utilizado-para-descomposicin )
El esquema es SYSPROC.
Autorizacin::
Ejemplo:
CALL SYSPROC.XSR_COMPLETE(
user1,
POschema,
:schemaproperty_host_var,
0)
Procedimiento XSR_DTD
XSR_DTD ( rschema , nombre , systemid , publicid , contenido )
El esquema es SYSPROC.
Autorizacin:
Conceptos relacionados:
v Registering XSR objects through stored procedures en XML Guide
v XML schema, DTD, and external entity management using the XML schema
repository (XSR) en XML Guide
Procedimiento XSR_EXTENTITY
XSR_EXTENTITY ( rschema , nombre , systemid , publicid ,
contenido )
El esquema es SYSPROC.
Autorizacin:
Conceptos relacionados:
v Registering XSR objects through stored procedures en XML Guide
v XML schema, DTD, and external entity management using the XML schema
repository (XSR) en XML Guide
procedimiento XSR_REGISTER
XSR_REGISTER ( rschema , nombre , ubicacin-esquema , contenido ,
propiedad-doc )
El esquema es SYSPROC.
Autorizacin:
propiedad-doc
Parmetro de entrada de tipo BLOB (5M) que indica las propiedades para el
documento de esquema XML primario. Este parmetro puede tener un valor
NULL; en caso contrario, el valor es un documento XML.
Ejemplo:
CALL SYSPROC.XSR_REGISTER(
user1,
POschema,
http://myPOschema/PO.xsd,
:content_host_var,
:docproperty_host_var)
Autorizacin
Para los apodos, los requisitos de autorizacin de la fuente de datos para el objeto
al que el apodo hace referencia se aplican cuando se procesa la consulta. El ID de
autorizacin de la sentencia puede estar correlacionado con un ID de autorizacin
diferente en la fuente de datos.
Informacin relacionada:
v Sentencia SELECT INTO en Consulta de SQL, Volumen 2
Subseleccin
clusula-select clusula-from
clusula-where clusula-group-by
clusula-having clusula-order-by clusula-fetch-first
Una subseleccin especifica una tabla resultante que deriva de las tablas, vistas o
apodos identificados en la clusula FROM. La derivacin puede describirse como
una secuencia de operaciones en las que el resultado de cada operacin es la
entrada de la siguiente. (Es la nica manera de describir la subseleccin. El mtodo
utilizado para realizar la derivacin puede ser bastante distinto del que aqu se
describe. Si existe alguna parte de la subseleccin que en realidad no es necesario
ejecutar para obtener el resultado correcto, es posible que no se ejecute.)
Una subseleccin que contenga una clusula ORDER BY o FETCH FIRST no puede
especificarse:
v En la seleccin completa ms exterior de una vista.
v En una tabla de consultas materializadas.
v A menos que la subseleccin est entre parntesis.
Por ejemplo, lo siguiente no es vlido (SQLSTATE 428FJ):
SELECT * FROM T1
ORDER BY C1
UNION
SELECT * FROM T2
ORDER BY C1
Nota: Una clusula ORDER BY en una subseleccin no afecta el orden de las filas
que una consulta devuelve. Una clusula ORDER BY slo afecta el orden de
las filas devueltas si se especifica en la seleccin completa ms externa.
clusula-select
ALL
SELECT
DISTINCT
*
,
expresin
AS
nombre-nueva-columna
nombre-expuesto.*
La clusula SELECT especifica las columnas de la tabla resultante final. Los valores
de columna los genera la aplicacin de la lista de seleccin a R. La lista de seleccin
son los nombres o expresiones especificados en la clusula SELECT y R es el
resultado de la operacin anterior de la subseleccin. Por ejemplo, si las nicas
clusulas especificadas con SELECT, FROM y WHERE, R es el resultado de la
clusula WHERE.
ALL
Retiene todas las filas de la tabla resultante final y no elimina los duplicados
redundantes. Este es el valor por omisin.
DISTINCT
Elimina todas las filas excepto una de los juegos de filas duplicadas de la tabla
resultante final. Si se utiliza DISTINCT, ninguna columna de tipo serie de la
tabla resultante puede ser un tipo LONG VARCHAR, LONG VARGRAPHIC,
DATALINK o LOB, un tipo diferenciado de cualquiera de estos tipos ni un tipo
estructurado. DISTINCT puede utilizarse ms de una vez en una subseleccin.
Esto incluye SELECT DISTINCT, la utilizacin de DISTINCT en una funcin de
columna de la lista de seleccin o la clusula HAVING y las subconsultas de la
subseleccin.
Dos filas slo son duplicadas una de la otra si cada valor de la primera es
igual al valor correspondiente de la segunda. Para la determinacin de
duplicados, dos valores nulos se consideran iguales.
debe estar calificado y no tiene que ser exclusivo. El uso subsiguiente del
nombre-columna est limitado en lo siguiente:
v Un nuevo-nombre-columna especificado en la clusula AS se puede
utilizar en la clusula-order-by, siempre que sea exclusivo.
v Un nuevo-nombre-columna especificado en la clusula AS de la lista de
seleccin no se puede utilizar en ninguna otra clusula de la
subseleccin (clusula-where, clusula-group-by o clusula-having).
v Un nuevo-nombre-columna especificado en la clusula AS no se puede
utilizar en la clusula-update.
v Un nuevo-nombre-columna especificado en la clusula AS se conoce
fuera de la seleccin completa de las expresiones de tabla anidadas, las
expresiones de tablas comunes y CREATE VIEW.
nombre.*
Representa la lista de nombres que identifican las columnas de la tabla
resultante identificada por nombre-expuesto. El nombre-expuesto puede ser un
nombre de tabla, un nombre de vista, un apodo o un nombre de correlacin, y
debe designar una tabla, una vista o un apodo especificado en la clusula
FROM. El primer nombre de la lista identifica la primera columna de la tabla,
vista o apodo, el segundo nombre de la lista identifica la segunda columna de
la tabla, vista o apodo, y as sucesivamente.
La lista de nombres se establece cuando se vincula la sentencia que contiene la
clusula SELECT. Por lo tanto, * no identifica ninguna columna que se haya
aadido a la tabla despus de vincular la sentencia.
El nmero de columnas del resultado de SELECT es igual al nmero de
expresiones de la forma operativa de la lista de seleccin (es decir, la lista
establecida cuando se ha preparado la sentencia) y no puede exceder de 500
para una pgina de 4K de tamao o de 1012 para una pgina de 8K, 16K o
32K de tamao.
En cualquier caso la columna n del resultado contiene los valores especificados por
la aplicacin de la expresin n en la forma operativa de la lista de seleccin.
Atributos nulos de las columnas del resultado: Las columnas del resultado no
permiten valores nulos si se derivan de:
v Una columna que no permite valores nulos
v Una constante
v La funcin COUNT o COUNT_BIG
v Una variable del lenguaje principal que no tiene una variable indicadora
v Una funcin o expresin escalar no incluye un operando que permita nulos
Tipos de datos de las columnas del resultado: Cada columna del resultado de
SELECT adquiere un tipo de datos de la expresin de la que se deriva.
clusula-from
,
FROM referencia-tabla
referencia-tabla
nombre-tabla
clusula-correlacin clusula-tablesample
apodo
nombre-vista clusula-correlacin
ONLY ( nombre-tabla )
OUTER nombre-vista
TABLE ( nombre-funcin ( ) ) clusula-correlacin
,
expresin
(1)
expresin-xmltable clusula-correlacin
expresin-tabla-anidada
referencia-tabla-cambio-datos
clusula-correlacin
tabla-unida
clusula-correlacin:
AS
nombre-correlacin
,
( nombre-columna )
clusula-tablesample:
REPEATABLE ( expresin-numrica2 )
expresin-tabla-anidada:
manejador-continuo:
valor-condicin-especfica:
VALUE
FEDERATED SQLSTATE constante-serie
,
SQLCODE constante-entera
referencia-tabla-cambio-datos:
Notas:
1 Una expresin XMLTABLE puede formar parte de una referencia de tabla. En
este caso, las subexpresiones de la expresin XMLTABLE se encuentran en el
mbito de variables de un rango anterior de la clusula FROM. Para obtener
ms informacin, consulte la descripcin de XMLTABLE.
2 Puede especificarse TABLE en lugar de LATERAL.
Cada nombre-funcin, junto con los tipos de sus argumentos, especificado como una
referencia a tabla, debe resolverse en una funcin de tabla existente en el servidor
de aplicaciones.
Los nombres expuestos de todas las referencias a tabla deben ser exclusivos. Un
nombre expuesto es:
v Un nombre-correlacin,
v Un nombre-tabla que no va seguido de un nombre-correlacin,
v Un nombre-vista que no va seguido de un nombre-correlacin,
v Un apodo que no va seguido de un nombre-correlacin,
v Un nombre-seudnimo que no va seguido de un nombre-correlacin.
Si se hace referencia directamente a una vista en, o es el destino de, una expresin
de tabla anidada de una sentencia de cambio de datos dentro de una clusula
FROM, la vista debe ser simtrica (debe tener especificado WITH CHECK
OPTION) o debe satisfacer la restriccin correspondiente a una vista WITH
CHECK OPTION.
El nombre-tabla debe ser una tabla almacenada. Puede ser un nombre de tabla de
consultas materializadas (MQT), pero no una subseleccin o expresin de tabla
para la que se haya definido una MQT, porque no hay ninguna garanta de que el
gestor de bases de datos vaya a direccionar a la MQT para dicha subseleccin.
El muestreo BERNOULLI considera cada fila de forma individual. Incluye cada fila
en el ejemplo con la probabilidad P/100 (donde P es el valor de
expresin-numrica1) y ejecuta cada fila con la probabilidad 1 - P/100,
independientemente de las dems filas. De modo que si expresin-numrica1 tiene el
valor 10, lo que significa un ejemplo del diez por ciento, cada fila se incluira con
la probabilidad 0,1 y se excluira con la probabilidad 0,9.
del lenguaje principal. La expresin se debe evaluar en un nmero positivo que sea
inferior o igual a 100, pero puede ser entre 1 y 0. Por ejemplo, un valor 0,01
representa una centsima de un porcentaje, lo que significa que se tomar un
muestreo de 1 fila entre 10.000 como promedio. Una expresin-numrica1 que se
evale en 100 se maneja como si no se hubiera especificado la
clusula-tablesample. Si expresin-numrica1 se evala en un valor nulo o en un
valor mayor que 100 o menor que 0, se devuelve un error (SQLSTATE 2202H).
Ejemplo 1: Solicitar un ejemplo Bernoulli del 10% de la tabla Sales por motivos de
auditora.
SELECT * FROM Sales
TABLESAMPLE BERNOULLI(10)
Ejemplo 2: Calculas los ingresos totales por ventas de la regin Northeast para cada
categora de producto, utilizando un ejemplo aleatorio SYSTEM del 1% de la tabla
Sales. La semntica de SUM corresponde a la propia muestra, de modo que para
extrapolar las ventas a la tabla Sales completa, la consulta debe dividir ducha SUM
por la tasa de muestreo (0,01).
SELECT SUM(Sales.Revenue) / (0.01)
FROM Sales TABLESAMPLE SYSTEM(1)
WHERE Sales.RegionName = Northeast
GROUP BY Sales.ProductCategory
Ejemplo 2: SELECT c1
FROM TABLE( tf2 (:hostvar1, CURRENT DATE) ) AS z;
Ejemplo 3: SELECT c1
FROM t
WHERE c2 IN
(SELECT c3 FROM
TABLE( tf5(t.c4) ) AS z -- referencia correlacionada
) -- a clusula FROM ant.
v Funciones de tabla que modifican datos de SQL
Las funciones de tabla que se especifican con la opcin MODIFIES SQL DATA
slo se pueden utilizar como la ltima referencia de tabla de una sentencia-select,
expresin-tabla-comn o sentencia RETURN que sea una subseleccin, una funcin
SELECT INTO o una seleccin completa de fila de una sentencia SET. Slo se
permite una funcin de tabla en una clusula FROM y los argumentos de la
funcin de tabla deben estar correlacionados con las dems referencias de tabla
de la subseleccin (SQLSTATE 429BL). Los siguientes ejemplos contienen sintaxis
vlida para una funcin de tabla con la propiedad MODIFIES SQL DATA:
Ejemplo 1: SELECT c1
FROM TABLE( tfmod(Jones) ) AS z
Ejemplo 2: SELECT c1
FROM t1, t2, TABLE( tfmod(t1.c1, t2.c1) ) AS z
La palabra clave FEDERATED limita la condicin para gestionar slo los errores
que se producen en una fuente de datos remota.
Slo pueden tolerarse determinados errores. Los errores que no permiten que se
ejecute el resto de la consulta no pueden tolerarse y se de vuelve un error para
toda la consulta. El valor-condicin-especfica puede especificar condiciones que en
realidad el gestor de bases de datos no tolere, aun cuando se especifique un valor
SQLSTATE o SQLCODE, y, en estos casos, se devuelve un error.
Una consulta o una vista que tiene una expresin-tabla-anidada tolerante a errores es
de slo lectura.
empinfo.avgsal, empinfo.empcount
FROM department d,
LATERAL (SELECT AVG(e.salary) AS avgsal,
COUNT(*) AS empcount
FROM employee e -- departamento precede
WHERE e.workdept=d.deptno -- y TABLE se ha
) AS empinfo; -- especificado, por lo que
-- d.deptno se conoce
NEW TABLE
Especifica que las filas de la tabla de resultados intermedia representan el
conjunto de filas que cambia la sentencia de cambio de datos de SQL antes de
la aplicacin de restricciones de referencia y de activadores AFTER. Es posible
que los datos de la tabla de destino al final de la sentencia no coincidan con
los datos de la tabla de resultados intermedia debido al proceso adicional de
restricciones de referencia y activadores AFTER.
OLD TABLE
Especifica que las filas de la tabla de resultados intermedia representan el
conjunto de filas que cambia la sentencia de cambio de datos de SQL tal como
aparecan antes de la aplicacin de lasentencia de cambio de datos.
(sentencia-update-buscada)
Especifica una sentencia UPDATE buscada. Una clusula WHERE o una
clusula SET en la sentencia UPDATE no puede contener referencias
correlacionadas a columnas fuera de la sentencia UPDATE.
(sentencia-delete-buscada)
Especifica una sentencia DELETE buscada. Una clusula WHERE en la
sentencia DELETE no puede contener referencias correlacionadas a columnas
fuera de la sentencia DELETE.
(sentencia-insert)
Especifica una sentencia INSERT. Una seleccin completa en la sentencia
INSERT no puede contener referencias correlacionadas a columnas fuera de la
seleccin completa de la sentencia INSERT.
tabla-unida
INNER
referencia-tabla JOIN referencia-tabla ON condicin-unin
unin externa
( tabla-unida )
unin externa:
OUTER
LEFT
RIGHT
FULL
Una tabla unida especifica una tabla resultante intermedia que es el resultado de
una unin interna o una unin externa. La tabla se deriva de aplicar uno de los
operadores de unin: INNER, LEFT OUTER, RIGHT OUTER o FULL OUTER a sus
operandos.
Se puede decir que las uniones internas son el producto cruzado de las tablas
(combinacin de cada fila de la tabla izquierda con cada fila de la tabla derecha),
conservando slo las filas en que la condicin de unin es verdadera. Es posible
que a la tabla resultante le falten filas de una o ambas tablas unidas. Las uniones
externas incluyen la unin interna y conservan las filas que faltan. Hay tres tipos
de uniones externas:
v unin externa izquierda incluye las filas de la tabla de la izquierda que faltaban
en la unin interna.
v unin externa derecha incluye las filas de la tabla de la derecha que faltaban en
la unin interna.
v unin externa completa incluye las filas las tabla de la izquierda y de la derecha
que faltaban en la unin interna.
es igual a:
(TB1 LEFT JOIN TB2 ON TB1.C1=TB2.C1)
RIGHT JOIN (TB3 LEFT JOIN TB4 ON TB3.C1=TB4.C1)
ON TB1.C1=TB3.C1
Operaciones de unin
Una condicin-unin especifica emparejamientos de T1 y T2, donde T1 y T2 son
tablas de los operandos izquierdo y derecho del operador JOIN de la
condicin-unin. En todas las combinaciones posibles de filas de T1 y T2, una fila de
T1 se empareja con una fila de T2 si la condicin-unin es verdadera. Cuando una
fila de T1 se une con una fila de T2, una fila del resultado consta de los valores de
dicha fila de T1 concatenada con los valores de dicha fila de T2. La ejecucin
puede implicar la generacin de una fila nula. La fila nula de una tabla consta de
un valor nulo para cada columna de la tabla, sin tener en cuenta si las columnas
permiten valores nulos.
clusula-where
WHERE condicin-bsqueda
Clusula group-by
,
GROUP BY expresin-agrupacin
conjuntos-agrupacin
supergrupos
proporcionar primero una tabla resultante con la expresin como una columna del
resultado. Para ver un ejemplo de la utilizacin de expresiones de tabla anidadas,
consulte el Ejemplo A9 en la pgina 558.
conjuntos-agrupacin
,
( expresin-agrupacin )
supergrupos
Tenga en cuenta que los conjuntos de agrupacin son los bloques fundamentales
para la creacin de operaciones GROUP BY. Una operacin GROUP BY simple con
una sola columna puede considerarse un conjunto de agrupacin con un elemento.
Por ejemplo:
GROUP BY a
es igual a
GROUP BY GROUPING SETS((a))
y
GROUP BY a,b,c
es igual a
GROUP BY GROUPING SETS((a,b,c))
supergrupos
(1)
ROLLUP ( lista-expresiones-agrupacin )
(2)
CUBE ( lista-expresiones-agrupacin )
total
lista-expresiones-agrupacin:
expresin-agrupacin
,
( expresin-agrupacin )
total:
( )
Notas:
1 Una especificacin alternativa cuando se utiliza sola en la clusula Group By
es: lista-expresiones-agrupacin WITH ROLLUP.
2 Una especificacin alternativa cuando se utiliza sola en la clusula Group By
es: lista-expresiones-agrupacin WITH CUBE.
ROLLUP ( lista-expresiones-agrupacin )
Una agrupacin ROLLUP es una extensin de la clusula GROUP BY que
produce un conjunto resultante que contiene filas de subtotales adems de las
filas agrupadas normales. Las filas de subtotales son filas superagregadas
que contienen ms agregrados cuyos valores se obtienen al aplicar las mismas
funciones de columna que se han utilizado para obtener las filas agrupadas.
Esta filas se llaman filas de subtotales porque sta es su utilizacin ms
frecuente; sin embargo, puede utilizarse cualquier funcin de columna para la
agregacin. Por ejemplo, MAX y AVG se utilizan en Ejemplo C8 en la pgina
567.
Una agrupacin ROLLUP es una serie de conjuntos-agrupacin. La especificacin
general de ROLLUP con n elementos
GROUP BY ROLLUP(C1,C2,...,Cn-1,Cn)
es equivalente a
GROUP BY GROUPING SETS((C1,C2,...,Cn-1,Cn)
(C1,C2,...,Cn-1)
...
(C1,C2)
(C1)
() )
es equivalente a
GROUP BY GROUPING SETS((a,b)
(a)
() )
mientras que
GROUP BY ROLLUP(b,a)
es igual a
GROUP BY GROUPING SETS((b,a)
(b)
() )
es equivalente a
GROUP BY GROUPING SETS((a,b,c)
(a,b)
(a,c)
(b,c)
(a)
(b)
(c)
() )
que devolver los gastos totales para ROLLUP de City dentro de una Province
pero no de un County. Sin embargo la clusula:
GROUP BY ROLLUP(Province, County, City)
genera
GROUP BY GROUPING SETS((Province, County, City)
(Province)
() )
es equivalente a
GROUP BY GROUPING SETS((a,b,c)
(a,b)
(a) )
O de manera parecida,
GROUP BY a, b, ROLLUP(c,d)
es equivalente a
es equivalente a
GROUP BY GROUPING SETS((a,b,c)
(a,b)
(a)
(b,c)
(b)
() )
De manera similar,
GROUP BY ROLLUP(a), CUBE(b,c)
es equivalente a
GROUP BY GROUPING SETS((a,b,c)
(a,b)
(a,c)
(a)
(b,c)
(b)
(c)
() )
es equivalente a
GROUP BY GROUPING SETS((a,b,c,d)
(a,b,c)
(a,b)
(a,c,d)
(a,c)
(a)
(b,c,d)
(b,c)
(b)
(c,d)
(c)
() )
es equivalente a
GROUP BY GROUPING SETS((a,b)
(a) )
clusula-having
HAVING condicin-bsqueda
Cuando se utiliza HAVING sin GROUP BY, la lista de seleccin slo puede ser un
nombre de columna dentro de una funcin de columna, una referencia
correlacionada a columna, un literal o un registro especial.
clusula-order-by
,
ASC
ORDER BY clave-clasificacin
DESC
ORDER OF diseador-tabla
INPUT SEQUENCE
clave-clasificacin:
nombre-columna-simple
entero-simple
expresin-clave-clasificacin
entero-simple
Debe ser mayor que 0 y no ser superior al nmero de columnas de la tabla
resultante (SQLSTATE 42805). El entero n identifica la columna n de la tabla
resultante.
expresin-clave-clasificacin
Una expresin que no es simplemente un nombre de columna ni una constante
de enteros sin signo. La consulta a la que se aplica la ordenacin debe ser una
subseleccin para utilizar esta forma de clave-clasificacin. La
expresin-clave-clasificacin no puede incluir ninguna seleccin completa escalar
correlacionada (SQLSTATE 42703), ninguna expresin XMLQUERY ni
XMLEXISTS (SQLSTATE 42822), ni ninguna funcin con una accin externa
(SQLSTATE 42845).
Cualquier nombre-columna de una expresin-clave-clasificacin debe ajustarse a
las reglas descritas bajo Nombre de las columnas en claves de clasificacin.
Existen unos cuantos casos especiales que restringen ms las expresiones que
se pueden especificar.
v DISTINCT se especifica en la clusula SELECT de la subseleccin
(SQLSTATE 42822).
La expresin-clave-clasificacin debe coincidir exactamente con una
expresin de la lista de seleccin de la subseleccin (las selecciones
completas-escalares nunca se emparejan).
v La subseleccin est agrupada (SQLSTATE 42803).
La expresin-clave-clasificacin puede:
ser una expresin en la lista de seleccin de la subseleccin,
incluir una expresin-agrupacin de la clusula GROUP BY de la
subseleccin
incluir una funcin de columna, constante o variable del lenguaje
principal.
ASC
Utiliza los valores de la columna en orden ascendente. ste es el valor por
omisin.
DESC
Utiliza los valores de la columna en orden descendente.
ORDER OF diseador-tabla
Especifica que debe aplicarse el mismo orden utilizado en diseador-tabla a la
tabla resultante de la subseleccin. Debe haber una referencia de tabla que se
corresponda con diseador-tabla en la clusula FROM de la subseleccin que
especifica esta clusula (SQLSTATE 42703). La subseleccin (o seleccin
completa) correspondiente al diseador-tabla especificado debe incluir una
clusula ORDER BY que dependa de los datos (SQLSTATE 428FI). El orden
que se aplica es el mismo que si las columnas de la clusula ORDER BY de la
subseleccin anidada (o seleccin completa) se incluyeran en la subseleccin
exterior (o seleccin completa) y estas columnas se especificaran en lugar de la
clusula ORDER OF.
Observe que este formato no se permite en una seleccin completa(excepto
para el formato degenerativo de una seleccin completa). Por ejemplo, el
ejemplo siguiente no es vlido:
(SELECT C1 FROM T1
ORDER BY C1)
UNION
SELECT C1 FROM T2
ORDER BY ORDER OF T1
Notas:
v Nombres de columna en claves de clasificacin:
El nombre de columna est calificado.
La consulta debe ser una subseleccin (SQLSTATE 42877). El nombre de
columna debe identificar sin ambigedades una columna de alguna tabla,
vista o tabla anidada en la clusula FROM de la subseleccin(SQLSTATE
42702). El valor de la columna se utiliza para calcular el valor de la
especificacin de clasificacin.
El nombre de columna no est calificado.
- La consulta es una subseleccin.
Si el nombre de columna es idntico al nombre de ms de una columna de
la tabla resultante, el nombre de columna debe identificar sin
ambigedades una columna de alguna tabla, vista o tabla anidada en la
clusula FROM de la subseleccin de orden (SQLSTATE 42702). Si el
nombre de columna es idntico a una columna, dicha columna se utiliza
para calcular el valor de la especificacin de clasificacin. Si el nombre de
columna no es idntico a una columna de la tabla resultante, debe
identificar sin ambigedades una columna de alguna tabla, vista o tabla
anidada en la clusula FROM de la seleccin completa de la
sentencia-select (SQLSTATE 42702).
- La consulta no es una subseleccin (incluye operaciones de conjuntos como
la unin, excepcin o interseccin).
El nombre de columna no debe ser idntico al nombre de ms de una
columna de la tabla resultante (SQLSTATE 42702). El nombre de columna
debe ser idntico a exactamente una columna de la tabla resultante
(SQLSTATE 42707) y esta columna se utiliza para calcular el valor de la
especificacin de clasificacin.
v Lmites: La utilizacin de una expresin-clave-clasificacin o un
nombre-columna-simple donde la columna no est en la lista de seleccin puede
dar como resultado la adicin de la columna o expresin a la tabla temporal
utilizada para clasificacin. Esto puede dar como resultado que se alcance el
lmite del nmero de columnas de una tabla o el lmite en el tamao de una fila
de una tabla. Si se exceden estos lmites se producir un error si es necesaria una
tabla temporal para realizar la operacin de clasificacin.
clusula-fetch-first
1
FETCH FIRST ROW ONLY
entero ROWS
Limitar la tabla resultante a las primeras entero filas puede mejorar el rendimiento.
El gestor de bases de datos detendr el proceso de la consulta una vez que haya
determinado las entero primeras filas. Si se especifican la clusula-fetch-first y la
clusula-optimize-for, se utiliza el valor entero ms bajo de estas clusulas para
determinar el tamao del almacenamiento intermedio de comunicaciones. Los
valores se tienen en cuenta de forma independiente por motivos de optimizacin.
Ejemplos de subselecciones
Ejemplo A1: Seleccione todas las columnas y filas de la tabla EMPLOYEE.
SELECT * FROM EMPLOYEE
Ejemplo A2: Una las tablas EMP_ACT y EMPLOYEE, seleccione todas las
columnas de la tabla EMP_ACT y aada el apellido del empleado (LASTNAME)
de la tabla EMPLOYEE a cada fila del resultado.
SELECT EMP_ACT.*, LASTNAME
FROM EMP_ACT, EMPLOYEE
WHERE EMP_ACT.EMPNO = EMPLOYEE.EMPNO
Ejemplo A3: Una las tablas EMPLOYEE y DEPARTMENT, seleccione el nmero del
empleado (EMPNO), el apellido del empleado (LASTNAME), el nmero del
departamento (WORKDEPT en la tabla EMPLOYEE y DEPTNO en la tabla
DEPARTMENT) y el nombre del departamento (DEPTNAME) de todos los
empleados que han nacido (BIRTHDATE) con anterioridad a 1930.
SELECT EMPNO, LASTNAME, WORKDEPT, DEPTNAME
FROM EMPLOYEE, DEPARTMENT
WHERE WORKDEPT = DEPTNO
AND YEAR(BIRTHDATE) < 1930
Ejemplo A4: Seleccione el trabajo (JOB) y los salarios mximo y mnimo (SALARY)
de cada grupo de filas con el mismo cdigo de trabajo en la tabla EMPLOYEE,
pero slo para los grupos con ms de una fila y con un salario mximo mayor o
igual que 27000.
SELECT JOB, MIN(SALARY), MAX(SALARY)
FROM EMPLOYEE
GROUP BY JOB
HAVING COUNT(*) > 1
AND MAX(SALARY) >= 27000
Ejemplo A5: Seleccione todas las filas de la tabla EMP_ACT para los empleados
(EMPNO) del departamento (WORKDEPT) E11. (Los nmeros del departamento
del empleado se muestran en la tabla EMPLOYEE.)
SELECT *
FROM EMP_ACT
WHERE EMPNO IN
(SELECT EMPNO
FROM EMPLOYEE
WHERE WORKDEPT = E11)
Esta consulta primero debe crear una expresin de tabla anidada (DINFO) para
obtener las columnas AVGSALARY y EMPCOUNT, as como la columna DEPTNO
que se utiliza en la clusula WHERE.
SELECT THIS_EMP.EMPNO, THIS_EMP.SALARY, DINFO.AVGSALARY, DINFO.EMPCOUNT
FROM EMPLOYEE THIS_EMP,
(SELECT OTHERS.WORKDEPT AS DEPTNO,
AVG(OTHERS.SALARY) AS AVGSALARY,
COUNT(*) AS EMPCOUNT
FROM EMPLOYEE OTHERS
GROUP BY OTHERS.WORKDEPT
) AS DINFO
WHERE THIS_EMP.JOB = SALESREP
AND THIS_EMP.WORKDEPT = DINFO.DEPTNO
Utilizar una expresin de tabla anidada para este caso ahorra la actividad general
de crear la vista DIFO como una vista normal. Durante la preparacin de la
sentencia, se evita el acceso al catlogo para la vista y, debido al contexto del resto
de la consulta, slo se han de tener en cuenta las filas para el departamento de
representantes de ventas para la vista.
Ejemplos de uniones
Ejemplo B1: Este ejemplo ilustra el resultado de varias uniones utilizando las
tablas J1 y J2. Estas tablas contienen las filas que se muestran.
SELECT * FROM J1
W X
--- ------
A 11
B 12
C 13
SELECT * FROM J2
Y Z
--- ------
A 21
C 22
D 23
W X Y Z
--- ------ --- ------
A 11 A 21
C 13 C 22
En este ejemplo de unin interna, la fila con la columna W=C de J1 y la fila con
la columna Y=D de J2 no se incluyen en el resultado porque no tienen una
coincidencia en la otra tabla. Observe que la forma alternativa siguiente de una
consulta de unin interna genera el mismo resultado.
SELECT * FROM J1, J2 WHERE W=Y
La unin externa izquierda siguiente recuperar la fila que falta de J1 con nulos
para las columnas de J2. Se incluyen todas las filas de J1.
W X Y Z
--- ------ --- ------
A 11 A 21
B 12 - -
C 13 C 22
La siguiente unin externa derecha recuperar la fila que falta de J2 con nulos para
las columnas de J1. Se incluyen todas la filas de J2.
SELECT * FROM J1 RIGHT OUTER JOIN J2 ON W=Y
W X Y Z
--- ------ --- ------
A 11 A 21
C 13 C 22
- - D 23
La siguiente unin externa completa recuperar las filas que faltan de las dos
tablas J1 y J2, con nulos cuando sea adecuado. Se incluyen todas las filas de las
tablas J1 y J2.
SELECT * FROM J1 FULL OUTER JOIN J2 ON W=Y
W X Y Z
--- ------ --- ------
A 11 A 21
C 13 C 22
- - D 23
B 12 - -
Ejemplo B2: Utilizando las tablas J1 y J2 del ejemplo anterior, examine lo que pasa
cuando se aade un predicado adicional a la condicin de bsqueda.
SELECT * FROM J1 INNER JOIN J2 ON W=Y AND X=13
W X Y Z
--- ------ --- ------
C 13 C 22
W X Y Z
--- ------ --- ------
- - A 21
C 13 C 22
- - D 23
A 11 - -
B 12 - -
W X Y Z
--- ------ --- ------
C 13 C 22
Por lo tanto, la unin externa completa devolvera 6 filas: 3 filas de J1 con nulos
para las columnas de J2, y 3 filas de J2 con nulos para las columnas de J1.
SELECT * FROM J1 FULL OUTER JOIN J2 ON W=Y AND X=12
W X Y Z
--- ------ --- ------
- - A 21
- - C 22
- - D 23
A 11 - -
B 12 - -
C 13 - -
W X Y Z
--- ------ --- ------
B 12 - -
Ejemplo B4: Liste todos los nmeros de empleado y el apellido con el nmero de
empleado y el apellido de su director, incluyendo los empleados sin director.
SELECT E.EMPNO, E.LASTNAME, M.EMPNO, M.LASTNAME
FROM EMPLOYEE E LEFT OUTER JOIN
DEPARTMENT INNER JOIN EMPLOYEE M
ON MGRNO = M.EMPNO
ON E.WORKDEPT = DEPTNO
Ejemplo C1: Esta es una consulta con una clusula GROUP BY bsica en 3
columnas:
SELECT WEEK(SALES_DATE) AS WEEK,
DAYOFWEEK(SALES_DATE) AS DAY_WEEK,
SALES_PERSON, SUM(SALES) AS UNITS_SOLD
FROM SALES
WHERE WEEK(SALES_DATE) = 13
GROUP BY WEEK(SALES_DATE), DAYOFWEEK(SALES_DATE), SALES_PERSON
ORDER BY WEEK, DAY_WEEK, SALES_PERSON
Da como resultado:
WEEK DAY_WEEK SALES_PERSON UNITS_SOLD
----------- ----------- --------------- -----------
13 6 GOUNOT 11
13 6 LEE 12
13 6 LUCCHESSI 4
13 7 GOUNOT 21
13 7 LEE 21
13 7 LUCCHESSI 4
WHERE WEEK(SALES_DATE) = 13
GROUP BY GROUPING SETS ( (WEEK(SALES_DATE), SALES_PERSON),
(DAYOFWEEK(SALES_DATE), SALES_PERSON))
ORDER BY WEEK, DAY_WEEK, SALES_PERSON
Las filas con WEEK 13 son del primer conjunto de agrupacin y las dems filas
son del segundo conjunto de agrupacin.
Da como resultado:
Ejemplo C6: Este ejemplo muestra dos consultas ROLLUP simples seguidas de una
consulta que trata los dos ROLLUP como conjuntos de agrupacin en un slo
conjunto resultante y especifica el orden de filas para cada columna implicada en
los conjuntos de agrupacin.
Ejemplo C6-1:
da como resultado:
WEEK DAY_WEEK UNITS_SOLD
----------- ----------- -----------
13 6 27
13 7 46
13 - 73
14 1 31
14 2 43
14 - 74
53 1 8
53 - 8
- - 155
Ejemplo C6-2:
SELECT MONTH(SALES_DATE) AS MONTH,
REGION,
SUM(SALES) AS UNITS_SOLD
FROM SALES
GROUP BY ROLLUP ( MONTH(SALES_DATE), REGION );
ORDER BY MONTH, REGION
da como resultado:
MONTH REGION UNITS_SOLD
----------- --------------- -----------
3 Manitoba 22
3 Ontario-North 8
3 Ontario-South 34
3 Quebec 40
3 - 104
4 Manitoba 17
4 Ontario-North 1
4 Ontario-South 14
4 Quebec 11
4 - 43
12 Manitoba 2
12 Ontario-South 4
12 Quebec 2
12 - 8
- - 155
Ejemplo C6-3:
SELECT WEEK(SALES_DATE) AS WEEK,
DAYOFWEEK(SALES_DATE) AS DAY_WEEK,
MONTH(SALES_DATE) AS MONTH,
REGION,
SUM(SALES) AS UNITS_SOLD
FROM SALES
GROUP BY GROUPING SETS ( ROLLUP( WEEK(SALES_DATE), DAYOFWEEK(SALES_DATE) ),
ROLLUP( MONTH(SALES_DATE), REGION ) )
ORDER BY WEEK, DAY_WEEK, MONTH, REGION
da como resultado:
WEEK DAY_WEEK MONTH REGION UNITS_SOLD
----------- ----------- ----------- --------------- -----------
13 6 - - 27
13 7 - - 46
13 - - - 73
14 1 - - 31
14 2 - - 43
14 - - - 74
53 1 - - 8
53 - - - 8
- - 3 Manitoba 22
- - 3 Ontario-North 8
- - 3 Ontario-South 34
- - 3 Quebec 40
- - 3 - 104
- - 4 Manitoba 17
- - 4 Ontario-North 1
- - 4 Ontario-South 14
- - 4 Quebec 11
- - 4 - 43
- - 12 Manitoba 2
- - 12 Ontario-South 4
- - 12 Quebec 2
- - 12 - 8
- - - - 155
- - - - 155
Ejemplo C7: En las consultas que realizan varios ROLLUP en una sola pasada
(como por ejemplo, Ejemplo C6-3 en la pgina 564) tiene la posibilidad de
indicar, si lo desea, qu conjunto de agrupacin ha producido cada fila. Los pasos
siguientes demuestran cmo proporcionar una columna (denominada GROUP) que
indica el origen de cada fila del conjunto resultante. Por origen se quiere decir cual
de los dos conjuntos de agrupacin ha producido la fila del conjunto resultante.
Paso 1: Introduzca una manera de generar los nuevos valores de datos, utilizando
una consulta que los selecciona en la clusula VALUES (que es una forma
alternativa de una seleccin completa). Esta consulta muestra cmo se puede
derivar una tabla llamada X que tienen 2 columnas R1 y R2 y 1 fila de datos.
SELECT R1,R2
FROM (VALUES(GROUP 1,GROUP 2)) AS X(R1,R2);
da como resultado:
R1 R2
------- -------
GROUP 1 GROUP 2
Paso 2: Forme el producto cruzado de esta tabla X con la tabla SALES. Esto aade
las columnas R1 y R2 a cada fila.
SELECT R1, R2, WEEK(SALES_DATE) AS WEEK,
DAYOFWEEK(SALES_DATE) AS DAY_WEEK,
MONTH(SALES_DATE) AS MONTH,
REGION,
SALES AS UNITS_SOLD
FROM SALES,(VALUES(GROUP 1,GROUP 2)) AS X(R1,R2)
Paso 3: Ahora se pueden combinar estas columnas con los conjuntos de agrupacin
para que incluyan estas columnas en el anlisis de avance.
SELECT R1, R2,
WEEK(SALES_DATE) AS WEEK,
DAYOFWEEK(SALES_DATE) AS DAY_WEEK,
MONTH(SALES_DATE) AS MONTH,
REGION, SUM(SALES) AS UNITS_SOLD
FROM SALES,(VALUES(GROUP 1,GROUP 2)) AS X(R1,R2)
GROUP BY GROUPING SETS ((R1, ROLLUP(WEEK(SALES_DATE),
DAYOFWEEK(SALES_DATE))),
(R2,ROLLUP( MONTH(SALES_DATE), REGION ) ) )
ORDER BY WEEK, DAY_WEEK, MONTH, REGION
da como resultado:
R1 R2 WEEK DAY_WEEK MONTH REGION UNITS_SOLD
------- ------- -------- --------- --------- --------------- -----------
GROUP 1 - 13 6 - - 27
GROUP 1 - 13 7 - - 46
GROUP 1 - 13 - - - 73
GROUP 1 - 14 1 - - 31
GROUP 1 - 14 2 - - 43
GROUP 1 - 14 - - - 74
GROUP 1 - 53 1 - - 8
GROUP 1 - 53 - - - 8
- GROUP 2 - - 3 Manitoba 22
- GROUP 2 - - 3 Ontario-North 8
- GROUP 2 - - 3 Ontario-South 34
- GROUP 2 - - 3 Quebec 40
- GROUP 2 - - 3 - 104
- GROUP 2 - - 4 Manitoba 17
- GROUP 2 - - 4 Ontario-North 1
- GROUP 2 - - 4 Ontario-South 14
- GROUP 2 - - 4 Quebec 11
- GROUP 2 - - 4 - 43
- GROUP 2 - - 12 Manitoba 2
- GROUP 2 - - 12 Ontario-South 4
- GROUP 2 - - 12 Quebec 2
- GROUP 2 - - 12 - 8
- GROUP 2 - - - - 155
GROUP 1 - - - - - 155
da como resultado:
Da como resultado:
MONTH REGION UNITS_SOLD BEST_SALE AVG_UNITS_SOLD
----------- --------------- ----------- ----------- --------------
3 Manitoba 22 7 3.14
3 Ontario-North 8 3 2.67
3 Ontario-South 34 14 4.25
3 Quebec 40 18 5.00
3 - 104 18 4.00
4 Manitoba 17 9 5.67
4 Ontario-North 1 1 1.00
4 Ontario-South 14 8 4.67
4 Quebec 11 8 5.50
4 - 43 9 4.78
12 Manitoba 2 2 2.00
12 Ontario-South 4 3 2.00
12 Quebec 2 1 1.00
12 - 8 3 1.60
- Manitoba 41 9 3.73
- Ontario-North 9 3 2.25
- Ontario-South 52 14 4.00
- Quebec 53 18 4.42
- - 155 18 3.87
Informacin relacionada:
Seleccin completa
subseleccin
(seleccin completa)
clusula-values
UNION subseleccin clusula-order-by
UNION ALL (seleccin completa)
EXCEPT clusula-values
EXCEPT ALL
INTERSECT
INTERSECT ALL
clusula-fetch-first
clusula-values:
VALUES fila-valores
fila-valores:
expresin
NULL
,
( expresin )
NULL
INTER-
UNION EXCEPT SECT INTER-
R1 R2 ALL UNION ALL EXCEPT ALL SECT
1 1 1 1 1 2 1 1
1 1 1 2 2 5 1 3
1 3 1 3 2 3 4
2 3 1 4 2 4
2 3 1 5 4
2 3 2 5
3 4 2
4 2
4 3
5 3
3
3
3
4
4
4
5
Ejemplo 4: Realice la misma consulta que en el ejemplo 2, slo que utilice UNION
ALL para que no se elimine ninguna fila duplicada.
SELECT EMPNO
FROM EMPLOYEE
WHERE WORKDEPT LIKE E%
UNION ALL
SELECT EMPNO
FROM EMP_ACT
WHERE PROJNO IN(MA2100, MA2110, MA2112)
Ejemplo 5: Realice la misma consulta que en el ejemplo 3, slo que esta vez
incluya dos empleados adicionales que no estn actualmente en ninguna tabla e
identifquelos como new.
SELECT EMPNO, emp
FROM EMPLOYEE
WHEREWORKDEPTLIKE E%
UNION
SELECT EMPNO, emp_act
FROM EMP_ACT
WHERE PROJNO IN(MA2100, MA2110, MA2112)
UNION
VALUES (NEWAAA, new), (NEWBBB, new)
Ejemplo 6: Este ejemplo de EXCEPT genera todas las filas que estn en T1 pero no
en T2.
(SELECT * FROM T1)
EXCEPT ALL
(SELECT * FROM T2)
Si no hay ningn valor NULL implicado, este ejemplo devuelve los mismos
resultados que
SELECT ALL *
FROM T1
WHERE NOT EXISTS (SELECT * FROM T2
WHERE T1.C1 = T2.C1 AND T1.C2 = T2.C2 AND...)
Ejemplo 7: Este ejemplo de INTERSECT genera todas las filas que estn en ambas
tablas, T1 y T2, eliminando los duplicados.
(SELECT * FROM T1)
INTERSECT
(SELECT * FROM T2)
Si no hay valores NULL implicados, este ejemplo devuelve el mismo resultado que
SELECT DISTINCT * FROM T1
WHERE EXISTS (SELECT * FROM T2
WHERE T1.C1 = T2.C1 AND T1.C2 = T2.C2 AND...)
Informacin relacionada:
v Reglas para los tipos de datos del resultado en la pgina 129
v Reglas para la conversin de series en la pgina 133
Sentencia select
seleccin-completa *
,
WITH expresin-tabla-comn
* *
clusula-read-only clusula-optimize-for
clusula-update
clusula-isolation
expresin-comn-tabla
nombre-tabla
,
(1)
( nombre-columna )
AS ( seleccin-completa )
Notas:
1 Si una expresin de tabla comn es recursiva o si la seleccin completa da
como resultado nombres de columna duplicados, deben especificarse los
nombres de columna.
Una expresin de tabla comn permite la definicin de una tabla resultante con un
nombre-tabla que puede especificarse como un nombre de tabla en cualquier
clusula FROM de la seleccin completa que sigue. Se pueden especificar mltiples
expresiones de tabla comunes a continuacin de una sola palabra clave WITH.
Cada expresin de tabla comn especificada tambin puede referirse por nombre
en la clusula FROM de expresiones de tabla comunes subsiguientes.
Si una seleccin completa de una expresin de tabla comn contiene una referencia
a tabla de cambio de datos en la clusula FROM, se dice que la expresin de tabla
comn modifica los datos. Una expresin de tabla comn que modifica datos
siempre se evala cuando se procesa la sentencia, independientemente de si la
expresin de tabla comn se utiliza en cualquier otro lugar de la sentencia. Si hay
al menos una expresin de tabla comn que lee o modifica datos, todas las
expresiones de tabla comn se procesan en el orden en el que aparecen, y cada
expresin de tabla comn que lee o modifica datos se ejecuta por completo,
incluidas todas las restricciones y activadores, antes de que se ejecuten las
expresiones de tabla comn siguientes.
Las aplicaciones de tipo Lista de material (BOM) son una necesidad habitual en
muchos entornos comerciales. Para ilustrar la capacidad de una expresin de tabla
comn recursiva para aplicaciones BOM, considere una tabla de piezas con
subpiezas asociadas y la cantidad de subpiezas que se precisan en la pieza. Para
este ejemplo, cree la tabla como se muestra a continuacin:
CREATE TABLE PARTLIST
(PIEZA VARCHAR(8),
SUBPIEZA VARCHAR(8),
CANTIDAD INTEGER);
00 05 3
01 02 2
01 03 3
01 04 4
01 06 3
02 05 7
02 06 6
03 07 6
04 08 10
04 09 11
05 10 10
05 11 10
06 12 10
06 13 10
07 14 8
07 12 8
El segundo operando (seleccin completa) de UNION utiliza RPL para calcular las
subpiezas de subpiezas haciendo que la clusula FROM har referencia a la
expresin de tabla comn RPL y la tabla fuente con una unin de una pieza de la
tabla fuente (hija) a una subpieza del resultado actual contenido en RPL (padre). El
resultado vuelve a RPL de nuevo. El segundo operando de UNION se utiliza
entonces repetidamente hasta que ya no existan ms hijas.
Es importante recordar que con las expresiones de tabla comunes recursivas puede
generarse un bucle infinito. En este ejemplo, se producira un bucle infinito si la
condicin de bsqueda del segundo operando que une las tablas madre e hija
tuviera esta codificacin:
SUBPIEZA.PADRE = SUBPIEZA.HIJA
)
SELECT PIEZA, SUBPIEZA, SUM(CANTIDAD) AS "Cantidad total utilizada"
FROM RPL
GROUP BY PIEZA, SUBPIEZA
ORDER BY PIEZA, SUBPIEZA;
clusula-update
FOR UPDATE
,
OF nombre-columna
La clusula FOR UPDATE identifica las columnas que se pueden actualizar en una
sentencia UPDATE con posicin posterior. Cada nombre-columna debe estar sin
calificar y debe identificar una columna de la tabla o vista identificada en la
primera clusula FROM de la seleccin completa. Si la clusula FOR UPDATE se
especifica sin nombres de columna, se incluyen todas las columnas actualizables de
la tabla o vista identificadas en la primera clusula FROM de la seleccin
completa.
clusula-read-only
FOR READ ONLY
FETCH
La clusula FOR READ ONLY indica que la tabla resultante es de slo lectura y
que, por lo tanto, no se puede hacer referencia al cursor en las sentencias UPDATE
con posicin y DELETE. FOR FETCH ONLY tiene el mismo significado.
Algunas tablas resultantes son de slo lectura por naturaleza. (Por ejemplo, una
tabla basada en una vista de slo lectura.) Se puede seguir especificando FOR
READ ONLY para dichas tablas, pero la especificacin no surtir efecto.
Para las tablas resultantes en las que estn permitidas las actualizaciones y las
supresiones, la especificacin de FOR READ ONLY (o FOR FETCH ONLY)
posiblemente mejorar el rendimiento de las operaciones FETCH, ya que permite
al gestor de bases de datos realizar el bloqueo. Por ejemplo, en los programas que
contienen sentencias de SQL dinmico sin la clusula FOR READ ONLY ni ORDER
BY, el gestor de bases de datos puede abrir cursores como si hubiese especificado
la clusula FOR UPDATE. Por lo tanto, se recomienda utilizar la clusula FOR
READ ONLY para mejorar el rendimiento, excepto en los casos en que se utilizarn
las consultas en sentencias UPDATE o DELETE.
No se debe hacer referencia a una tabla resultante de slo lectura en una sentencia
UPDATE con posicin o DELETE, ya sea de slo lectura por naturaleza o
especificada como FOR READ ONLY (FOR FETCH ONLY).
clusula-optimize-for
OPTIMIZE FOR entero ROWS
ROW
clusula-isolation
WITH RR
clusula-lock-request
RS
clusula-lock-request
CS
UR
clusula-lock-request
USE AND KEEP SHARE LOCKS
UPDATE
EXCLUSIVE
La utilizacin de una expresin de tabla comn para este caso ahorra la actividad
de crear una vista DINFO como una vista normal. Durante la preparacin de la
sentencia, se evita el acceso al catlogo para la vista y, debido al contexto del resto
de la seleccin completa, slo se han de tener en cuenta las filas para el
departamento de representantes de ventas para la vista.
WITH
DINFO (DEPTNO, AVGSALARY, EMPCOUNT) AS
(SELECT OTHERS.WORKDEPT, AVG(OTHERS.SALARY), COUNT(*)
FROM EMPLOYEE OTHERS
GROUP BY OTHERS.WORKDEPT
),
DINFOMAX AS
(SELECT MAX(AVGSALARY) AS AVGMAX FROM DINFO)
SELECT THIS_EMP.EMPNO, THIS_EMP.SALARY,
DINFO.AVGSALARY, DINFO.EMPCOUNT, DINFOMAX.AVGMAX
FROM EMPLOYEE THIS_EMP, DINFO, DINFOMAX
WHERE THIS_EMP.JOB = SALESREP
AND THIS_EMP.WORKDEPT = DINFO.DEPTNO
WITH
NEWEMP AS (SELECT EMPNO FROM NEW TABLE
(INSERT INTO EMPLOYEE(EMPNO, FIRSTNME)
VALUES(NEXT VALUE FOR EMPNO_SEQ, GEORGE))),
OLDEMP AS (SELECT EMPNO FROM EMPLOYEE WHERE FIRSTNME = SALLY),
UPPROJ AS (SELECT PROJNAME FROM NEW TABLE
(UPDATE PROJECT
SET RESPEMP = (SELECT EMPNO FROM NEWEMP)
WHERE RESPEMP = (SELECT EMPNO FROM OLDEMP))),
DELEMP AS (SELECT EMPNO FROM OLD TABLE
(DELETE FROM EMPLOYEE
WHERE EMPNO = (SELECT EMPNO FROM OLDEMP)))
SELECT PROJNAME FROM UPPROJ;
Informacin relacionada:
v Sentencia DECLARE CURSOR en Consulta de SQL, Volumen 2
v Subseleccin en la pgina 530
Notas:
1. Los compiladores de lenguaje principal individuales pueden aplicar lmites ms
restrictivos a los nombres de variables.
2. El nombre de esquema SQL para un tipo definido por el usuario est limitado a 8
bytes.
Notas:
1. Este mximo puede conseguirse utilizando una unin en la sentencia CREATE VIEW.
La seleccin de dicha vista est sujeta al lmite del nmero mximo de elementos de
una lista de seleccin.
2. Los datos reales para las columnas BLOB, CLOB, LONG VARCHAR, DBCLOB y LONG
VARGRAPHIC no se incluyen en esta cuenta. Sin embargo, la informacin acerca de la
ubicacin de los datos ocupa espacio en la fila.
3. Los nmeros mostrados son lmites y aproximaciones arquitectnicos. En la prctica los
lmites pueden ser menores.
4. El valor real ser el valor del parmetro de configuracin MAXAGENTS.
5. Es un lmite de arquitectura. El lmite en la mayora de las columnas de una clave de
ndice debe utilizarse como el lmite prctico.
6. Los objetos de tabla incluyen datos, ndices, columnas LONG VARCHAR o
VARGRAPHIC y columnas LOB. Los objetos de tabla que estn en el mismo espacio de
tablas que los datos de tabla no cuentan como adicionales respecto al lmite. No
obstante, cada objeto de tabla que est en un espacio de tablas diferente de los datos de
tabla representa uno respecto al lmite para cada tipo de objeto de tabla por tabla en el
espacio de tablas en que reside el objeto de tabla.
7. Para ver los valores relativos al tamao, consulte la Tabla 35.
8. Est limitado solamente por la clave de ndice ms larga que incluye toda la actividad
general (en bytes). A medida que aumenta el nmero de partes de claves de ndice,
disminuye la longitud mxima de cada parte de clave.
9. El mximo puede ser inferior, segn las opciones del ndice.
Tabla 35. Lmites especficos de tamao de pgina del gestor de bases de datos
Lmite de Lmite de
Lmite de Lmite de tamao de tamao de
tamao de tamao de pgina de pgina de
Descripcin pgina de 4K pgina de 8K 16K 32K
Nmero mximo de 500 1.012 1.012 1.012
columnas en una tabla
Longitud mxima de una 4.005 8.101 16 293 32 677
fila que incluye toda la
actividad general
Tamao mximo de una 64 128 256 512
tabla por particin de base
de datos en un espacio de
tablas normal (en gigabytes)
Tamao mximo de una 2048 4096 8192 16.384
tabla por particin de base
de datos en un espacio de
tablas grande (en gigabytes)
Longitud mxima de la 1024 2048 4096 8192
clave de ndice que incluye
toda la actividad general (en
bytes)
Informacin relacionada:
v maxagents - Maximum number of agents configuration parameter en
Performance Guide
Tabla 36. Campos de la SQLCA (continuacin). Los nombres de los campos que se
muestran son aquellos presentes en una SQLCA obtenida mediante una sentencia
INCLUDE.
Nombre Tipo de datos Valores de campos
sqlerrmc VARCHAR Contiene uno o ms smbolos, separados por X'FF', que
(70) sustituyen a las variables en las descripciones de las
condiciones de error.
Tabla 36. Campos de la SQLCA (continuacin). Los nombres de los campos que se
muestran son aquellos presentes en una SQLCA obtenida mediante una sentencia
INCLUDE.
Nombre Tipo de datos Valores de campos
sqlerrd(3) INTEGER Si se invoca PREPARE y la operacin es satisfactoria,
contiene una estimacin del nmero de filas que se
devolvern. Despus de INSERT, UPDATE, DELETE o
MERGE, contiene el nmero real de filas que estaban
cualificadas para la operacin. Si se invoca SQL compuesto,
contiene una acumulacin de todas las filas de
subsentencia. Si se invoca CONNECT, contiene 1 si la base
de datos se puede actualizar, o 2 si la base de datos es de
slo lectura.
Tabla 36. Campos de la SQLCA (continuacin). Los nombres de los campos que se
muestran son aquellos presentes en una SQLCA obtenida mediante una sentencia
INCLUDE.
Nombre Tipo de datos Valores de campos
sqlerrd(6) INTEGER Para una base de datos particionada, contiene el nmero de
particin de la particin de base de datos que ha
encontrado el error o aviso. Si no se han encontrado errores
ni avisos, este campo contiene el nmero de particin del
coordinador. El nmero de este campo es igual al
especificado para la particin de base de datos del archivo
db2nodes.cfg.
sqlwarn Matriz Un conjunto de indicadores de aviso, que contiene cada
uno un blanco o W. Si se invoca SQL compuesto, contiene
una acumulacin de indicadores de aviso establecidos para
todas las subsentencias.
sqlwarn0 CHAR(1) Espacio en blanco si todos los dems indicadores estn en
blanco; contiene una W si como mnimo otro indicador no
est en blanco.
sqlwarn1 CHAR(1) Contiene una W si el valor de una columna de serie se ha
truncado cuando se ha asignado a una variable del
lenguaje principal. Contiene una N si el terminador nulo
se ha truncado. Contiene una A si la operacin
CONNECT o ATTACH se realiza satisfactoriamente y el
nombre de autorizacin de la conexin tiene ms de 8
bytes. Contiene una P si el coste estimado relativo de la
sentencia PREPARE de sqlerrd(4) sobrepasaba el valor que
poda almacenarse en un INTEGER o era menor que 1 y el
registro especial CURRENT EXPLAIN MODE o CURRENT
EXPLAIN SNAPSHOT se ha establecido en un valor
distinto de NO.
sqlwarn2 CHAR(1) Contiene una W si los valores nulos se han eliminado del
argumento de una funcin de columna. a
Tabla 36. Campos de la SQLCA (continuacin). Los nombres de los campos que se
muestran son aquellos presentes en una SQLCA obtenida mediante una sentencia
INCLUDE.
Nombre Tipo de datos Valores de campos
sqlwarn9 CHAR(1) Contiene una W si se han pasado por alto las expresiones
aritmticas que contienen errores durante el proceso de
funcin de columna.
sqlwarn10 CHAR(1) Contiene una W si ha habido un error de conversin al
convertir un valor de datos de caracteres de uno de los
campos de la SQLCA.
sqlstate CHAR(5) Un cdigo de retorno que indica el resultado de la
sentencia de SQL ejecutada ms recientemente.
a
Es posible que algunas funciones no establezcan SQLWARN2 en W aunque se hayan
eliminado los valores nulos, porque el resultado no dependa de la eliminacin de dichos
valores.
Informe de errores
El orden en que se informa de los errores es el siguiente:
1. Las condiciones de error graves siempre se informan. Cuando se informa de un
error grave, no hay ninguna adicin a la SQLCA.
2. Si no se produce ningn error grave, un error de punto muerto tiene prioridad
sobre los dems errores.
3. En el resto de errores, se devuelve la SQLCA para el primer cdigo SQL
negativo.
4. Si no se detecta ningn cdigo SQL negativo, se devuelve la SQLCA para el
primer aviso (es decir, cdigo SQL positivo).
En un sistema de base de datos particionada, se produce una excepcin a esta
norma si se invoca una operacin de manipulacin de datos en una tabla que
est vaca en una particin de base de datos, pero que tiene datos en otras
particiones de base de datos. Slo se devuelve SQLCODE +100 a la aplicacin
si los agentes de todas las particiones devuelven SQL0100W, porque la tabla
est vaca en todas las particiones de base de datos o porque no hay ms filas
que cumplan la clusula WHERE de una sentencia UPDATE.
Para proporcionar una vista coherente para las aplicaciones, todos los valores de
SQLCA se fusionan en una estructura y los campos de SQLCA indican cuentas
globales como, por ejemplo:
v Para todos los errores y avisos, el campo sqlwarn contiene los distintivos de
aviso recibidos de todos los agentes.
v Los valores de los campos sqlerrd que indican cuentas de fila son acumulaciones
de todos los agentes.
Observe que es posible que no se devuelva SQLSTATE 09000 cada vez que se
produzca un error durante el proceso de una sentencia de SQL activada.
Las circunstancias bajo las que DESCRIBE establece las entradas SQLVAR se
detallan en el apartado Efecto de DESCRIBE en la SQLDA en la pgina 606.
Tenga en cuenta que, aunque el principal propsito de este campo es para el nombre de los tipos definidos por el
usuario, el campo tambin se establece para los tipos de datos predefinidos por IBM. En este caso, el nombre de
esquema es SYSIBM y la parte de orden inferior del nombre es el nombre almacenado en la columna TYPENAME de
la vista de catlogo DATATYPES. Por ejemplo:
Nombre tipo longitud nombre_sqldatatype
--------- ------ ----------------
A.B 10 A .B
INTEGER 16 SYSIBM .INTEGER
"Franks".SMINT 13 Franks .SMINT
MY."type " 15 MY .type
v SQLN < SQLD y como mnimo una entrada es un tipo diferenciado o un tipo de
referencia, pero no hay entradas LOB ni entradas de tipo estructurado
No se establece ninguna entrada SQLVAR y SQLDOUBLED se establece en
blanco. Si la opcin SQLWARN es YES, se emite un aviso SQLCODE +239
(SQLSTATE 01005).
Asigne un nmero de estructuras SQLVAR igual a 2*SQLD para lograr una
operacin DESCRIBE satisfactoria que incluya los nombres de los tipos
diferenciados y tipos destino de tipos de referencia.
v SQLN < 2*SQLD y como mnimo una entrada es un LOB o un tipo estructurado
No se establece ninguna entrada SQLVAR y SQLDOUBLED se establece en
blanco. Se emite un aviso SQLCODE +238 (SQLSTATE 01005) (sin tener en
cuenta el valor de la opcin de vinculacin SQLWARN).
Asigne las 2*SQLD SQLVAR para una operacin DESCRIBE satisfactoria.
Las referencias de las listas anteriores a entradas LOB incluyen las entradas de tipo
diferenciado cuyo tipo fuente es un tipo LOB.
SQLTYPE y SQLLEN
La Tabla 40 muestra los valores que pueden aparecer en los campos SQLTYPE y
SQLLEN de la SQLDA. En DESCRIBE y PREPARE INTO, un valor par de
SQLTYPE significa que la columna no permite nulos y un valor impar significa que
la columna permite nulos. En FETCH, OPEN y EXECUTE, un valor par de
SQLTYPE significa que no se proporciona una variable indicadora y un valor
impar significa que SQLIND contiene la direccin de una variable indicadora.
Tabla 40. Valores SQLTYPE y SQLLEN para DESCRIBE, FETCH, OPEN y EXECUTE
Para DESCRIBE y PREPARE INTO Para FETCH, OPEN y EXECUTE
Tipo de datos de
Tipo de datos de variable del lenguaje
SQLTYPE columna SQLLEN principal SQLLEN
384/385 date 10 representacin de una atributo de longitud
fecha en serie de de la variable del
caracteres de longitud lenguaje principal
fija
Tabla 40. Valores SQLTYPE y SQLLEN para DESCRIBE, FETCH, OPEN y EXECUTE (continuacin)
Para DESCRIBE y PREPARE INTO Para FETCH, OPEN y EXECUTE
Tipo de datos de
Tipo de datos de variable del lenguaje
SQLTYPE columna SQLLEN principal SQLLEN
388/389 hora 8 representacin de una atributo de longitud
hora en serie de de la variable del
caracteres de longitud lenguaje principal
fija
392/393 timestamp 26 representacin de una atributo de longitud
indicacin de fecha y de la variable del
hora en serie de lenguaje principal
caracteres de longitud
fija
396/397 DATALINK atributo de longitud DATALINK atributo de longitud
de la columna de la variable del
lenguaje principal
400/401 N/D N/D serie grfica atributo de longitud
terminada en NUL de la variable del
lenguaje principal
* *
404/405 BLOB 0 BLOB No utilizado.
* *
408/409 CLOB 0 CLOB No utilizado.
* *
412/413 DBCLOB 0 DBCLOB No utilizado.
448/449 serie de caracteres de atributo de longitud serie de caracteres de atributo de longitud
longitud variable de la columna longitud variable de la variable del
lenguaje principal
452/453 serie de caracteres de atributo de longitud serie de caracteres de atributo de longitud
longitud fija de la columna longitud fija de la variable del
lenguaje principal
456/457 serie larga de atributo de longitud serie larga de atributo de longitud
caracteres de longitud de la columna caracteres de longitud de la variable del
variable variable lenguaje principal
460/461 N/D N/D serie de caracteres atributo de longitud
terminada en NUL de la variable del
lenguaje principal
464/465 serie grfica de atributo de longitud serie grfica de atributo de longitud
longitud variable de la columna longitud variable de la variable del
lenguaje principal
468/469 serie grfica de atributo de longitud serie grfica de atributo de longitud
longitud fija de la columna longitud fija de la variable del
lenguaje principal
472/473 serie grfica de atributo de longitud serie grfica larga atributo de longitud
longitud variable de la columna de la variable del
larga lenguaje principal
480/481 coma flotante 8 para precisin coma flotante 8 para precisin
doble, 4 para doble, 4 para
precisin simple precisin simple
484/485 decimal empaquetado precisin en byte 1; decimal empaquetado precisin en byte 1;
escala en byte 2 escala en byte 2
492/493 entero superior 8 entero superior 8
496/497 entero grande 4 entero grande 4
Tabla 40. Valores SQLTYPE y SQLLEN para DESCRIBE, FETCH, OPEN y EXECUTE (continuacin)
Para DESCRIBE y PREPARE INTO Para FETCH, OPEN y EXECUTE
Tipo de datos de
Tipo de datos de variable del lenguaje
SQLTYPE columna SQLLEN principal SQLLEN
500/501 entero pequeo 2 entero pequeo 2
916/917 No aplicable No aplicable variable de referencia 267
a archivos BLOB.
920/921 No aplicable No aplicable variable de referencia 267
a archivos CLOB.
924/925 No aplicable No aplicable variable de referencia 267
a archivos DBCLOB.
960/961 No aplicable No aplicable localizador de BLOB 4
964/965 No aplicable No aplicable localizador de CLOB 4
968/969 No aplicable No aplicable localizador de 4
DBCLOB
988/989 XML 0 Ninguno aplicable. En No utilizado.
su lugar, utilice una
variable del lenguaje
principal XML AS
<serie o binaria de
tipo LOB>.
Nota:
v El campo len.sqllonglen de la SQLVAR secundaria contiene el atributo de longitud de la columna.
v SQLTYPE se ha modificado desde la versin anterior para portabilidad en DB2. Los valores de las versiones
anteriores (consulte Referencia SQL de la versin anterior) seguirn siendo soportados.
Los tipos de datos nuevos pueden recibir o no soporte del que enva los datos o
del que los recibe y pueden estar reconocidos o incluso no estarlo por el que enva
los datos o el que los recibe. Segn la situacin, puede devolverse el tipo de datos
nuevo o puede devolverse un tipo de datos compatible con el acuerdo del que
enva los datos y del que los recibe o bien puede dar como resultado un error.
Cuando el que enva los datos y el que los recibe se ponen de acuerdo para utilizar
un tipo de datos compatible, la indicacin siguiente expresa la correlacin que
tendr lugar. Esta correlacin tendr lugar cuando, como mnimo, o el que enva
los datos o el que los recibe no d soporte al tipo de datos proporcionado. Tanto la
aplicacin como el gestor de bases de datos pueden proporcionar el tipo de datos
no soportado.
El signo lo indica un nybble a la derecha de los nybbles que representa los dgitos.
Un signo positivo o negativo se indica de la siguiente manera:
Tabla 41. Valores para el indicador de signo de un nmero decimal empaquetado
Representacin
Signo Binaria Decimal Hexadecimal
Positivo (+) 1100 12 C
Negativo (-) 1101 13 D
En resumen:
v Para almacenar cualquier valor, asigne p/2+1 bytes, donde p es la precisin.
v Asigne los nybbles de izquierda a derecha para representar el valor. Si un
nmero tiene una precisin par, se aade un nybble de cero inicial. Esta
asignacin incluye los dgitos cero iniciales (sin significado) y de cola
(significativos).
v El nybble de signo ser el segundo nybble del ltimo byte.
Por ejemplo:
Por ejemplo, en C:
((char *)&(sqlda->sqlvar[i].sqllen))[0] = precision;
((char *)&(sqlda->sqlvar[i].sqllen))[1] = scale;
Informacin relacionada:
v CHAR en la pgina 308
Todas las vistas de catlogo del sistema se crean durante la creacin de la base de
datos. Las vistas de catlogo no pueden crearse ni eliminarse explcitamente. Las
vistas se actualizan durante la actividad normal, en respuesta a sentencias de
definicin de datos SQL, rutinas de entorno y determinados programas de utilidad.
Los datos de las vistas de catlogo del sistema estn disponibles mediante las
funciones de la consulta SQL normal. Las vistas de catlogo del sistema (a
excepcin de algunas vistas de catlogo que se puedan actualizar) no se pueden
modificar utilizando sentencias de manipulacin de datos SQL normales.
El orden de las columnas en las vistas puede cambiar de un release a otro. Para
evitar que esto afecte a la lgica de programacin, las columnas deben especificarse
en una lista de seleccin explcitamente y debe evitarse la utilizacin de SELECT *.
Las columnas tienen nombres coherentes basados en los tipos de objetos que
describen.
Objeto descrito Nombres de columna
Tabla TABSCHEMA, TABNAME
ndice INDSCHEMA, INDNAME
Vista VIEWSCHEMA, VIEWNAME
Restriccin CONSTSCHEMA, CONSTNAME
Activador TRIGSCHEMA, TRIGNAME
Paquete PKGSCHEMA, PKGNAME
Tipo TYPESCHEMA, TYPENAME, TYPEID
Tabla 42. Gua bsica para las vistas de catlogo de slo lectura (continuacin)
Descripcin Vista de catlogo
columnas de identidad SYSCAT.COLIDENTATTRIBUTES en la pgina 634
columnas de ndice SYSCAT.INDEXCOLUSE en la pgina 663
dependencias de ndice SYSCAT.INDEXDEP en la pgina 664
explotacin del ndice SYSCAT.INDEXEXPLOITRULES en la pgina 671
dependencias de extensin de ndice SYSCAT.INDEXEXTENSIONDEP en la pgina 672
parmetros de extensin de ndice SYSCAT.INDEXEXTENSIONPARMS en la pgina 674
mtodos de bsqueda de extensiones de ndice SYSCAT.INDEXEXTENSIONMETHODS en la pgina
673
extensiones de ndice SYSCAT.INDEXEXTENSIONS en la pgina 675
opciones de ndice SYSCAT.INDEXOPTIONS en la pgina 676
privilegios de ndice SYSCAT.INDEXAUTH en la pgina 662
ndices SYSCAT.INDEXES en la pgina 665
1
dependencias de mtodo SYSCAT.ROUTINEDEP en la pgina 697
1
parmetros de mtodo SYSCAT.ROUTINES en la pgina 702
1
mtodos SYSCAT.ROUTINES en la pgina 702
apodos SYSCAT.NICKNAMES en la pgina 680
correlacin de objeto SYSCAT.NAMEMAPPINGS en la pgina 679
dependencias de paquete SYSCAT.PACKAGEDEP en la pgina 684
privilegios de paquete SYSCAT.PACKAGEAUTH en la pgina 683
paquetes SYSCAT.PACKAGES en la pgina 686
tablas particionadas SYSCAT.TABDETACHEDDEP en la pgina 734
privilegios de paso a travs SYSCAT.PASSTHRUAUTH en la pgina 693
especificaciones de predicado SYSCAT.PREDICATESPECS en la pgina 694
opciones de procedimiento SYSCAT.ROUTINEOPTIONS en la pgina 698
opciones de parmetro de procedimiento SYSCAT.ROUTINEPARMOPTIONS en la pgina 699
1
parmetros de procedimiento SYSCAT.ROUTINEPARMS en la pgina 700
1
procedimientos SYSCAT.ROUTINES en la pgina 702
tablas protegidas SYSCAT.SECURITYLABELACCESS en la pgina 715
SYSCAT.SECURITYLABELCOMPONENTELEMENTS
en la pgina 716
SYSCAT.SECURITYLABELCOMPONENTS en la pgina
717
SYSCAT.SECURITYLABELS en la pgina 718
SYSCAT.SECURITYPOLICIES en la pgina 719
SYSCAT.SECURITYPOLICYCOMPONENTRULES en la
pgina 720
SYSCAT.SECURITYPOLICYEXEMPTIONS en la pgina
721
SYSCAT.SURROGATEAUTHIDS en la pgina 722
proporciona DB2 Universal Database para compatibilidad SYSIBM.SYSDUMMY1 en la pgina 619
con z/OS y OS/390
restricciones de referencia SYSCAT.REFERENCES en la pgina 695
Tabla 42. Gua bsica para las vistas de catlogo de slo lectura (continuacin)
Descripcin Vista de catlogo
opciones de tabla remota SYSCAT.TABOPTIONS en la pgina 744
dependencias de rutina SYSCAT.ROUTINEDEP en la pgina 697
1
parmetros de rutina SYSCAT.ROUTINEPARMS en la pgina 700
privilegios de rutina SYSCAT.ROUTINEAUTH en la pgina 696
1
rutinas SYSCAT.ROUTINES en la pgina 702
SYSCAT.ROUTINESFEDERATED en la pgina 711
privilegios de esquema SYSCAT.SCHEMAAUTH en la pgina 713
esquemas SYSCAT.SCHEMATA en la pgina 714
privilegios de secuencia SYSCAT.SEQUENCEAUTH en la pgina 723
secuencias SYSCAT.SEQUENCES en la pgina 724
opciones de servidor SYSCAT.SERVEROPTIONS en la pgina 726
valores de opciones de servidor SYSCAT.USEROPTIONS en la pgina 753
sentencias en paquetes SYSCAT.STATEMENTS en la pgina 728
procedimientos almacenados SYSCAT.ROUTINES en la pgina 702
servidores del sistema SYSCAT.SERVERS en la pgina 727
restricciones de tabla SYSCAT.TABCONST en la pgina 731
dependencias de tabla SYSCAT.TABDEP en la pgina 732
privilegios de tabla SYSCAT.TABAUTH en la pgina 729
privilegios de uso de espacios de tablas SYSCAT.TBSPACEAUTH en la pgina 745
espacios de tablas SYSCAT.TABLESPACES en la pgina 742
tablas SYSCAT.TABLES en la pgina 735
transformaciones SYSCAT.TRANSFORMS en la pgina 746
dependencias de activador SYSCAT.TRIGDEP en la pgina 747
activadores SYSCAT.TRIGGERS en la pgina 748
correlacin de tipos SYSCAT.TYPEMAPPINGS en la pgina 750
funciones definidas por el usuario SYSCAT.ROUTINES en la pgina 702
dependencias de vista SYSCAT.TABDEP en la pgina 732
vistas SYSCAT.TABLES en la pgina 735
SYSCAT.VIEWS en la pgina 754
opciones de derivador SYSCAT.WRAPOPTIONS en la pgina 755
derivadores SYSCAT.WRAPPERS en la pgina 756
ndice de valores XML SYSCAT.INDEXXMLPATTERNS en la pgina 677
objetos XSR SYSCAT.XDBMAPGRAPHS en la pgina 757
SYSCAT.XDBMAPSHREDTREES en la pgina 758
SYSCAT.XSROBJECTAUTH en la pgina 759
SYSCAT.XSROBJECTCOMPONENTS en la pgina 760
SYSCAT.XSROBJECTDEP en la pgina 761
SYSCAT.XSROBJECTHIERARCHIES en la pgina 762
SYSCAT.XSROBJECTS en la pgina 763
Tabla 42. Gua bsica para las vistas de catlogo de slo lectura (continuacin)
Descripcin Vista de catlogo
1
Todava existen las vistas de catlogo para funciones, mtodos y procedimientos de DB2 Versin 7.1 y anterior. Sin
embargo, estas vistas no reflejan ningn cambio desde DB2 Versin 7.1. Las vistas son las siguientes:
Funciones: SYSCAT.FUNCTIONS, SYSCAT.FUNCDEP, SYSCAT.FUNCPARMS
Mtodos: SYSCAT.FUNCTIONS, SYSCAT.FUNCDEP, SYSCAT.FUNCPARMS
Procedimientos: SYSCAT.PROCEDURES, SYSCAT.PROCPARMS
SYSIBM.SYSDUMMY1
Contiene una fila. Esta vista est disponible para las aplicaciones que necesitan
compatibilidad con DB2 Universal Database para z/OS.
Tabla 44. Vista de catlogo SYSIBM.SYSDUMMY1
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
IBMREQD CHAR(1) Y
SYSCAT.ATTRIBUTES
Cada fila representa un atributo que est definido para un tipo de datos
estructurado definido por el usuario. Incluye atributos heredados de subtipos.
Tabla 45. Vista de catlogo SYSCAT.ATTRIBUTES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos
estructurado que incluye el atributo.
TYPENAME VARCHAR(128) Nombre no calificado del tipo de datos
estructurado que incluye el atributo.
ATTR_NAME VARCHAR(128) Nombre del atributo.
ATTR_TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos de un
atributo.
ATTR_TYPENAME VARCHAR(128) Nombre no calificado del tipo de datos de
un atributo.
TARGET_TYPESCHEMA VARCHAR(128) Y Nombre de esquema del tipo de fila de
destino. Slo se aplica a los tipos de
referencia; valor nulo en caso contrario.
TARGET_TYPENAME VARCHAR(128) Y Nombre no calificado del tipo de fila de
destino. Slo se aplica a los tipos de
referencia; valor nulo en caso contrario.
SOURCE_TYPESCHEMA VARCHAR(128) Para atributos heredados, el nombre de
esquema del tipo de datos con el que se ha
definido el atributo en primer lugar. Para
atributos no heredados, esta columna es
igual que TYPESCHEMA.
SOURCE_TYPENAME VARCHAR(128) Para atributos heredados, el nombre no
calificado del tipo de datos con el que se ha
definido el atributo en primer lugar. Para
atributos no heredados, esta columna es
igual que TYPENAME.
ORDINAL SMALLINT Posicin del atributo en la definicin del tipo
de datos estructurado, empezando por 0.
LENGTH INTEGER Para tipos de serie, contiene la longitud
mxima. Para el tipo decimal, contiene la
precisin (nmero de dgitos); 0 en caso
contrario.
SCALE SMALLINT Para el tipo decimal, contiene la escala
(nmero de dgitos a la derecha de la coma
decimal); 0 en caso contrario.
CODEPAGE SMALLINT Para tipos de serie, indica la pgina de
cdigos; 0 indica FOR BIT DATA; 0 para
tipos que no sean de serie.
LOGGED CHAR(1) Slo se aplica a los tipos LOB; blanco en caso
contrario.
N = Los cambios no se anotan
cronolgicamente
Y = Los cambios se anotan
cronolgicamente
SYSCAT.BUFFERPOOLDBPARTITIONS
Cada fila representa una combinacin de una agrupacin de almacenamientos
intermedios y una particin de base de datos, en la que el tamao de la agrupacin
de almacenamientos intermedios de dicha particin es distinto del tamao por
omisin correspondiente a otras particiones del mismo grupo de particiones de
base de datos (representado en SYSCAT.BUFFERPOOLS).
Tabla 46. Vista de catlogo SYSCAT.BUFFERPOOLDBPARTITIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
BUFFERPOOLID INTEGER Identificador interno de la agrupacin de
almacenamientos intermedios.
DBPARTITIONNUM SMALLINT Nmero de particin de base de datos.
NPAGES INTEGER Nmero de pginas de esta agrupacin de
almacenamientos intermedios en esta
particin de base de datos.
SYSCAT.BUFFERPOOLS
Cada fila representa la configuracin de una agrupacin de almacenamientos
intermedios de un grupo de particiones de base de datos de una base de datos o
de todas las particiones de base de datos de una base de datos.
Tabla 47. Vista de catlogo SYSCAT.BUFFERPOOLS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
BPNAME VARCHAR(128) Nombre de la agrupacin de
almacenamientos intermedios.
BUFFERPOOLID INTEGER Identificador de la agrupacin de
almacenamientos intermedios.
DBPGNAME VARCHAR(128) Y Nombre de un grupo de particiones de base
de datos (NULL si la agrupacin de
almacenamientos intermedios existe en todas
las particiones de base de datos de la base
de datos).
NPAGES INTEGER Nmero de pgina por omisin de esta
agrupacin de almacenamientos intermedios
de las particiones de base de datos de este
grupo de particiones de base de datos.
PAGESIZE INTEGER Tamao de pgina correspondiente a esta
agrupacin de almacenamientos intermedios
de las particiones de base de datos de este
grupo de particiones de base de datos.
ESTORE CHAR(1) Siembre N. El almacenamiento ampliado ya
no se aplica.
NUMBLOCKPAGES INTEGER Y Nmero de pginas de la agrupacin de
almacenamientos intermedios que deben
estar en un rea basada en bloque. Slo los
captadores previos que realizan una
captacin previa secuencial utilizan el rea
basada en bloque de la agrupacin de
almacenamientos intermedios. Por omisin,
una agrupacin de almacenamientos
intermedios no tendr ningn rea basada en
bloque; es decir, NUMBLOCKPAGES es
nulo.
BLOCKSIZE INTEGER Y Nmero de pginas de un bloque.
1
NGNAME VARCHAR(128) Y Nombre de un grupo de particiones de base
de datos (NULL si la agrupacin de
almacenamientos intermedios existe en todas
las particiones de base de datos de la base
de datos).
Notas:
1. La columna NGNAME se incluye por razones de compatibilidad con versiones anteriores. Consulte DBPGNAME.
SYSCAT.CASTFUNCTIONS
Cada fila representa una funcin de conversin, sin incluir las funciones de
conversin incorporadas.
Tabla 48. Vista de catlogo SYSCAT.CASTFUNCTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
FROM_TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos del
parmetro.
FROM_TYPENAME VARCHAR(128) Nombre del tipo de datos del parmetro.
TO_TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos del
resultado despus de la conversin.
TO_TYPENAME VARCHAR(128) Nombre del tipo de datos del resultado
despus de la conversin.
FUNCSCHEMA VARCHAR(128) Nombre de esquema de la funcin.
FUNCNAME VARCHAR(128) Nombre no calificado de la funcin.
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la rutina (puede
ser un nombre generado por el sistema).
ASSIGN_FUNCTION CHAR(1) N = No es una funcin de asignacin
Y = Funcin de asignacin implcita
SYSCAT.CHECKS
Cada fila representa una restriccin de comprobacin o una columna derivada de
una tabla de consultas materializadas. Para jerarquas de tablas, cada restriccin de
comprobacin se registra slo a nivel de la jerarqua en la que se ha creado la
restriccin.
Tabla 49. Vista de catlogo SYSCAT.CHECKS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
CONSTNAME VARCHAR(18) Nombre de la restriccin de comprobacin.
OWNER VARCHAR(128) ID de autorizacin bajo el que se ha creado
la restriccin de comprobacin.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla a la que se
aplica esta restriccin.
TABNAME VARCHAR(128) Nombre de la tabla a la que se aplica esta
restriccin.
CREATE_TIME TIMESTAMP Hora a la que se ha definido la restriccin.
Se utiliza para resolver funciones que forman
parte de esta restriccin. Las funciones
creadas despus de que se definiera la
restriccin no se eligen.
QUALIFIER VARCHAR(128) Valor del esquema por omisin en el
momento de la definicin del objeto. Se
utiliza para completar cualquier referencia
no calificada.
TYPE CHAR(1) Tipo de restriccin de comprobacin:
C = Restriccin de comprobacin
F = Dependencia funcional
O = La restriccin es una propiedad del
objeto
S = Restriccin de comprobacin
generada por el sistema para la columna
GENERATED ALWAYS
FUNC_PATH VARCHAR(254) Va de acceso de SQL en vigor cuando se
defini la restriccin; se utiliza para resolver
funciones y tipos que forman parte de la
restriccin.
TEXT CLOB(2M) Texto de la condicin de comprobacin o
definicin de la columna derivad.1
PERCENTVALID SMALLINT Nmero de filas para las que es vlida la
restriccin informativa, expresado como un
porcentaje del total.
DEFINER2 VARCHAR(128) ID de autorizacin bajo el que se ha creado
la restriccin de comprobacin.
Notas:
1. En la vista de catlogo, el texto de la clusula de comprobacin siempre se muestra en la pgina de cdigos de la
base de datos y puede contener caracteres de sustitucin. La restriccin de comprobacin siempre se aplicar en la
pgina de cdigos de la tabla destino y no contendr ningn carcter de sustitucin cuando se aplique. (La
restriccin de comprobacin se aplicar en base al texto original de la pgina de cdigos de la tabla destino, que
es posible que no incluya los caracteres de sustitucin.)
2. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.COLAUTH
Cada fila representa un usuario o un grupo al que se ha otorgado uno o ms
privilegios sobre una columna.
Tabla 50. Vista de catlogo SYSCAT.COLAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado un privilegio.
GRANTEE VARCHAR(128) El que mantiene un privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla o vista en la
que se mantiene el privilegio.
TABNAME VARCHAR(128) Nombre no calificado de la tabla o vista en
la que se mantiene el privilegio.
COLNAME VARCHAR(128) Nombre de la columna a la que se aplica
este privilegio.
COLNO SMALLINT Nmero de columna de esta columna dentro
de la tabla (empezando por 0).
PRIVTYPE CHAR(1) R = Hace referencia a privilegio
U = Actualiza privilegio
GRANTABLE CHAR(1) G = El privilegio se puede otorgar
N = El privilegio no se puede otorgar
Notas:
1. Los privilegios se pueden otorgar por columna, pero slo se pueden revocar en base a una tabla.
SYSCAT.COLCHECKS
Cada fila representa una columna a la que hace referencia una restriccin de
comprobacin o la definicin de una tabla de consultas materializadas. Para
jerarquas de tablas, cada restriccin de comprobacin se registra slo a nivel de la
jerarqua en la que se ha creado la restriccin.
Tabla 51. Vista de catlogo SYSCAT.COLCHECKS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
CONSTNAME VARCHAR(128) Nombre de la restriccin de comprobacin.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla que contiene
la columna a la que se hace referencia.
TABNAME VARCHAR(128) Nombre no calificado de la tabla que
contiene la columna a la que se hace
referencia.
COLNAME VARCHAR(128) Nombre de la columna.
USAGE CHAR(1) D = La columna es el hijo de una
dependencia funcional
P = La columna es el padre de una
dependencia funcional
R = Se hace referencia a la columna en la
restriccin de comprobacin
S = La columna es una fuente de la
restriccin de comprobacin de columna
generada por el sistema que da soporte a
una tabla de consultas materializadas
T = La columna es un destino de la
restriccin de comprobacin de columna
generada por el sistema que da soporte a
una tabla de consultas materializadas
SYSCAT.COLDIST
Cada fila representa el valor nmero n ms frecuente de alguna columna, o el
valor cuantil n (distribucin acumulada) de la columna. Slo se aplica a columnas
de tablas reales (no a vistas). No se registra ninguna estadstica para columnas
heredadas de tablas con tipo.
Tabla 52. Vista de catlogo SYSCAT.COLDIST
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla a la que se
aplican las estadsticas.
TABNAME VARCHAR(128) Nombre no calificado de la tabla a la que se
aplican las estadsticas.
COLNAME VARCHAR(128) Nombre de la columna a la que se aplican
las estadsticas.
TYPE CHAR(1) F = Valor de frecuencia
Q = Valor cuantil
SEQNO SMALLINT Si TYPE = F, n en esta columna identifica el
valor nmero n ms frecuente. Si TYPE =
Q, n en esta columna identifica el valor
cuantil nmero n.
COLVALUE1 VARCHAR(254) Y El valor de los datos como un literal de
caracteres o un valor nulo.
VALCOUNT BIGINT Si TYPE = F, VALCOUNT es el nmero de
ocurrencias de COLVALUE en la columna. Si
TYPE = Q, VALCOUNT es el nmero de
filas cuyo valor es menor o igual que
COLVALUE.
DISTCOUNT2 BIGINT Y Si TYPE = Q, esta columna registra el
nmero de valores diferenciados que son
menores o iguales que COLVALUE (nulo si
no est disponible).
Notas:
1. En la vista de catlogo, el valor de COLVALUE siempre se muestra en la pgina de cdigos de la base de datos y
puede contener caracteres de sustitucin. Sin embargo, las estadsticas se renen internamente en la pgina de
cdigos de la tabla de la columna y, por tanto, utilizarn los valores reales de la columna cuando se apliquen
durante la optimizacin de la consulta.
2. DISTCOUNT slo se recopila para las columnas que son la primera columna de clave de un ndice.
SYSCAT.COLGROUPCOLS
Cada fila representa una columna que forma parte de un grupo de columnas.
Tabla 53. Vista de catlogo SYSCAT.COLGROUPCOLS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
COLGROUPID INTEGER Identificador del grupo de columnas.
COLNAME VARCHAR(128) Nombre de la columna del grupo de
columnas.
TABSCHEMA VARCHAR(128) Nmero de esquema de la tabla
correspondiente a la columna del grupo de
columnas.
TABNAME VARCHAR(128) Nmero no calificado de la tabla
correspondiente a la columna del grupo de
columnas.
ORDINAL SMALLINT Nmero ordinal de la columna del grupo de
columnas.
SYSCAT.COLGROUPDIST
Cada fila representa el valor de la columna del grupo de columnas que forma el
valor ms frecuente nmero n del grupo de columnas o el valor cuantil n del
grupo de columnas.
Tabla 54. Vista de catlogo SYSCAT.COLGROUPDIST
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
COLGROUPID INTEGER Identificador del grupo de columnas.
TYPE CHAR(1) F = Valor de frecuencia
Q = Valor cuantil
ORDINAL SMALLINT Nmero ordinal de la columna del grupo de
columnas.
SEQNO SMALLINT Si TYPE = F, n en esta columna identifica el
valor nmero n ms frecuente. Si TYPE =
Q, n en esta columna identifica el valor
cuantil nmero n.
COLVALUE1 VARCHAR(254) S El valor de los datos como un literal de
caracteres o un valor nulo.
Notas:
1. En la vista de catlogo, el valor de COLVALUE siempre se muestra en la pgina de cdigos de la base de datos y
puede contener caracteres de sustitucin. Sin embargo, las estadsticas se renen internamente en la pgina de
cdigos de la tabla de la columna y, por tanto, utilizarn los valores reales de la columna cuando se apliquen
durante la optimizacin de la consulta.
SYSCAT.COLGROUPDISTCOUNTS
Cada fila representa las estadsticas de distribucin que se aplican al valor ms
frecuente nmero n de un grupo de columnas o el valor cuantil n de un grupo de
columnas.
Tabla 55. Vista de catlogo SYSCAT.COLGROUPDISTCOUNTS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
COLGROUPID INTEGER Identificador del grupo de columnas.
TYPE CHAR(1) F = Valor de frecuencia
Q = Valor cuantil
SEQNO SMALLINT El nmero de secuencia n que representa el
valor n de TYPE.
VALCOUNT BIGINT Si TYPE = F, VALCOUNT es el nmero de
ocurrencias de COLVALUE para el grupo de
columnas con este SEQNO. Si TYPE = Q,
VALCOUNT es el nmero de filas cuyo
valor es menor o igual que COLVALUE para
el grupo de columnas con este SEQNO.
DISTCOUNT BIGINT S Si TYPE = Q, esta columna registra el
nmero de valores diferenciados que son
menores o iguales que COLVALUE para el
grupo de columnas con este SEQNO (nulo si
no est disponible).
SYSCAT.COLGROUPS
Cada fila representa un grupo de columnas y estadsticas que se aplican a todo el
grupo de columnas.
Tabla 56. Vista de catlogo SYSCAT.COLGROUPS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
COLGROUPSCHEMA VARCHAR(128) Nombre de esquema del grupo de columnas.
COLGROUPNAME VARCHAR(128) Nombre no calificado del grupo de
columnas.
COLGROUPID INTEGER Identificador del grupo de columnas.
COLGROUPCARD BIGINT Cardinalidad del grupo de columnas.
NUMFREQ_VALUES SMALLINT Nmero de valores frecuentes recopilados
para el grupo de columnas.
NUMQUANTILES SMALLINT Nmero de valores cuantiles recopilados
para el grupo de columnas.
SYSCAT.COLIDENTATTRIBUTES
Cada fila representa una columna de identidad definida para una tabla.
Tabla 57. Vista de catlogo SYSCAT.COLIDENTATTRIBUTES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla o vista que
contiene la columna.
TABNAME VARCHAR(128) Nombre no calificado de la tabla o vista que
contiene la columna.
COLNAME VARCHAR(128) Nombre de la columna.
START DECIMAL(31,0) Valor inicial de la secuencia.
INCREMENT DECIMAL(31,0) Valor de incremento.
MINVALUE DECIMAL(31,0) Valor mnimo de la secuencia.
MAXVALUE DECIMAL(31,0) Valor mximo de la secuencia.
CYCLE CHAR(1) Indica si la secuencia puede o no continuar
generando valores despus de alcanzar su
valor mximo o mnimo.
N = La secuencia no puede continuar
Y = La secuencia puede continuar
CACHE INTEGER Nmero de valores de secuencia que se
deben preasignar en memoria para el acceso
ms rpido. 0 indica que los valores de la
secuencia no se deben preasignar. En una
base de datos particionada, este valor se
aplica a cada particin de base de datos.
ORDER CHAR(1) Indica si los nmeros de secuencia se deben
o no generar en orden de peticin.
N = No es necesario que los nmeros de
secuencia se generen en orden de peticin
Y = Los nmeros de secuencia se deben
generar en orden de peticin
NEXTCACHEFIRSTVALUE DECIMAL(31,0) Y Primer valor que estar disponible para
asignarlo en el bloque de memoria
intermedia siguiente. Si no hay
almacenamiento en antememoria, el
siguiente valor que estar disponible para
asignar.
SEQID INTEGER Identificador de la secuencia.
SYSCAT.COLOPTIONS
Cada fila contiene los valores de las opciones especficas de columna.
Tabla 58. Vista de catlogo SYSCAT.COLOPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Calificador de un apodo.
TABNAME VARCHAR(128) Apodo de la columna para la que se
establecen opciones.
COLNAME VARCHAR(128) Nombre de columna local.
OPTION VARCHAR(128) Nombre de la opcin de columna.
SETTING CLOB(32K) Valor.
SYSCAT.COLUMNS
Cada fila representa una columna definida para una tabla, vista o apodo.
Tabla 59. Vista de catlogo SYSCAT.COLUMNS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla, vista o
apodo que contiene la columna.
TABNAME VARCHAR(128) Nombre no calificado de la tabla, vista o
apodo que contiene la columna.
COLNAME VARCHAR(128) Nombre de la columna.
COLNO SMALLINT Nmero de esta columna en la tabla
(empezando por 0).
TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos de la
columna.
TYPENAME VARCHAR(128) Nombre no calificado del tipo de datos de la
columna.
LENGTH INTEGER Longitud mxima de los datos. 0 para tipos
diferenciados. La columna LENGTH indica
la precisin para los campos DECIMAL.
SCALE SMALLINT Escala si el tipo de columna es DECIMAL; 0
en caso contrario.
DEFAULT1 VARCHAR(254) Y El valor por omisin de la columna de una
tabla expresado como una constante, un
registro especial o una funcin de conversin
adecuada para el tipo de datos de la
columna. Tambin puede ser la palabra clave
NULL. Los valores se pueden convertir a
partir de lo que se ha especificado como
valor por omisin. Por ejemplo, las
constantes de fecha y hora se muestran en
formato ISO, los nombres de funciones de
conversin se califican con nombres de
esquema y los identificadores se delimitan.
El valor nulo si no se ha especificado una
clusula DEFAULT o la columna es una
columna de vista.
NULLS2 CHAR(1) Atributo de capacidad de nulos para la
columna.
N = La columna no puede contener nulos
Y = La columna puede contener nulos
El valor puede ser N para una columna de
vista derivada de una expresin o funcin.
No obstante, estas columnas permiten
valores nulos cuando la sentencia que utiliza
la vista se procesa con avisos para errores
aritmticos.
CODEPAGE SMALLINT Pgina de cdigos utilizada para los datos de
esta columna; 0 si la columna est definida
como FOR BIT DATA o no es de tipo serie.
Notas:
1. Para la Versin 2.1.0, los nombres de funcin de conversin no se han delimitado y pueden seguir apareciendo de
esta manera en la columna DEFAULT. Tambin, algunas columnas de vistas incluyen valores por omisin que
todava aparecen en la columna DEFAULT.
2. Empezando en la Versin 2, el valor D (que indica ningn nulo con valor por omisin) ya no se utiliza. En su
lugar, la utilizacin de WITH DEFAULT se indica por un valor no nulo en la columna DEFAULT.
3. En la vista de catlogo, los valores de HIGH2KEY y de LOW2KEY siempre se muestran en la pgina de cdigos
de la base de datos y pueden contener caracteres de sustitucin. Sin embargo, las estadsticas se renen
internamente en la pgina de cdigos de la tabla de la columna y, por tanto, utilizarn los valores reales de la
columna cuando se apliquen durante la optimizacin de la consulta.
4. Se permite enlazar una particin de datos a no ser que IMPLICITVALUE para una columna especfica sea un
valor no nulo tanto para la columna fuente como para la columna de destino, y los valores no coincidan. En este
caso, debe eliminar la tabla fuente y volverla a crear. Una columna puede tener un valor no nulo en el campo
IMPLICITVALUE si se cumplen una de las siguientes condiciones:
v La columna se crea como resultado de una sentencia ALTER TABLE...ADD COLUMN.
v El valor IMPLICITVALUE se propaga desde una fuente durante la funcin de enlazar
v El valor IMPLICITVALUE se hereda de la tabla fuente durante el desenlace
v El campo IMPLICITVALUE se establece durante la migracin de la Versin 8 a la Versin 9, donde se
determina que es una columna aadida o que puede ser una columna aadida. Si la base de datos no sabe con
certeza si la columna es o no aadida, se trata como aadida. Una columna aadida es una columna creada
como resultado de una sentencia ALTER TABLE...ADD COLUMN.
Para evitar estas incoherencias durante escenarios que no sean de migracin, se recomienda crear siempre las
tablas que se van a enlazar a todas las columnas ya definidas. Es decir, se recomienda no utilizar nunca la
sentencia ALTER TABLE para aadir columnas a una tabla antes de enlazarla.
Tareas relacionadas:
v Attaching a data partition en Administration Guide: Implementation
SYSCAT.COLUSE
Cada fila representa una columna a la que se hace referencia en la clusula
DIMENSIONS de una sentencia CREATE TABLE.
Tabla 60. Vista de catlogo SYSCAT.COLUSE
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla que contiene
la columna.
TABNAME VARCHAR(128) Nombre no calificado de la tabla que
contiene la columna.
COLNAME VARCHAR(128) Nombre de la columna.
DIMENSION SMALLINT Nmero de dimensiones, basado en el orden
de las dimensiones especificadas en la
clusula DIMENSIONS (la posicin inicial es
0). Para una dimensin compuesta, este valor
ser el mismo para cada componente de la
dimensin.
COLSEQ SMALLINT Posicin numrica de la columna en la
dimensin a la que pertenece (la posicin
inicial es 0). El valor es 0 para una sola
columna en una dimensin no compuesta.
TYPE CHAR(1) Tipo de dimensin.
C = Clster o clster de varias
dimensiones
P = Particionamiento
SYSCAT.CONSTDEP
Cada fila representa una dependencia de una restriccin sobre algn otro objeto.
La restriccin depende del objeto de tipo BTYPE de nombre BNAME, de modo que
un cambio en el objeto afecta a la restriccin.
Tabla 61. Vista de catlogo SYSCAT.CONSTDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
CONSTNAME VARCHAR(128) Nombre no calificado de la restriccin.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla a la que se
aplica la restriccin.
TABNAME VARCHAR(128) Nombre no calificado de la tabla a la que se
aplica la restriccin.
BTYPE CHAR(1) Tipo de objeto del que depende la
restriccin. Los valores posibles son:
F = Instancia de rutina
I = ndice
R = Tipo estructurado
BSCHEMA VARCHAR(128) Nombre de esquema del objeto del que
depende la restriccin.
BNAME VARCHAR(128) Nombre no calificado del objeto del que
depende la restriccin.
SYSCAT.DATAPARTITIONEXPRESSION
Cada fila representa una expresin correspondiente a esta parte de la clave de
particionamiento de tabla.
Tabla 62. Vista de catlogo SYSCAT.DATAPARTITIONEXPRESSION
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla
particionada.
TABNAME VARCHAR(128) Nombre no calificado de la tabla
particionada.
DATAPARTITIONKEYSEQ INTEGER ID de secuencia de la parte de clave de
expresin, empezando por 1.
DATAPARTITIONEXPRESSION CLOB(32K) Expresin correspondiente a esta entrada en
la secuencia, en sintaxis de SQL.
NULLSFIRST CHAR(1) N = Los valores nulos de esta expresin
se comparan altos
Y = Los valores nulos de esta expresin
se comparan bajos
SYSCAT.DATAPARTITIONS
Cada fila representa una particin de datos.
Tabla 63. Vista de catlogo SYSCAT.DATAPARTITIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
DATAPARTITIONNAME VARCHAR(128) Nombre de la particin de datos
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla a la que
pertenece esta particin de datos.
TABNAME VARCHAR(128) Nombre no calificado de la tabla a la que
pertenece esta particin de datos.
DATAPARTITIONID INTEGER Identificador de la particin de datos.
TBSPACEID INTEGER Y Identificador del espacio de tablas en el que
est almacenada esta particin de datos.
Nulo si STATUS es I.
PARTITIONOBJECTID INTEGER Y Identificador de la particin de datos dentro
del espacio de tablas.
LONG_TBSPACEID INTEGER Y Identificador del espacio de tablas en el que
se almacenan los datos largos. Nulo si
STATUS es I.
ACCESS_MODE CHAR(1) Estado de restriccin de acceso de la
particin de datos. Estos estados slo se
aplican a objetos que estn en estado
pendiente de establecer integridad o a
objetos procesados por una sentencia SET
INTEGRITY. Los valores posibles son:
D = No hay movimiento de datos
F = Acceso completo
N = No hay acceso
R = Acceso de slo lectura
STATUS VARCHAR(32) A = La particin de datos se acaba de
enlazar
D = La particin de datos est
desenlazada
I = Particin de datos desenlazada cuya
entrada en el catlogo se mantiene
nicamente durante la limpieza asncrona
del ndice; las filas con el valor de
STATUS I se eliminan cuando todos los
registros de ndice que hacen referencia a
la particin desenlazada se han
suprimido
Serie vaca = La particin de datos est
visible (estado normal)
SYSCAT.DATATYPES
Cada fila representa un tipo de datos incorporado o definido por el usuario.
Tabla 64. Vista de catlogo SYSCAT.DATATYPES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos. El
nombre de esquema para tipos incorporados
es SYSIBM.
TYPENAME VARCHAR(128) Nombre no calificado del tipo de datos.
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
el tipo.
SOURCESCHEMA VARCHAR(128) Y Nombre de esquema del tipo fuente para
tipos diferenciados. Para los tipos
estructurados definidos por el usuario, es el
esquema de tipo del tipo de representacin
de referencia. Nulo para los dems tipos.
SOURCENAME VARCHAR(128) Y Nombre no calificado del tipo fuente para
tipos diferenciados. Para los tipos
estructurados definidos por el usuario, es el
nombre de tipo del tipo de representacin de
referencia. Nulo para los dems tipos.
METATYPE CHAR(1) R = Tipo estructurado definido por el
usuario
S = Tipo predefinido por el sistema
T = Tipo diferenciado definido por el
usuario
TYPEID SMALLINT Identificador del tipo de datos
SOURCETYPEID SMALLINT Y Identificador del tipo fuente (nulo para tipos
incorporados). Para los tipos estructurados
definidos por el usuario, es el identificador
del tipo de representacin de referencia.
LENGTH INTEGER Longitud mxima del tipo. 0 para tipos con
parmetros incorporados (por ejemplo,
DECIMAL y VARCHAR). Para tipos
estructurados definidos por el usuario, es la
longitud del tipo de representacin de
referencia.
SCALE SMALLINT Escala para los tipos diferenciados o tipos de
representacin de referencia basados en el
tipo DECIMAL incorporado; o para los
dems tipos (incluido el propio DECIMAL).
Para los tipos estructurados definidos por el
usuario, indica la longitud del tipo de
representacin de referencia.
CODEPAGE SMALLINT Pgina de cdigos de base de datos para
tipos de serie, tipos diferenciados basados en
tipos de serie o tipos de representacin de
referencia; 0 en caso contrario.
CREATE_TIME TIMESTAMP Tiempo de creacin del tipo de datos.
ATTRCOUNT SMALLINT Nmero de atributos del tipo de datos.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.DBAUTH
Cada fila representa un usuario o un grupo al que se ha otorgado una o ms
autorizaciones a nivel de base de datos.
Tabla 65. Vista de catlogo SYSCAT.DBAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado la autorizacin.
GRANTEE VARCHAR(128) El que mantiene la autorizacin.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
BINDADDAUTH CHAR(1) Autorizacin para crear paquetes.
N = No se mantiene
Y = Se mantiene
CONNECTAUTH CHAR(1) Autorizacin para conectar con la base de
datos.
N = No se mantiene
Y = Se mantiene
CREATETABAUTH CHAR(1) Autorizacin para crear tablas.
N = No se mantiene
Y = Se mantiene
DBADMAUTH CHAR(1) Autorizacin DBADM.
N = No se mantiene
Y = Se mantiene
EXTERNALROUTINEAUTH CHAR(1) Autorizacin para crear rutinas externas.
N = No se mantiene
Y = Se mantiene
IMPLSCHEMAAUTH CHAR(1) Autorizacin para crear esquemas de forma
implcita, creando objetos en esquemas no
existentes.
N = No se mantiene
Y = Se mantiene
LOADAUTH CHAR(1) Autorizacin para utilizar el programa de
utilidad de carga DB2.
N = No se mantiene
Y = Se mantiene
NOFENCEAUTH CHAR(1) Autorizacin para crear funciones definidas
por el usuario no delimitadas.
N = No se mantiene
Y = Se mantiene
QUIESCECONNECTAUTH CHAR(1) Autorizacin para acceder a la base de datos
mientras est inactiva.
N = No se mantiene
Y = Se mantiene
LIBRARYADMAUTH CHAR(1) Reservado para su utilizacin en el futuro.
SYSCAT.DBPARTITIONGROUPDEF
Cada fila representa una particin de base de datos que est contenida en un
grupo de particiones de base de datos.
Tabla 66. Vista de catlogo SYSCAT.DBPARTITIONGROUPDEF
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
DBPGNAME VARCHAR(128) Nombre del grupo de particiones de base de
datos que contiene la particin de base de
datos.
DBPARTITIONNUM SMALLINT Nmero de particin de una particin de
base de datos que est contenida en el grupo
de particiones de base de datos. Un nmero
de particin vlido est entre 0 y 999
inclusive.
IN_USE CHAR(1) Estado de la particin de base de datos.
A = La particin de base de datos recin
aadida no est en el mapa de
distribucin, pero los contenedores
correspondientes a los espacios de tabla
del grupo de particiones de base de datos
se han creado; la particin de base de
datos se aade al mapa de distribucin
cuando la operacin de redistribucin del
grupo de particiones de base de datos
finaliza satisfactoriamente
D = La particin de base de datos se
eliminar cuando la operacin de
redistribucin del grupo de particiones de
base de datos finalice satisfactoriamente
T = La particin de base de datos recin
aadida no est en el mapa de
distribucin, y se ha aadido mediante la
clusula WITHOUT TABLESPACES; los
contenedores se deben aadir a los
espacios de tabla del grupo de particiones
de base de datos
Y = La particin de base de datos est en
el mapa de distribucin
SYSCAT.DBPARTITIONGROUPS
Cada fila representa un grupo de particiones de base de datos.
Tabla 67. Vista de catlogo SYSCAT.DBPARTITIONGROUPS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
DBPGNAME VARCHAR(128) Nombre del grupo de particiones de base de
datos.
OWNER VARCHAR(128) ID de autorizacin bajo el que se ha creado
el grupo de particiones de base de datos.
PMAP_ID SMALLINT Identificador del mapa de distribucin en la
vista de catlogo SYSCAT.PARTITIONMAPS.
REDISTRIBUTE_PMAP_ID SMALLINT Identificador del mapa de distribucin que
se utiliza actualmente para la redistribucin;
-1 si actualmente no se est realizando
ninguna redistribucin.
CREATE_TIME TIMESTAMP Hora de creacin del grupo de particiones de
base de datos.
DEFINER1 VARCHAR(128) ID de autorizacin bajo el que se ha creado
el grupo de particiones de base de datos.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.EVENTMONITORS
Cada fila representa un supervisor de sucesos.
Tabla 68. Vista de catlogo SYSCAT.EVENTMONITORS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
EVMONNAME VARCHAR(128) Nombre del supervisor de sucesos.
OWNER VARCHAR(128) ID de autorizacin bajo el que se ha creado
el supervisor de sucesos.
TARGET_TYPE CHAR(1) Tipo del destino en el que se graban los
datos del suceso.
F = Archivo
P = Conducto
T = Tabla
TARGET VARCHAR(256) Nombre del destino en el que se escriben los
datos del supervisor de sucesos de archivo o
de conexin. Para archivos, puede ser un
nombre de va de acceso absoluto o un
nombre de va de acceso relativo (relativo a
la va de acceso de la base de datos para la
base de datos; se puede ver utilizando el
mandato LIST ACTIVE DATABASES). Para
conexiones, puede ser un nombre de va de
acceso absoluto.
MAXFILES INTEGER Y El nmero mximo de archivos de sucesos
que permite este supervisor de sucesos en
una va de acceso de sucesos. Nulo si no hay
ningn mximo o si TARGET_TYPE no es F
(archivo).
MAXFILESIZE INTEGER Y Tamao mximo (en pginas de 4K) que
cada archivo de sucesos puede alcanzar
antes de que el supervisor de sucesos cree
un nuevo archivo. Nulo si no hay ningn
mximo o si TARGET_TYPE no es F
(archivo).
BUFFERSIZE INTEGER Y Tamao del almacenamiento intermedio (en
pginas de 4K) utilizado por los supervisores
de sucesos con los destinos de archivo; nulo
en caso contrario.
IO_MODE CHAR(1) Y Modalidad de entrada/salida (I/O) de
archivo.
B = Bloqueado
N = No bloqueado
Nulo = TARGET_TYPE no es F (archivo)
ni T (tabla)
WRITE_MODE CHAR(1) Y Indica cmo maneja este supervisor de
sucesos los datos de sucesos existentes
cuando se activa el supervisor.
A = Adjuntar
R = Sustituir
Nulo = TARGET_TYPE no es F (archivo)
Notas:
1. La columna NODENUM se incluye por razones de compatibilidad con versiones anteriores. Consulte
DBPARTITIONNUM.
2. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.EVENTS
Cada fila representa un suceso que se est supervisando. En general, un supervisor
de sucesos supervisa varios sucesos.
Tabla 69. Vista de catlogo SYSCAT.EVENTS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
EVMONNAME VARCHAR(128) Nombre del supervisor de sucesos que est
supervisando este suceso.
TYPE VARCHAR(18) Tipo del suceso que se supervisa. Los valores
posibles son:
CONNECTIONS
DATABASE
DEADLOCKS
DETAILDEADLOCKS
STATEMENTS
TABLES
TABLESPACES
TRANSACTIONS
FILTER CLOB(32K) Y Texto completo de la clusula WHERE que
se aplica a este suceso.
SYSCAT.EVENTS
Cada fila representa la tabla de destino de un supervisor de sucesos que escribe en
tablas SQL.
Tabla 70. Vista de catlogo SYSCAT.EVENTTABLES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
EVMONNAME VARCHAR(128) Nombre del supervisor de sucesos.
LOGICAL_GROUP VARCHAR(18) Nombre del grupo de datos lgicos. Los
valores posibles son:
BUFFERPOOL
CONN
CONNHEADER
CONTROL
DB
DEADLOCK
DLCONN
DLLOCK
STMT
SUBSECTION
TABLE
TABLESPACE
XACT
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla de destino.
TABNAME VARCHAR(128) Nombre no calificado de la tabla de destino.
PCTDEACTIVATE SMALLINT Un valor de porcentaje que especifica hasta
qu punto debe estar lleno un espacio de
tabla DMS para que un supervisor de
sucesos lo desactive de forma automtica.
Establecido en 100 para los espacios de tabla
SMS.
SYSCAT.FULLHIERARCHIES
Cada fila representa la relacin entre una subtabla y una supertabla, un subtipo y
un supertipo o una subvista y una supervista. Todas las relaciones jerrquicas,
incluyendo las inmediatas, se incluyen en esta vista.
Tabla 71. Vista de catlogo SYSCAT.FULLHIERARCHIES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
METATYPE CHAR(1) Tipo de relacin.
R = Entre tipos estructurados
U = Entre tablas con tipo
W = Entre vistas con tipo
SUB_SCHEMA VARCHAR(128) Nombre de esquema de subtipo, subtabla o
subvista.
SUB_NAME VARCHAR(128) Nombre no calificado de subtipo, subtabla o
subvista.
SUPER_SCHEMA VARCHAR(128) Nombre de esquema de supertipo,
supertabla o supervista.
SUPER_NAME VARCHAR(128) Nombre no calificado de supertipo,
supertabla o supervista.
ROOT_SCHEMA VARCHAR(128) Nombre de esquema de la tabla, vista o tipo
que est en la raz de la jerarqua.
ROOT_NAME VARCHAR(128) Nombre no calificado de la tabla, vista o tipo
que est en la raz de la jerarqua.
SYSCAT.FUNCMAPOPTIONS
Cada fila representa un valor de opcin de correlacin de funciones.
Tabla 72. Vista de catlogo SYSCAT.FUNCMAPOPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
FUNCTION_MAPPING VARCHAR(128) Nombre de la correlacin de funciones.
OPTION VARCHAR(128) Nombre de la opcin de correlacin de
funciones.
SETTING VARCHAR(2048) Valor de la opcin de correlacin de
funciones.
SYSCAT.FUNCMAPPARMOPTIONS
Cada fila representa un valor de opcin de parmetro de correlacin de funciones.
Tabla 73. Vista de catlogo SYSCAT.FUNCMAPPARMOPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
FUNCTION_MAPPING VARCHAR(128) Nombre de la correlacin de funciones.
ORDINAL SMALLINT Posicin del parmetro
LOCATION CHAR(1) Ubicacin del parmetro
L = Parmetro local
R = Parmetro remoto
OPTION VARCHAR(128) Nombre de la opcin de parmetro de
correlacin de funciones.
SETTING VARCHAR(2048) Valor de la opcin de parmetro de
correlacin de funciones.
SYSCAT.FUNCMAPPINGS
Cada fila representa una correlacin de funciones.
Tabla 74. Vista de catlogo SYSCAT.FUNCMAPPINGS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
FUNCTION_MAPPING VARCHAR(128) Nombre de la correlacin de funciones
(puede ser generada por el sistema).
FUNCSCHEMA VARCHAR(128) Y Nombre de esquema de la funcin. Si es
nulo, se supone que la funcin es una
funcin incorporada.
FUNCNAME VARCHAR(1024) Y Nombre no calificado de la funcin definida
por el usuario o incorporada.
FUNCID INTEGER Y Identificador de la funcin.
SPECIFICNAME VARCHAR(128) Y Nombre de la instancia de la rutina (puede
ser un nombre generado por el sistema).
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
la correlacin. SYSIBM indica que se trata
de una funcin incorporada.
WRAPNAME VARCHAR(128) Y Derivador al que se aplica esta correlacin.
SERVERNAME VARCHAR(128) Y Nombre de la fuente de datos.
SERVERTYPE VARCHAR (30) Y Tipo de fuente de datos al que se aplica esta
correlacin.
SERVERVERSION VARCHAR(18) Y Versin del tipo de servidor al que se aplica
sta correlacin.
CREATE_TIME TIMESTAMP Hora a la que se ha creado la correlacin.
1
DEFINER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
la correlacin. SYSIBM indica que se trata
de una funcin incorporada.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.HIERARCHIES
Cada fila representa la relacin entre una subtabla y su supertabla inmediata, un
subtipo y su supertipo inmediato o una subvista y su supervista inmediata. Slo
las relaciones jerrquicas inmediatas se incluyen en esta vista.
Tabla 75. Vista de catlogo SYSCAT.HIERARCHIES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
METATYPE CHAR(1) Tipo de relacin.
R = Entre tipos estructurados
U = Entre tablas con tipo
W = Entre vistas con tipo
SUB_SCHEMA VARCHAR(128) Nombre de esquema de subtipo, subtabla o
subvista.
SUB_NAME VARCHAR(128) Nombre no calificado de subtipo, subtabla o
subvista.
SUPER_SCHEMA VARCHAR(128) Nombre de esquema de supertipo,
supertabla o supervista.
SUPER_NAME VARCHAR(128) Nombre no calificado de supertipo,
supertabla o supervista.
ROOT_SCHEMA VARCHAR(128) Nombre de esquema de la tabla, vista o tipo
que est en la raz de la jerarqua.
ROOT_NAME VARCHAR(128) Nombre no calificado de la tabla, vista o tipo
que est en la raz de la jerarqua.
SYSCAT.INDEXAUTH
Cada fila representa un usuario o grupo al que se ha otorgado el privilegio
CONTROL sobre un ndice.
Tabla 76. Vista de catlogo SYSCAT.INDEXAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado el privilegio.
GRANTEE VARCHAR(128) El que mantiene el privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
INDSCHEMA VARCHAR(128) Nombre de esquema del ndice.
INDNAME VARCHAR(128) Nombre no calificado del ndice.
CONTROLAUTH CHAR(1) Privilegio CONTROL.
N = No se mantiene
Y = Se mantiene
SYSCAT.INDEXCOLUSE
Cada fila representa una columna que interviene en un ndice.
Tabla 77. Vista de catlogo SYSCAT.INDEXCOLUSE
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
INDSCHEMA VARCHAR(128) Nombre de esquema del ndice.
INDNAME VARCHAR(128) Nombre no calificado del ndice.
COLNAME VARCHAR(128) Nombre de la columna.
COLSEQ SMALLINT Posicin numrica de la columna en el ndice
(la posicin inicial es 1).
COLORDER CHAR(1) Orden de los valores de esta columna del
ndice. Los valores posibles son:
A = Ascendente
D = Descendente
I = Columna INCLUDE (se pasa por alto
el orden)
SYSCAT.INDEXDEP
Cada fila representa una dependencia de un ndice respecto de algn otro objeto.
El ndice depende de un objeto de tipo BTYPE y nombre BNAME, de modo que
un cambio en el objeto afecta al ndice.
Tabla 78. Vista de catlogo SYSCAT.INDEXDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
INDSCHEMA VARCHAR(128) Nombre de esquema del ndice.
INDNAME VARCHAR(128) Nombre no calificado del ndice.
BTYPE CHAR(1) Tipo de objeto sobre el que hay una
dependencia. Los valores posibles son:
A = Alias
B = Activador
F = Instancia de rutina
H = Tabla de jerarqua
K = Paquete
L = Tabla desenlazada
O = Dependencia de privilegios en todas
las subtablas o subvistas de una jerarqua
de tablas o de vistas
Q = Secuencia
R = Tipo estructurado
S = Tabla de consultas materializadas
T = Tabla (sin tipo)
U = Tabla con tipo
V = Vista (sin tipo)
W = Vista con tipo
X = Extensin de ndice
Z = Objeto XSR
BSCHEMA VARCHAR(128) Nombre de esquema del objeto sobre el que
hay una dependencia.
BNAME VARCHAR(128) Nombre no calificado del objeto sobre el que
hay una dependencia. Para rutinas (BTYPE =
F), es el nombre especfico.
TABAUTH SMALLINT Y Si BTYPE = O, S, T, U, V o W,
codifica los privilegios sobre la tabla o vista
que necesita el ndice dependiente; valor
nulo en caso contrario.
SYSCAT.INDEXES
Cada fila representa un ndice. Los ndices en tablas con tipo se representan
mediante dos filas: una para el ndice lgico de la tabla con tipo y otro para el
ndice-H de la tabla de jerarqua.
Tabla 79. Vista de catlogo SYSCAT.INDEXES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
INDSCHEMA VARCHAR(128) Nombre de esquema del ndice.
INDNAME VARCHAR(128) Nombre no calificado del ndice.
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
el ndice.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla o apodo en
el que se define el ndice.
TABNAME VARCHAR(128) Nombre no calificado de la tabla o apodo en
el que se define el ndice.
COLNAMES VARCHAR(640) Esta columna ya no se utiliza y se eliminar
en el prximo release. Utilice
SYSCAT.INDEXCOLUSE para obtener esta
informacin.
UNIQUERULE CHAR(1) Regla de unicidad.
D = Permite duplicados
U = Unicidad
P = Implanta clave primaria
MADE_UNIQUE CHAR(1) N = El ndice permanece tal como se ha
creado
Y = El ndice era de no unicidad
originalmente, pero se ha convertido en
un ndice de unicidad para dar soporte a
una restriccin de clave primaria o de
unicidad. Si se elimina la restriccin, el
ndice vuelve a ser de no unicidad.
COLCOUNT SMALLINT El nmero de columnas de la clave, ms el
nmero de columnas INCLUDE, si hay
alguna.
UNIQUE_COLCOUNT SMALLINT Nmero de columnas necesarias para una
clave de unicidad. Siempre es <=
COLCOUNT, y < COLCOUNT slo si hay
columnas de inclusin; -1 si el ndice no
tiene clave de unicidad (es decir, permite
duplicados).
Notas:
1. Cuando se utilizan espacios de tabla DMS, no puede calcularse esta estadstica.
2. No se recopilan estadsticas de captacin previa durante una operacin LOAD...STATISTICS YES o CREATE
INDEX...COLLECT STATISTICS ni cuando el parmetro de configuracin seqdetect est desactivado.
3. AVGPARTITION_CLUSTERRATIO, AVGPARTITION_CLUSTERFACTOR y
AVGPARTITION_PAGE_FETCH_PAIRS miden el grado de clster dentro de una sola particin de datos (clster
local). CLUSTERRATIO, CLUSTERFACTOR y PAGE_FETCH_PAIRS miden el grado de clster en la tabla entera
(clster global). Los valores de clster global y de clster local pueden diferir significativamente si la clave de
particionamiento de la tabla no es un prefijo de la clave de ndice o cuando la clave de particionamiento de la
tabla y la clave de ndice son independientes, en trminos lgicos, una de otra.
4. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
5. Los ndices XPTH, XRGN y XVIP no son reconocidos por ninguna interfaz de programacin de aplicaciones que
devuelvan metadatos de ndice.
Informacin relacionada:
v SYSCAT.INDEXCOLUSE en la pgina 663
SYSCAT.INDEXEXPLOITRULES
Cada fila representa una regla de explotacin de ndice.
Tabla 80. Vista de catlogo SYSCAT.INDEXEXPLOITRULES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
FUNCID INTEGER Identificador de la funcin.
SPECID SMALLINT Nmero de la especificacin de predicado.
IESCHEMA VARCHAR(128) Nombre de esquema de la extensin del
ndice.
IENAME VARCHAR(128) Nombre no calificado de la extensin del
ndice.
RULEID SMALLINT Identificador de la regla de explotacin.
SEARCHMETHODID SMALLINT Identificador del mtodo de bsqueda en la
extensin de ndice especfica.
SEARCHKEY VARCHAR(320) Clave utilizada para explotar el ndice.
SEARCHARGUMENT VARCHAR(1800) Argumentos de bsqueda utilizados para
explotar el ndice.
EXACT CHAR(1) N = La bsqueda en el ndice no es
exacta en trminos de evaluacin del
predicado
Y = La bsqueda en el ndice es exacta en
trminos de evaluacin del predicado
SYSCAT.INDEXEXTENSIONDEP
Cada fila representa una dependencia de una extensin de ndice respecto de algn
otro objeto. La extensin de ndice depende del objeto de tipo BTYPE de nombre
BNAME, de modo que un cambio en el objeto afecta a la extensin de ndice.
Tabla 81. Vista de catlogo SYSCAT.INDEXEXTENSIONDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
IESCHEMA VARCHAR(128) Nombre de esquema de la extensin del
ndice.
IENAME VARCHAR(128) Nombre no calificado de la extensin del
ndice.
BTYPE CHAR(1) Tipo de objeto sobre el que hay una
dependencia. Los valores posibles son:
A = Alias
B = Activador
F = Instancia de rutina
H = Tabla de jerarqua
K = Paquete
L = Tabla desenlazada
O = Dependencia de privilegios en todas
las subtablas o subvistas de una jerarqua
de tablas o de vistas
Q = Secuencia
R = Tipo estructurado
S = Tabla de consultas materializadas
T = Tabla (sin tipo)
U = Tabla con tipo
V = Vista (sin tipo)
W = Vista con tipo
X = Extensin de ndice
Z = Objeto XSR
BSCHEMA VARCHAR(128) Nombre de esquema del objeto sobre el que
hay una dependencia.
BNAME VARCHAR(128) Nombre no calificado del objeto sobre el que
hay una dependencia. Para rutinas (BTYPE =
F), es el nombre especfico.
TABAUTH SMALLINT Y Si BTYPE = O, S, T, U, V o W,
codifica los privilegios sobre la tabla o vista
que necesita la extensin de ndice
dependiente; valor nulo en caso contrario.
SYSCAT.INDEXEXTENSIONMETHODS
Cada fila representa un mtodo de bsqueda. Una extensin de ndice puede
contener ms de un mtodo de bsqueda.
Tabla 82. Vista de catlogo SYSCAT.INDEXEXTENSIONMETHODS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
METHODNAME VARCHAR(128) Nombre del mtodo de bsqueda.
METHODID SMALLINT El nmero del mtodo en la extensin de
ndice.
IESCHEMA VARCHAR(128) Nombre de esquema de la extensin de
ndice en la que est definido este mtodo.
IENAME VARCHAR(128) Nombre no calificado de la extensin de
ndice en la que est definido este mtodo.
RANGEFUNCSCHEMA VARCHAR(128) Nombre de esquema de la funcin del rango.
RANGEFUNCNAME VARCHAR(18) Nombre no calificado de la funcin del
rango.
RANGESPECIFICNAME VARCHAR(18) Nombre especfico de la funcin de la
funcin del rango.
FILTERFUNCSCHEMA VARCHAR(128) Y Nombre de esquema de la funcin de filtro.
FILTERFUNCNAME VARCHAR(128) Y Nombre no calificado de la funcin de filtro.
FILTERSPECIFICNAME VARCHAR(128) Y Nombre especfico de la funcin de la
funcin de filtro.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
SYSCAT.INDEXEXTENSIONPARMS
Cada fila representa un parmetro de instancia de la extensin de ndice o una
columna de la clave fuente.
Tabla 83. Vista de catlogo SYSCAT.INDEXEXTENSIONPARMS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
IESCHEMA VARCHAR(128) Nombre de esquema de la extensin del
ndice.
IENAME VARCHAR(128) Nombre no calificado de la extensin del
ndice.
ORDINAL SMALLINT Nmero de secuencia del parmetro o de la
columna clave.
PARMNAME VARCHAR(128) Nombre del parmetro o de la columna
clave.
TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos del
parmetro o de la columna clave.
TYPENAME VARCHAR(128) Nombre no calificado del tipo de datos del
parmetro o de la columna clave.
LENGTH INTEGER Longitud del tipo de datos del parmetro o
de la columna clave.
SCALE SMALLINT Escala del tipo de datos del parmetro o de
la columna clave; 0 si no se aplica.
PARMTYPE CHAR(1) K = Columna de clave fuente
P = Parmetro de instancia de extensin
de ndice
CODEPAGE SMALLINT Pgina de cdigos del parmetro de la
instancia de extensin del ndice; 0 si no es
de tipo serie.
SYSCAT.INDEXEXTENSIONS
Cada fila representa una extensin de ndice.
Tabla 84. Vista de catlogo SYSCAT.INDEXEXTENSIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
IESCHEMA VARCHAR(128) Nombre de esquema de la extensin del
ndice.
IENAME VARCHAR(128) Nombre no calificado de la extensin del
ndice.
OWNER VARCHAR(128) ID de autorizacin con el cual se ha creado
la extensin de ndice.
CREATE_TIME TIMESTAMP Hora en la que se defini la extensin de
ndice.
KEYGENFUNCSCHEMA VARCHAR(128) Nombre de esquema de la funcin de
generacin de claves.
KEYGENFUNCNAME VARCHAR(128) Nombre calificado de la funcin de
generacin de claves.
KEYGENSPECIFICNAME VARCHAR(128) Nombre de la instancia de generacin de
claves (puede ser un nombre generado por el
sistema).
TEXT CLOB(2M) Texto completo de la sentencia CREATE
INDEX EXTENSION.
DEFINER1 VARCHAR(128) ID de autorizacin con el cual se ha creado
la extensin de ndice.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.INDEXOPTIONS
Cada fila representa un valor de opcin especfico del ndice.
Tabla 85. Vista de catlogo SYSCAT.INDEXOPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
INDSCHEMA VARCHAR(128) Nombre de esquema del ndice.
INDNAME VARCHAR(128) Nombre no calificado del ndice.
OPTION VARCHAR(128) Nombre de la opcin de ndice.
SETTING VARCHAR(2048) Valor de la opcin de ndice.
SYSCAT.INDEXXMLPATTERNS
Cada fila representa una clusula de patrn en un ndice sobre una columna XML.
Tabla 86. Vista de catlogo SYSCAT.INDEXXMLPATTERNS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
INDSCHEMA VARCHAR(128) Nombre de esquema del ndice lgico.
INDNAME VARCHAR(128) Nombre no calificado del ndice lgico.
PINDNAME VARCHAR(128) Nombre no calificado del ndice fsico.
PINDID SMALLINT Identificador del ndice fsico.
TYPEMODEL CHAR(1) Q = Tipo de datos SQL
DATATYPE VARCHAR(128) Nombre del tipo de datos.
HASHED CHAR(1) Indica si el valor se ha generado o no de
forma aleatoria.
N = No generado de forma aleatoria
Y = Generado de forma aleatoria
LENGTH SMALLINT Longitud VARCHAR(n); 0 en caso contrario.
PATTERNID SMALLINT Identificador del patrn.
PATTERN CLOB(2M) Y Definicin del patrn.
Notas:
1. Cuando crea ndices sobre columnas XML, se crean ndices lgicos que utilizan la informacin del patrn XML, lo
que da lugar a la creacin de ndices de rbol-B con columnas clave generadas por DB2 para dar soporte a los
ndices lgicos. Se crea un ndice fsico para dar soporte al tipo de datos especificado en la clusula xmltype de la
sentencia CREATE INDEX.
SYSCAT.KEYCOLUSE
Cada fila representa una columna que participa en una clave definida por una
restriccin de unicidad, de clave primaria o de clave fornea.
Tabla 87. Vista de catlogo SYSCAT.KEYCOLUSE
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
CONSTNAME VARCHAR(128) Nombre de la restriccin.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla que contiene
la columna.
TABNAME VARCHAR(128) Nombre no calificado de la tabla que
contiene la columna.
COLNAME VARCHAR(128) Nombre de la columna.
COLSEQ SMALLINT Posicin numrica de la columna en la clave
(la posicin inicial es 1).
SYSCAT.NAMEMAPPINGS
Cada fila representa la correlacin entre un objeto lgico (tabla o vista con tipo y
sus columnas e ndices, incluidas las columnas heredadas) y el objeto de
implantacin correspondiente (tabla de jerarqua o vista de jerarqua y sus
columnas e ndices) que implanta el objeto lgico.
Tabla 88. Vista de catlogo SYSCAT.NAMEMAPPINGS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TYPE CHAR(1) C = Columna
I = ndice
U = Tabla con tipo
LOGICAL_SCHEMA VARCHAR(128) Nombre de esquema del objeto lgico.
LOGICAL_NAME VARCHAR(128) Nombre no calificado del objeto lgico.
LOGICAL_COLNAME VARCHAR(128) Y Nombre de la columna lgica si TYPE = C;
valor nulo en caso contrario.
IMPL_SCHEMA VARCHAR(128) Nombre de esquema del objeto de
implantacin que implanta el objeto lgico.
IMPL_NAME VARCHAR(128) Nombre no calificado del objeto de
implantacin que implanta el objeto lgico.
IMPL_COLNAME VARCHAR(128) Y Nombre de la columna de implantacin si
TYPE = C; valor nulo en caso contrario.
SYSCAT.NICKNAMES
Cada fila representa un apodo.
Tabla 89. Vista de catlogo SYSCAT.NICKNAMES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema del apodo.
TABNAME VARCHAR(128) Nombre no calificado del apodo.
DEFINER VARCHAR(128) Usuario que ha creado el apodo.
STATUS CHAR(1) Estado del objeto.
C = Pendiente de establecer integridad
N = Normal
X = No operativo
CREATE_TIME TIMESTAMP Hora a la que se ha creado el objeto.
STATS_TIME TIMESTAMP S Hora a la que se ha hecho por ltima vez un
cambio en las estadsticas registradas
correspondientes a este objeto. Nulo si no se
recopilan estadsticas.
COLCOUNT SMALLINT Nmero de columnas, incluidas las columnas
heredadas (si las hay).
TABLEID SMALLINT Identificador interno del objeto lgico.
TBSPACEID SMALLINT Identificador lgico interno del espacio de
tablas primario correspondiente a este objeto.
CARD BIGINT Nmero total de filas; -1 si no se recopilan
estadsticas.
NPAGES BIGINT Nmero total de pginas en las que hay filas
del apodo; -1 si no se recopilan estadsticas.
FPAGES BIGINT Nmero total de pginas; -1 si no se
recopilan estadsticas.
OVERFLOW BIGINT Nmero total de registros de
desbordamiento; -1 si no se recopilan
estadsticas.
PARENTS SMALLINT S Nmero de tablas padre de este objeto; es
decir, el nmero de restricciones de
referencia de las que depende este objeto.
CHILDREN SMALLINT S Nmero de tablas dependientes de este
objeto; es decir, el nmero de restricciones de
referencia de las que depende este objeto.
SELFREFS SMALLINT S Nmero de restricciones de referencia propia
para este objeto; es decir, el nmero de
restricciones de referencia en las que este
objeto es tanto padre como dependiente.
KEYCOLUMNS SMALLINT S Nmero de columnas de la clave primaria.
KEYINDEXID SMALLINT S Identificador de ndice correspondiente al
ndice de clave primaria; 0 o el valor nulo si
no hay clave primaria.
KEYUNIQUE SMALLINT Nmero de restricciones de clave de
unicidad (que no sean la restriccin de clave
primara) definidas en este objeto.
SYSCAT.PACKAGEAUTH
Cada fila representa un usuario o un grupo al que se ha otorgado uno o ms
privilegios sobre un paquete.
Tabla 90. Vista de catlogo SYSCAT.PACKAGEAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado el privilegio.
GRANTEE VARCHAR(128) El que mantiene el privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
PKGSCHEMA VARCHAR(128) Nombre de esquema del paquete.
PKGNAME VARCHAR(128) Nombre no calificado del paquete.
CONTROLAUTH CHAR(1) Privilegio CONTROL.
N = No se mantiene
Y = Se mantiene
BINDAUTH CHAR(1) Privilegio para vincular el paquete.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
EXECUTEAUTH CHAR(1) Privilegio para ejecutar el paquete.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
SYSCAT.PACKAGEDEP
Cada fila representa una dependencia de un paquete sobre algn otro objeto. El
paquete depende del objeto de tipo BTYPE de nombre BNAME, de modo que un
cambio en el objeto afecta al paquete.
Tabla 91. Vista de catlogo SYSCAT.PACKAGEDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
PKGSCHEMA VARCHAR(128) Nombre de esquema del paquete.
PKGNAME VARCHAR(128) Nombre no calificado del paquete.
BINDER VARCHAR(128) Vinculador del paquete.
BTYPE CHAR(1) Tipo de objeto sobre el que hay una
dependencia. Los valores posibles son:
A = Alias
B = Activador
D = Definicin de servidor
F = Instancia de rutina
I = ndice
M = Correlacin de funciones
N = Apodo
O = Dependencia de privilegios en todas
las subtablas o subvistas de una jerarqua
de tablas o de vistas
P = Tamao de pgina
Q = Objeto de secuencia
R = Tipo estructurado
S = Tabla de consultas materializadas
T = Tabla (sin tipo)
U = Tabla con tipo
V = Vista (sin tipo)
W = Vista con tipo
Z = Objeto XSR
BSCHEMA VARCHAR(128) Nombre de esquema de un objeto del que
depende el paquete.
BNAME VARCHAR(128) Nombre no calificado de un objeto del que
depende el paquete.
TABAUTH SMALLINT Y Si BTYPE es O, S, T, U, V o W,
codifica los privilegios que necesita este
paquete (SELECT, INSERT, UPDATE o
DELETE).
UNIQUE_ID CHAR(8) FOR BIT Identificador de un paquete especfico
DATA cuando existen varios paquetes con el mismo
nombre.
PKGVERSION VARCHAR(64) Identificador de versin del paquete.
Notas:
1. Si se elimina una instancia de funcin con dependencias, el paquete se coloca en un estado no operativo y se
debe volver a vincular de forma explcita. Si se elimina cualquier otro objeto con dependencias, el paquete se
coloca en un estado no vlido y el sistema intentar volver a vincular el paquete automticamente cuando se
haga referencia al mismo por primera vez.
SYSCAT.PACKAGES
Cada fila representa un paquete que se ha creado mediante la vinculacin de un
programa de aplicacin.
Tabla 92. Vista de catlogo SYSCAT.PACKAGES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
PKGSCHEMA VARCHAR(128) Nombre de esquema del paquete.
PKGNAME VARCHAR(128) Nombre no calificado del paquete.
BOUNDBY VARCHAR(128) ID de autorizacin del vinculador del
paquete.
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha
vinculado el paquete.
DEFAULT_SCHEMA VARCHAR(128) Nombre de esquema por omisin para
nombres no calificados en sentencias de SQL
esttico.
VALID1 CHAR(1) N = Necesita revinculacin
V = Validar en el momento de la
ejecucin
X = El paquete no est operativo porque
alguna instancia de funcin de la que
depende se ha eliminado; se tiene que
revincular de forma explcita
Y = Vlido
UNIQUE_ID CHAR(8) FOR BIT Identificador de un paquete especfico
DATA cuando existen varios paquetes con el mismo
nombre.
TOTAL_SECT SMALLINT Nmero de secciones del paquete.
FORMAT CHAR(1) Formato de fecha y hora asociado al
paquete.
0 = Formato asociado con el cdigo
territorial del cliente
1 = USA
2 = EUR
3 = ISO
4 = JIS
5 = LOCAL
ISOLATION CHAR(2) Y Nivel de aislamiento.
CS = Estabilidad del cursor
RR = Lectura repetible
RS = Estabilidad de lectura
UR = Lectura no confirmada
BLOCKING CHAR(1) Y Opcin de bloqueo del cursor.
B = Bloqueo de todos los cursores
N = Sin bloqueo
U = Bloqueo de cursores no ambiguos
Notas:
1. Si se elimina una instancia de funcin con dependencias, el paquete se coloca en un estado no operativo y se
debe volver a vincular de forma explcita. Si se elimina cualquier otro objeto con dependencias, el paquete se
coloca en un estado no vlido y el sistema intentar volver a vincular el paquete automticamente cuando se
haga referencia al mismo por primera vez.
2. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.PARTITIONMAPS
Cada fila representa un mapa de distribucin que se utiliza para distribuir las filas
de una tabla entre las particiones de base de datos de un grupo de particiones de
base de datos, en funcin de la generacin aleatoria de la clave de distribucin de
la tabla.
Tabla 93. Vista de catlogo SYSCAT.PARTITIONMAPS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
PMAP_ID SMALLINT Identificador del mapa de distribucin.
PARTITIONMAP LONG VARCHAR Mapa de distribucin, un vector de 4096
FOR BIT DATA enteros de dos bytes para un grupo de
particiones de base de datos de varias
particiones. Para un grupo de particiones de
base de datos de una sola particin, hay una
entrada que indica el nmero de particin de
la particin individual.
SYSCAT.PASSTHRUAUTH
Cada fila representa un usuario o un grupo al que se ha otorgado autorizacin de
paso para consultar una fuente de datos.
Tabla 94. Vista de catlogo SYSCAT.PASSTHRUAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado el privilegio.
GRANTEE VARCHAR(128) El que mantiene el privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
SERVERNAME VARCHAR(128) Nombre de la fuente de datos a la que se
otorga autorizacin.
SYSCAT.PREDICATESPECS
Cada fila representa una especificacin del predicado.
Tabla 95. Vista de catlogo SYSCAT.PREDICATESPECS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
FUNCSCHEMA VARCHAR(128) Nombre de esquema de la funcin.
FUNCNAME VARCHAR(128) Nombre no calificado de la funcin.
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la funcin.
FUNCID INTEGER Identificador de la funcin.
SPECID SMALLINT Nmero de esta especificacin de predicado.
CONTEXTOP CHAR(8) Operador de comparacin, uno de los
operadores relacionales incorporados (=, <,
>, >=, etc.)
CONTEXTEXP CLOB(32K) Constante o una expresin SQL.
FILTERTEXT CLOB(64K) Y Texto de la expresin de filtro de datos.
SYSCAT.REFERENCES
Cada fila representa una restriccin de integridad referencial (clave fornea).
Tabla 96. Vista de catlogo SYSCAT.REFERENCES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
CONSTNAME VARCHAR(128) Nombre de la restriccin.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla dependiente.
TABNAME VARCHAR(128) Nombre no calificado de la tabla
dependiente.
OWNER VARCHAR(128) ID de autorizacin bajo el que se ha creado
la restriccin.
REFKEYNAME VARCHAR(128) Nombre de la clave padre.
REFTABSCHEMA VARCHAR(128) Nombre de esquema de la tabla padre.
REFTABNAME VARCHAR(128) Nombre no calificado de la tabla padre.
COLCOUNT SMALLINT El nmero de columnas de la clave fornea.
DELETERULE CHAR(1) Regla de supresin.
A = NO ACTION
C = CASCADE
N = SET NULL
R = RESTRICT
UPDATERULE CHAR(1) Regla de actualizacin.
A = NO ACTION
R = RESTRICT
CREATE_TIME TIMESTAMP Hora a la que se ha definido la restriccin.
FK_COLNAMES VARCHAR(640) Esta columna ya no se utiliza y se eliminar
en un prximo release. Utilice
SYSCAT.KEYCOLUSE para obtener esta
informacin.
PK_COLNAMES VARCHAR(640) Esta columna ya no se utiliza y se eliminar
en un prximo release. Utilice
SYSCAT.KEYCOLUSE para obtener esta
informacin.
DEFINER1 VARCHAR(128) ID de autorizacin bajo el que se ha creado
la restriccin.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
Informacin relacionada:
v SYSCAT.KEYCOLUSE en la pgina 678
SYSCAT.ROUTINEAUTH
Cada fila representa un usuario o grupo al que se ha otorgado el privilegio
EXECUTE sobre una determinada rutina (funcin, mtodo o procedimiento) o
sobre todas las rutinas de un determinado esquema de la base de datos.
Tabla 97. Vista de catlogo SYSCAT.ROUTINEAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que otorga el privilegio. SYSIBM si el
privilegio lo ha otorgado el sistema.
GRANTEE VARCHAR(128) El que mantiene el privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
SCHEMA VARCHAR(128) Nombre de esquema de la rutina.
SPECIFICNAME VARCHAR(128) S Nombre especfico de la rutina. Si
SPECIFICNAME es nulo y ROUTINETYPE
no es M, el privilegio se aplica a todas las
rutinas del tipo especificado en
ROUTINETYPE en el esquema especificado
en SCHEMA. Si SPECIFICNAME es nulo y
ROUTINETYPE es M, el privilegio se aplica
a todos los mtodos correspondientes al tipo
de asunto especificado por TYPENAME en
el esquema especificado por TYPESCHEMA.
Si SPECIFICNAME es nulo, ROUTINETYPE
es M y tanto TYPENAME como
TYPESCHEMA con nulos, el privilegio de
aplica a todos los mtodos correspondientes
a todos los tipos del esquema.
TYPESCHEMA VARCHAR(128) S Nombre de esquema del tipo
correspondiente al mtodo. Nulo si
ROUTINETYPE no es M.
TYPENAME VARCHAR(128) S Nombre no calificado del tipo
correspondiente al mtodo. Nulo si
ROUTINETYPE no es M. Si TYPENAME es
nulo y ROUTINETYPE es M, el privilegio
de aplica a todos los mtodos
correspondientes a cualquier tipo de asunto
si estn en el esquema especificado por
SCHEMA.
ROUTINETYPE CHAR(1) Tipo de la rutina.
F = Funcin
M = Mtodo
P = Procedimiento
EXECUTEAUTH CHAR(1) Privilegio para ejecutar la rutina.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
GRANT_TIME TIMESTAMP Hora a la que se ha otorgado el privilegio.
SYSCAT.ROUTINEDEP
Cada fila representa una dependencia de una rutina sobre algn otro objeto. La
rutina depende del objeto de tipo BTYPE de nombre BNAME, de modo que un
cambio en el objeto afecta a la rutina.
Tabla 98. Vista de catlogo SYSCAT.ROUTINEDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
ROUTINESCHEMA VARCHAR(128) Nombre de esquema de la rutina que tiene
dependencias sobre otro objeto.
ROUTINENAME VARCHAR(128) Nombre no calificado de la rutina que tiene
dependencias sobre otro objeto.
SPECIFICNAME VARCHAR(128) Nombre especfico de la rutina que tiene
dependencias sobre otro objeto.
BTYPE CHAR(1) Tipo de objeto sobre el que hay una
dependencia. Los valores posibles son:
A = Alias
B = Activador
F = Instancia de rutina
H = Tabla de jerarqua
K = Paquete
L = Tabla desenlazada
O = Dependencia de privilegios en todas
las subtablas o subvistas de una jerarqua
de tablas o de vistas
Q = Secuencia
R = Tipo estructurado
S = Tabla de consultas materializadas
T = Tabla (sin tipo)
U = Tabla con tipo
V = Vista (sin tipo)
W = Vista con tipo
X = Extensin de ndice
Z = Objeto XSR
BSCHEMA VARCHAR(128) Nombre de esquema del objeto sobre el que
hay una dependencia.
BNAME VARCHAR(128) Nombre no calificado del objeto sobre el que
hay una dependencia. Para rutinas (BTYPE =
F), es el nombre especfico.
TABAUTH SMALLINT Y Si BTYPE = O, S, T, U, V o W,
codifica los privilegios sobre la tabla o vista
que necesita la rutina dependiente; valor
nulo en caso contrario.
SYSCAT.ROUTINEOPTIONS
Cada fila representa un valor de opcin especfico de la rutina.
Tabla 99. Vista de catlogo SYSCAT.ROUTINEOPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
ROUTINESCHEMA VARCHAR(128) Nombre de esquema de la rutina.
ROUTINENAME VARCHAR(128) Nombre no calificado de la rutina.
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la rutina (puede
ser un nombre generado por el sistema).
OPTION VARCHAR(128) Nombre de la opcin de rutina federada.
SETTING VARCHAR(2048) Valor de la opcin de rutina federada.
SYSCAT.ROUTINEPARMOPTIONS
Cada fila representa un valor de opcin especfico del parmetro de rutina.
Tabla 100. Vista de catlogo SYSCAT.ROUTINEPARMOPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
ROUTINESCHEMA VARCHAR(128) Nombre de esquema de la rutina.
ROUTINENAME VARCHAR(128) Nombre no calificado de la rutina.
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la rutina (puede
ser un nombre generado por el sistema).
ORDINAL SMALLINT Posicin del parmetro dentro de la
signatura de la rutina.
OPTION VARCHAR(128) Nombre de la opcin de rutina federada.
SETTING VARCHAR(2048) Valor de la opcin de rutina federada.
SYSCAT.ROUTINEPARMS
Cada fila representa un parmetro o el resultado de una rutina definida en
SYSCAT.ROUTINES.
Tabla 101. Vista de catlogo SYSCAT.ROUTINEPARMS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
ROUTINESCHEMA VARCHAR(128) Nombre de esquema de la rutina.
ROUTINENAME VARCHAR(128) Nombre no calificado de la rutina.
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la rutina (puede
ser un nombre generado por el sistema).
PARMNAME VARCHAR(128) Y Nombre del parmetro o columna de
resultado, o nulo si no existe ningn nombre.
ROWTYPE CHAR(1) B = Tanto parmetro de entrada como de
salida
C = Resultado despus de conversin
O = Parmetro de salida
P = Parmetro de entrada
R = Resultado antes de conversin
ORDINAL SMALLINT Si ROWTYPE = B, O o P, posicin
numrica del parmetro dentro de la
signatura de la rutina, empezando por 1; si
ROWTYPE = R y la rutina devuelve una
tabla, posicin numrica de una columna
nombrada en la tabla de resultados,
empezando por 1; 0 en caso contrario.
TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos. El
nombre de esquema para tipos incorporados
es SYSIBM.
TYPENAME VARCHAR(128) Nombre no calificado del tipo de datos.
LOCATOR CHAR(1) N = El parmetro o resultado no se pasa
en forma de localizador
Y = El parmetro o resultado se pasa en
forma de localizador
LENGTH1 INTEGER Longitud del parmetro o resultado; 0 si el
parmetro o resultado es un tipo
diferenciado.
SCALE1 SMALLINT Escala del parmetro o resultado; 0 si el
parmetro o resultado es un tipo
diferenciado.
CODEPAGE SMALLINT Pgina de cdigos de este parmetro o
resultado; o indica no aplicable o un
parmetro o resultado para datos de
caracteres declarado con el atributo FOR BIT
DATA.
CAST_FUNCSCHEMA VARCHAR(128) Nombre de esquema de la funcin utilizada
para convertir un argumento o un resultado.
Se aplica a funciones derivadas y externas;
valor nulo en caso contrario.
Notas:
1. LENGTH y SCALE se establecen en 0 para las funciones derivadas (funciones definidas con una referencia a otra
funcin), porque heredan la longitud y escala de los parmetros de su fuente.
SYSCAT.ROUTINES
Cada fila representa una rutina definida por el usuario (funcin escalar, funcin de
tabla, funcin fuente, mtodo o procedimiento). No incluye las funciones
incorporadas.
Tabla 102. Vista de catlogo SYSCAT.ROUTINES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
ROUTINESCHEMA VARCHAR(128) Nombre de esquema de la rutina.
ROUTINENAME VARCHAR(128) Nombre no calificado de la rutina.
ROUTINETYPE CHAR(1) Tipo de rutina.
F = Funcin
M = Mtodo
P = Procedimiento
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
la rutina.
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la rutina (puede
ser un nombre generado por el sistema).
ROUTINEID INTEGER Identificador de la rutina.
RETURN_TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de retorno
correspondiente a una funcin escalar o a un
mtodo.
RETURN_TYPENAME VARCHAR(128) Nombre no calificado del tipo de retorno
correspondiente a una funcin escalar o a un
mtodo.
ORIGIN CHAR(1) B = Incorporado
E = Definido por el usuario, externo
M = Funcin de plantilla
F = Procedimiento federado
Q = Con cuerpo de SQL1
S = Generado por el sistema
T = Funcin de transformacin generada
por el sistema (no se puede invocar
directamente)
U = Definido por el usuario, basado en
una fuente
FUNCTIONTYPE CHAR(1) C = Columna o agregado
R = Fila
S = Escalar
T = Tabla
Blanco = Procedimiento
PARM_COUNT SMALLINT Nmero de parmetros de la rutina.
LANGUAGE CHAR(8) Lenguaje de implantacin del cuerpo de la
rutina (o del cuerpo de la funcin fuente, si
esta funcin es el origen de otra funcin).
Los valores posibles son C, COBOL,
JAVA, OLE, OLEDB o SQL. Blancos si
ORIGIN no es E ni Q.
Notas:
1. Para procedimientos SQL creados antes de la versin 8.2 y migrados a la versin 9, E (en lugar de Q).
2. Durante la migracin, la columna SELECTIVITY se establecer en -1 en el descriptor empaquetado y en los
catlogos del sistema para todas las rutinas definidas por el usuario. Para un predicado definido por el usuario, la
selectividad es -1 en el catlogo del sistema. En este caso, el valor de selectividad utilizado por el optimizador es
0.01.
3. Para rutinas Java, el valor DEBUG_MODE no indica si la rutina Java se ha compilado realmente en modalidad de
depuracin o si se ha instalado un archivo Jar de depuracin en el servidor.
4. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.ROUTINESFEDERATED
Cada fila representa una rutina definida por el usuario (funcin escalar, funcin de
tabla, funcin fuente, mtodo o procedimiento). No incluye las funciones
incorporadas.
Tabla 103. Vista de catlogo SYSCAT.ROUTINESFEDERATED
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
ROUTINESCHEMA VARCHAR(128) Nombre de esquema de la rutina.
ROUTINENAME VARCHAR(128) Nombre no calificado de la rutina.
ROUTINETYPE CHAR(1) Tipo de rutina.
P = Procedimiento
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
la rutina.
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la rutina (puede
ser un nombre generado por el sistema).
ROUTINEID INTEGER Identificador de la rutina.
PARM_COUNT SMALLINT Nmero de parmetros de la rutina.
DETERMINISTIC CHAR(1) N = Los resultados no son determinantes
(algunos parmetros pueden tener
distintos resultados si llama otra rutina)
Y = Los resultados son determinantes
EXTERNAL_ACTION CHAR(1) E = La rutina tiene efectos adicionales
externos (por lo tanto el nmero de
invocaciones es importante)
N = Ningn efecto adicional
SQL_DATA_ACCESS CHAR(1) Indica qu tipo de sentencias de SQL, si las
hay, debe dar por supuesto el gestor de
bases de datos que estn contenidas en la
rutina.
C = Contiene SQL (slo expresiones
simples sin subconsultas)
M = Contiene sentencias de SQL que
modifican datos
N = No contiene sentencias de SQL
R = Contiene sentencias de SQL de slo
lectura
COMMIT_ON_RETURN CHAR(1) Indica se la transaccin se confirma tras un
retorno satisfactorio por parte de este
procedimiento.
N = La unidad de trabajo no se confirma
Y = La unidad de trabajo se confirma
Blanco = ROUTINETYPE no es P
RESULT_SETS SMALLINT Nmero mximo estimado de conjuntos de
resultados.
CREATE_TIME TIMESTAMP Hora a la que se ha creado la rutina.
ALTER_TIME TIMESTAMP Hora a la que se ha modificado por ltima
vez la rutina.
SYSCAT.SCHEMAAUTH
Cada fila representa un usuario o un grupo al que se ha otorgado uno o ms
privilegios sobre un esquema.
Tabla 104. Vista de catlogo SYSCAT.SCHEMAAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado un privilegio.
GRANTEE VARCHAR(128) El que mantiene un privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
SCHEMANAME VARCHAR(128) Nombre del esquema al que se aplica este
privilegio.
ALTERINAUTH CHAR(1) Privilegio para modificar o realizar
comentarios sobre los objetos del esquema
nombrado.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
CREATEINAUTH CHAR(1) Privilegio para crear objetos en el esquema
nombrado.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
DROPINAUTH CHAR(1) Privilegio para eliminar objetos del esquema
nombrado.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
SYSCAT.SCHEMATA
Cada fila representa un esquema.
Tabla 105. Vista de catlogo SYSCAT.SCHEMATA
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
SCHEMANAME VARCHAR(128) Nombre del esquema.
OWNER VARCHAR(128) ID de autorizacin del esquema, que tiene
autorizacin para eliminar el esquema y
todos los objetos contenidos en el mismo. El
valor de los esquemas creados de forma
implcita es SYSIBM.
DEFINER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
el esquema.
CREATE_TIME TIMESTAMP Hora a la que se ha creado el esquema.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
SYSCAT.SECURITYLABELACCESS
Cada fila representa la etiqueta de seguridad que se ha otorgado al ID de
autorizacin de base de datos.
Tabla 106. Vista de catlogo SYSCAT.SECURITYLABELACCESS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que otorga la etiqueta de seguridad.
GRANTEE VARCHAR(128) El que mantiene la etiqueta de seguridad.
GRANTEETYPE CHAR(1) U = Se otorga a un usuario individual
SECLABELID INTEGER Identificador de la etiqueta de seguridad.
SECPOLICYID INTEGER Identificador de la poltica de seguridad
asociada a la etiqueta de seguridad.
ACCESSTYPE CHAR(1) B = Tanto acceso de lectura como de
grabacin
R = Acceso de lectura
W = Acceso de grabacin
GRANT_TIME TIMESTAMP Hora a la que se ha otorgado la etiqueta de
seguridad.
SYSCAT.SECURITYLABELCOMPONENTELEMENTS
Cada fila representa un valor de elemento de un componente de etiqueta de
seguridad.
Tabla 107. Vista de catlogo SYSCAT.SECURITYLABELCOMPONENTELEMENTS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
COMPID INTEGER Identificador del componente de etiqueta de
seguridad.
ELEMENTVALUE VARCHAR(32) Valor de elemento del componente de
etiqueta de seguridad.
ELEMENTVALUEENCODING CHAR(8) FOR BIT Formato codificado del valor del elemento.
DATA
PARENTELEMENTVALUE VARCHAR(32) Y Nombre del padre de un elemento para
componentes de rbol; nulo para
componentes de conjunto y de matriz y para
el nodo ROOT de un componente de rbol.
SYSCAT.SECURITYLABELCOMPONENTS
Cada fila representa un componente de etiqueta de seguridad.
Tabla 108. Vista de catlogo SYSCAT.SECURITYLABELCOMPONENTS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
COMPNAME VARCHAR(128) Nombre del componente de etiqueta de
seguridad.
COMPID INTEGER Identificador del componente de etiqueta de
seguridad.
COMPTYPE CHAR(1) Tipo de componente de etiqueta de
seguridad.
A = Matriz
S = Conjunto
T = rbol
NUMELEMENTS INTEGER Nmero de elementos del componente de
etiqueta de seguridad.
CREATE_TIME TIMESTAMP Hora a la que se ha creado el componente de
etiqueta de seguridad.
REMARKS VARCHAR(254) Comentarios proporcionados por el usuario
o nulo.
SYSCAT.SECURITYLABELS
Cada fila representa una etiqueta de seguridad.
Tabla 109. Vista de catlogo SYSCAT.SECURITYLABELS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
SECLABELNAME VARCHAR(128) Nombre de la etiqueta de
seguridad.
SECLABELID INTEGER Identificador de la etiqueta de
seguridad.
SECPOLICYID INTEGER Identificador de la poltica de
seguridad a la que pertenece
la etiqueta de seguridad.
SECLABEL SYSPROC.DB2SECURITYLABEL Representacin interna de la
etiqueta de seguridad.
CREATE_TIME TIMESTAMP Hora a la que se ha creado la
etiqueta de seguridad.
REMARKS VARCHAR(254) Comentarios proporcionados
por el usuario o nulo.
SYSCAT.SECURITYPOLICIES
Cada fila representa una poltica de seguridad.
Tabla 110. Vista de catlogo SYSCAT.SECURITYPOLICIES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
SECPOLICYNAME VARCHAR(128) Nombre de la poltica de seguridad.
SECPOLICYID INTEGER Identificador de la poltica de seguridad.
NUMSECLABELCOMP INTEGER Nmero de componentes de etiqueta de
seguridad de la poltica de seguridad.
RWSECLABELREL CHAR(1) Relacin entre las etiquetas de seguridad
correspondientes al acceso de lectura y de
grabacin otorgado al mismo ID de
autorizacin.
S = La etiqueta de seguridad
correspondiente al acceso de grabacin
otorgado a un usuario es un subconjunto
de la etiqueta de seguridad
correspondiente al acceso de lectura
otorgado al mismo usuario
NOTAUTHWRITESECLABEL CHAR(1) Accin que se debe emprender cuando un
usuario no tiene autorizacin para escribir la
etiqueta de seguridad especificada en la
sentencia INSERT o UPDATE.
O = Alterar temporalmente
R = Restringir
CREATE_TIME TIMESTAMP Hora a la que se ha creado la poltica de
seguridad.
REMARKS VARCHAR(254) Comentarios proporcionados por el usuario
o nulo.
SYSCAT.SECURITYPOLICYCOMPONENTRULES
Cada fila representa las normas de acceso de lectura y grabacin correspondientes
a un componente de etiqueta de seguridad de la poltica de seguridad.
Tabla 111. Vista de catlogo SYSCAT.SECURITYPOLICYCOMPONENTRULES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
SECPOLICYID INTEGER Identificador de la poltica de seguridad.
COMPID INTEGER Identificador del componente de etiqueta de
seguridad de la poltica de seguridad.
ORDINAL INTEGER Posicin del componente de etiqueta de
seguridad tal como aparece en la poltica de
seguridad, empezando por 1.
READACCESSRULENAME VARCHAR(128) Nombre de la norma de acceso de lectura
asociada al componente de etiqueta de
seguridad.
READACCESSRULETEXT VARCHAR(512) Texto de la norma de acceso de lectura
asociada al componente de etiqueta de
seguridad.
WRITEACCESSRULENAME VARCHAR(128) Nombre de la norma de acceso de grabacin
asociada al componente de etiqueta de
seguridad.
WRITEACCESSRULETEXT VARCHAR(512) Texto de la norma de acceso de grabacin
asociada al componente de etiqueta de
seguridad.
SYSCAT.SECURITYPOLICYEXEMPTIONS
Cada fila representa una exencin de la poltica de seguridad que se ha otorgado a
un ID de autorizacin de base de datos.
Tabla 112. Vista de catlogo SYSCAT.SECURITYPOLICYEXEMPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que otorga la exencin.
GRANTEE VARCHAR(128) El que mantiene la exencin.
GRANTEETYPE CHAR(1) U = Se otorga a un usuario individual
SECPOLICYID INTEGER Identificador de la poltica de seguridad a la
que se ha otorgado la exencin.
ACCESSRULENAME VARCHAR(128) Nombre de la norma de acceso para la que
se ha otorgado la exencin.
ACCESSTYPE CHAR(1) Tipo de acceso al que se aplica la norma.
R = Acceso de lectura
W = Acceso de grabacin
ORDINAL INTEGER Posicin del componente de etiqueta de
seguridad en la poltica de seguridad a la
que se aplica la norma.
ACTIONALLOWED CHAR(1) Si la norma es DB2LBACWRITEARRAY,
entonces:
B = Escritura hacia abajo y hacia arriba
D = Escritura hacia abajo
U = Escritura hacia arriba
Blanco en caso contrario.
GRANT_TIME TIMESTAMP Hora a la que se ha otorgado la exencin.
SYSCAT.SURROGATEAUTHIDS
Cada fila representa un ID de autorizacin para el que otro ID de autorizacin
puede actuar como un sustituto.
Tabla 113. Vista de catlogo SYSCAT.SURROGATEAUTHIDS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) ID de autorizacin que ha otorgado a
TRUSTEDID la capacidad para actuar como
un sustituto.
TRUSTEDID VARCHAR(128) Identificador de la entidad en la que se
confa para que acte como un sustituto.
TRUSTEDIDTYPE CHAR(1) G = Grupo
U = Usuario
SURROGATEAUTHID VARCHAR(128) ID de autorizacin del sustituto que puede
adoptar TRUSTEDID. PUBLIC indica que
TRUSTEDID puede adoptar cualquier ID de
autorizacin.
SURROGATEAUTHIDTYPE CHAR(1) G = Grupo
U = Usuario
GRANT_TIME TIMESTAMP Hora a la que se ha efectuado el
otorgamiento.
SYSCAT.SEQUENCEAUTH
Cada fila representa un usuario o un grupo al que se ha otorgado uno o ms
privilegios sobre una secuencia.
Tabla 114. Vista de catlogo SYSCAT.SEQUENCEAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado un privilegio.
GRANTEE VARCHAR(128) El que mantiene un privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
SEQSCHEMA VARCHAR(128) Nombre de esquema de la secuencia.
SEQNAME VARCHAR(128) Nombre no calificado de la secuencia.
ALTERAUTH CHAR(1) Privilegio para modificar la secuencia.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
USAGEAUTH CHAR(1) Privilegio para hacer referencia a la
secuencia.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
SYSCAT.SEQUENCES
Cada fila representa una secuencia.
Tabla 115. Vista de catlogo SYSCAT.SEQUENCES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
SEQSCHEMA VARCHAR(128) Nombre de esquema de la secuencia.
SEQNAME VARCHAR(128) Nombre no calificado de la secuencia.
1
DEFINER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
la secuencia.
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
la secuencia.
SEQID INTEGER Identificador de la secuencia.
SEQTYPE CHAR(1) Tipo de secuencia.
I = Secuencia de identificacin
S = Secuencia corriente
INCREMENT DECIMAL(31,0) Valor de incremento.
START DECIMAL(31,0) Valor inicial de la secuencia.
MAXVALUE DECIMAL(31,0) Valor mximo de la secuencia.
MINVALUE DECIMAL(31,0) Valor mnimo de la secuencia.
NEXTCACHEFIRSTVALUE DECIMAL(31,0) Y Primer valor que estar disponible para
asignarlo en el bloque de memoria
intermedia siguiente. Si no hay
almacenamiento en antememoria, el
siguiente valor que estar disponible para
asignar.
CYCLE CHAR(1) Indica si la secuencia puede o no continuar
generando valores despus de alcanzar su
valor mximo o mnimo.
N = La secuencia no puede continuar
Y = La secuencia puede continuar
CACHE INTEGER Nmero de valores de secuencia que se
deben preasignar en memoria para el acceso
ms rpido. 0 indica que los valores de la
secuencia no se deben preasignar. En una
base de datos particionada, este valor se
aplica a cada particin de base de datos.
ORDER CHAR(1) Indica si los nmeros de secuencia se deben
o no generar en orden de peticin.
N = No es necesario que los nmeros de
secuencia se generen en orden de peticin
Y = Los nmeros de secuencia se deben
generar en orden de peticin
DATATYPEID INTEGER Para tipos incorporados, el identificador
interno del tipo incorporado. Para tipos
diferenciados, el identificador interno del
tipo diferenciado.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.SERVEROPTIONS
Cada fila representa un valor de opcin especfico del servidor.
Tabla 116. Vista de catlogo SYSCAT.SERVEROPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
WRAPNAME VARCHAR(128) Y Nombre del derivador.
SERVERNAME VARCHAR(128) Y Nombre en maysculas del servidor.
SERVERTYPE VARCHAR (30) Y Tipo de servidor.
SERVERVERSION VARCHAR(18) Y Versin de servidor.
CREATE_TIME TIMESTAMP Hora a la que se ha creado la entrada.
OPTION VARCHAR(128) Nombre de la opcin de servidor.
SETTING VARCHAR(2048) Valor de la opcin de servidor.
SERVEROPTIONKEY VARCHAR(18) Identifica una fila de forma exclusiva.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
SYSCAT.SERVERS
Cada fila representa una fuente de datos.
Tabla 117. Vista de catlogo SYSCAT.SERVERS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
WRAPNAME VARCHAR(128) Nombre del derivador.
SERVERNAME VARCHAR(128) Nombre en maysculas del servidor.
SERVERTYPE VARCHAR (30) Y Tipo de servidor.
SERVERVERSION VARCHAR(18) Y Versin de servidor.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
SYSCAT.STATEMENTS
Cada fila representa una sentencia de SQL de un paquete.
Tabla 118. Vista de catlogo SYSCAT.STATEMENTS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
PKGSCHEMA VARCHAR(128) Nombre de esquema del paquete.
PKGNAME VARCHAR(128) Nombre no calificado del paquete.
UNIQUE_ID CHAR(8) FOR BIT Identificador de un paquete especfico
DATA cuando existen varios paquetes con el mismo
nombre.
VERSION VARCHAR(64) Identificador de versin del paquete.
STMTNO INTEGER El nmero de lnea de la sentencia de SQL
del mdulo fuente del programa de
aplicacin.
SECTNO SMALLINT El nmero de la seccin del paquete que
contiene la sentencia de SQL.
SEQNO SMALLINT Siempre 1.
TEXT CLOB(2M) Texto de la sentencia de SQL.
SYSCAT.TABAUTH
Cada fila representa un usuario o un grupo al que se ha otorgado uno o ms
privilegios sobre una tabla o vista.
Tabla 119. Vista de catlogo SYSCAT.TABAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado el privilegio.
GRANTEE VARCHAR(128) El que mantiene el privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla o vista.
TABNAME VARCHAR(128) Nombre no calificado de la tabla o vista.
CONTROLAUTH CHAR(1) Privilegio CONTROL.
N = No se mantiene
Y = Se mantiene pero no se puede
otorgar
ALTERAUTH CHAR(1) Privilegio para modificar la tabla; permitir
que una tabla padre de esta tabla elimine su
restriccin de clave primaria o de unidad;
permitir que una tabla se convierta en una
tabla de consultas materializadas que haga
referencia a esta tabla o vista en la consulta
materializada; o permitir que una tabla que
haga referencia a esta tabla o vista en su
consulta materializada deje de ser una tabla
de consultas materializadas.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
DELETEAUTH CHAR(1) Privilegio para suprimir filas de una tabla o
vista actualizable.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
INDEXAUTH CHAR(1) Privilegio para crear un ndice sobre una
tabla.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
INSERTAUTH CHAR(1) Privilegio para insertar en una tabla o vista
actualizable o para ejecutar el programa de
utilidad de importacin sobre una tabla o
vista.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
SYSCAT.TABCONST
Cada fila representa una restriccin de tabla del tipo CHECK, UNIQUE, PRIMARY
KEY o FOREIGN KEY. Para jerarquas de tablas, cada restriccin se registra slo a
nivel de la jerarqua en la que se ha creado la restriccin.
Tabla 120. Vista de catlogo SYSCAT.TABCONST
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
CONSTNAME VARCHAR(128) Nombre de la restriccin.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla a la que se
aplica esta restriccin.
TABNAME VARCHAR(128) Nombre no calificado de la tabla a la que se
aplica esta restriccin.
OWNER VARCHAR(128) ID de autorizacin bajo el que se ha creado
la restriccin.
TYPE CHAR(1) Indica el tipo de restriccin.
F = Clave fornea
I = Dependencia funcional
K = Comprobacin
P = Clave primaria
U = Unicidad
ENFORCED CHAR(1) N = No imponer la restriccin
Y = Imponer la restriccin
CHECKEXISTINGDATA CHAR(1) D = Diferir la comprobacin de los datos
existentes
I = Comprobacin inmediata de los datos
existentes
N = No comprobar nunca los datos
existentes
ENABLEQUERYOPT CHAR(1) N = Optimizacin de consulta
desactivada
Y = Optimizacin de consulta activada
1
DEFINER VARCHAR(128) ID de autorizacin bajo el que se ha creado
la restriccin.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.TABDEP
Cada fila representa una dependencia de una vista o de una tabla de consultas
materializadas sobre algn otro objeto. La vista o tabla de consultas materializadas
depende del objeto de tipo BTYPE de nombre BNAME, de modo que un cambio
en el objeto afecta a la vista o a la tabla de consultas materializadas. Tambin
codifica la forma en que los privilegios sobre vistas dependen de los privilegios
sobre las tablas y vistas subyacentes.
Tabla 121. Vista de catlogo SYSCAT.TABDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la vista o tabla de
consultas materializadas.
TABNAME VARCHAR(128) Nombre no calificado de la vista o tabla de
consultas materializadas.
DTYPE CHAR(1) Tipo de objeto dependiente.
S = Tabla de consultas materializadas
T = Tabla (slo de etapas)
V = Vista (sin tipo)
W = Vista con tipo
OWNER VARCHAR(128) ID de autorizacin del creador de la vista o
tabla de consultas materializadas.
BTYPE CHAR(1) Tipo de objeto sobre el que hay una
dependencia. Los valores posibles son:
A = Alias
F = Instancia de rutina
I = ndice si se registra una dependencia
de una tabla base
N = Apodo
O = Dependencia de privilegios en todas
las subtablas o subvistas de una jerarqua
de tablas o de vistas
R = Tipo estructurado
S = Tabla de consultas materializadas
T = Tabla (sin tipo)
U = Tabla con tipo
V = Vista (sin tipo)
W = Vista con tipo
Z = Objeto XSR
BSCHEMA VARCHAR(128) Nombre de esquema del objeto del que
depende la vista o tabla de consultas
materializadas.
BNAME VARCHAR(128) Nombre no calificado del objeto del que
depende la vista o tabla de consultas
materializadas.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.TABDETACHEDDEP
Cada fila representa una dependencia desenlazada entre un dependiente
desenlazado y una tabla desenlazada.
Tabla 122. Vista de catlogo SYSCAT.TABDETACHEDDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla desenlazada.
TABNAME VARCHAR(128) Nombre no calificado de la tabla
desenlazada.
DEPTABSCHEMA VARCHAR(128) Nombre de esquema del dependiente
desenlazado.
DEPTABNAME VARCHAR(128) Nombre no calificado del dependiente
desenlazado.
SYSCAT.TABLES
Cada fila representa una tabla, vista, alias o apodo. Cada jerarqua de tabla o de
vista tiene una fila adicional que representa la tabla de jerarqua o la vista de
jerarqua que implanta la jerarqua. Se incluyen las tablas de catlogo y las vistas.
Tabla 123. Vista de catlogo SYSCAT.TABLES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema del objeto.
TABNAME VARCHAR(128) Nombre no calificado del objeto.
OWNER VARCHAR(128) ID de autorizacin bajo el que se ha creado
la tabla, vista, alias o apodo.
TYPE CHAR(1) Tipo de objeto.
A = Alias
G = Tabla temporal global
H = Tabla de jerarqua
L = Tabla desenlazada
N = Apodo
S = Tabla de consultas materializadas
T = Tabla (sin tipo)
U = Tabla con tipo
V = Vista (sin tipo)
W = Vista con tipo
STATUS CHAR(1) Estado del objeto.
C = Pendiente de establecer integridad
N = Normal
X = No operativo
BASE_TABSCHEMA VARCHAR(128) Y Si TYPE = A, contiene el nombre de
esquema de la tabla, vista, alias o apodo al
que hace referencia este alias; valor nulo en
caso contrario.
BASE_TABNAME VARCHAR(128) Y Si TYPE = A, contiene el nombre no
calificado de la tabla, vista, alias o apodo al
que hace referencia este alias; valor nulo en
caso contrario.
ROWTYPESCHEMA VARCHAR(128) Y Nombre de esquema del tipo de fila
correspondiente a esta tabla, si se aplica;
valor nulo en caso contrario.
ROWTYPENAME VARCHAR(128) Y Nombre de no calificado del tipo de fila
correspondiente a esta tabla, si se aplica;
valor nulo en caso contrario.
CREATE_TIME TIMESTAMP Hora a la que se ha creado el objeto.
INVALIDATE_TIME TIMESTAMP Hora a la que se ha invalidado por ltima
vez el objeto.
STATS_TIME TIMESTAMP Y Hora a la que se ha hecho por ltima vez un
cambio en las estadsticas registradas
correspondientes a este objeto. Nulo si no se
recopilan estadsticas.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.TABLESPACES
Cada fila representa un espacio de tablas.
Tabla 124. Vista de catlogo SYSCAT.TABLESPACES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TBSPACE VARCHAR(128) Nombre del espacio de tablas.
OWNER VARCHAR(128) ID de autorizacin bajo el que se ha creado
el espacio de tablas.
CREATE_TIME TIMESTAMP Hora a la que se ha creado el espacio de
tablas.
TBSPACEID INTEGER Identificador del espacio de tablas.
TBSPACETYPE CHAR(1) Tipo de espacio de tablas.
D = Espacio gestionado por la base de
datos
S = Espacio gestionado por el sistema
DATATYPE CHAR(1) Tipo de datos que se pueden almacenar en
este espacio de tablas.
A = todos los tipos de datos permanentes;
espacio de tablas regular
L = Todos los tipos de datos
permanentes; espacio de tabla grande
T = Slo tablas temporales del sistema
U = Slo tablas temporales declaradas
EXTENTSIZE INTEGER Tamao de cada extensin, en pginas de
tamao PAGESIZE. Este volumen de pginas
se escribe en un contenedor individual del
espacio de tablas antes de cambiar al
contenedor siguiente.
PREFETCHSIZE INTEGER Nmero de pginas de tamao PAGESIZE
que se van a leer cuando se realice la
captacin previa; -1 para el valor
AUTOMATIC.
OVERHEAD DOUBLE Actividad general del controlador y tiempo
de latencia y de bsqueda en disco, en
milisegundos (promedio para los
contenedores de este espacio de tabla).
TRANSFERRATE DOUBLE Tiempo para leer una pgina de tamao
PAGESIZE en el almacenamiento intermedio
(promedio para los contenedores de este
espacio de tabla).
PAGESIZE INTEGER Tamao (en bytes) de pginas en este espacio
de tabla.
DBPGNAME VARCHAR(128) Nombre del grupo de particiones de base de
datos asociado a este espacio de tabla.
BUFFERPOOLID INTEGER Identificador de la agrupacin de
almacenamientos intermedios utilizada por
este espacio de tabla (1 indica la agrupacin
de almacenamientos intermedios por
omisin).
Notas:
1. La columna NGNAME se incluye por razones de compatibilidad con versiones anteriores. Consulte DBPGNAME.
2. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.TABOPTIONS
Cada fila representa una opcin que est asociada a una tabla remota.
Tabla 125. Vista de catlogo SYSCAT.TABOPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de una tabla, vista,
alias o apodo.
TABNAME VARCHAR(128) Nombre no calificado de una tabla, vista,
alias o apodo.
OPTION VARCHAR(128) Nombre de la opcin de tabla.
SETTING CLOB(32K) Valor de la opcin de tabla.
SYSCAT.TBSPACEAUTH
Cada fila representa un usuario o grupo al que se ha otorgado el privilegio USE
sobre un determinado espacio de tabla de la base de datos.
Tabla 126. Vista de catlogo SYSCAT.TBSPACEAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado el privilegio.
GRANTEE VARCHAR(128) El que mantiene el privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
TBSPACE VARCHAR(128) Nombre del espacio de tabla.
USEAUTH CHAR(1) Privilegio para crear tablas dentro del
espacio de tabla.
G = Se mantiene y se puede otorgar
N = No se mantiene
Y = Se mantiene
SYSCAT.TRANSFORMS
Cada fila representa las funciones que manejan las transformaciones entre un tipo
definido por el usuario y un tipo SQL base, o a la inversa.
Tabla 127. Vista de catlogo SYSCAT.TRANSFORMS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TYPEID SMALLINT Identificador del tipo de datos
TYPESCHEMA VARCHAR(128) Nombre de esquema del tipo de datos. El
nombre de esquema para tipos incorporados
es SYSIBM.
TYPENAME VARCHAR(128) Nombre no calificado del tipo de datos.
GROUPNAME VARCHAR(128) Nombre del grupo de transformacin.
FUNCID INTEGER Identificador de la rutina.
FUNCSCHEMA VARCHAR(128) Nombre de esquema de la rutina.
FUNCNAME VARCHAR(128) Nombre no calificado de la rutina.
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la rutina (puede
ser un nombre generado por el sistema).
TRANSFORMTYPE VARCHAR(8) FROM SQL = La funcin de
transformacin transforma un tipo
estructurado desde SQL
TO SQL = La funcin de transformacin
transforma un tipo estructurado a SQL
FORMAT CHAR(1) Formato generado por la transformacin de
SQL FROM.
S = Estructura de DB2
U = Definido por el usuario
MAXLENGTH INTEGER Longitud mxima (en bytes) de la salida de
la transformacin FROM SQL; valor nulo
para transformaciones de SQL TO.
ORIGIN CHAR(1) Fuente de este grupo de transformaciones.
O = Grupo de transformaciones original
(incorporado o definido por el usuario)
R = Grupo de transformaciones
redefinido (slo los grupos incorporados
se pueden redefinir)
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
SYSCAT.TRIGDEP
Cada fila representa una dependencia de un activador sobre algn otro objeto. El
activador depende del objeto de tipo BTYPE de nombre BNAME, de modo que un
cambio en el objeto afecta al activador.
Tabla 128. Vista de catlogo SYSCAT.TRIGDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TRIGSCHEMA VARCHAR(128) Nombre de esquema del activador.
TRIGNAME VARCHAR(128) Nombre no calificado del activador.
BTYPE CHAR(1) Tipo de objeto sobre el que hay una
dependencia. Los valores posibles son:
A = Alias
B = Activador
F = Instancia de rutina
H = Tabla de jerarqua
K = Paquete
L = Tabla desenlazada
O = Dependencia de privilegios en todas
las subtablas o subvistas de una jerarqua
de tablas o de vistas
Q = Secuencia
R = Tipo estructurado
S = Tabla de consultas materializadas
T = Tabla (sin tipo)
U = Tabla con tipo
V = Vista (sin tipo)
W = Vista con tipo
X = Extensin de ndice
Z = Objeto XSR
BSCHEMA VARCHAR(128) Nombre de esquema del objeto sobre el que
hay una dependencia.
BNAME VARCHAR(128) Nombre no calificado del objeto sobre el que
hay una dependencia. Para rutinas (BTYPE =
F), es el nombre especfico.
TABAUTH SMALLINT Y Si BTYPE = O, S, T, U, V o W,
codifica los privilegios sobre la tabla o vista
que necesita un activador dependiente; valor
nulo en caso contrario.
SYSCAT.TRIGGERS
Cada fila representa un activador. Para jerarquas de tablas, cada activador se
registra slo al nivel de la jerarqua donde se ha creado.
Tabla 129. Vista de catlogo SYSCAT.TRIGGERS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TRIGSCHEMA VARCHAR(128) Nombre de esquema del activador.
TRIGNAME VARCHAR(128) Nombre no calificado del activador.
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
el activador.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla o vista a la
que se aplica este activador.
TABNAME VARCHAR(128) Nombre no calificado de la tabla o vista a la
que se aplica este activador.
TRIGTIME CHAR(1) Momento en que se aplican las acciones
activadas a la base de datos, en relacin al
suceso que ha disparado el activador.
A = El activador se aplica despus del
suceso
B = El activador se aplica antes del
suceso
I = El activador se aplica en lugar del
suceso
TRIGEVENT CHAR(1) Suceso que dispara el activador.
D = Operacin de supresin
I = Operacin de insercin
U = Operacin de actualizacin
GRANULARITY CHAR(1) El activador se ejecuta una vez por:
R = Fila
S = Sentencia
VALID CHAR(1) N = El activador no es vlido
Y = El activador es vlido
X = El activador no est operativo y se
debe volver a crear
CREATE_TIME TIMESTAMP Hora en la que se ha definido el activador.
Utilizada para resolver las funciones y tipos.
QUALIFIER VARCHAR(128) Valor del esquema por omisin en el
momento de la definicin del objeto. Se
utiliza para completar cualquier referencia
no calificada.
FUNC_PATH VARCHAR(254) Va de acceso de SQL en el momento en que
se ha definido el activador. Utilizada para
resolver las funciones y tipos.
TEXT CLOB(2M) Texto completo de la sentencia CREATE
TRIGGER, tal como se ha escrito.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.TYPEMAPPINGS
Cada fila representa una correlacin de tipos de datos entre un tipo de datos
definido localmente y un tipo de datos de la fuente de datos. Hay dos tipos de
correlacin (direcciones de correlacin):
v La correlacin de tipos hacia adelante correlaciona un tipo de datos de fuente de
datos con un tipo de datos definido localmente.
v La correlacin de tipos hacia atrs correlaciona un tipo de datos definido
localmente con un tipo de datos de fuente de datos.
Tabla 130. Vista de catlogo SYSCAT.TYPEMAPPINGS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
TYPE_MAPPING VARCHAR(18) Nombre de la correlacin de tipos (puede ser
una correlacin generada por el sistema).
MAPPINGDIRECTION CHAR(1) Indica si esta correlacin de tipos es una
correlacin hacia adelante o hacia atrs.
F = Correlacin de tipos hacia adelante
R = Correlacin de tipos hacia atrs
TYPESCHEMA VARCHAR(128) Y Nombre de esquema del tipo local en una
correlacin de tipos de datos; nulo para tipos
incorporados.
TYPENAME VARCHAR(128) Nombre no calificado del tipo local en una
correlacin de tipos de datos.
TYPEID SMALLINT Identificador del tipo de datos
SOURCETYPEID SMALLINT Identificador del tipo de fuente.
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
esta correlacin de tipos. SYSIBM indica
una correlacin de tipos incorporada.
LENGTH INTEGER Y Longitud o precisin mxima del tipo de
datos local en este tipo de correlacin. Si es
nulo, el sistema determina la longitud o
precisin mxima. Para tipos de carcter,
representa el nmero mximo de bytes.
SCALE SMALLINT Y Nmero mximo de dgitos de la parta
fraccional de un valor decimal local en esta
correlacin. Si es nulo, el sistema determina
el nmero mximo.
LOWER_LEN INTEGER Y Longitud o precisin mnima del tipo de
datos local en esta correlacin. Si es nulo, el
sistema determina la longitud o precisin
mnima. Para tipos de carcter, representa el
nmero mnimo de bytes.
UPPER_LEN INTEGER Y Longitud o precisin mxima del tipo de
datos local en este tipo de correlacin. Si es
nulo, el sistema determina la longitud o
precisin mxima. Para tipos de carcter,
representa el nmero mximo de bytes.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.USEROPTIONS
Cada fila representa un valor de opcin de usuario especfico del servidor.
Tabla 131. Vista de catlogo SYSCAT.USEROPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
AUTHID VARCHAR(128) ID de autorizacin local, en maysculas.
SERVERNAME VARCHAR(128) Nombre del servidor en el que se ha
definido el usuario.
OPTION VARCHAR(128) Nombre de la opcin de usuario.
SETTING VARCHAR(2048) Valor de la opcin de usuario.
SYSCAT.VIEWS
Cada fila representa una vista.
Tabla 132. Vista de catlogo SYSCAT.VIEWS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
VIEWSCHEMA VARCHAR(128) Nombre de esquema de la vista.
VIEWNAME VARCHAR(128) Nombre no calificado de la vista.
OWNER VARCHAR(128) ID de autorizacin bajo el cual se ha creado
la vista.
SEQNO SMALLINT Siempre 1.
VIEWCHECK CHAR(1) Tipo de comprobacin de vista.
C = Opcin de comprobacin en cascada
L = Opcin de comprobacin local
N = Sin opcin de comprobacin
READONLY CHAR(1) N = Pueden actualizar la vista los
usuarios con la autorizacin adecuada
Y = La vista es de slo lectura debido a
su definicin
VALID CHAR(1) X = La definicin de la vista o tabla de
consultas materializadas no est operativa
y se debe volver a crear
Y = La definicin de la vista o tabla de
consultas materializadas es vlida
QUALIFIER VARCHAR(128) Valor del esquema por omisin en el
momento de la definicin del objeto. Se
utiliza para completar cualquier referencia
no calificada.
FUNC_PATH VARCHAR(254) Va de acceso de SQL en vigor en el
momento en que se defini la vista. Cuando
se hace referencia a la vista en sentencias
DML (lenguaje de manipulacin de datos), se
debe utilizar esta va de acceso para resolver
las llamadas a funciones de la vista.
SYSIBM para vistas anteriores a la Versin
2.
TEXT CLOB(2M) Texto completo de la sentencia CREATE
VIEW, tal como se ha escrito.
DEFINER1 VARCHAR(128) ID de autorizacin bajo el cual se ha creado
la vista.
Notas:
1. La columna DEFINER se incluye por razones de compatibilidad con versiones anteriores. Consulte OWNER.
SYSCAT.WRAPOPTIONS
Cada fila representa una opcin especfica del derivador.
Tabla 133. Vista de catlogo SYSCAT.WRAPOPTIONS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
WRAPNAME VARCHAR(128) Nombre del derivador.
OPTION VARCHAR(128) Nombre de la opcin del derivador.
SETTING VARCHAR(2048) Valor de la opcin del derivador.
SYSCAT.WRAPPERS
Cada fila representa un derivador registrado.
Tabla 134. Vista de catlogo SYSCAT.WRAPPERS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
WRAPNAME VARCHAR(128) Nombre del derivador.
WRAPTYPE CHAR(1) Tipo de derivador.
N = No relacional
R = Relacional
WRAPVERSION INTEGER Versin del derivador.
LIBRARY VARCHAR(255) Nombre del archivo que contiene el cdigo
utilizado para comunicarse con las fuentes
de datos asociadas a este derivador.
REMARKS VARCHAR(254) Y Comentarios proporcionados por el usuario
o nulo.
SYSCAT.XDBMAPGRAPHS
Cada fila representa un grfico de esquema para un mapa XDB (objeto XSR).
Tabla 135. Vista de catlogo SYSCAT.XDBMAPGRAPHS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
OBJECTID BIGINT Identificador exclusivo generado para un
objeto XSR.
OBJECTSCHEMA VARCHAR(128) Nombre de esquema del objeto XSR.
OBJECTNAME VARCHAR(128) Nombre no calificado del objeto XSR.
SCHEMAGRAPHID INTEGER Identificador del grfico de esquema, que es
exclusivo dentro de un identificador de
mapa XDB.
NAMESPACE VARCHAR(1000) Identificador de serie para el URI de espacio
de nombres del elemento raz.
ROOTELEMENT VARCHAR(1000) Identificador de serie para el nombre del
elemento raz.
SYSCAT.XDBMAPSHREDTREES
Cada fila representa un rbol de trocear para un determinado grfico de esquema.
Tabla 136. Vista de catlogo SYSCAT.XDBMAPSHREDTREES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
OBJECTID BIGINT Identificador exclusivo generado para un
objeto XSR.
OBJECTSCHEMA VARCHAR(128) Nombre de esquema del objeto XSR.
OBJECTNAME VARCHAR(128) Nombre no calificado del objeto XSR.
SCHEMAGRAPHID INTEGER Identificador del grfico de esquema, que es
exclusivo dentro de un identificador de
mapa XDB.
SHREDTREEID INTEGER Identificador del rbol de trocear, que es
exclusivo dentro de un identificador de
mapa XDB.
MAPPINGDESCRIPTION CLOB(1M) Y Informacin de correlacin de diagnstico.
SYSCAT.XSROBJECTAUTH
Cada fila representa un usuario o un grupo al que se ha otorgado el privilegio
USAGE sobre un determinado objeto XSR.
Tabla 137. Vista de catlogo SYSCAT.XSROBJECTAUTH
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
GRANTOR VARCHAR(128) El que ha otorgado el privilegio.
GRANTEE VARCHAR(128) El que mantiene el privilegio.
GRANTEETYPE CHAR(1) G = Se otorga a un grupo
U = Se otorga a un usuario individual
OBJECTID BIGINT Identificador del objeto XSR.
USAGEAUTH CHAR(1) Privilegio para utilizar el objeto XSR y sus
componentes.
N = No se mantiene
Y = Se mantiene
SYSCAT.XSROBJECTCOMPONENTS
Cada fila representa un componente de objeto XSR.
Tabla 138. Vista de catlogo SYSCAT.XSROBJECTCOMPONENTS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
OBJECTID BIGINT Identificador exclusivo generado para un
objeto XSR.
OBJECTSCHEMA VARCHAR(128) Nombre de esquema del objeto XSR.
OBJECTNAME VARCHAR(128) Nombre no calificado del objeto XSR.
COMPONENTID BIGINT Identificador exclusivo generado para un
componente del objeto XSR.
TARGETNAMESPACE INTEGER Identificador de serie del espacio de nombres
de destino.
SCHEMALOCATION INTEGER Identificador de serie de la ubicacin del
esquema.
COMPONENT BLOB(30M) Representacin externa del componente.
STATUS CHAR(1) Estado de registro
C = Completo
I = Incompleto
SYSCAT.XSROBJECTDEP
Cada fila representa una dependencia de un objeto XSR sobre algn otro objeto. El
objeto XSR depende del objeto de tipo BTYPE de nombre BNAME, de modo que
un cambio en el objeto afecta al objeto XSR.
Tabla 139. Vista de catlogo SYSCAT.XSROBJECTDEP
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
OBJECTID BIGINT Identificador exclusivo generado para un
objeto XSR.
OBJECTSCHEMA VARCHAR(128) Nombre de esquema del objeto XSR.
OBJECTNAME VARCHAR(128) Nombre no calificado del objeto XSR.
BTYPE CHAR(1) Tipo de objeto sobre el que hay una
dependencia. Los valores posibles son:
A = Alias
B = Activador
F = Instancia de rutina
H = Tabla de jerarqua
K = Paquete
L = Tabla desenlazada
O = Dependencia de privilegios en todas
las subtablas o subvistas de una jerarqua
de tablas o de vistas
Q = Secuencia
R = Tipo estructurado
S = Tabla de consultas materializadas
T = Tabla (sin tipo)
U = Tabla con tipo
V = Vista (sin tipo)
W = Vista con tipo
X = Extensin de ndice
Z = Objeto XSR
BSCHEMA VARCHAR(128) Nombre de esquema del objeto sobre el que
hay una dependencia.
BNAME VARCHAR(128) Nombre no calificado del objeto sobre el que
hay una dependencia. Para rutinas (BTYPE =
F), es el nombre especfico.
TABAUTH SMALLINT Y Si BTYPE = O, S, T, U, V o W,
codifica los privilegios sobre la tabla o vista
que necesita un activador dependiente; valor
nulo en caso contrario.
SYSCAT.XSROBJECTHIERARCHIES
Cada fila representa la relacin jerrquica entre un objeto XSR y sus componentes.
Tabla 140. Vista de catlogo SYSCAT.XSROBJECTHIERARCHIES
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
OBJECTID BIGINT Identificador de un objeto XSR.
COMPONENTID BIGINT Identificador de un componente de XSR.
HTYPE CHAR(1) Tipo de jerarqua.
D = Documento
N = Espacio de nombres de nivel
superior
P = Documento primario
TARGETNAMESPACE VARCHAR(1000) Identificador de serie del espacio de nombres
de destino del componente.
SCHEMALOCATION VARCHAR(1000) Identificador de serie de la ubicacin del
esquema del componente.
SYSCAT.XSROBJECTS
Cada fila representa un objeto de depsito del esquema XML.
Tabla 141. Vista de catlogo SYSCAT.XSROBJECTS
Posibili-
dad de
Nombre de columna Tipo de datos nulos Descripcin
OBJECTID BIGINT Identificador exclusivo generado para un
objeto XSR.
OBJECTSCHEMA VARCHAR(128) Nombre de esquema del objeto XSR.
OBJECTNAME VARCHAR(128) Nombre no calificado del objeto XSR.
TARGETNAMESPACE VARCHAR(1000) Identificador de serie del espacio de nombres
de destino o identificador pblico.
SCHEMALOCATION VARCHAR(1000) Identificador de serie de la ubicacin del
esquema o identificador del sistema.
OBJECTINFO XML Y Documento de metadatos.
OBJECTTYPE CHAR(1) Tipo de objeto XSR.
D = DTD
E = Entidad externa
S = Esquema XML
OWNER VARCHAR(128) ID de autorizacin bajo el que se ha
registrado el objeto XSR.
CREATE_TIME TIMESTAMP Hora a la que se ha registrado el objeto.
ALTER_TIME TIMESTAMP Hora a la que se ha actualizado (sustituido)
por ltima vez el objeto.
STATUS CHAR(1) Estado de registro
C = Completo
I = Incompleto
R = Sustituir
T = Temporal
DECOMPOSITION CHAR(1) Indica si la descomposicin (troceamiento)
est o no habilitada sobre este objeto XSR.
N = No habilitada
X = No operativa
Y = Habilitada
REMARKS VARCHAR(254) Comentarios proporcionados por el usuario
o nulo.
SYSSTAT.COLDIST
Cada fila representa el valor nmero n ms frecuente de alguna columna, o el
valor cuantil n (distribucin acumulada) de la columna. Slo se aplica a columnas
de tablas reales (no a vistas). No se registra ninguna estadstica para columnas
heredadas de tablas con tipo.
Tabla 142. Vista de catlogo SYSSTAT.COLDIST
Posibili-
dad de Se puede
Nombre de columna Tipo de datos nulos actualizar Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla a la que
se aplican las estadsticas.
TABNAME VARCHAR(128) Nombre no calificado de la tabla a la
que se aplican las estadsticas.
COLNAME VARCHAR(128) Nombre de la columna a la que se
aplican las estadsticas.
TYPE CHAR(1) F = Valor de frecuencia
Q = Valor cuantil
SEQNO SMALLINT Si TYPE = F, n en esta columna
identifica el valor nmero n ms
frecuente. Si TYPE = Q, n en esta
columna identifica el valor cuantil
nmero n.
COLVALUE1 VARCHAR(254) Y Y El valor de los datos como un literal de
caracteres o un valor nulo.
VALCOUNT BIGINT Y Si TYPE = F, VALCOUNT es el
nmero de ocurrencias de COLVALUE
en la columna. Si TYPE = Q,
VALCOUNT es el nmero de filas cuyo
valor es menor o igual que COLVALUE.
DISTCOUNT2 BIGINT Y Y Si TYPE = Q, esta columna registra el
nmero de valores diferenciados que
son menores o iguales que COLVALUE
(nulo si no est disponible).
Notas:
1. En la vista de catlogo, el valor de COLVALUE siempre se muestra en la pgina de cdigos de la base de datos y
puede contener caracteres de sustitucin. Sin embargo, las estadsticas se renen internamente en la pgina de
cdigos de la tabla de la columna y, por tanto, utilizarn los valores reales de la columna cuando se apliquen
durante la optimizacin de la consulta.
2. DISTCOUNT slo se recopila para las columnas que son la primera columna de clave de un ndice.
SYSSTAT.COLGROUPDIST
Cada fila representa el valor de la columna del grupo de columnas que forma el
valor ms frecuente nmero n del grupo de columnas o el valor cuantil n del
grupo de columnas.
Tabla 143. Vista de catlogo SYSSTAT.COLGROUPDIST
Posibili-
dad de Se puede
Nombre de columna Tipo de datos nulos actualizar Descripcin
COLGROUPID INTEGER Identificador del grupo de columnas.
TYPE CHAR(1) F = Valor de frecuencia
Q = Valor cuantil
ORDINAL SMALLINT Nmero ordinal de la columna del
grupo de columnas.
SEQNO SMALLINT Si TYPE = F, n en esta columna
identifica el valor nmero n ms
frecuente. Si TYPE = Q, n en esta
columna identifica el valor cuantil
nmero n.
COLVALUE VARCHAR(254) Y Y El valor de los datos como un literal de
caracteres o un valor nulo.
SYSSTAT.COLGROUPDISTCOUNTS
Cada fila representa las estadsticas de distribucin que se aplican al valor ms
frecuente nmero n de un grupo de columnas o el valor cuantil n de un grupo de
columnas.
Tabla 144. Vista de catlogo SYSSTAT.COLGROUPDISTCOUNTS
Posibili-
dad de Se puede
Nombre de columna Tipo de datos nulos actualizar Descripcin
COLGROUPID INTEGER Identificador del grupo de columnas.
TYPE CHAR(1) F = Valor de frecuencia
Q = Valor cuantil
SEQNO SMALLINT El nmero de secuencia n que
representa el valor n de TYPE.
VALCOUNT BIGINT Y Si TYPE = F, VALCOUNT es el
nmero de ocurrencias de COLVALUE
para el grupo de columnas con este
SEQNO. Si TYPE = Q, VALCOUNT es
el nmero de filas cuyo valor es menor
o igual que COLVALUE para el grupo
de columnas con este SEQNO.
DISTCOUNT BIGINT Y Y Si TYPE = Q, esta columna registra el
nmero de valores diferenciados que
son menores o iguales que COLVALUE
para el grupo de columnas con este
SEQNO (nulo si no est disponible).
SYSSTAT.COLGROUPS
Cada fila representa un grupo de columnas y estadsticas que se aplican a todo el
grupo de columnas.
Tabla 145. Vista de catlogo SYSSTAT.COLGROUPS
Posibili-
dad de Se puede
Nombre de columna Tipo de datos nulos actualizar Descripcin
COLGROUPSCHEMA VARCHAR(128) Nombre de esquema del grupo de
columnas.
COLGROUPNAME VARCHAR(128) Nombre no calificado del grupo de
columnas.
COLGROUPID INTEGER Identificador del grupo de columnas.
COLGROUPCARD BIGINT Y Cardinalidad del grupo de columnas.
NUMFREQ_VALUES SMALLINT Nmero de valores frecuentes
recopilados para el grupo de columnas.
NUMQUANTILES SMALLINT Nmero de valores cuantiles recopilados
para el grupo de columnas.
SYSSTAT.COLUMNS
Cada fila representa una columna definida para una tabla, vista o apodo.
Tabla 146. Vista de catlogo SYSSTAT.COLUMNS
Posibili-
dad de Se puede
Nombre de columna Tipo de datos nulos actualizar Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla, vista o
apodo que contiene la columna.
TABNAME VARCHAR(128) Nombre no calificado de la tabla, vista o
apodo que contiene la columna.
COLNAME VARCHAR(128) Nombre de la columna.
COLCARD BIGINT Y Nmero de valores diferenciados de la
columna; -1 se no se recopilan
estadsticas; -2 para columnas heredadas
y columnas de tablas de jerarqua.
HIGH2KEY1 VARCHAR(254) Y Y El segundo valor de datos ms alto.
Representacin de datos numricos
modificados por literales de caracteres.
Vaco si no se recopilan estadsticas.
Vaco para columnas heredadas y
columnas de tablas jerrquicas.
LOW2KEY1 VARCHAR(254) Y Y El segundo valor de datos ms bajo.
Representacin de datos numricos
modificados por literales de caracteres.
Vaco si no se recopilan estadsticas.
Vaco para columnas heredadas y
columnas de tablas jerrquicas.
AVGCOLLEN INTEGER Y Espacio promedio (en bytes) necesario
para la columna; -1 si es un campo de
tipo long o LOB o si no se recopilan
estadsticas; -2 para columnas heredadas
y columnas de tablas jerrquicas.
NUMNULLS BIGINT Y Nmero de valores nulos de la columna;
-1 si no se recopilan estadsticas.
SUB_COUNT SMALLINT Y Nmero medio de subelementos de la
columna. Slo se aplica a columnas de
tipo serie de caracteres.
SUB_DELIM_LENGTH SMALLINT Y Longitud media de los delimitadores
que separan cada subelemento de la
columna. Slo se aplica a columnas de
tipo serie de caracteres.
Notas:
1. En la vista de catlogo, los valores de HIGH2KEY y de LOW2KEY siempre se muestran en la pgina de cdigos
de la base de datos y pueden contener caracteres de sustitucin. Sin embargo, las estadsticas se renen
internamente en la pgina de cdigos de la tabla de la columna y, por tanto, utilizarn los valores reales de la
columna cuando se apliquen durante la optimizacin de la consulta.
SYSSTAT.INDEXES
Cada fila representa un ndice. Los ndices en tablas con tipo se representan
mediante dos filas: una para el ndice lgico de la tabla con tipo y otro para el
ndice-H de la tabla de jerarqua.
Tabla 147. Vista de catlogo SYSSTAT.INDEXES
Posibili-
dad de Se puede
Nombre de columna Tipo de datos nulos actualizar Descripcin
INDSCHEMA VARCHAR(128) Nombre de esquema del ndice.
INDNAME VARCHAR(128) Nombre no calificado del ndice.
TABSCHEMA VARCHAR(128) Nombre de esquema de la tabla o apodo
en el que se define el ndice.
TABNAME VARCHAR(128) Nombre no calificado de la tabla o
apodo en el que se define el ndice.
COLNAMES VARCHAR(640) Esta columna ya no se utiliza y se
eliminar en el prximo release.
NLEAF BIGINT Y Nmero de pginas de ndice; -1 si no
se recopilan estadsticas.
NLEVELS SMALLINT Y Nmero de niveles de ndice; -1 si no se
recopilan estadsticas.
FIRSTKEYCARD BIGINT Y Nmero de valores de primera clave
diferenciada; -1 si no se recopilan
estadsticas.
FIRST2KEYCARD BIGINT Y Nmero de claves diferenciadas que
utilizan las dos primeras columnas del
ndice; -1 si no se recopilan estadsticas
o si no se aplica.
FIRST3KEYCARD BIGINT Y Nmero de claves diferenciadas que
utilizan las tres primeras columnas del
ndice; -1 si no se recopilan estadsticas
o si no se aplica.
FIRST4KEYCARD BIGINT Y Nmero de claves diferenciadas que
utilizan las cuatro primeras columnas
del ndice; -1 si no se recopilan
estadsticas o si no se aplica.
FULLKEYCARD BIGINT Y Nmero de valores de clave completa
diferenciada; -1 si no se recopilan
estadsticas.
CLUSTERRATIO4 SMALLINT Y Grado de clster de datos con el ndice;
-1 si no se recopilan estadsticas o si se
recopilan estadsticas detalladas de
ndice (en este caso se utilizar
CLUSTERFACTOR en su lugar).
CLUSTERFACTOR4 DOUBLE Y Mejor medicin del grado de clster; -1
si no se recopilan estadsticas o si el
ndice se define sobre un apodo.
SEQUENTIAL_PAGES BIGINT Y Nmero de pginas ubicadas en disco
por orden de clave de ndice, con pocos
o ningn hueco entre ellas; -1 si no se
recopilan estadsticas.
Notas:
1. Cuando se utilizan espacios de tabla DMS, no puede calcularse esta estadstica.
2. No se recopilan estadsticas de captacin previa durante una operacin LOAD...STATISTICS YES o CREATE
INDEX...COLLECT STATISTICS ni cuando el parmetro de configuracin seqdetect est desactivado.
3. AVGPARTITION_CLUSTERRATIO, AVGPARTITION_CLUSTERFACTOR y
AVGPARTITION_PAGE_FETCH_PAIRS miden el grado de clster dentro de una sola particin de datos (clster
local). CLUSTERRATIO, CLUSTERFACTOR y PAGE_FETCH_PAIRS miden el grado de clster en la tabla entera
(clster global). Los valores de clster global y de clster local pueden diferir significativamente si la clave de
particionamiento de la tabla no es un prefijo de la clave de ndice o cuando la clave de particionamiento de la
tabla y la clave de ndice son independientes, en trminos lgicos, una de otra.
4. Esta estadstica no se puede actualizar si el tipo de ndice es XPTH (un ndice de va de acceso XML).
5. Puesto que los ndices lgicos de una columna XML no tienen estadsticas, la vista de catlogo SYSSTAT.INDEXES
no incluye las filas cuyo tipo de ndice es XVIL.
SYSSTAT.ROUTINES
Cada fila representa una rutina definida por el usuario (funcin escalar, funcin de
tabla, funcin fuente, mtodo o procedimiento). No incluye las funciones
incorporadas.
Tabla 148. Vista de catlogo SYSSTAT.ROUTINES
Posibili-
dad de Se puede
Nombre de columna Tipo de datos nulos actualizar Descripcin
ROUTINESCHEMA VARCHAR(128) Nombre de esquema de la rutina.
ROUTINENAME VARCHAR(128) Nombre no calificado de la rutina.
ROUTINETYPE CHAR(1) Tipo de rutina.
F = Funcin
M = Mtodo
P = Procedimiento
SPECIFICNAME VARCHAR(128) Nombre de la instancia de la rutina
(puede ser un nombre generado por el
sistema).
IOS_PER_INVOC DOUBLE Y Nmero estimado de entradas/salidas
(I/O) por invocacin; 0 es el valor por
omisin; -1 si no se conoce.
INSTS_PER_INVOC DOUBLE Y Nmero estimado de instrucciones por
invocacin; 450 es el valor por omisin;
-1 si no se conoce.
IOS_PER_ARGBYTE DOUBLE Y Nmero estimado de I/O por byte de
argumento de entrada; 0 es el valor por
omisin; -1 si no se conoce.
INSTS_PER_ARGBYTE DOUBLE Y Nmero estimado de instrucciones por
byte de argumento de entrada; 0 es el
valor por omisin; -1 si no se conoce.
PERCENT_ARGBYTES SMALLINT Y Porcentaje medio estimado de bytes de
argumento de entrada que leer la
rutina realmente; 100 es el valor por
omisin; -1 si no se conoce.
INITIAL_IOS DOUBLE Y Nmero estimado de I/O realizadas la
primera vez que se ha invocado la
rutina; 0 es el valor por omisin; -1 si
no se conoce.
INITIAL_INSTS DOUBLE Y Nmero estimado de instrucciones
ejecutadas la primera vez que se ha
invocado la rutina; 0 es el valor por
omisin; -1 si no se conoce.
CARDINALITY BIGINT Y Cardinalidad prevista de una funcin de
tabla; -1 si no se conoce o si la rutina no
es una funcin de tabla.
SELECTIVITY DOUBLE Y Para predicados definidos por el
usuario; -1 si no hay ningn predicado
definido por el usuario.
SYSSTAT.TABLES
Cada fila representa una tabla, vista, alias o apodo. Cada jerarqua de tabla o de
vista tiene una fila adicional que representa la tabla de jerarqua o la vista de
jerarqua que implanta la jerarqua. Se incluyen las tablas de catlogo y las vistas.
Tabla 149. Vista de catlogo SYSSTAT.TABLES
Posibili-
dad de Se puede
Nombre de columna Tipo de datos nulos actualizar Descripcin
TABSCHEMA VARCHAR(128) Nombre de esquema del objeto.
TABNAME VARCHAR(128) Nombre no calificado del objeto.
CARD BIGINT Y Nmero total de filas; -1 si no se
recopilan estadsticas.
NPAGES BIGINT Y Nmero total de pginas en las que
existen filas de la tabla; -1 para una
vista o alias, o si no se recopilan
estadsticas; -2 para una subtabla o tabla
de jerarqua.
FPAGES BIGINT Y Nmero total de pginas; -1 para una
vista o alias, o si no se recopilan
estadsticas; -2 para una subtabla o tabla
de jerarqua.
OVERFLOW BIGINT Y Nmero total de registros de
desbordamiento de la tabla; -1 para una
vista o alias, o si no se recopilan
estadsticas; -2 para una subtabla o tabla
de jerarqua.
CLUSTERED CHAR(1) Y Y = La tabla est en un clster de
varias dimensiones (aunque slo
segn una dimensin)
Valor nulo = La tabla no est en un
clster de varias dimensiones
ACTIVE_BLOCKS BIGINT Y Nmero total de bloques activos en la
tabla, o -1. Slo se aplica a las tablas
que estn en un clster de varias
dimensiones (MDC).
AVGCOMPRESSEDROWSIZE SMALLINT Y Longitud media (en bytes) de filas
comprimidas en esta tabla; -1 si no se
recopilan estadsticas.
AVGROWCOMPRESSION- REAL Y Para filas comprimidas en la tabla, es la
RATIO proporcin media de compresin por
fila; es decir, la longitud media de filas
no comprimidas dividido por la
longitud media de filas comprimidas; -1
si no se recopilan estadsticas.
AVGROWSIZE SMALLINT Longitud media (en bytes) de filas
comprimidas y no comprimidas de esta
tabla; -1 si no se recopilan estadsticas.
PCTROWSCOMPRESSED REAL Y Filas comprimidas como un porcentaje
del nmero total de filas de la tabla; -1
si no se recopilan estadsticas.
Para la mayora de las fuentes de datos, debe especificar un tipo de servidor vlido
en la sentencia CREATE SERVER.
Derivador de BioRS
La especificacin de tipo de servidor es opcional para las fuentes de datos BioRS.
Derivador de BLAST
Se necesita una especificacin de tipo de servidor para cada tipo de bsqueda
BLAST que quiera ejecutar para las fuentes de datos fuentes de datos BLAST
soportadas por el daemon HMMER.
Derivador de CTLIB
El derivador de CTLIB da soporte a fuentes de datos de Sysbase. Se necesita una
especificacin de tipo para fuentes de datos de Sybase soportadas por el software
de cliente de CTLIB.
Derivador de DRDA
El derivador de DRDA se utiliza para las familias DB2. Se necesita una
especificacin de tipo de servidor para las fuentes de datos de la familia DB2.
Tabla 150. Fuentes de datos de la familia DB2
Tipo de servidor Fuente de datos
Derivador de Entrez
Se necesita una especificacin de tipo de servidor para las fuentes de datos Entrez.
Derivador de Excel
No es necesaria ninguna especificacin de tipo de servidor para las fuentes de
datos Excel.
Derivador de HMMER
Se necesita una especificacin de tipo de servidor para cada servidor en el que
quiera buscar fuentes de datos de HMMER soportadas por el daemon HMMER.
Derivador de Informix
Se necesita una especificacin de tipo de servidor para las fuentes de datos de
Informix soportadas por el software de SDK de cliente Informix.
Derivador de MSSQLODBC3
Se necesita una especificacin de tipo de servidor para las fuentes de datos de
Microsoft SQL Server soportadas por el controlador DataDirect Connect ODBC 4.2
(o posterior) o por el controlador Microsoft SQL Server ODBC 3.0 (o superior).
Derivador N8
Se necesita una especificacin de tipo de servidor para las fuentes de datos de
Oracle soportadas por el software de cliente de Oracle.
Derivador de ODBC
Se necesita una especificacin de tipo de servidor para las fuentes de datos de
ODBC soportadas por el controlador ODBC 3.x.
Derivador de OLE DB
No se necesita ninguna definicin de tipo de servidor para proveedores OLE DB
compatibles con Microsoft OLE DB 2.0 o posterior.
Derivador de Teradata
Se necesita una definicin de tipo para fuentes de datos de Teradata soportadas
por el software de cliente de Teradata.
Derivador de XML
No se necesita ninguna definicin de tipo de servidor para las fuentes de datos de
XML.
La siguiente tabla lista las opciones de columna de apodo para las fuentes de
datos. La tabla dos contiene una lista completa de opciones de columna de apodo.
Las opciones de servidor federado comunes para las fuentes de datos relacionales
son las siguientes:
v Opciones de compatibilidad. COLLATING_SEQUENCE, IGNORE_UDT
v Opciones de integridad de los datos. IUD_APP_SVPT_ENFORCE
v Opciones de fecha y hora. DATEFORMAT, TIMEFORMAT,
TIMESTAMPFORMAT
v Opciones de ubicacin. CONNECTSTRING, DBNAME, IFILE
v Opciones de seguridad. FOLD_ID, FOLD_PW, INFORMIX_LOCK_MODE
v Opciones de rendimiento. COMM_RATE, CPU_RATIO,
DB2_MAXIMAL_PUSHDOWN, IO_RATIO, LOGIN_TIMEOUT, PACKET_SIZE,
PLAN_HINTS, PUSHDOWN, TIMEOUT, VARCHAR_NO_TRAILING_BLANKS
Tabla 157. Opciones de servidor para fuentes de datos de WebSphere Business Integration.
M
Q
_
M S
Q V
_ R
R C
E O
S N R
P N R E
M O _ E S
Fuente de datos
F Q N C Q P
A _ M S H U O
U C Q E A E N
A L O _ _ N S S
P T N M T N T E
P _ N A I E _ _
_ Q _ N M L Q Q
T U N A E N U U
Y E A G O A E E
P U M E U M U U
E E E R T E E E
WebSphere Business Integration X X X X X X X X
La tabla siguiente describe cada opcin de servidor y lista los valores vlidos y los
valores por omisin.
Tabla 158. Opciones de servidor y valores de stas
Opcin Descripcin y valores vlidos Valor por omisin
APP_TYPE El tipo de aplicacin remota. Los valores vlidos Ninguno
son PSOFT, SAP y SIEBEL. Esta opcin es
necesaria.
Por ejemplo:
HMMPFAM_OPTIONS --xnu --pvm
Por ejemplo:
ALTER SERVER TYPE informix VERSION 9 WRAPPER
informix OPTIONS (ADD informix_lock_mode 60)
IO_RATIO Indica cunto ms rpida o ms lenta es la 1,0
ejecucin de un sistema de E/S de fuente de datos
respecto al sistema de E/S del servidor federado.
4. Evite los valores nulos para estas opciones. Un parmetro nulo puede parecer
atractivo porque DB2 intentar en ms de una ocasin resolver los ID de
usuario y las contraseas; sin embargo, puede afectar al rendimiento (es posible
que DB2 enve hasta nueve veces el ID de usuario y la contrasea antes de
pasar satisfactoriamente la autenticacin de fuente de datos).
La especificacin de la opcin
PROXY_SERVER_PORT en una
sentencia CREATE SERVER
sobrescribir la opcin
PROXY_SERVER_PORT en una
sentencia CREATE WRAPPER.
PROXY_TYPE Especifica el tipo de proxy que s e NONE
utiliza para acceder a Internet
cuando se est detrs de un
cortafuegos. Los valores vlidos son
NONE, HTTP o SOCKS. El
valor por omisin es NONE.
Consulte al administrador de la red
para conocer el tipo de proxy que
se utiliza.
Puede alterar temporalmente una correlacin de tipos por omisin o crear una
nueva con la sentencia CREATE TYPE MAPPING.
Estas correlaciones son vlidas con todas las versiones soportadas, a menos que se
indique lo contrario.
Para todas las correlaciones de tipos de datos directas por omisin desde una
fuente de datos a la base de datos federada, el esquema federado es SYSIBM.
En las tablas siguientes se muestran las correlaciones directas por omisin entre
tipos de datos de base de datos federada y tipos de datos de fuente de datos.
Tabla 161. Correlaciones de tipos de datos directas por omisin de DB2 Database para Linux, UNIX y Windows (no
se muestran todas las columnas) (continuacin)
REMOTE_ REMOTE_ REMOTE_ REMOTE_ REMOTE_ REMOTE_ REMOTE_ FEDERATED_ FEDERATED_ FEDERATED_ FEDERATED_
TYPENAME LOWER_ UPPER_LEN LOWER_ UPPER_ BIT_DATA DATA_ TYPENAME LENGTH SCALE BIT_DATA
LEN SCALE SCALE OPERATORS
LONGVAR - - - - N - CLOB - - -
LONGVAR - - - - Y - BLOB - - -
LONGVARG - - - - - - DBCLOB - - -
REAL - - - - - - REAL - - -
SMALLINT - - - - - - SMALLINT - 0 -
TIME - - - - - - TIME - 0 -
TIMESTAMP - - - - - - TIMESTAMP - 0 -
TIMESTMP - - - - - - TIMESTAMP - 0 -
VARCHAR - - - - - - VARCHAR - 0 N
VARCHAR - - - - Y - VARCHAR - 0 Y
VARGRAPH - - - - - - VARGRAPHIC - 0 N
VARGRAPHIC - - - - - - VARGRAPHIC - 0 N
Tabla 163. Correlaciones de tipos de datos directas por omisin de DB2 Server para VM y VSE (no se muestran
todas las columnas) (continuacin)
Remote Remote Remote Remote Remote Remote Bit Remote Data Federated Federated Federated Federated Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Operators Typename Length Scale Data
CHAR 1 254 - - - - CHAR - 0 N
CHAR 1 254 - - Y - CHAR - 0 Y
CLOB - - - - - - CLOB - - -
DATE - - - - - - DATE - 0 -
DBAHW - - - - - - SMALLINT - 0 -
DBAINT - - - - - - INTEGER - 0 -
DBCLOB - - - - - - DBCLOB - - -
DECIMAL - - - - - - DECIMAL - - -
FLOAT 4 - - - - - REAL - - -
FLOAT 8 - - - - - DOUBLE - - -
GRAPHIC 1 127 - - - - GRAPHIC - 0 N
INTEGER - - - - - - INTEGER - - -
SMALLINT - - - - - - SMALLINT - - -
TIME - - - - - - TIME - 0 -
TIMESTAMP - - - - - - TIMESTAMP - 0 -
TIMESTMP - - - - - - TIMESTAMP - 0 -
VARCHAR 1 32672 - - - - VARCHAR - 0 N
VARCHAR 1 32672 - - Y - VARCHAR - 0 Y
VARGRAPHIC 1 16336 - - - - VARGRAPHIC - 0 N
VARGRAPH 1 16336 - - - - VARGRAPHIC - 0 N
Tabla 165. Correlaciones de tipos de datos directas por omisin de Informix (no se muestran todas las columnas)
Remote Remote Remote Remote Remote Remote Bit Remote Data Federated Federated Federated Federated Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Operators Typename Length Scale Data
BLOB - - - - - - BLOB 2147483647 - -
BOOLEAN - - - - - - CHARACTER 1 - -
BYTE - - - - - - BLOB 2147483647 - -
CHAR 1 254 - - - - CHARACTER - - -
CHAR 255 32672 - - - - VARCHAR - - -
CLOB - - - - - - CLOB 2147483647 - -
DATE - - - - - - DATE 4 - -
DATETIME 0 4 0 4 - - DATE 4 - -
DATETIME 6 10 6 10 - - TIME 3 - -
DATETIME 0 4 6 15 - - TIMESTAMP 10 - -
DATETIME 6 10 11 15 - - TIMESTAMP 10 - -
DECIMAL 1 31 0 31 - - DECIMAL - - -
DECIMAL 32 130 - - - - DOUBLE 8 - -
FLOAT - - - - - - DOUBLE 8 - -
INTEGER - - - - - - INTEGER 4 - -
INTERVAL - - - - - - VARCHAR 25 - -
INT8 - - - - - - BIGINT 19 0 -
LVARCHAR 1 32672 - - - - VARCHAR - - -
MONEY 1 31 0 31 - - DECIMAL - - -
MONEY 32 32 - - - - DOUBLE 8 - -
NCHAR 1 254 - - - - CHARACTER - - -
NCHAR 255 32672 - - - - VARCHAR - - -
NVARCHAR 1 32672 - - - - VARCHAR - - -
REAL - - - - - - REAL 4 - -
SERIAL - - - - - - INTEGER 4 - -
SERIAL8 - - - - - - BIGINT - - -
SMALLFLOAT - - - - - - REAL 4 - -
SMALLINT - - - - - - SMALLINT 2 - -
TEXT - - - - - - CLOB 2147483647 - -
VARCHAR 1 32672 - - - - VARCHAR - - -
Notas:
v Para el tipo de datos DATETIME de Informix, el servidor federado de DB2 UNIX y Windows utiliza el calificador de alto nivel de Informix como REMOTE_LENGTH y el
calificador de bajo nivel de Informix como REMOTE_SCALE.
Los calificadores de Informix son las constantes TU_ definidas en el archivo datatime.h del SDK del Cliente de Informix. Las constantes son:
0 = YEAR 8 = MINUTE 13 = FRACTION(3)
2 = MONTH 10 = SECOND 14 = FRACTION(4)
4 = DAY 11 = FRACTION(1) 15 = FRACTION(5)
6 = HOUR 12 = FRACTION(2)
Tabla 166. Correlaciones de tipos de datos directas por omisin de Microsoft SQL Server (continuacin)
Remote Remote Remote Remote Remote Remote Bit Remote Data Federated Federated Federated Federated Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Operators Typename Length Scale Data
decimaln 32 38 0 38 - - DOUBLE - - -
DUMMY2000
1 1 38 -84 127 - - DOUBLE - - -
float - 8 - - - - DOUBLE 8 - -
floatn - 8 - - - - DOUBLE 8 - -
float - 4 - - - - REAL 4 - -
floatn - 4 - - - - REAL 4 - -
image - - - - - - BLOB 2147483647 - Y
int - - - - - - INTEGER 4 - -
intn - - - - - - INTEGER 4 - -
money - - - - - - DECIMAL 19 4 -
moneyn - - - - - - DECIMAL 19 4 -
nchar 1 127 - - - - CHAR - - N
nchar 128 4000 - - - - VARCHAR - - N
numeric 1 31 0 31 - - DECIMAL - - -
numeric 32 38 0 38 - - DOUBLE 8 - -
numericn 32 38 0 38 - - DOUBLE - - -
numericn 1 31 0 31 - - DECIMAL - - -
ntext - - - - - - CLOB 2147483647 - Y
nvarchar 1 4000 - - - - VARCHAR - - N
real - - - - - - REAL 4 - -
smallint - - - - - - SMALLINT 2 - -
smalldatetime - - - - - - TIMESTAMP 10 - -
smallmoney - - - - - - DECIMAL 10 4 -
smallmoneyn - - - - - - DECIMAL 10 4 -
SQL_BIGINT - - - - - - DECIMAL - - -
SQL_BIGINT
2 - - - - - - BIGINT - - -
Tabla 166. Correlaciones de tipos de datos directas por omisin de Microsoft SQL Server (continuacin)
Remote Remote Remote Remote Remote Remote Bit Remote Data Federated Federated Federated Federated Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Operators Typename Length Scale Data
timestamp - - - - - - VARCHAR 8 Y
tinyint - - - - - - SMALLINT 2 - -
uniqueidentifier 1 4000 - - Y - VARCHAR 16 - Y
varbinary 1 8000 - - - - VARCHAR - - Y
varchar 1 8000 - - - - VARCHAR - - N
Nota:
1. Esta correlacin de tipos slo es vlida con los sistemas operativos Windows 2000.
2. Esta correlacin de tipos slo es vlida con Microsoft SQL Server Versin 2000.
Tabla 169. Correlaciones de tipos de datos directas por omisin de Sybase CTLIB (continuacin)
Remote Remote Remote Remote Remote Remote Bit Remote Data Federated Federated Federated Federated Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Operators Typename Length Scale Data
nchar null
(vase
nvarchar)
numeric 1 31 0 31 - - DECIMAL - - -
numeric 32 38 0 38 - - DOUBLE - - -
numericn 1 31 0 31 - - DECIMAL - - -
numericn 32 38 0 38 - - DOUBLE - - -
nvarchar 1 16384 - - - - VARCHAR - - N
real - - - - - - REAL - - -
smalldatetime - - - - - - TIMESTAMP - - -
smallint - - - - - - SMALLINT - - -
smallmoney - - - - - - DECIMAL 10 4 -
sysname 1 254 - - - - CHAR - - N
text - - - - - - CLOB - - -
timestamp - - - - - - VARCHAR 8 - Y
tinyint - - - - - - SMALLINT - - -
unichar1 1 254 - - - - CHAR - - N
unichar1 255 16384 - - - - VARCHAR - - N
unichar null
(vase
univarchar)
univarchar1 1 16384 - - - - VARCHAR - - N
varbinary 1 16384 - - - - VARCHAR - - Y
varchar 1 16384 - - - - VARCHAR - - N
Nota:
1. Vlido para bases de datos federadas que no utilizan Unicode.
Tabla 170. Correlaciones de tipos de datos directas por omisin de Teradata (no se muestran todas las
columnas) (continuacin)
Remote Remote Remote Remote Remote Remote Bit Remote Data Federated Federated Federated Federated Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Operators Typename Length Scale Data
VARGRAPHIC 1 16336 - - - - VARGRAPHIC - - -
VARGRAPHIC 16337 32000 - - - - DBCLOB - - -
Existen dos tipos de correlaciones entre los tipos de datos de la fuente de datos y
los tipos de datos de la base de datos federada: las correlaciones de tipos directas y
las correlaciones de tipos inversas. En una correlacin de tipos directa, la
correlacin se realiza desde un tipo remoto a un tipo local comparable. El otro tipo
de correlacin es una correlacin de tipos inversa, que se utiliza con DDL
transparente para crear o modificar tablas remotas.
Las correlaciones de tipos por omisin para fuentes de datos de la familia DB2 se
encuentran en el derivador de DRDA. Las correlaciones de tipos por omisin para
Informix se encuentran en el derivador de INFORMIX, y as sucesivamente.
Cuando se define una tabla o una vista remota en la base de datos federada, la
definicin incluye una correlacin de tipos inversa. La correlacin se realiza desde
un tipo de datos de base de datos federada local para cada columna, y el
correspondiente tipo de datos remoto. Por ejemplo, existe una correlacin de tipos
inversa por omisin en la que el tipo local REAL hace referencia al tipo
SMALLFLOAT de Informix.
Las bases de datos federadas no dan soporte a las correlaciones para los tipos
LONG VARCHAR, LONG VARGRAPHIC, DATALINK y para los tipos definidos
por el usuario.
Cuando se utiliza la sentencia CREATE TABLE para crear una tabla remota, deben
especificarse los tipos de datos locales que se desea incluir en la tabla remota. Estas
correlaciones de tipos inversas por omisin asignarn los tipos remotos
correspondientes a estas columnas. Por ejemplo, suponga que se utiliza la sentencia
CREATE TABLE para definir una tabla Informix con una columna C2. Se especifica
BIGINT como tipo de datos para C2 en la sentencia. La correlacin de tipos inversa
por omisin de BIGINT depende de la versin de Informix en la que est creando
la tabla. La correlacin para C2 en la tabla Informix se establecer con DECIMAL
en Informix Versin 8 y con INT8 en Informix Versin 9.
Puede alterar temporalmente una correlacin de tipos inversa por omisin o bien
crear una nueva correlacin de tipos inversa con la sentencia CREATE TYPE
MAPPING.
En las tablas siguientes se muestran las correlaciones inversas por omisin entre
tipos de datos locales de base de datos federada y tipos de datos de fuente de
datos remota.
Estas correlaciones son vlidas con todas las versiones soportadas, a menos que se
indique lo contrario.
Tabla 175. Correlaciones de tipos de datos inversas por omisin para Informix
Federated Federated Federated Federated Federated Federated Bit Federated Remote Remote Remote Scale Remote Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Data Typename Length Data
Operators
1
BIGINT - - - - - - DECIMAL 19 - -
2
BIGINT - - - - - - INT8 - - -
BLOB 1 2147483647 - - - - BYTE - - -
CHARACTER - - - - N - CHAR - - -
CHARACTER - - - - Y - BYTE - - -
CLOB 1 2147483647 - - - - TEXT - - -
DATE - 4 - - - - DATE - - -
DECIMAL - - - - - - DECIMAL - - -
DOUBLE - 8 - - - - FLOAT - - -
INTEGER - 4 - - - - INTEGER - - -
REAL - 4 - - - - SMALLFLOAT - - -
SMALLINT - 2 - - - - SMALLINT - - -
TIME - 3 - - - - DATETIME 6 10 -
TIMESTAMP - 10 - - - - DATETIME 0 15 -
VARCHAR 1 254 - - N - VARCHAR - - -
VARCHAR1 255 32672 - - N - TEXT - - -
VARCHAR - - - - Y - BYTE - - -
2
VARCHAR 255 2048 - - N - LVARCHAR - - -
2
VARCHAR 2049 32672 - - N - TEXT - - -
Nota:
1. Esta correlacin de tipos slo es vlida con el servidor Informix Versin 8 (o inferior).
2. Esta correlacin de tipos slo es vlida con el servidor Informix Versin 9 (o superior).
Para el tipo de datos DATETIME de Informix, el servidor federado utiliza el calificador de alto nivel de Informix como REMOTE_LENGTH y el calificador de bajo nivel de
Informix como REMOTE_SCALE.
Los calificadores de Informix son las constantes TU_ definidas en el archivo datatime.h del SDK del Cliente de Informix. Las constantes son:
0 = YEAR 8 = MINUTE 13 = FRACTION(3)
2 = MONTH 10 = SECOND 14 = FRACTION(4)
4 = DAY 11 = FRACTION(1) 15 = FRACTION(5)
6 = HOUR 12 = FRACTION(2)
Tabla 176. Correlaciones de tipos de datos inversas por omisin de Microsoft SQL Server (no se muestran todas las
columnas) (continuacin)
Federated Federated Federated Federated Federated Federated Bit Federated Remote Remote Remote Scale Remote Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Data Typename Length Data
Operators
Nota:
1. Esta correlacin de tipos slo es vlida con Microsoft SQL Server Versin 2000.
TIMESTAMP
2 0 10 0 0 N \0 TIMESTAMP 6 0 N
Tabla 178. Correlaciones de tipos de datos inversas por omisin para Sybase CTLIB (continuacin)
Federated Federated Federated Federated Federated Federated Bit Federated Remote Remote Remote Scale Remote Bit
Typename Lower Len Upper Len Lower Scale Upper Scale Data Data Typename Length Data
Operators
VARCHAR1 256 32672 - - N - text - - -
2
VARCHAR 1 16384 - - N - varchar - - -
2
VARCHAR 16385 32672 - - N - text - - -
VARCHAR1 1 255 - - Y - varbinary - - -
VARCHAR1 256 32672 - - Y - image - - -
2
VARCHAR 1 16384 - - Y - varbinary - - -
2
VARCHAR 16385 32672 - - Y - image - - -
Nota:
1. Esta correlacin de tipos solo es vlida para CTLIB con el servidor Sybase versin 12.0 (o anterior).
2. Esta correlacin de tipos solo es vlida para CTLIB con el servidor Sybase versin 12.5 (o posterior).
Puede utilizar los datos de la base de datos SAMPLE para experimentar con
sentencias SQL o para conocer y probar las caractersticas de base de datos DB2.
El esquema DB2QP y el esquema SYSTOOLS se ponen a parte para que los utilicen
las herramientas de DB2. No es aconsejable que los usuarios definan explcitamente
objetos en estos esquemas, aunque el gestor de bases de datos no impida su
utilizacin.
Por motivos de portabilidad entre productos de base de datos DB2, las siguientes
palabras se deben considerar palabras reservadas:
ACTIVATE DISALLOW LOCALE RESULT
ADD DISCONNECT LOCALTIME RESULT_SET_LOCATOR
AFTER DISTINCT LOCALTIMESTAMP RETURN
ALIAS DO LOCATOR RETURNS
Figura 14. Proceso de una sentencia de SQL con activadores y restricciones asociados
La Figura 14 muestra el orden general de proceso para una sentencia de SQL que
actualiza una tabla. Supone una situacin donde la tabla incluye activadores
anteriores, restricciones de referencia, restricciones de comprobacin y activadores
posteriores en cascada. A continuacin encontrar una descripcin de los recuadros
y de los dems elementos que se encuentran en la Figura 14.
v Sentencia de SQL S1
Es la sentencia DELETE, INSERT o UPDATE que empieza el proceso. La
sentencia de SQL S1 identifica una tabla (o una vista actualizable de alguna
tabla) a la que se hace referencia como la tabla de destino en toda la descripcin.
v Determinacin del conjunto de las filas afectadas (SAR)
Este paso es el punto de arranque de un proceso que se repite para las reglas de
supresin de restriccin de referencia de CASCADE y SET NULL y para las
sentencias de SQL en cascada de los activadores posteriores.
Informacin relacionada:
v Tabla ADVISE_INDEX en la pgina 859
v Tabla ADVISE_INSTANCE en la pgina 863
v Tabla ADVISE_MQT en la pgina 864
v Tabla ADVISE_PARTITION en la pgina 866
v Tabla ADVISE_TABLE en la pgina 868
v Tabla ADVISE_WORKLOAD en la pgina 869
v Tabla EXPLAIN_ARGUMENT en la pgina 836
v Tabla EXPLAIN_INSTANCE en la pgina 844
v Tabla EXPLAIN_OBJECT en la pgina 847
v Tabla EXPLAIN_OPERATOR en la pgina 850
v Tabla EXPLAIN_PREDICATE en la pgina 852
v Tabla EXPLAIN_STATEMENT en la pgina 855
v Tabla EXPLAIN_STREAM en la pgina 857
Tabla EXPLAIN_ARGUMENT
La tabla EXPLAIN_ARGUMENT representa las caractersticas exclusivas para cada
operador individual, si hay alguno.
Tabla 180. Tabla EXPLAIN_ARGUMENT. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No FK ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No FK Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No FK Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No FK Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No FK Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No FK Nivel de informacin de Explain para el que esta fila
es aplicable.
STMTNO INTEGER No FK El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
SECTNO INTEGER No FK El nmero de seccin en el paquete con el que est
relacionada esta informacin de Explain.
OPERATOR_ID INTEGER No No ID exclusivo para este operador en esta consulta.
ARGUMENT_TYPE CHAR(8) No No El tipo de argumento para este operador.
ARGUMENT_VALUE VARCHAR(1024) S No El valor del argumento para este operador. NULL si el
valor est en LONG_ARGUMENT_VALUE.
LONG_ARGUMENT_VALUE CLOB(2M) S No El valor del argumento para este operador, cuando el
texto no encaja ARGUMENT_VALUE. NULL si el
valor est en ARGUMENT_VALUE.
(D) Descendente
Tabla EXPLAIN_DIAGNOSTIC
La tabla EXPLAIN_DIAGNOSTIC contiene una entrada para cada mensaje de
diagnstico producido para una instancia concreta de una sentencia explicada en la
tabla EXPLAIN_STATEMENT.
Informacin relacionada:
v Tabla EXPLAIN_DIAGNOSTIC_DATA en la pgina 842
v Funcin de tabla EXPLAIN_GET_MSGS en Vistas y rutinas de administracin de
SQL
v Tabla EXPLAIN_STATEMENT en la pgina 855
v SYSCAT.STATEMENTS en la pgina 728
Tabla EXPLAIN_DIAGNOSTIC_DATA
La tabla EXPLAIN_DIAGNOSTIC_DATA contiene smbolos para mensajes de
diagnstico determinados que se registran en la tabla EXPLAIN_DIAGNOSTIC.
Los smbolos de mensajes ofrecen informacin adicional especfica para la
ejecucin de la sentencia SQL que ha generado el mensaje.
Informacin relacionada:
v Tabla EXPLAIN_DIAGNOSTIC en la pgina 841
v Funcin de tabla EXPLAIN_GET_MSGS en Vistas y rutinas de administracin de
SQL
v Tabla EXPLAIN_STATEMENT en la pgina 855
Tabla EXPLAIN_INSTANCE
La tabla EXPLAIN_INSTANCE es la tabla principal de control para toda la
informacin de Explain. Cada fila de datos de las tablas de Explain se enlaza
explcitamente con una fila exclusiva de esta tabla. La tabla EXPLAIN_INSTANCE
proporciona la informacin bsica acerca de la fuente de las sentencias de SQL que
se estn explicando, as como la informacin acerca del entorno en el que ha tenido
lugar la explicacin.
Tabla 184. Tabla EXPLAIN_INSTANCE. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No PK ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No PK Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No PK Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No PK Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No PK Versin de la fuente de la peticin de Explain.
EXPLAIN_OPTION CHAR(1) No No Indica que se ha pedido la informacin de Explain para
esta peticin.
Tabla 184. Tabla EXPLAIN_INSTANCE (continuacin). PK significa que la columna forma parte de una clave
primaria; FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
QUERYOPT INTEGER No No Indica la clase de optimizacin de consulta que ha
utilizado el Compilador SQL en el momento de la
invocacin de Explicar. El valor indica qu nivel de
optimizacin de consulta ha efectuado el Compilador
SQL para las sentencias de SQL que se explican.
BLOCK CHAR(1) No No Indica qu tipo de bloqueo de cursor se ha utilizado al
compilar las sentencias de SQL. Para obtener
informacin, consulte la columna BLOCK de
SYSCAT.PACKAGES.
UR Lectura no confirmada
BUFFPAGE INTEGER No No Contiene el valor de configuracin de base de datos
BUFFPAGE en el momento de la invocacin de Explicar.
AVG_APPLS INTEGER No No Contiene el valor del parmetro de configuracin
AVG_APPLS en el momento de la invocacin de
Explicar.
SORTHEAP INTEGER No No Contiene el valor de configuracin de la base de datos
SORTHEAP en el momento de la invocacin de
Explicar.
LOCKLIST INTEGER No No Contiene el valor de configuracin de la base de datos
LOCKLIST en el momento de la invocacin de Explicar.
MAXLOCKS SMALLINT No No Contiene el valor de configuracin de la base de datos
MAXLOCKS en el momento de la invocacin de
Explicar.
LOCKS_AVAIL INTEGER No No Contiene el nmero de bloqueos que el optimizador
supone que estn disponibles para cada usuario.
(Derivado de LOCKLIST y MAXLOCKS.)
CPU_SPEED DOUBLE No No Contiene el valor de configuracin de la base de datos
CPUSPEED en el momento de la invocacin de Explicar.
REMARKS VARCHAR(254) S No Comentario suministrado por el usuario.
DBHEAP INTEGER No No Contiene el valor de configuracin de la base de datos
DBHEAP en el momento de la invocacin de Explicar.
COMM_SPEED DOUBLE No No Contiene el valor de configuracin de la base de datos
COMM_BANDWIDTH en el momento de la invocacin
de Explicar.
Tabla 184. Tabla EXPLAIN_INSTANCE (continuacin). PK significa que la columna forma parte de una clave
primaria; FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
PARALLELISM CHAR(2) No No Los valores posibles son:
v N = Sin paralelismo
v P = Paralelismo intraparticin
v IP = Paralelismo interparticiones
v BP = Paralelismo intraparticin y paralelismo
interparticiones
DATAJOINER CHAR(1) No No Los valores posibles son:
v N = Plan de sistemas no federados
v Y = Plan de sistemas federados
Tabla EXPLAIN_OBJECT
La tabla EXPLAIN_OBJECT identifica los objetos de datos que necesita el plan de
acceso generado para satisfacer la sentencia de SQL.
Tabla 185. Tabla EXPLAIN_OBJECT. PK significa que la columna forma parte de una clave primaria; FK significa que
la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No FK ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No FK Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No FK Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No FK Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No FK Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No FK Nivel de informacin de Explain para el que esta fila es
aplicable.
STMTNO INTEGER No FK El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
SECTNO INTEGER No FK El nmero de seccin en el paquete con el que est
relacionada esta informacin de Explain.
OBJECT_SCHEMA VARCHAR(128) No No Esquema al que pertenece este objeto.
OBJECT_NAME VARCHAR(128) No No Nombre del objeto.
OBJECT_TYPE CHAR(2) No No Etiqueta descriptiva del tipo de objeto.
CREATE_TIME TIMESTAMP S No Hora de creacin del objeto; nulo si es una funcin de
tabla.
STATISTICS_TIME TIMESTAMP S No ltima vez que se actualizaron las estadsticas para este
objeto; nulo si no existen estadsticas para este objeto.
COLUMN_COUNT SMALLINT No No El nmero de columnas en este objeto.
ROW_COUNT INTEGER No No El nmero estimado de filas en este objeto.
WIDTH INTEGER No No La anchura media del objeto en bytes. Se establece en -1
para un ndice.
PAGES BIGINT No No El nmero estimado de pginas que ocupa el objeto en
la agrupacin de almacenamientos intermedios.
Establecido en -1 para una funcin de tabla.
DISTINCT CHAR(1) No No Indica si las filas del objeto son diferenciadas (es decir, si
hay duplicados)
Tabla 185. Tabla EXPLAIN_OBJECT (continuacin). PK significa que la columna forma parte de una clave primaria;
FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
TRANSFER_RATE DOUBLE No No Tiempo estimado para leer una pgina de datos, en
milisegundos, del espacio de tablas especificado. Se
establece en -1 si no est implicado ningn espacio de
tablas.
PREFETCHSIZE INTEGER No No El nmero de pginas de datos que se han de leer
cuando se efecta una lectura anticipada. Establecido en
-1 para una funcin de tabla.
EXTENTSIZE INTEGER No No El tamao de extensin, en pginas de datos. Este
volumen de pginas se escribe en un contenedor
individual del espacio de tablas antes de cambiar al
contenedor siguiente. Establecido en -1 para una funcin
de tabla.
CLUSTER DOUBLE No No Nivel de clster de los datos con el ndice. Si >= 1, es el
CLUSTERRATIO. Si >= 0 y < 1, es el CLUSTERFACTOR.
Se establece en -1 para una tabla, una funcin de tabla o
si no est disponible esta estadstica.
NLEAF BIGINT No No El nmero de pginas que ocupan los valores de estos
objetos de ndice. Se establece en -1 para una tabla, una
funcin de tabla o si no est disponible esta estadstica.
NLEVELS INTEGER No No El nmero de niveles de ndice del rbol de este objeto
de ndice. Se establece en -1 para una tabla, una funcin
de tabla o si no est disponible esta estadstica.
FULLKEYCARD BIGINT No No El nmero de valores de clave completa diferenciada
contenidos en este objeto de ndice. Se establece en -1
para una tabla, una funcin de tabla o si no est
disponible esta estadstica.
OVERFLOW BIGINT No No El nmero total de registros de desbordamiento en la
tabla. Se establece en -1 para un ndice, una funcin de
tabla o si no est disponible esta estadstica.
FIRSTKEYCARD BIGINT No No El nmero de valores de primera clave diferenciada. Se
establece en 1 para una tabla, una funcin de tabla o si
no est disponible esta estadstica.
FIRST2KEYCARD BIGINT No No El nmero de valores de primera clave diferenciada
utilizando las primeras columnas {2,3,4} del ndice. Se
FIRST3KEYCARD BIGINT No No
establece en 1 para una tabla, una funcin de tabla o si
FIRST4KEYCARD BIGINT No No no est disponible esta estadstica.
SEQUENTIAL_PAGES BIGINT No No El nmero de pginas ubicadas en disco por orden de
clave de ndice con pocos o ningn vaco entre ellas. Se
establece en 1 para una tabla, una funcin de tabla o si
no est disponible esta estadstica.
DENSITY INTEGER No No Proporcin de SEQUENTIAL_PAGES en relacin al
nmero de pginas del rango de pginas ocupado por el
ndice, expresada como porcentaje (entero entre 0 y 100).
Se establece en 1 para una tabla, una funcin de tabla o
si no est disponible esta estadstica.
STATS_SRC CHAR(1) No No Indica la fuente para las estadsticas. Se establece en 1 si
se trata de un solo nodo.
AVERAGE_SEQUENCE_ DOUBLE No No Espacio entre secuencias.
GAP
AVERAGE_SEQUENCE_ DOUBLE No No Espacio entre las secuencias al captar utilizando el
FETCH_GAP ndice.
AVERAGE_SEQUENCE_ DOUBLE No No Promedio de pginas del ndice accesibles en secuencia.
PAGES
AVERAGE_SEQUENCE_ DOUBLE No No Promedio de pginas de la tabla accesibles en secuencia
FETCH_PAGES al captar utilizando el ndice.
Tabla 185. Tabla EXPLAIN_OBJECT (continuacin). PK significa que la columna forma parte de una clave primaria;
FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
AVERAGE_RANDOM_ DOUBLE No No Promedio de pginas del ndice aleatorias entre los
PAGES accesos a pginas secuenciales.
AVERAGE_RANDOM_ DOUBLE No No Promedio de pginas de la tabla aleatorias entre los
FETCH_PAGES accesos a pginas secuenciales al captar utilizando el
ndice.
NUMRIDS BIGINT No No Nmero total de identificadores de filas del ndice.
NUMRIDS_DELETED BIGINT No No Nmero total de identificadores de filas
pseudosuprimidos del ndice.
NUM_EMPTY_LEAFS BIGINT No No Nmero total de pginas hojas vacas del ndice.
ACTIVE_BLOCKS BIGINT No No Nmero total de bloques de clster multidimensional
(MDC) activos de la tabla.
NUM_DATA_PART INTEGER No No Nmero de particiones de datos para una tabla
particionada. Se establece en 1 si la tabla no est
particionada.
Tabla EXPLAIN_OPERATOR
La tabla EXPLAIN_OPERATOR contiene todos los operadores necesarios para que
el compilador de consultas satisfaga la sentencia de consulta.
Tabla 187. Tabla EXPLAIN_OPERATOR. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No FK ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No FK Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No FK Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No FK Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No FK Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No FK Nivel de informacin de Explain para el que esta fila es
aplicable.
STMTNO INTEGER No FK El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
SECTNO INTEGER No FK El nmero de seccin en el paquete con el que est
relacionada esta informacin de Explain.
OPERATOR_ID INTEGER No No ID exclusivo para este operador en esta consulta.
OPERATOR_TYPE CHAR(6) No No Etiqueta descriptiva para el tipo de operador.
TOTAL_COST DOUBLE No No Coste total acumulado estimado (en timerons) de la
ejecucin del plan de acceso elegido hasta este operador
inclusive.
IO_COST DOUBLE No No Coste de E/S acumulado estimado (en E/S de pginas
de datos) de la ejecucin del plan de acceso elegido
hasta este operador (inclusive).
CPU_COST DOUBLE No No Coste de CPU acumulado estimado (en las instrucciones)
de la ejecucin del plan de acceso elegido hasta este
operador (inclusive).
FIRST_ROW_COST DOUBLE No No Coste acumulado estimado (en timerons) de la lectura
de la primera fila para el plan de acceso hasta este
operador inclusive. Este valor incluye cualquier
actividad general inicial necesaria.
RE_TOTAL_COST DOUBLE No No Coste acumulado estimado (en timerons) de la lectura
de la siguiente fila para el plan de acceso elegido hasta
este operador inclusive.
RE_IO_COST DOUBLE No No Coste de E/S acumulado estimado (en E/S de pginas
de datos) de la lectura de la siguiente fila del plan de
acceso elegido hasta este operador inclusive.
RE_CPU_COST DOUBLE No No Coste de CPU acumulado estimado (en instrucciones) de
la lectura de la siguiente fila para el plan de acceso
elegido hasta este operador inclusive.
COMM_COST DOUBLE No No Coste de comunicacin acumulado estimado (en tramas
TCP/IP) de la ejecucin del plan de acceso elegido hasta
este operador (inclusive).
FIRST_COMM_COST DOUBLE No No Coste de comunicaciones acumulado estimado (en
TCP/IP) de la lectura de la primera fila para el plan de
acceso elegido hasta este operador inclusive. Este valor
incluye cualquier actividad general inicial necesaria.
Tabla 187. Tabla EXPLAIN_OPERATOR (continuacin). PK significa que la columna forma parte de una clave
primaria; FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
BUFFERS DOUBLE No No Requisitos estimados de almacenamiento intermedio
para este operador y sus entradas.
REMOTE_TOTAL_COST DOUBLE No No Coste total acumulado estimado (en timerons) de la
ejecucin de operacin(es) en base(s) de datos remota(s).
REMOTE_COMM_COST DOUBLE No No Coste de comunicacin acumulado estimado de la
ejecucin del plan de acceso remoto elegido hasta este
operador (inclusive).
Tabla EXPLAIN_PREDICATE
La tabla EXPLAIN_PREDICATE identifica los predicados que aplica un operador
especfico.
Tabla 189. Tabla EXPLAIN_PREDICATE. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No FK ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No FK Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No FK Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No FK Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No FK Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No FK Nivel de informacin de Explain para el que esta fila es
aplicable.
STMTNO INTEGER No FK El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
SECTNO INTEGER No FK El nmero de seccin en el paquete con el que est
relacionada esta informacin de Explain.
OPERATOR_ID INTEGER No No ID exclusivo para este operador en esta consulta.
PREDICATE_ID INTEGER No No ID exclusivo de este predicado para el operador
especificado.
Tabla 189. Tabla EXPLAIN_PREDICATE (continuacin). PK significa que la columna forma parte de una clave
primaria; FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
RELOP_TYPE CHAR(2) No No El tipo de operador relacional utilizado en este
predicado.
SUBQUERY CHAR(1) No No Si es necesaria una corriente de datos de una
subconsulta o no para este predicado. Puede ser
necesarias mltiples corrientes de subconsultas.
Tabla EXPLAIN_STATEMENT
La tabla EXPLAIN_STATEMENT contiene el texto de la sentencia de SQL tal como
existe para los diferentes niveles de informacin de Explain. La sentencia de SQL
original se almacena tal como la entra el usuario, en esta tabla junto con la versin
utilizada (por el optimizador) para elegir el plan de acceso para satisfacer la
sentencia de SQL. La ltima versin puede parecerse poco a la original ya que
puede haberse vuelto a escribir y/o mejorar con predicados adicionales tal como lo
determina el Compilador SQL.
Tabla 192. Tabla EXPLAIN_STATEMENT. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No PK, FK ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No PK, FK Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No PK, FK Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No PK, FK Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No FK Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No PK Nivel de informacin de Explain para el que esta fila es
aplicable.
Tabla 192. Tabla EXPLAIN_STATEMENT (continuacin). PK significa que la columna forma parte de una clave
primaria; FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
STATEMENT_TYPE CHAR(2) No No Etiqueta descriptiva para el tipo de consulta que se est
explicando.
Tabla EXPLAIN_STREAM
La tabla EXPLAIN_STREAM representa las corrientes de datos de entrada y de
salida entre operadores individuales y objetos de datos. Los objetos de datos en s
se representan en la tabla EXPLAIN_OBJECT. Los operadores implicados en una
corriente de datos se han de encontrar en una tabla EXPLAIN_OPERATOR.
Tabla 193. Tabla EXPLAIN_STREAM. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No FK ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No FK Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No FK Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No FK Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No FK Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No FK Nivel de informacin de Explain para el que esta fila es
aplicable.
STMTNO INTEGER No FK El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
SECTNO INTEGER No FK El nmero de seccin en el paquete con el que est
relacionada esta informacin de Explain.
STREAM_ID INTEGER No No ID exclusivo para esta corriente de datos en el operador
especificado.
SOURCE_TYPE CHAR(1) No No Indica la fuente de la corriente de datos:
O Operador
D Objeto de datos
SOURCE_ID SMALLINT No No ID exclusivo para el operador dentro de esta consulta
que es la fuente de esta corriente de datos. Se establece
en -1 si SOURCE_TYPE es D.
TARGET_TYPE CHAR(1) No No Indica el destino de la corriente de datos:
O Operador
D Objeto de datos
TARGET_ID SMALLINT No No ID exclusivo para el operador dentro de esta consulta
que es el destino de esta corriente de datos. Se establece
en -1 si TARGET_TYPE es D.
OBJECT_SCHEMA VARCHAR(128) S No El esquema al que pertenece el objeto de datos afectado.
Se establece en nulo si SOURCE_TYPE y TARGET_TYPE
son O.
OBJECT_NAME VARCHAR(128) S No Nombre del objeto que es el sujeto de la corriente de
datos. Se establece en nulo si SOURCE_TYPE y
TARGET_TYPE son O.
STREAM_COUNT DOUBLE No No Cardinalidad estimada de la corriente de datos.
COLUMN_COUNT SMALLINT No No El nmero de columnas en la corriente de datos.
PREDICATE_ID INTEGER No No Si la corriente forma parte de una subconsulta para un
predicado, el ID del predicado se reflejar aqu, de lo
contrario la columna se establece en -1.
Tabla 193. Tabla EXPLAIN_STREAM (continuacin). PK significa que la columna forma parte de una clave primaria;
FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
COLUMN_NAMES CLOB(2M) S No Esta columna contiene los nombres y la informacin de
ordenacin de las columnas implicadas en esta corriente.
Tabla ADVISE_INDEX
La tabla ADVISE_INDEX representa los ndices recomendados.
Tabla 194. Tabla ADVISE_INDEX. PK significa que la columna forma parte de una clave primaria; FK significa que la
columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No No ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No No Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No No Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No No Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No No Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No No Nivel de informacin de Explain para el que esta fila es
aplicable.
STMTNO INTEGER No No El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
SECTNO INTEGER No No El nmero de seccin en el paquete con el que est
relacionada esta informacin de Explain.
QUERYNO INTEGER No No Identificador numrico para la sentencia de SQL
explicada. Para sentencias de SQL dinmico (excluyendo
la sentencia EXPLAIN SQL) emitidas a travs de CLP o
CLI, el valor por omisin es un valor incrementado
secuencialmente. De lo contrario, el valor por omisin es
el valor de STMTNO para sentencias de SQL esttico y 1
para sentencias de SQL dinmico.
QUERYTAG CHAR(20) No No Distintivo identificador para cada sentencia de SQL
explicada. Para sentencias de SQL dinmico emitidas a
travs de CLP (excluyendo la sentencia EXPLAIN SQL),
el valor por omisin es 'CLP'. Para sentencias de SQL
dinmico emitidas a travs de CLI (excluyendo la
sentencia EXPLAIN SQL), el valor por omisin es 'CLI'.
De lo contrario, el valor por omisin utilizado es
blancos.
NAME VARCHAR(128) No No Nombre del ndice.
CREATOR VARCHAR(128) No No Calificador del nombre de ndice.
TBNAME VARCHAR(128) No No Nombre de la tabla o apodo en el que se define el
ndice.
TBCREATOR VARCHAR(128) No No Calificador del nombre de tabla.
COLNAMES CLOB(2M) No No Lista de nombres de columnas.
UNIQUERULE CHAR(1) No No Regla de unicidad:
D = Los duplicados estn permitidos
P = ndice primario
U = Slo se permiten entradas exclusivas
COLCOUNT SMALLINT No No El nmero de columnas de la clave ms el nmero de
columnas INCLUDE si hay alguna.
IID SMALLINT No No ID interno de ndice.
NLEAF BIGINT No No El nmero de pginas; 1 si no se renen estadsticas.
NLEVELS SMALLINT No No Nmero de niveles de ndices; 1 si no se renen
estadsticas.
Tabla 194. Tabla ADVISE_INDEX (continuacin). PK significa que la columna forma parte de una clave primaria; FK
significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
FIRSTKEYCARD BIGINT No No El nmero de valores de primera clave diferenciada; 1
si no se renen estadsticas.
FULLKEYCARD BIGINT No No El nmero de valores de clave completa diferenciada; 1
si no se renen estadsticas.
CLUSTERRATIO SMALLINT No No Nivel de clster de los datos con el ndice; -1 si no se
renen estadsticas o si se renen estadsticas de ndice
detalladas (en este caso, se utilizar CLUSTERFACTOR
en su lugar).
AVGPARTITION_ SMALLINT No No Nivel de clster de los datos dentro de una sola
CLUSTERRATIO particin de datos. -1 si la tabla no est particionada en
tablas, si no se recopilan estadsticas o si se recopilan
estadsticas detalladas (en cuyo caso se utiliza
AVGPARTITION_ CLUSTERFACTOR en su lugar).
AVGPARTITION_ DOUBLE No No Mejor medicin del nivel de clster dentro de una sola
CLUSTERFACTOR particin de datos. -1 si la tabla no est particionada en
tablas, si no se recopilan estadsticas o si el ndice est
definido sobre un apodo.
AVGPARTITION_PAGE_ VARCHAR(520) No No Una lista de pares de enteros en formato de caracteres.
FETCH_PAIRS Cada par representa un tamao potencial de la
agrupacin de almacenamientos intermedios en las
captaciones de pginas correspondientes necesarias para
acceder a una sola particin de datos desde la tabla.
Serie de longitud cero si no hay datos disponibles o si la
tabla no est particionada en tablas.
DATAPARTITION_ DOUBLE No No Una medicin estadstica del clster de claves de
CLUSTERFACTOR ndices con respecto a particiones de datos. Este campo
tiene un nmero entre cero y uno, done uno representa
la agrupacin en clster perfecta y cero representa que
no existe.
CLUSTERFACTOR DOUBLE No No Mejor medicin del nivel de clster o 1 si no se han
reunido estadsticas de ndice detalladas o si el ndice
est definido en un apodo.
USERDEFINED SMALLINT No No Definido por el usuario.
SYSTEM_REQUIRED SMALLINT No No 1 si se cumple una de las condiciones siguientes:
Este ndice es necesario para una restriccin de
clave primaria o exclusiva o bien este ndice es un
ndice de bloques de dimensin o un ndice de
bloques compuestos para una tabla con clsteres
de varias dimensiones (MDC).
Se trata de un ndice en la columna OID de una
tabla con tipo.
2 si se cumplen estas dos condiciones:
Este ndice es necesario para una restriccin de
clave primaria o exclusiva o bien este ndice es un
ndice de bloques de dimensin o un ndice de
bloques compuestos para una tabla MDC.
Se trata de un ndice en la columna OID de una
tabla con tipo.
De lo contrario, 0.
CREATE_TIME TIMESTAMP No No Hora en que se ha creado el ndice.
STATS_TIME TIMESTAMP S No ltima vez que se ha realizado un cambio en las
estadsticas registradas para este ndice. Nulo si no hay
estadsticas disponibles.
Tabla 194. Tabla ADVISE_INDEX (continuacin). PK significa que la columna forma parte de una clave primaria; FK
significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
PAGE_FETCH_PAIRS VARCHAR(520) No No Una lista de pares de enteros, representada en la forma
de caracteres. Cada par representa el nmero de pginas
de un almacenamiento intermedio hipottico y el
nmero de lecturas de pginas necesario para explorar
la tabla con este ndice utilizando dicho almacenamiento
intermedio hipottico. (Serie de longitud cero si no hay
datos disponibles.)
REMARKS VARCHAR(254) S No Comentario suministrado por el usuario o nulo.
DEFINER VARCHAR(128) No No Usuario que ha creado el ndice.
CONVERTED CHAR(1) No No Reservado para su utilizacin en el futuro.
SEQUENTIAL_PAGES BIGINT No No El nmero de pginas ubicadas en disco por orden de
clave de ndice con pocos o ningn vaco entre ellas. (1
si no hay estadsticas disponibles.)
DENSITY INTEGER No No Proporcin de SEQUENTIAL_PAGES para numerar las
pginas del rango de pginas ocupadas por el ndice,
expresada como un porcentaje (entero entre 0 y 100, 1
si no hay estadsticas disponibles.)
FIRST2KEYCARD BIGINT No No El nmero de claves diferenciadas que utilizan las dos
primeras columnas del ndice (1 si no hay estadsticas
o no son aplicables)
FIRST3KEYCARD BIGINT No No El nmero de claves diferenciadas que utilizan las tres
primeras columnas del ndice (1 si no hay estadsticas
o si no son aplicables)
FIRST4KEYCARD BIGINT No No El nmero de claves diferenciadas que utilizan las cuatro
primeras columnas del ndice (1 si no hay estadsticas
o no son aplicables)
PCTFREE SMALLINT No No Porcentaje de cada pgina de hoja de ndice que se va a
reservar durante la creacin inicial del ndice. Este
espacio est disponible para inserciones futuras despus
de la creacin del ndice.
UNIQUE_COLCOUNT SMALLINT No No El nmero de columnas necesarias para una clave de
unicidad. Siempre <=COLCOUNT. < COLCOUNT
solamente si hay columnas INCLUDE. 1 si el ndice no
tiene clave de unicidad (permite duplicados)
MINPCTUSED SMALLINT No No Si no es cero, se habilita la desfragmentacin del ndice
en lnea y el valor es el umbral del espacio mnimo
utilizado antes de fusionar las pginas.
REVERSE_SCANS CHAR(1) No No Y = El ndice soporta exploraciones invertidas
N = El ndice no soporta exploraciones invertidas
USE_INDEX CHAR(1) S No Y = ndice recomendado o evaluado
N = ndice no recomendado
R = se ha recomendado la separacin del clster de
un ndice de clster RID (por parte del Asesor de
diseo); esto ocurre cuando se recomienda un ndice
de clster RID nuevo para la tabla.
CREATION_TEXT CLOB(2M) No No La sentencia de SQL se utiliza para crear el ndice.
PACKED_DESC BLOB(1M) S No Descripcin interna de la tabla.
RUN_ID TIMESTAMP S FK Valor correspondiente a START_TIME de una fila de la
tabla ADVISE_INSTANCE que la enlaza con la misma
ejecucin del Asesor de diseo.
Tabla 194. Tabla ADVISE_INDEX (continuacin). PK significa que la columna forma parte de una clave primaria; FK
significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
INDEXTYPE VARCHAR(4) No No Tipo de ndice.
CLUS = Clsteres
REG = Normal
DIM = ndice de bloques de dimensin
BLOK = ndice de bloques
EXISTS CHAR(1) No No Debe definirse en Y si el ndice ya existe en el catlogo
de la base de datos.
RIDTOBLOCK CHAR(1) No No Debe definirse en Y si se ha utilizado el ndice RID
para crear un ndice de bloques en el Asesor de diseo.
Tabla ADVISE_INSTANCE
La tabla ADVISE_INSTANCE contiene informacin acerca de la ejecucin de
db2advis, incluida la hora de inicio. Contiene una fila para cada ejecucin de
db2advis. Otras tablas ADVISE presentan una clave fornea (RUN_ID) que enlaza
las filas creadas durante la misma ejecucin del Asesor de diseo con la columna
START_TIME de la tabla ADVISE_INSTANCE.
Tabla 195. Tabla ADVISE_INSTANCE. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
START_TIME TIMESTAMP No PK Hora en la que empieza la ejecucin de db2advis.
END_TIME TIMESTAMP No No Hora en la que finaliza la ejecucin de db2advis.
MODE VARCHAR(4) No No El valor que se ha especificado con la opcin -m en el
Asesor de diseo; por ejemplo, MC para especificar
MQT y MDC.
WKLD_COMPRESSION CHAR(4) No No La compresin de carga de trabajo bajo la que se ha
ejecutado el Asesor de diseo.
STATUS CHAR(9) No No Estado de una ejecucin del Asesor de diseo. El estado
puede ser STARTED, COMPLETED (si es satisfactorio)
o un nmero de error que lleve el prefijo EI para los
errores internos o EX para los errores externos, en cuyo
caso el nmero de error representa el SQLCODE.
Tabla ADVISE_MQT
La tabla ADVISE_MQT contiene informacin acerca de las tablas de consultas
materializadas (MQT) recomendadas por el Asesor de diseo.
Tabla 196. Tabla ADVISE_MQT. PK significa que la columna forma parte de una clave primaria; FK significa que la
columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No No ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No No Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No No Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No No Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No No Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No No Nivel de informacin de Explain para el que esta fila es
aplicable.
STMTNO INTEGER No No El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
SECTNO INTEGER No No El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
NAME VARCHAR(128) No No Nombre de la MQT.
CREATOR VARCHAR(128) No No Nombre del creador de la MQT.
IID SMALLINT No No Identificador interno.
CREATE_TIME TIMESTAMP No No Hora en que se ha creado la MQT.
STATS_TIME TIMESTAMP S No Hora en que se han recogido las estadsticas.
NUMROWS DOUBLE No No Nmero estimado de filas de la MQT.
NUMCOLS SMALLINT No No Nmero de columnas definido en la MQT.
ROWSIZE DOUBLE No No Longitud media (en bytes) de una fila de la MQT.
BENEFIT FLOAT No No Reservado para su utilizacin en el futuro.
USE_MQT CHAR(1) S No Debe definirse en Y si se recomienda la MQT.
MQT_SOURCE CHAR(1) S No Indica si se ha generado el candidato de la MQT. Debe
definirse en I si el candidato de la MQT es una MQT
de renovacin inmediata o en D si slo puede crearse
como una MQT de renovacin diferida completa.
QUERY_TEXT CLOB(2M) No No Contiene la consulta que define la MQT.
CREATION_TEXT CLOB(2M) No No Contiene el DDL de CREATE TABLE para la MQT.
SAMPLE_TEXT CLOB(2M) No No Contiene la consulta de muestreo que se utiliza para
obtener estadsticas detalladas para la MQT. Slo se
utiliza cuando se necesitan estadsticas detalladas para el
Asesor de diseo. Las estadsticas de muestreo
resultantes se mostrarn en esta tabla. Si es nulo, no se
haba creado ninguna consulta de muestreo para esta
MQT.
COLSTATS CLOB(2M) No No Contiene las estadsticas de columna para la MQT (si no
es nulo). Estas estadsticas estn en formato XML e
incluyen el nombre de la columna, la cardinalidad de la
columna y, opcionalmente, los valores HIGH2KEY y
LOW2KEY.
EXTRA_INFO BLOB(2M) No No Reservado para salidas varias.
Tabla 196. Tabla ADVISE_MQT (continuacin). PK significa que la columna forma parte de una clave primaria; FK
significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
TBSPACE VARCHAR(128) No No El espacio de tablas que se recomienda para la MQT.
RUN_ID TIMESTAMP S FK Valor correspondiente a START_TIME de una fila de la
tabla ADVISE_INSTANCE que la enlaza con la misma
ejecucin del Asesor de diseo.
REFRESH_TYPE CHAR(1) No No Debe definirse en I para inmediato o en D para
diferido.
EXISTS CHAR(1) No No Debe definirse en Y si la MQT ya existe en el catlogo
de la base de datos.
Tabla ADVISE_PARTITION
La tabla ADVISE_PARTITION contiene informacin acerca de las particiones de
base de datos recomendadas por el Asesor de diseo y slo puede rellenarse en un
entorno de bases de datos particionadas.
Tabla 197. Tabla ADVISE_PARTITION. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
EXPLAIN_REQUESTER VARCHAR(128) No No ID de autorizacin del iniciador de esta peticin de
Explain.
EXPLAIN_TIME TIMESTAMP No No Hora de inicio de la peticin de Explain.
SOURCE_NAME VARCHAR(128) No No Nombre del paquete que se ejecutaba cuando se ha
explicado la sentencia dinmica o nombre del archivo
fuente cuando se ha explicado la sentencia de SQL
esttico.
SOURCE_SCHEMA VARCHAR(128) No No Esquema, o calificador, de la fuente de la peticin de
Explain.
SOURCE_VERSION VARCHAR(64) No No Versin de la fuente de la peticin de Explain.
EXPLAIN_LEVEL CHAR(1) No No Nivel de informacin de Explain para el que esta fila es
aplicable.
STMTNO INTEGER No No El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
SECTNO INTEGER No No El nmero de sentencia en el paquete con el que est
relacionado esta informacin de Explain.
QUERYNO INTEGER No No Identificador numrico para la sentencia de SQL
explicada. Para sentencias de SQL dinmico (excluyendo
la sentencia EXPLAIN SQL) emitidas a travs de CLP o
CLI, el valor por omisin es un valor incrementado
secuencialmente. De lo contrario, el valor por omisin es
el valor de STMTNO para sentencias de SQL esttico y 1
para sentencias de SQL dinmico.
QUERYTAG CHAR(20) No No Distintivo identificador para cada sentencia de SQL
explicada. Para sentencias de SQL dinmico emitidas a
travs de CLP (excluida la sentencia EXPLAIN SQL), el
valor por omisin es CLP. Para sentencias de SQL
dinmico emitidas a travs de CLI (excluida la sentencia
EXPLAIN SQL), el valor por omisin es CLI. De lo
contrario, el valor por omisin utilizado es blancos.
TBNAME VARCHAR(128) S No Especifica el nombre de la tabla.
TBCREATOR VARCHAR(128) S No Especifica el nombre del creador de la tabla.
PMID SMALLINT S No Especifica el ID de correlacin de la distribucin.
TBSPACE VARCHAR(128) S No Especifica el espacio de tablas en el que reside la tabla.
COLNAMES CLOB(2M) S No Especifica los nombres de las columnas de las
particiones de base de datos, separados por comas.
COLCOUNT SMALLINT S No Especifica el nmero de columnas de particionamiento
de base de datos.
REPLICATE CHAR(1) S No Especifica si la particin de base de datos se duplica o
no se duplica.
COST DOUBLE S No Especifica el coste del uso de la particin de base de
datos.
USEIT CHAR(1) S No Especifica si la particin de base de datos se utiliza o no
en modalidad EVALUATE PARTITION. Se utiliza una
particin de base de datos si USEIT est establecido en
Y o y.
Tabla 197. Tabla ADVISE_PARTITION (continuacin). PK significa que la columna forma parte de una clave primaria;
FK significa que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
RUN_ID TIMESTAMP S FK Valor correspondiente a START_TIME de una fila de la
tabla ADVISE_INSTANCE que la enlaza con la misma
ejecucin del Asesor de diseo.
Tabla ADVISE_TABLE
La tabla ADVISE_TABLE almacena el lenguaje de definicin de datos (DDL) para
la creacin de tablas utilizando las recomendaciones finales del Asesor de diseo
para las tablas de consultas materializadas (MQT), las tablas de clsteres de varias
dimensiones (MDC) y la particin de bases de datos.
Tabla 198. Tabla ADVISE_TABLE. PK significa que la columna forma parte de una clave primaria; FK significa que la
columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
RUN_ID TIMESTAMP S FK Valor correspondiente a START_TIME de una fila de la
tabla ADVISE_INSTANCE que la enlaza con la misma
ejecucin del Asesor de diseo.
TABLE_NAME VARCHAR(128) No No Nombre de la tabla.
TABLE_SCHEMA VARCHAR(128) No No Nombre del creador de la tabla.
TABLESPACE VARCHAR(128) No No El espacio de tablas en el que va a crearse la tabla.
SELECTION_FLAG VARCHAR(4) No No Indica el tipo de recomendacin. Los valores vlidos son
M para MQT, P para particin de bases de datos y C
para MDC. Este campo puede incluir cualquier
subconjunto de estos valores. Por ejemplo, MC indica
que la tabla se recomienda como una tabla MQT y
MDC.
TABLE_EXISTS CHAR(1) No No Debe definirse en Y si la tabla ya existe en el catlogo
de la base de datos.
USE_TABLE CHAR(1) No No Debe definirse en Y si la tabla tiene recomendaciones
del Asesor de diseo.
GEN_COLUMNS CLOB(2M) No No Contiene una serie de columnas generadas si esta fila
incluye una recomendacin de MDC que necesita
columnas generadas en el DDL de creacin de tablas.
ORGANIZE_BY CLOB(2M) No No Para las recomendaciones de MDC, contiene la clusula
ORGANIZE BY del DDL de creacin de tablas.
CREATION_TEXT CLOB(2M) No No Contiene el DDL de creacin de tablas.
ALTER_COMMAND CLOB(2M) No No Contiene una sentencia ALTER TABLE para la tabla.
Tabla ADVISE_WORKLOAD
La tabla ADVISE_WORKLOAD representa la sentencia que forma la carga de
trabajo.
Tabla 199. Tabla ADVISE_WORKLOAD. PK significa que la columna forma parte de una clave primaria; FK significa
que la columna forma parte de una clave fornea.
Posibili-
dad de
Nombre de columna Tipo de datos nulos? Clave? Descripcin
WORKLOAD_NAME CHAR(128) No No Nombre del conjunto de sentencias de SQL (carga de
trabajo) a la que esta sentencia pertenece.
STATEMENT_NO INTEGER No No El nmero de sentencias de la carga de trabajo con el
que est relacionada esta informacin de explicacin.
STATEMENT_TEXT CLOB(1M) No No Contenido de la sentencia de SQL.
STATEMENT_TAG VARCHAR(256) No No Distintivo identificador para cada sentencia de SQL
explicada.
FREQUENCY INTEGER No No Las veces que esta sentencia aparece en la carga de
trabajo.
IMPORTANCE DOUBLE No No Importancia de la sentencia.
WEIGHT DOUBLE No No Prioridad de la sentencia.
COST_BEFORE DOUBLE S No Coste de la consulta (in timerons) si no se han creado las
recomendaciones.
COST_AFTER DOUBLE S No Coste de la consulta (in timerons) si se han creado las
recomendaciones. COST_AFTER refleja todas las
recomendaciones excepto las que pertenezcan a ndices
agrupados y al clustering de varias dimensiones (MDC).
COMPILABLE CHAR(17) S No Indica los errores de compilacin de la consulta que se
han producido al intentar preparar la sentencia. Si esta
columna es NULL o no empieza por SQLCA, la consulta
de SQL podra compilarla db2advis. Si db2advis o el
Asesor de diseo detectan un error de compilacin, el
valor de columna COMPILABLE constar de un campo
SQLCA.sqlcaid de 8 bytes de longitud seguido de dos
puntos (:) y un campo SQLCA.sqlstate de 8 bytes de
longitud, que es el cdigo de retorno de la sentencia
SQL.
Con SQL dinmico, los valores de los registros especiales CURRENT EXPLAIN
MODE y CURRENT EXPLAIN SNAPSHOT interactan de la siguiente manera:
Tabla 200. Interaccin de los valores de los registros especiales EXPLAIN (SQL dinmico)
Valores de EXPLAIN MODE
Valores de
EXPLAIN RECOMMEND EVALUATE
SNAPSHOT NO YES EXPLAIN REOPT INDEXES INDEXES
NO v Se v Se rellenan v Se rellenan v Las tablas de v Se rellenan v Se rellenan
devuelven las tablas de las tablas de explicacin las tablas de las tablas de
los explicacin. explicacin. se rellenan explicacin. explicacin.
resultados v Se v Los cuando una v Los v Los
de la devuelven resultados sentencia resultados resultados
consulta. los de la est de la de la
resultados consulta no calificada consulta no consulta no
de la se devuelven para su se devuelven se devuelven
consulta. (las reoptimizacin (las (las
sentencias durante la sentencias sentencias
dinmicas ejecucin. dinmicas dinmicas
no se v Se no se no se
ejecutan). devuelven ejecutan). ejecutan).
los v Se v Se evalan
resultados recomiendan los ndices.
de la los ndices.
consulta.
YES v Se toma una v Se rellenan v Se rellenan v Las tablas de v Se rellenan v Se rellenan
Instantnea las tablas de las tablas de explicacin las tablas de las tablas de
de explicacin. explicacin. se rellenan explicacin. explicacin.
explicacin. v Se toma una v Se toma una cuando una v Se toma una v Se toma una
v Se Instantnea Instantnea sentencia Instantnea Instantnea
devuelven de de est de de
los explicacin. explicacin. calificada explicacin. explicacin.
resultados para su
v Se v Los v Los v Los
de la reoptimizacin
devuelven resultados resultados resultados
consulta. durante la
los de la de la de la
ejecucin.
resultados consulta no consulta no consulta no
de la se devuelven v Se toma una se devuelven se devuelven
consulta. (las Instantnea (las (las
sentencias de sentencias sentencias
dinmicas explicacin. dinmicas dinmicas
no se v Se no se no se
ejecutan). devuelven ejecutan). ejecutan).
los v Se v Se evalan
resultados recomiendan los ndices.
de la los ndices.
consulta.
Tabla 200. Interaccin de los valores de los registros especiales EXPLAIN (SQL dinmico) (continuacin)
Valores de EXPLAIN MODE
Valores de
EXPLAIN RECOMMEND EVALUATE
SNAPSHOT NO YES EXPLAIN REOPT INDEXES INDEXES
EXPLAIN v Se toma una v Se rellenan v Se rellenan v Las tablas de v Se rellenan v Se rellenan
Instantnea las tablas de las tablas de explicacin las tablas de las tablas de
de explicacin. explicacin. se rellenan explicacin. explicacin.
explicacin. v Se toma una v Se toma una cuando una v Se toma una v Se toma una
v Los Instantnea Instantnea sentencia Instantnea Instantnea
resultados de de est de de
de la explicacin. explicacin. calificada explicacin. explicacin.
consulta no v Los para su
v Los v Los v Los
se devuelven reoptimizacin
resultados resultados resultados resultados
(las durante la
de la de la de la de la
sentencias ejecucin.
consulta no consulta no consulta no consulta no
dinmicas se devuelven se devuelven v Instantnea se devuelven se devuelven
no se (las (las de (las (las
ejecutan). sentencias sentencias explicacin sentencias sentencias
dinmicas dinmicas tomada dinmicas dinmicas
no se no se cuando una no se no se
ejecutan). ejecutan). sentencia ejecutan). ejecutan).
est
v Se v Se evalan
calificada
recomiendan los ndices.
para su
los ndices.
reoptimizacin
durante la
ejecucin.
v Los
resultados
de la
consulta no
se devuelven
(las
sentencias
dinmicas o
de
vinculacin
incremental
no se
ejecutan).
Tabla 200. Interaccin de los valores de los registros especiales EXPLAIN (SQL dinmico) (continuacin)
Valores de EXPLAIN MODE
Valores de
EXPLAIN RECOMMEND EVALUATE
SNAPSHOT NO YES EXPLAIN REOPT INDEXES INDEXES
REOPT v Instantnea v Se rellenan v Se rellenan v Las tablas de v Se rellenan v Se rellenan
de las tablas de las tablas de explicacin las tablas de las tablas de
explicacin explicacin. explicacin. se rellenan explicacin. explicacin.
tomada v Instantnea v Instantnea cuando una v Instantnea v Instantnea
cuando una de de sentencia de de
sentencia explicacin explicacin est explicacin explicacin
est tomada tomada calificada tomada tomada
calificada cuando una cuando una para su cuando una cuando una
para su sentencia sentencia reoptimizacin sentencia sentencia
reoptimizacin est est durante la est est
durante la calificada calificada ejecucin. calificada calificada
ejecucin. para su para su v Instantnea para su para su
v Se reoptimizacin reoptimizacin de reoptimizacin reoptimizacin
devuelven durante la durante la explicacin durante la durante la
los ejecucin. ejecucin. tomada ejecucin. ejecucin.
resultados v Se v Los cuando una v Los v Los
de la devuelven resultados sentencia resultados resultados
consulta. los de la est de la de la
resultados consulta no calificada consulta no consulta no
de la se devuelven para su se devuelven se devuelven
consulta. (las reoptimizacin (las (las
sentencias durante la sentencias sentencias
dinmicas o ejecucin. dinmicas o dinmicas o
de v Se de de
vinculacin devuelven vinculacin vinculacin
incremental los incremental incremental
no se resultados no se no se
ejecutan). de la ejecutan). ejecutan).
consulta. v Se v Se evalan
recomiendan los ndices.
los ndices.
Tabla 201. Interaccin de la opcin de vinculacin EXPLAIN y CURRENT EXPLAIN MODE (continuacin)
Valores de la opcin de vinculacin EXPLAIN
Valores de EXPLAIN
MODE NO YES REOPT ALL
EXPLAIN v Las tablas de v Las tablas de v Las tablas de v Las tablas de
explicacin se explicacin se explicacin se explicacin se
rellenan para SQL rellenan para SQL rellenan para SQL rellenan para SQL
dinmico. esttico. esttico cuando una esttico.
v Los resultados de la v Las tablas de sentencia est v Las tablas de
consulta no se explicacin se calificada para su explicacin se
devuelven (las rellenan para SQL reoptimizacin rellenan para SQL
sentencias dinmico. durante la dinmico.
dinmicas no se ejecucin.
v Los resultados de la v Los resultados de la
ejecutan). consulta no se v Las tablas de consulta no se
devuelven (las explicacin se devuelven (las
sentencias rellenan para SQL sentencias
dinmicas no se esttico cuando una dinmicas no se
ejecutan). sentencia est ejecutan).
calificada para su
reoptimizacin
durante la
ejecucin.
v Los resultados de la
consulta no se
devuelven (las
sentencias
dinmicas no se
ejecutan).
REOPT v Las tablas de v Las tablas de v Las tablas de v Las tablas de
explicacin se explicacin se explicacin se explicacin se
rellenan para SQL rellenan para SQL rellenan para SQL rellenan para SQL
esttico cuando una esttico cuando una esttico cuando una esttico cuando una
sentencia est sentencia est sentencia est sentencia est
calificada para su calificada para su calificada para su calificada para su
reoptimizacin reoptimizacin reoptimizacin reoptimizacin
durante la durante la durante la durante la
ejecucin. ejecucin. ejecucin. ejecucin.
v Se devuelven los v Las tablas de v Las tablas de v Las tablas de
resultados de la explicacin se explicacin se explicacin se
consulta. rellenan para SQL rellenan para SQL rellenan para SQL
esttico cuando una esttico cuando una esttico cuando una
sentencia est sentencia est sentencia est
calificada para su calificada para su calificada para su
reoptimizacin reoptimizacin reoptimizacin
durante la durante la durante la
ejecucin. ejecucin. ejecucin.
v Se devuelven los v Se devuelven los v Se devuelven los
resultados de la resultados de la resultados de la
consulta. consulta. consulta.
Tabla 201. Interaccin de la opcin de vinculacin EXPLAIN y CURRENT EXPLAIN MODE (continuacin)
Valores de la opcin de vinculacin EXPLAIN
Valores de EXPLAIN
MODE NO YES REOPT ALL
RECOMMEND v Las tablas de v Las tablas de v Las tablas de v Las tablas de
INDEXES explicacin se explicacin se explicacin se explicacin se
rellenan para SQL rellenan para SQL rellenan para SQL rellenan para SQL
dinmico. esttico. esttico cuando una esttico.
v Los resultados de la v Las tablas de sentencia est v Las tablas de
consulta no se explicacin se calificada para su explicacin se
devuelven (las rellenan para SQL reoptimizacin rellenan para SQL
sentencias dinmico. durante la dinmico.
dinmicas no se ejecucin.
v Los resultados de la v Los resultados de la
ejecutan). consulta no se v Las tablas de consulta no se
v Se recomiendan los devuelven (las explicacin se devuelven (las
ndices. sentencias rellenan para SQL sentencias
dinmicas no se esttico cuando una dinmicas no se
ejecutan). sentencia est ejecutan).
calificada para su
v Se recomiendan los v Se recomiendan los
reoptimizacin
ndices. ndices.
durante la
ejecucin.
v Los resultados de la
consulta no se
devuelven (las
sentencias
dinmicas no se
ejecutan).
v Se recomiendan los
ndices.
EVALUATE INDEXES v Las tablas de v Las tablas de v Las tablas de v Las tablas de
explicacin se explicacin se explicacin se explicacin se
rellenan para SQL rellenan para SQL rellenan para SQL rellenan para SQL
dinmico. esttico. esttico cuando una esttico.
v Los resultados de la v Las tablas de sentencia est v Las tablas de
consulta no se explicacin se calificada para su explicacin se
devuelven (las rellenan para SQL reoptimizacin rellenan para SQL
sentencias dinmico. durante la dinmico.
dinmicas no se ejecucin.
v Los resultados de la v Los resultados de la
ejecutan). consulta no se v Las tablas de consulta no se
v Se evalan los devuelven (las explicacin se devuelven (las
ndices. sentencias rellenan para SQL sentencias
dinmicas no se esttico cuando una dinmicas no se
ejecutan). sentencia est ejecutan).
calificada para su
v Se evalan los v Se evalan los
reoptimizacin
ndices. ndices.
durante la
ejecucin.
v Los resultados de la
consulta no se
devuelven (las
sentencias
dinmicas no se
ejecutan).
v Se evalan los
ndices.
Tabla 202. Interaccin de la opcin de vinculacin EXPLSNAP y CURRENT EXPLAIN SNAPSHOT (continuacin)
Valores de la opcin de vinculacin EXPLSNAP
Valores de EXPLAIN
SNAPSHOT NO YES REOPT ALL
EXPLAIN v Se toma una v Se toma una v Se toma una v Se toma una
Instantnea de Instantnea de Instantnea de Instantnea de
explicacin para explicacin para explicacin para explicacin para
SQL dinmico. SQL esttico. SQL esttico SQL esttico.
v Los resultados de la v Se toma una cuando una v Se toma una
consulta no se Instantnea de sentencia est Instantnea de
devuelven (las explicacin para calificada para su explicacin para
sentencias SQL dinmico. reoptimizacin SQL dinmico.
dinmicas no se durante la
v Los resultados de la v Los resultados de la
ejecutan). ejecucin.
consulta no se consulta no se
devuelven (las v Se toma una devuelven (las
sentencias Instantnea de sentencias
dinmicas no se explicacin para dinmicas no se
ejecutan). SQL dinmico ejecutan).
cuando una
sentencia est
calificada para su
reoptimizacin
durante la
ejecucin.
v Los resultados de la
consulta no se
devuelven (las
sentencias
dinmicas no se
ejecutan).
REOPT v Se toma una v Se toma una v Se toma una v Se toma una
Instantnea de Instantnea de Instantnea de Instantnea de
explicacin para explicacin para explicacin para explicacin para
SQL dinmico SQL esttico SQL esttico SQL esttico
cuando una cuando una cuando una cuando una
sentencia est sentencia est sentencia est sentencia est
calificada para su calificada para su calificada para su calificada para su
reoptimizacin reoptimizacin reoptimizacin reoptimizacin
durante la durante la durante la durante la
ejecucin. ejecucin. ejecucin. ejecucin.
v Se devuelven los v Se toma una v Se toma una v Se toma una
resultados de la Instantnea de Instantnea de Instantnea de
consulta. explicacin para explicacin para explicacin para
SQL dinmico SQL dinmico SQL dinmico
cuando una cuando una cuando una
sentencia est sentencia est sentencia est
calificada para su calificada para su calificada para su
reoptimizacin reoptimizacin reoptimizacin
durante la durante la durante la
ejecucin. ejecucin. ejecucin.
v Se devuelven los v Se devuelven los v Se devuelven los
resultados de la resultados de la resultados de la
consulta. consulta. consulta.
Si hay activadores INSERT y desea completar la operacin de carga con las filas
corregidas de las tablas de excepciones sin disparar los activadores:
v Disee los activadores INSERT para que se disparen dependiendo del valor de
una columna definida explcitamente para esta finalidad.
v Descargue los datos de las tablas de excepciones y adalos utilizando el
programa de utilidad de carga. En ese caso, si desea volver a comprobar los
datos, tenga en cuenta que la comprobacin de restricciones no est confinadas a
las filas aadidas.
v Guarde el texto de definicin del activador de la vista de catlogos del sistema
relevante. Despus elimine el activador INSERT y utilice INSERT para transferir
las filas corregidas de las tablas de excepciones. Finalmente, vuelva a crear el
activador utilizando la definicin del activador guardada.
No se realiza una provisin explcita para evitar que se disparen los activadores
cuando se insertan filas desde las tablas de excepciones.
Slo se informa de una violacin por fila para las violaciones de ndices exclusivos.
Si hay valores con series largas o con tipos de datos LOB en la tabla, los valores no
se insertarn en la tabla de excepciones en caso de violacin de ndices exclusivos.
Por ejemplo, para recuperar una lista de todas las violaciones, repitiendo cada fila
con slo el nombre de la restriccin junto a ella, supongamos que la tabla T1
original tiene dos columnas: C1 y C2. Supongamos tambin que la tabla de
excepciones correspondiente, E1, tiene las columnas C1 y C2, que se corresponden
con las de la T1, as como una columna de mensajes, MSGCOL. La siguiente
consulta utiliza la recurrencia para enumerar un nombre de restriccin por fila
(que pertenece a las filas que tienen ms de una violacin):
WITH IV (C1, C2, MSGCOL, CONSTNAME, I, J) AS
(SELECT C1, C2, MSGCOL,
CHAR(SUBSTR(MSGCOL, 12,
INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,7,5)),5,0)))),
1,
15+INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,7,5)),5,0))
FROM E1
UNION ALL
SELECT C1, C2, MSGCOL,
CHAR(SUBSTR(MSGCOL, J+6,
INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,J+1,5)),5,0)))),
I+1,
J+9+INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,J+1,5)),5,0))
FROM IV
WHERE I < INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,1,5)),5,0))
) SELECT C1, C2, CONSTNAME FROM IV;
Para mostrar todas las filas que han violado una restriccin concreta, la consulta
anterior se puede ampliar de la siguiente manera:
WITH IV (C1, C2, MSGCOL, CONSTNAME, I, J) AS
(SELECT C1, C2, MSGCOL,
CHAR(SUBSTR(MSGCOL, 12,
INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,7,5)),5,0)))),
1,
15+INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,7,5)),5,0))
FROM E1
UNION ALL
SELECT C1, C2, MSGCOL,
CHAR(SUBSTR(MSGCOL, J+6,
INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,J+1,5)),5,0)))),
I+1,
J+9+INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,J+1,5)),5,0))
FROM IV
WHERE I < INTEGER(DECIMAL(VARCHAR(SUBSTR(MSGCOL,1,5)),5,0))
) SELECT C1, C2, CONSTNAME FROM IV WHERE CONSTNAME = nombrerestriccin;
Si una sentencia invoca una rutina, la indicacin de acceso a datos SQL efectiva
para la sentencia ser el mayor de:
v La indicacin de acceso a datos SQL de la sentencia de la tabla siguiente.
v La indicacin de acceso a datos SQL de la rutina especificada al crear la rutina.
Por ejemplo, la sentencia CALL tiene una indicacin de acceso a datos SQL de
CONTAINS SQL. Sin embargo, si se llama a un procedimiento almacenado
definido como READS SQL DATA, la indicacin de acceso a datos SQL efectiva
para la sentencia CALL es READS SQL DATA.
Cuando una sentencia invoca una sentencia SQL, la indicacin de acceso a datos
SQL efectiva para la sentencia no debe sobrepasar la indicacin de acceso a datos
SQL declarada para la rutina. Por ejemplo, una funcin definida como READS SQL
DATA no podra llamar a un procedimiento almacenado definido como MODIFIES
SQL DATA.
Tabla 204. Sentencia de SQL e indicacin del acceso a datos SQL
CONTAINS READS SQL MODIFIES
Sentencia de SQL NO SQL SQL DATA SQL DATA
ALTER... N N N S
BEGIN DECLARE S(1) S S S
SECTION
CALL N S S S
CLOSE N N S S
COMMENT ON N N N S
COMMIT N N(4) N(4) N(4)
COMPOUND SQL N S S S
CONNECT(2) N N N N
CREATE N N N S
DECLARE CURSOR S(1) S S S
DECLARE GLOBAL N N N S
TEMPORARY TABLE
DELETE N N N S
DESCRIBE N S S S
DISCONNECT(2) N N N N
Tabla 204. Sentencia de SQL e indicacin del acceso a datos SQL (continuacin)
CONTAINS READS SQL MODIFIES
Sentencia de SQL NO SQL SQL DATA SQL DATA
DROP ... N N N S
END DECLARE SECTION S(1) S S S
EXECUTE N S(3) S(3) S
EXECUTE IMMEDIATE N S(3) S(3) S
EXPLAIN N N N S
FETCH N N S S
FREE LOCATOR N S S S
FLUSH EVENT MONITOR N N N S
GRANT ... N N N S
INCLUDE S(1) S S S
INSERT N N N S
LOCK TABLE N S S S
OPEN N N S (5) S
PREPARE N S S S
REFRESH TABLE N N N S
RELEASE N N N N
CONNECTION(2)
RELEASE SAVEPOINT N N N S
RENAME TABLE N N N S
REVOKE ... N N N S
ROLLBACK N N(4) N(4) N(4)
ROLLBACK TO N N N S
SAVEPOINT
SAVEPOINT N N N S
SELECT INTO N N S (5) S
SET CONNECTION(2) N N N N
SET INTEGRITY N N N S
SET registro especial N S S S
UPDATE N N N S
VALUES INTO N N S S
WHENEVER S(1) S S S
Notas:
1. Aunque la opcin NO SQL implica que no puede especificarse ninguna
sentencia de SQL, las sentencias no ejecutables no estn restringidas.
2. Las sentencias de gestin de conexiones no estn permitidas en ningn
contexto de ejecucin de rutinas.
3. Depende de la sentencia que se ejecute. La sentencia especificada para la
sentencia EXECUTE debe ser una sentencia que est permitida en el contexto
del nivel de acceso SQL que est vigente. Por ejemplo, si el nivel acceso SQL en
vigor es READS SQL DATA, la sentencia no deber ser INSERT, UPDATE ni
DELETE.
Los programas que utilizan la sentencia de SQL CALL se disean para ejecutarse
en dos partes, una en el cliente y la otra en el servidor. El procedimiento del
servidor en la base de datos se ejecuta en la misma transaccin que la aplicacin
cliente. Si la aplicacin cliente y el procedimiento estn en la misma particin de
base de datos, el procedimiento almacenado se ejecuta localmente.
Invocacin:
Autorizacin:
Sintaxis:
CALL nombre-procedimiento
variable-lengpral ( )
,
variable-lengpral
USING DESCRIPTOR nombre-descriptor
Descripcin:
nombre-procedimiento o variable-lengpral
Identifica el procedimiento que se va a llamar. El nombre de procedimiento
puede especificarse directamente o dentro de una variable del lenguaje
principal. El procedimiento identificado debe existir en el servidor actual
(SQLSTATE 42724).
funcin func desde esa biblioteca. Esto permite que se coloquen mltiples
funciones en la misma biblioteca de procedimientos.
La biblioteca de procedimientos est ubicada en los directorios o
especificada en la variable LIBPATH, tal como se describe en el
procedimiento-nombre.
va-absoluta!nombre-funcin
La va-absoluta especifica la va de acceso completa a la biblioteca de
procedimientos almacenados.
En un sistema UNIX, por ejemplo, si se especifica /u/terry/proclib!func,
se obtiene la biblioteca de procedimientos proclib del directorio /u/terry
y se ejecuta la funcin func desde esa biblioteca.
LEN.SQLLONGLEN
SQLDATALEN
SQLDATATYPE_NAME
Notas:
v Utilizacin de tipos de datos de objeto grande (LOB):
Si la aplicacin cliente y servidora tiene que especificar datos LOB de una
SQLDA, asigne el doble al nmero de entradas SQLVAR.
Desde DB2 Versin 2, los procedimientos soportan los tipos de datos LOB. Estos
tipos de datos no estn soportados por todos los clientes o servidores de
versiones anteriores.
v Recuperacin de DB2_RETURN_STATUS desde un procedimiento SQL:
Si un procedimiento SQL emite satisfactoriamente una sentencia RETURN junto
con un valor de estado, este valor se coloca en el primer campo SQLERRD de la
SQLCA. Si la sentencia CALL se emite en un procedimiento SQL, utilice la
sentencia GET DIAGNOSTICS para recuperar el valor de
DB2_RETURN_STATUS. El valor es 1 cuando SQLSTATE indica un error.
v Devolucin de conjuntos de resultados de los procedimientos:
Si el programa de aplicacin cliente se escribe utilizando CLI, los conjuntos de
resultados pueden devolverse directamente a la aplicacin cliente. El
procedimiento indica que va a devolverse un conjunto de resultados declarando
un cursor en ese conjunto de resultados, abriendo un cursor en el conjunto de
resultados y dejando el cursor abierto al salir del procedimiento.
Al final de un procedimiento:
Por cada cursor que se ha dejado abierto, se devuelve un conjunto resultante
a la aplicacin.
Si se deja abierto ms de un cursor, los conjuntos del resultado se devuelven
en el orden en que se han abierto sus cursores.
Slo se devuelven las filas no ledas. Por ejemplo, si el conjunto de resultados
de un cursor tiene 500 filas, y el procedimiento ha ledo 150 de dichas filas
una vez que finaliza el procedimiento, se devolvern a la aplicacin desde la
fila 151 a la fila 500.
v Manejo de registros especiales:
Los valores de los registros especiales utilizados para el llamador los hereda el
procedimiento durante la invocacin y se restauran al devolver el control al
llamador. Los registros especiales se pueden modificar dentro de un
procedimiento, pero estos cambios no tienen efecto en el llamador. Esto no es
cierto para los procedimientos de versiones anteriores (aqullos definidos con el
estilo de parmetro DB2DARI o situados en la biblioteca por omisin), en los
que los cambios efectuados en los registros especiales de un procedimiento se
convierten en los valores del llamador.
v Compatibilidades
Existe una forma nueva, preferida de la sentencia CALL que puede incluirse en
una aplicacin (precompilando la aplicacin con la opcin CALL_RESOLUTION
IMMEDIATE) o que puede prepararse de forma dinmica.
Ejemplos:
Ejemplo 1:
Ejemplo 2:
Ejemplo 3:
stpCall.setInt( 1, variable1 ) ;
stpCall.setBigDecimal( 2, variable2 ) ;
stpCall.setInt( 3, variable3 ) ;
stpCall.registerOutParameter( 2, Types.DECIMAL, 2 ) ;
stpCall.registerOutParameter( 3, Types.INTEGER ) ;
stpCall.execute() ;
variable2 = stpCall.getBigDecimal(2) ;
variable3 = stpCall.getInt(3) ;
...
Informacin relacionada:
v Sentencia CALL en Consulta de SQL, Volumen 2
Elementos de idioma
Caracteres
Cada carcter de mltiples bytes se considera una letra con la excepcin del
carcter blanco de doble byte, que se considera un carcter especial.
Seales
Las letras alfabticas en minsculas multi byte no se convierten a maysculas. Esto
difiere de las letras alfabticas minsculas de un solo byte en seales, que
generalmente se convierten a maysculas.
Identificadores
Identificadores de SQL
La conversin entre una pgina de cdigos de doble byte y una pgina de cdigos
EUC puede dar lugar a la conversin de caracteres de doble byte en caracteres
multi byte codificados con ms de 2 bytes. Como resultado, un identificador que
cumpla con la longitud mxima de la pgina de cdigos de doble byte puede
superar la longitud en la pgina de cdigos EUC. La seleccin de identificadores
para este tipo de entorno se debe realizar con cuidado para evitar la ampliacin
ms all de la longitud mxima del identificador.
Tipos de datos
Series de caracteres
En una base de datos MBCS, las series de caracteres pueden contener una
combinacin de caracteres de un juego de caracteres de un solo byte (SBCS) y de
juegos de caracteres multi byte (MBCS). Cuando se utilizan estas series, las
operaciones pueden proporcionar resultados diferentes si se basan en caracteres
(los datos se tratan como caracteres) o si se basan en bytes (los datos se tratan
como bytes). Compruebe la descripcin de la funcin o de la operacin para
determinar cmo se procesan las series mixtas.
Series grficas
Una serie grfica es una secuencia de datos de caracteres de doble byte. Para
permitir el almacenamiento de datos EUC en japons o en chino tradicional en
columnas grficas, los caracteres EUC se codifican en UCS-2. Los caracteres que no
son caracteres de doble byte bajo todos los esquemas de codificacin soportados
(por ejemplo, PC o EBCDIC DBCS) no se deben utilizar con columnas grficas. Los
resultados de utilizar caracteres que no sean los caracteres de doble byte puede dar
lugar a la sustitucin por caracteres de sustitucin durante la conversin. La
recuperacin de dichos datos no devolver el mismo valor que se ha entrado.
Asignaciones y comparaciones
Asignaciones de series: La conversin de una serie se realiza antes de la
asignacin. En los casos en los que interviene una pgina de cdigos eucJP/eucTW
y una pgina de cdigos DBCS, una serie de caracteres se puede ampliar (DBCS a
eucJP/eucTW) o reducir (eucJP/eucTW a DBCS). Esto puede dar lugar a errores en
la asignacin de almacenamiento y al truncado en la asignacin de recuperacin.
Cuando el error en la asignacin de almacenamiento se debe a la ampliacin
durante la conversin, se devuelve SQLSTATE 22524 en lugar de SQLSTATE 22001.
Paralelamente, las asignaciones en las que intervienen series grficas pueden dar
lugar a la conversin de un carcter de doble byte codificado UCS-2 en un carcter
de sustitucin en una pgina de cdigos de PC o EBCDIC DBCS para caracteres
que no tienen un carcter correspondiente de doble byte. Las asignaciones que
sustituyen caracteres por caracteres de sustitucin lo indicarn estableciendo el
campo SQLWARN10 de la SQLCA en W.
Apndice N. Consideraciones sobre el cdigo UNIX ampliado (EUC) en japons y chino tradicional 895
Reglas para conversiones de series
La concatenacin de la serie nula con la variable del lenguaje principal forzar que
la conversin se realice antes de que se ejecute la conversin. Esta consulta se
puede preparar en el entorno DBCS a eucJP/eucTW, aunque puede producirse un
error de truncado en el momento de la ejecucin.
Esta tcnica (concatenacin de series nulas con conversin) se puede utilizar para
manejar el lmite de 254 bytes similar para SELECT DISTINCT o para utilizar la
columna en clusulas ORDER BY o GROUP BY.
Constantes
Constantes de series grficas
El cliente EUC en japons o chino tradicional puede contener caracteres de un solo
byte o multi byte (como una serie de caracteres mixtos). La serie no debe contener
ms de 2000 bytes. Se recomienda utilizar en constantes grficas nicamente
caracteres que se conviertan en caracteres de doble byte en todas las pginas de
cdigos de doble byte de PC y EBCDIC relacionadas. Una constante de serie
grfica de una sentencia SQL se convierte de la pgina de cdigos del cliente a la
codificacin de doble byte del servidor de bases de datos. Para un servidor EUC
en japons o chino tradicional, la constante se convierte a UCS-2, la codificacin de
doble byte utilizada para series grficas. Para un servidor de doble byte, la
constante se convierte de la pgina de cdigos del cliente a la pgina de cdigos
DBCS del servidor.
Funciones
En el diseo de funciones definidas por el usuario se debe tener en cuenta el
impacto del soporte de EUC en japons y chino tradicional en los tipos de datos de
parmetro. Una parte de la resolucin de funciones tiene en cuenta los tipos de
datos de los argumentos que se pasan a una llamada de funcin. Los argumentos
de series de caracteres mixtos en los que interviene un cliente EUC en japons o
chino tradicional puede requerir bytes adicionales para especificar el argumento.
Esto puede requerir que se modifique el tipo de datos para permitir un aumento
de longitud. Por ejemplo, pueden necesitarse 4001 bytes para representar una serie
de caracteres en la aplicacin (un LONG VARCHAR) que quepa en una serie
VARCHAR(4000) en el servidor. Si no se incluye una signatura de funcin que
permita que el argumento sea LONG VARCHAR, la resolucin de la funcin no
encontrar una funcin.
Existen algunas funciones que no permiten series largas por varios motivos. El uso
de argumentos LONG VARCHAR o CLOB con estas funciones no resultar
satisfactorio. Por ejemplo, LONG VARCHAR como el segundo argumento de la
funcin POSSTR integrada fallar en la resolucin de funcin (SQLSTATE 42884).
Expresiones
Con el operador de concatenacin
La ampliacin potencial de uno de los operandos de la concatenacin puede hacer
que el tipo de datos y la longitud de los operandos concatenados se modifique
cuando se trabaja en un entorno que incluya un servidor de ases de datos EUC en
japons o chino tradicional. Por ejemplo, con un servidor EUC en el que el valor
de una variable del lenguaje principal puede doblar su longitud, tenga en cuenta el
siguiente ejemplo.
CHAR200 CONCAT :char50
Predicados
Predicado LIKE
Para un predicado LIKE en el que intervienen series de caracteres mixtos en una
base de datos EUC:
v Un carcter de subrayado de media anchura SBCS hace referencia a un carcter
SBCS.
v Un carcter de subrayado de anchura completa no SBCS hace referencia a un
carcter no SBCS.
v Un carcter de signo de porcentaje de media anchura SBCS o de anchura
completa no SBCS hace referencia a cero o ms caracteres SBCS o no SBCS.
El carcter de escape debe ser un carcter SBCS o no SBCS. En una columna de
caracteres, el carcter de escape tambin puede ser una serie binaria que contenga
exactamente un byte.
Tenga en cuenta que el uso del carcter de subrayado puede producir diferentes
resultados, en funcin de la pgina de cdigos de la operacin LIKE. Por ejemplo,
los caracteres Katakana en EUC en japons son caracteres multi byte (CS2), pero en
la pgina de cdigos DBCS en japons son caracteres de un solo byte. Una consulta
con el carcter de subrayado de un solo byte en la expresin-patrn devolvera
ocurrencias de carcter Katakana en la posicin del carcter de subrayado
procedentes de un servidor DBCS en japons. Sin embargo, las mismas filas
procedentes de la tabla equivalente en un servidor EUC en japons no se
devolveran, puesto que los caracteres Katakana slo coincidirn con un carcter de
subrayado de doble byte.
Para un predicado LIKE en el que intervienen series grficas en una base de datos
EUC:
v Un carcter de subrayado de anchura completa (U+FF3F) hace referencia a un
carcter Unicode.
v Un carcter de signo de porcentaje de anchura completa (U+FF05) hace
referencia a cero o ms caracteres Unicode.
Funciones
LENGTH
El proceso de esta funcin no difiere para series de caracteres mixtos en un entorno
EUC. El valor devuelto es la longitud de la serie en la pgina de cdigos del
argumento. Al igual que en la Versin 8, si el argumento es una variable del
lenguaje principal, el valor devuelto es la longitud de la serie en la pgina de
cdigos de la base de datos. Cuando se utiliza esta funcin para determinar la
longitud de un valor, se debe tener en cuenta cmo se utiliza la longitud. Esto
resulta especialmente cierto para constantes de series mixtas, ya que la longitud se
Apndice N. Consideraciones sobre el cdigo UNIX ampliado (EUC) en japons y chino tradicional 897
LENGTH
SUBSTR
La funcin SUBSTR opera sobre series de caracteres mixtos byte a byte. La serie
resultante puede incluir, por tanto, fragmentos de caracteres multi byte al principio
o al final de la serie resultante. No se proporciona ningn proceso para detectar o
procesar fragmentos de caracteres.
TRANSLATE
La funcin TRANSLATE da soporte a series de caracteres mixtos que incluyen
caracteres multi byte. Los caracteres correspondientes de exp-a-serie y exp-de-serie
deben tener el mismo nmero de bytes y no puede terminar con parte de un
carcter multi byte.
VARGRAPHIC
La funcin VARGRAPHIC sobre un operando de serie de caracteres en una pgina
de cdigos EUC en japons o chino tradicional devuelve una serie grfica en la
pgina de cdigos UCS-2.
v Los caracteres de un solo byte se convierten primero a su carcter
correspondiente de doble byte en el juego de cdigos al que pertenecen (eucJP o
eucTW). Luego se convierten a la representacin UCS-2 correspondiente. Si no
hay ninguna representacin de doble byte, el carcter se convierte al carcter de
sustitucin de doble byte definido para dicho juego de cdigos antes de que se
convierta a la representacin UCS-2.
v Los caracteres de eucJP que son Katakana (eucJP CS2) son realmente caracteres
de un solo byte en algunos esquemas de codificacin. Por lo tanto, se convierten
a los caracteres correspondientes de doble byte en eucJP o al carcter de
sustitucin de doble byte antes de que se conviertan a UCS-2.
v Los caracteres multi byte se convierten a sus representaciones UCS-2.
Sentencias
CONNECT
El proceso de una sentencia CONNECT satisfactoria devuelve informacin en la
SQLCA que es importante cuando existen la posibilidad de que las aplicaciones
procesen datos en un entorno que incluya una pgina de cdigos EUC en japons
o chino tradicional en el cliente o servidor. El campo SQLERRD(1) proporciona la
mxima ampliacin de una serie de caracteres mixtos cuando se convierte de la
pgina de cdigos de la aplicacin a la pgina de cdigos de la base de datos. El
campo SQLERRD(2) proporciona la mxima ampliacin de una serie de caracteres
mixtos cuando se convierte de la pgina de cdigos de la base de datos a la pgina
898 Consulta de SQL - Volumen 1
CONNECT
PREPARE
Los tipos de datos determinados para marcadores de parmetros sin tipo no se
modifican en un entorno que incluye EUD en japons o chino tradicional. Como
resultado, puede ser necesario en algunos casos utilizar marcadores de parmetros
con tipo para proporcionar longitud suficiente para series de caracteres mixtos en
eucJP o eucTW. Por ejemplo, tenga en cuenta una insercin en una columna
CHAR(10). La preparacin de la sentencia:
INSERT INTO T1 (CH10) VALUES (?)
Informacin relacionada:
v Sentencia PREPARE en Consulta de SQL, Volumen 2
Apndice N. Consideraciones sobre el cdigo UNIX ampliado (EUC) en japons y chino tradicional 899
PREPARE
emptyurl = ""
hostport = host [ ":" port ]
host = hostname | hostnumber
hostname = *[ domainlabel "." ] toplabel
domainlabel = alphadigit | alphadigit *[ alphadigit | "-" ] alphadigit
toplabel = alpha | alpha *[ alphadigit | "-" ] alphadigit
alphadigit = alpha | digit
hostnumber = digits "." digits "." digits "." digits
port = digits
Los URL vacos (de longitud cero) tambin pueden utilizarse para valores de
tipo DATALINK. Son tiles para actualizar columnas DATALINK cuando se
notifican excepciones de reconciliacin e intervienen columnas DATALINK que
no pueden contener nulos. Se utiliza un URL de longitud cero para actualizar la
columna y provocar la desconexin de un archivo.
Definiciones varias
lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" |
"i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" |
"q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" |
"y" | "z"
hialpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" |
"I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" |
"Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" |
"Y" | "Z"
alpha = lowalpha | hialpha
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
"8" | "9"
safe = "$" | "-" | "_" | "." | "+"
extra = "!" | "*" | "'" | "(" | ")" | ","
hex = digit | "A" | "B" | "C" | "D" | "E" | "F" |
"a" | "b" | "c" | "d" | "e" | "f"
escape = "%" hex hex
unreserved = alpha | digit | safe | extra
uchar = unreserved | escape
digits = 1*digit
Los caracteres en blanco iniciales y de cola son eliminados por DB2 durante el
anlisis sintctico. Adems, los nombres de esquema (HTTP, FILE, UNC) y de
lenguaje principal no son sensibles a las maysculas/minsculas y siempre se
guardan en maysculas en la base de datos.
Puede acceder a informacin tcnica adicional de DB2 como, por ejemplo, notas
tcnicas, White papers y Redbooks en lnea en el sitio ibm.com. Acceda al sitio de
la biblioteca de software de gestin de informacin de DB2 en
http://www.ibm.com/software/data/sw-library/.
Conceptos relacionados:
v Caractersticas del Centro de informacin de DB2 en Centro de informacin de
DB2 en lnea
v Archivos de ejemplo en Temas de ejemplos
Tareas relacionadas:
v Invocacin de ayuda de mandatos desde el procesador de lnea de mandatos
en Consulta de mandatos
v Invocacin de ayuda de mensajes desde el procesador de lnea de mandatos
en Consulta de mandatos
v Actualizacin del Centro de informacin de DB2 instalado en el sistema o en
un servidor de intranet en la pgina 909
Informacin relacionada:
v Biblioteca tcnica de DB2 en formato PDF en la pgina 904
Aunque las tablas identifican los manuales en copia impresa disponibles, puede
que dichos manuales no estn disponibles en su pas o regin.
Conceptos relacionados:
v Visin general de la informacin tcnica de DB2 en la pgina 903
v Acerca de las notas del release en Notas del release
Tareas relacionadas:
v Pedido de manuales de DB2 en copia impresa en la pgina 906
Procedimiento:
Conceptos relacionados:
v Visin general de la informacin tcnica de DB2 en la pgina 903
Informacin relacionada:
v Biblioteca tcnica de DB2 en formato PDF en la pgina 904
Procedimiento:
donde sqlstate representa un estado de SQL vlido de cinco dgitos y cdigo de clase
representa los dos primeros dgitos del estado de SQL.
Tareas relacionadas:
v Invocacin de ayuda de mandatos desde el procesador de lnea de mandatos
en Consulta de mandatos
v Invocacin de ayuda de mensajes desde el procesador de lnea de mandatos
en Consulta de mandatos
Para obtener los temas de DB2 Versin 8, vaya a la URL del Centro de informacin
Versin 8 en: http://publib.boulder.ibm.com/infocenter/db2luw/v8/.
Tareas relacionadas:
v Setting up access to DB2 contextual help and documentation en Administration
Guide: Implementation
Procedimiento:
Conceptos relacionados:
v Visin general de la informacin tcnica de DB2 en la pgina 903
Nota: Tambin existen actualizaciones en CD. Para conocer detalles sobre cmo
configurar el Centro de informacin para instalar actualizaciones desde
CD, vea los enlaces correspondientes.
Si hay paquetes de actualizacin disponibles, utilice la funcin Actualizar para
descargar los paquetes. (La funcin actualizar slo est disponible en
modalidad autnoma.)
3. Detenga el Centro de informacin autnomo y reinicie el servicio Centro de
informacin de DB2 en el sistema.
Procedimiento:
Nota: El script help_end contiene los mandatos necesarios para concluir sin
peligro los procesos que se iniciaron mediante el script help_start. No
utilice ningn otro mtodo para concluir el script help_start.
7. Reinicie el servicio Centro de informacin de DB2.
v En Windows, pulse en Inicio Panel de control Herramientas
administrativas Servicios. Despus, pulse con el botn derecho del ratn
en el servicio Centro de informacin de DB2 y seleccione Inicio.
Conceptos relacionados:
v Opciones de instalacin del Centro de informacin de DB2 en Gua rpida de
iniciacin para servidores DB2
Tareas relacionadas:
v Instalacin del Centro de informacin de DB2 utilizando el asistente de
instalacin de DB2 (Linux) en Gua rpida de iniciacin para servidores DB2
v Instalacin del Centro de informacin de DB2 mediante el Asistente de
instalacin de DB2 (Windows) en Gua rpida de iniciacin para servidores DB2
Antes de comenzar:
Conceptos relacionados:
v Visual Explain overview en Administration Guide: Implementation
Conceptos relacionados:
v Introduction to problem determination en Troubleshooting Guide
v Visin general de la informacin tcnica de DB2 en la pgina 903
Trminos y condiciones
Los permisos para utilizar estas publicaciones se otorgan sujetos a los siguientes
trminos y condiciones.
Las referencias hechas en esta publicacin a sitios Web que no son de IBM se
proporcionan slo para la comodidad del usuario y no constituyen un aval de esos
sitios Web. La informacin contenida en estos sitios Web no forma parte de la
informacin del presente producto IBM y el usuario es responsable de la
utilizacin de dichos sitios.
Los licenciatarios de este programa que deseen obtener informacin sobre l con el
fin de habilitar: (i) el intercambio de informacin entre programas creados de
forma independiente y otros programas (incluido ste) y (ii) el uso mutuo de la
informacin intercambiada, deben ponerse en contacto con:
IBM Canada Limited
Office of the Lab Director
8200 Warden Avenue
Markham, Ontario
L6G 1C7
CANAD
LICENCIA DE COPYRIGHT:
Marcas registradas
Los nombres de empresas, productos o servicios identificados en la biblioteca de
documentacin de DB2 Versin 9 pueden ser marcas registradas o marcas de
servicios de International Business Machines Corporation o de otras empresas. La
informacin sobre marcas registradas de IBM Corporation en los Estados Unidos
y/o en otros pases est ubicada en http://www.ibm.com/legal/copytrade.shtml.
Intel, Itanium, Pentium y Xeon son marcas registradas de Intel Corporation en los
Estados Unidos y/o en otros pases.
Java y todas las marcas registradas basadas en Java son marcas registradas de Sun
Microsystems, Inc. en los Estados Unidos y/o en otros pases.
UNIX es una marca registrada de The Open Group en los Estados Unidos y/o en
otros pases.
Linux es una marca registrada de Linus Torvalds en los Estados Unidos y/o en
otros pases.
ndice 919
consultas (continuacin) COSH, funcin escalar (continuacin)
recursiva 574 valores y argumentos 320
contenedores COT, funcin escalar
definicin 27 descripcin 321
control de acceso basado en etiquetas (LBAC) valores y argumentos 321
efecto en las tablas de excepciones 879 COUNT, funcin 279
lmites 585 COUNT_BIG, funcin
convenios de denominacin descripcin de formato detallado 280
identificadores 65 valores y argumentos 280
reglas para columna calificada 65 COVARIANCE, funcin 282
conversin CS (estabilidad del cursor)
entre tipos de datos 110 nivel de aislamiento 23
expresin de tipo estructurado para un subtipo 219 CUBE, agrupacin
tipo de datos 204 descripcin de consulta 530
tipos de referencia 110 ejemplos 530
tipos definidos por el usuario 110 CURRENT CLIENT_ACCTNG, registro especial 144
Valores XML 207 CURRENT CLIENT_APPLNAME, registro especial 145
conversin de caracteres CURRENT CLIENT_USERID, registro especial 146
reglas al comparar series 133 CURRENT CLIENT_WRKSTNNAME, registro especial 147
reglas para asignaciones 117 CURRENT DATE, registro especial 148
reglas para la comparacin 117 CURRENT DBPARTITIONNUM, registro especial 149
reglas para operaciones que combinan series 133 CURRENT DEFAULT TRANSFORM GROUP, registro
conversin de coma flotante a decimal 117 especial 150
conversin decimal CURRENT DEGREE, registro especial
enteros 117 descripcin 151
conversiones CURRENT EXPLAIN MODE, registro especial
CHAR, devolucin de valores de indicacin de fecha y descripcin 152
hora convertidos 308 CURRENT EXPLAIN SNAPSHOT, registro especial
DBCS de SBCS y DBCS mezclados 465 descripcin 153
de fecha y hora a variable de serie 117 CURRENT FEDERATED ASYNCHRONY, registro
de serie de caracteres a indicacin de fecha y hora 443 especial 154
numrico, escala y precisin, resumen 117 CURRENT FUNCTION PATH, registro especial
reglas descripcin 160
asignaciones 117 CURRENT IMPLICIT XMLPARSE OPTION, registro
comparaciones 117 especial 155
comparaciones de series 133 CURRENT ISOLATION, registro especial 156
operaciones que combinan series 133 CURRENT LOCK TIMEOUT, registro especial 157
serie de caracteres de doble byte 465 CURRENT MAINTAINED TABLE TYPES FOR
valores de coma flotante de expresiones numricas 343, OPTIMIZATION, registro especial 158
405 CURRENT PACKAGE PATH, registro especial 159
valores decimales de expresiones numricas 333 CURRENT PATH, registro especial
correlacin, particionamiento 27 descripcin 160
correlacin de tipos CURRENT QUERY OPTIMIZATION, registro especial
nombre 65 descripcin 161
correlaciones de funciones CURRENT REFRESH AGE, registro especial
opciones descripcin 162
valores vlidos 788 CURRENT SCHEMA, registro especial 163
correlaciones de particiones CURRENT SERVER, registro especial 164
definicin 27 CURRENT SQLID, registro especial 163
correlaciones de tipos de datos CURRENT TIME, registro especial 165
descripcin 51 CURRENT TIMESTAMP, registro especial 166
directas 811 CURRENT TIMEZONE, registro especial 167
inversas 819 CURRENT USER, registro especial 168
correlaciones de tipos directas
correlaciones por omisin 811
correlaciones de tipos inversas
correlaciones por omisin 819
D
DATALINK, tipo de datos
correlaciones de usuarios
descripcin 102
descripcin 48
especificaciones BNF 901
opciones 48
DATAPARTITIONNUM, funcin escalar
valores vlidos 807
descripcin 322
CORRELATION, funcin 278
valores y argumentos 322
COS, funcin escalar
DATE, funcin
descripcin 319
conversin de formato de valor a fecha 323
valores y argumentos 319
descripcin 323
COSH, funcin escalar
DATE, tipo de datos
descripcin 320
CHAR, utilizacin en conversin de formato 308
ndice 921
E EXCEPT, operador de seleccin completa 569
EXECUTE, privilegio
elemento de cdigo 29 funciones 172
ENCRYPT, funcin escalar 345 mtodos 181
entero superior 90 EXECUTE, sentencia
enteros SQL dinmico 1
en clusula ORDER BY 530 EXECUTE IMMEDIATE, sentencia
resumen de conversin decimal 117 SQL dinmico 1
enteros grandes 90 EXP, funcin
enteros pequeos descripcin 348
Vea SMALLINT, tipo de datos 90 valores y argumentos 348
entornos de bases de datos particionadas EXPLAIN_ARGUMENT, tabla 836
descripcin 1 EXPLAIN_DIAGNOSTIC, tabla 841
Entrez EXPLAIN_DIAGNOSTIC_DATA, tabla 842
versiones soportadas 52 EXPLAIN_INSTANCE, tabla 844
errores de referencia ambigua 65 EXPLAIN_OBJECT, tabla 847
errores de referencia no definida 65 EXPLAIN_OPERATOR, tabla 850
escala EXPLAIN_PREDICATE tabla 852
de datos EXPLAIN_STATEMENT, tabla 855
comparacin en SQL 117 EXPLAIN_STREAM, tabla 857
conversin de nmero en SQL 117 expresin
determinada por la variable SQLLEN 601 tipo estructurado
de nmeros conversin en un subtipo 219
determinada por la variable SQLLEN 601 expresin-agrupacin 530
ESCAPE, clusula expresin de tipo estructurado
LIKE, predicado 236 conversin en un subtipo 219
espacio, reglas de control 63 expresiones
espacios de tablas CASE 202
descripcin 27 en clusula ORDER BY 530
nombre 65 en una subseleccin 530
especificaciones escalares, seleccin completa 189
CAST 204 expresiones-agrupacin en GROUP BY 530
XMLCAST 207 operadores aritmticos 189
esquema de codificacin 29 operadores de concatenacin 189
esquemas operadores matemticos 189
controlar la utilizacin 3 operandos de coma flotante 189
definicin 3 operandos decimales 189
privilegios 3 operandos enteros 189
reservados 827 prioridad de operacin 189
estabilidad de lectura (RS) SELECT, diagrama de sintaxis en la clusula 530
descripcin 23 sin operadores 189
estabilidad del cursor (CS) expresiones de resultado de CASE
nivel de aislamiento 23 tipo de datos del resultado 129
establecer estado pendiente de integridad 6 expresiones de seleccin completa escalares 189
estado de conexin actual 31 expresiones de tabla
estado de conexin inactivo 31 comunes 2
estado de conexin mantenido 31 descripcin 2
estado de conexin pendiente de liberacin 31 expresiones de tabla comunes 574
estado no conectado 31 expresiones de tabla anidadas 530
estados expresiones de tabla comunes
conexin 31 definicin 574
estados de conexin recursiva 574
descripcin 31 sentencia select 574
unidad de trabajo remota 31
estructuras de datos
decimal empaquetado 601
etiquetas F
nombres de objetos en procedimientos SQL 65 fecha y hora
etiquetas de seguridad (LBAC) aritmtica 197
longitud de nombre de componente 585 operaciones 197
longitud del nombre 585 fechas
polticas formatos de representacin de serie 99
longitud del nombre 585 mes, devolucin del valor de indicacin de fecha y
etiquetas de seguridad LBAC hora 389
longitud de nombre de componente 585 utilizacin de ao en expresiones 508
longitud del nombre 585 fila de autorreferencia 6
EUC (extended UNIX code) fila del total 530
consideraciones 893 fila dependiente 6
ndice 923
funciones (continuacin) funciones (continuacin)
escalares (continuacin) escalares (continuacin)
COALESCE 317 RAISE_ERROR 403
CONCAT 318 RAND 404
COS 319 REAL 405
COSH 320 REC2XML 406
COT 321 REPEAT 411
DATAPARTITIONNUM 322 REPLACE 412
DATE 323 RIGHT 413
DAY 324 ROUND 414
DAYNAME 325 RTRIM 416, 417
DAYOFWEEK 326 SECLABEL 418
DAYOFYEAR 328 SECLABEL_BY_NAME 419
DAYS 329 SECLABEL_TO_CHAR 420
DBCLOB 330 SECOND 422
DBPARTITIONNUM 331 SIGN 423
DECIMAL 333 SIN 424
DECRYPTBIN 337 SINH 425
DECRYPTCHAR 337 SMALLINT 426
DEGREES 339 SOUNDEX 427
DEREF 340 SPACE 428
descripcin 172, 296 SQRT 429
DIFFERENCE 341 STRIP 430
DIGITS 342 SUBSTR 431
DOUBLE 343 SUBSTRING 434
DOUBLE_PRECISION 343 TABLE_NAME 437
ENCRYPT 345 TABLE_SCHEMA 438
EVENT_MON_STATE 347 TAN 440
EXP 348 TANH 441
FLOAT 349 TIME 442
FLOOR 350 TIMESTAMP 443
GENERATE_UNIQUE 352 TIMESTAMP_FORMAT 444
GETHINT 351 TIMESTAMP_ISO 446
GRAPHIC 354 TIMESTAMPDIFF 447
HASHEDVALUE 356 TO_CHAR 449
HEX 358 TO_DATE 450
HOUR 360 TRANSLATE 451
IDENTITY_VAL_LOCAL 361 TRIM 453
INSERT 365 TRUNC 455
INTEGER 366 TRUNCATE 455
JULIAN_DAY 368 TYPE_ID 456
LCASE 370 TYPE_NAME 457
LCASE o LOWER 369 TYPE_SCHEMA 458
LEFT 371 UCASE 459
LENGTH 372 UPPER 459
LN 374 VALUE 460
LOCATE 375 VARCHAR 461
LOG 379 VARCHAR_FORMAT 463
LOG10 380 VARGRAPHIC 465
LONG_VARCHAR 381 WEEK 467
LONG_VARGRAPHIC 382 WEEK_ISO 468
LTRIM 383, 384 XMLATTRIBUTES 469
MICROSECOND 385 XMLCOMMENT 471
MIDNIGHT_SECONDS 386 XMLCONCAT 472
MINUTE 387 XMLDOCUMENT 474
MOD 388 XMLELEMENT 476
MONTH 389 XMLFOREST 482
MONTHNAME 390 XMLNAMESPACES 486
MULTIPLY_ALT 391 XMLPARSE 489
NODENUMBER (vea DBPARTITIONNUM) 331 XMLPI 491
NULLIF 393 XMLQUERY 493
OCTET_LENGTH 394 XMLSERIALIZE 497
PARTITION (vea HASHEDVALUE) 356 XMLTEXT 500
POSITION 395 XMLVALIDATE 502
POSSTR 398 XMLXSROBJECTID 507
POWER 400, 402 YEAR 508
QUARTER 401 externas 172
ndice 925
INTERSECT, operador LOB (objeto grande), tipos de datos
de seleccin completa, papel en la comparacin 569 descripcin 97
filas duplicadas, utilizacin de ALL 569 localizador de objeto grande 97
INTO, clusula localizadores
FETCH, uso de la sentencia en variable lenguaje descripcin de variable 65
principal 65 objeto grande (LOB) 97
SELECT INTO, uso de la sentencia en variable lenguaje LOCATE, funcin escalar
principal 65 descripcin 375
valores de programas de aplicacin 65 valores y argumentos 375
invocacin LOG, funcin
funcin 172 descripcin 379
mtodos 217 valores y argumentos 379
LOG10, funcin escalar
descripcin 380
J valores y argumentos 380
lgica de evaluacin verdadera 225
JDBC (Conectividad de base de datos Java)
LONG_VARCHAR, funcin
SQL incorporado para Java 3
descripcin 381
visin general 3
valores y argumentos 381
juego de caracteres de doble byte (DBCS)
LONG VARCHAR, tipo de datos
caracteres truncados durante la asignacin 117
descripcin 91
series de retorno 465
LONG_VARGRAPHIC, funcin
juegos de caracteres
descripcin 382
definicin 29
valores y argumentos 382
JULIAN_DAY, funcin
LONG VARGRAPHIC, tipo de datos
descripcin 368
descripcin 95
valores y argumentos 368
longitud
funcin escalar LENGTH 372
longitud de byte
L valores de tipos de datos 372
LBAC (control de acceso basado en etiquetas) LTRIM, funcin escalar
efecto en las tablas de excepciones 879 descripcin 383, 384
lmites 585 valores y argumentos 383, 384
LCASE, funcin escalar
descripcin 370
valores y argumentos 370
LCASE o LOWER, funcin escalar
M
manuales impresos
descripcin de formato detallado 369
pedido 906
valores y argumentos, reglas para 369
marcadores de parmetros
lectura no confirmada (UR)
variables del lenguaje principal en SQL dinmico 65
niveles de aislamiento 23
MAX, funcin
lectura repetible (RR)
descripcin de formato detallado 285
descripcin 23
valores y argumentos 285
LEFT, funcin escalar
mejor opcin (funcin) 172, 181
descripcin 371
mensajes de error
valores y argumentos 371
definiciones de SQLCA 595
Lenguaje de consulta estructurada (SQL)
mtodo con conservacin de tipo 181
asignaciones 117
mtodo sobrecargado 181
operacin de comparacin, visin general 117
mtodos
operandos bsicos, asignaciones y comparaciones 117
con conservacin de tipo 181
lenguaje de definicin de datos (DDL)
definidos por el usuario 181
definicin 1
elemento de lenguaje SQL 181
LIKE, predicado 236
externos 181
lmites
incorporados 181
longitud de identificador 585
invocacin 217
SQL 585
liberacin dinmica de 181
lista de seleccin
sobrecargados 181
descripcin 530
SQL 181
reglas de aplicacin y sintaxis 530
mtodos definidos por el usuario
reglas de notacin y convenciones 530
descripcin 181
literales
MICROSECOND, funcin
descripcin 137
descripcin 385
LN, funcin
valores y argumentos 385
descripcin 374
Microsoft Excel
valores y argumentos 374
Consulte archivos Excel 52
LOB, localizadores 97
Microsoft SQL Server
correlaciones de tipos directas por omisin 811
ndice 927
OLE DB Opcin de servidor de LOGIN_TIMEOUT
tipos de servidor vlidos 777 valores vlidos 789
versiones soportadas 52 Opcin de servidor de PACKET_SIZE
opcin de columna NUMERIC_STRING valores vlidos 789
valores vlidos 780 Opcin de servidor de PASSWORD
opcin de correlacin de funciones DISABLE valores vlidos 789
valores vlidos 788 Opcin de servidor de PLAN_HINTS
opcin de correlacin de funciones INSTS_PER_ARGBYTE valores vlidos 789
valores vlidos 788 Opcin de servidor de PUSHDOWN_SEQUENCE
opcin de correlacin de funciones INSTS_PER_INVOC valores vlidos 789
valores vlidos 788 Opcin de servidor de TIMEFORMAT
opcin de correlacin de funciones IOS_PER_ARGBYTE valores vlidos 789
valores vlidos 788 Opcin de servidor de TIMEOUT_SEQUENCE
opcin de correlacin de funciones IOS_PER_INVOC valores vlidos 789
valores vlidos 788 Opcin de servidor de TIMESTAMPFORMAT
opcin de correlacin INITIAL_INSTS valores vlidos 789
valores vlidos 788 Opcin de servidor NODE, valores vlidos 789
opcin de correlacin INITIAL_IOS Opcin de usuario ACCOUNTING_STRING
valores vlidos 788 valores vlidos 807
opcin de correlacin PERCENT_ARGBYTES Opcin de usuario PROXY_AUTHID
valores vlidos 788 valores vlidos 807
opcin de correlacin REMOTE_NAME Opcin de usuario PROXY_PASSWORD
valores vlidos 788 valores vlidos 807
Opcin de derivador de DB2_FENCED Opcin de usuario REMOTE_AUTHID
valores vlidos 808 valores vlidos 807
Opcin de derivador de DB2_SOURCE_CLIENT_MODE Opcin de usuario REMOTE_DOMAIN
valores vlidos 808 valores vlidos 807
Opcin de derivador de DB2_UM_PLUGIN Opcin de usuario REMOTE_PASSWORD
valores vlidos 808 valores vlidos 807
Opcin de derivador de EMAIL Opcin de usuario SSL_CLIENT_CERTIFICATE_LABEL
valores vlidos 808 valores vlidos 807
Opcin de derivador de PROXY_SERVER_NAME opciones de columna
valores vlidos 808 descripcin 50
Opcin de derivador de PROXY_SERVER_PORT valores vlidos 780
valores vlidos 808 opciones de columna de apodo
Opcin de derivador de PROXY_TYPE descripcin 50
valores vlidos 808 opciones de columna de VARCHAR_NO_TRAILING_
Opcin de derivador de SSL_KEYSTORE_FILE BLANKS
valores vlidos 808 valores vlidos 780
Opcin de derivador de SSL_KEYSTORE_PASSWORD opciones de derivador
valores vlidos 808 valores vlidos 808
Opcin de derivador de SSL_SERVER_CERTIFICATE Opciones de derivador de MODULE
valores vlidos 808 valores vlidos 808
opcin de servidor COLLATING_SEQUENCE opciones de servidor
ejemplo 57 descripcin 48
valores vlidos 789 temporal 48
Opcin de servidor de COMM_RATE valores vlidos 789
valores vlidos 789 opciones de servidor de VARCHAR_NO_TRAILING_
Opcin de servidor de CONNECTSTRING_SEQUENCE BLANKS
valores vlidos 789 valores vlidos 789
Opcin de servidor de CPU_RATIO Open Database Connectivity (ODBC) 2
valores vlidos 789 operaciones
Opcin de servidor de DATEFORMAT_SEQUENCE asignaciones 117
valores vlidos 789 comparaciones 117
Opcin de servidor de DBNAME_SEQUENCE desreferencia 209
valores vlidos 789 fecha y hora 197
Opcin de servidor de FOLD_ID operaciones de SQL
valores vlidos 789 bsicas 117
Opcin de servidor de FOLD_PW operadores
valores vlidos 789 aritmtica 189
Opcin de servidor de IFILE_SEQUENCE operadores de conjunto
valores vlidos 789 EXCEPT, comparacin de diferencias 569
Opcin de servidor de IGNORE_UDT INTERSECT, papel de AND en comparaciones 569
valores vlidos 789 tipo de datos del resultado 129
Opcin de servidor de IO_RATIO UNION, correspondencia con OR 569
valores vlidos 789 operadores lgicos, reglas de bsqueda 225
ndice 929
REAL, funcin (continuacin) remoto
valores y argumentos 405 nombre de funcin 65
REAL SQL, tipo de datos nombre de tipo 65
signo y precisin 90 REPEAT, funcin escalar
REC2XML, funcin escalar descripcin 411
descripcin 406 valores y argumentos 411
valores y argumentos 406 REPLACE, funcin escalar
recursin, consultas 574 descripcin 412
recursiva, expresin de tabla comn 574 valores y argumentos 412
referencia correlacionada reservados
en expresin de tabla anidada 65 calificadores 827
en seleccin completa escalar 65 esquemas 827
en subconsulta 65 palabras 827
en subselecciones 530 resolucin
referencia de tabla funcin 172
apodo 530 mtodo 181
expresiones de tabla anidadas 530 resolucin de problemas
nombre de tabla 530 guas de aprendizaje 911
nombre de vista 530 informacin en lnea 911
seudnimo 530 restricciones
registros especiales control de tabla 6
actualizables 141 de referencia 6
CURRENT CLIENT_ACCTNG 144 de unicidad 6
CURRENT CLIENT_APPLNAME 145 definicin de nombres 65
CURRENT CLIENT_USERID 146 informativas 6
CURRENT CLIENT_WRKSTNNAME 147 Tablas de Explain 835
CURRENT DATE 148 restricciones de referencia
CURRENT DBPARTITIONNUM 149 descripcin 6
CURRENT DEFAULT TRANSFORM GROUP 150 restricciones de unicidad
CURRENT DEGREE 151 definicin 6
CURRENT EXPLAIN MODE 152 restricciones informativas
CURRENT EXPLAIN SNAPSHOT 153 descripcin 6
CURRENT FEDERATED ASYNCHRONY 154 retrotraccin
CURRENT FUNCTION PATH 160 definicin 21
CURRENT IMPLICIT XMLPARSE OPTION 155 RIGHT, funcin escalar
CURRENT ISOLATION 156 descripcin 413
CURRENT LOCK TIMEOUT 157 valores y argumentos 413
CURRENT MAINTAINED TABLE TYPES FOR ROLLUP, agrupacin de clusula GROUP BY 530
OPTIMIZATION 158 ROUND, funcin escalar
CURRENT NODE (vea CURRENT descripcin 414
DBPARTITIONNUM) 149 valores y argumentos 414
CURRENT PACKAGE PATH 159 RTRIM, funcin escalar
CURRENT PATH 160 descripcin 416
CURRENT QUERY OPTIMIZATION 161 RTRIM, funcin escalar (esquema SYSFUN) 417
CURRENT REFRESH AGE 162 rutinas
CURRENT SCHEMA 163 administracin de SQL
CURRENT SERVER 164 soportadas 251
CURRENT SQLID 163 procedimientos 517
CURRENT TIME 165 sentencias de SQL permitidas 883
CURRENT TIMESTAMP 166 rutinas administrativas SQL
CURRENT TIMEZONE 167 soportadas 251
CURRENT USER 168
elemento de lenguaje SQL 141
interaccin, Explain 871
SESSION USER 169
S
Script
SYSTEM USER 170
versiones soportadas 52
USER 171
secciones
registros especiales actualizables 141
definicin 14
regla de actualizacin con restricciones de referencia 6
SECLABEL, funcin escalar
regla de insercin con restriccin de referencia 6
descripcin 418
regla de supresin
SECLABEL_BY_NAME, funcin escalar
con restriccin de referencia 6
descripcin 419
reglas comerciales
SECLABEL_TO_CHAR, funcin escalar
transicionales 11
descripcin 420
reiniciadores
SECOND, funcin escalar
nombres 65
descripcin 422
valores y argumentos 422
ndice 931
sintaxis de SQL (continuacin) SUBSTRING, funcin escalar
resultados de la funcin agregada COVARIANCE 282 descripcin 434
resultados de la funcin agregada VARIANCE 295 subtipos de caracteres 91
resultados de las funciones de regresin 290 SUM, funciones
sistema de gestin de bases de datos distribuidas 45 descripcin de formato detallado 294
sistemas federados valores y argumentos 294
visin general 45 supergrupos 530
SMALLINT, funcin supertipos
descripcin 426 nombres de identificadores 65
valores y argumentos 426 supervisin
SMALLINT, tipo de datos sucesos de la base de datos 40
signo y precisin 90 supervisores de sucesos
SOME, predicado cuantificado 229 definicin 40
SOUNDEX, funcin escalar EVENT_MON_STATE, funcin 347
descripcin 427 nombre 65
valores y argumentos 427 Sybase
SPACE, funcin escalar correlaciones de tipos directas por omisin 811
descripcin 428 correlaciones de tipos inversas por omisin 819
valores y argumentos 428 tipos de servidor vlidos 777
SQL (Structured Query Language - Lenguaje de consulta versiones soportadas 52
estructurada) SYSTEM USER, registro especial 170
lmites 585
va de acceso 172
SQL dinmico
definicin 1
T
tabla ADVISE_INDEX 859
EXECUTE, sentencia 1
tabla ADVISE_WORKLOAD 869
PREPARE, sentencia 1
tabla base 4
SQLDA utilizada con 601
tabla de autorreferencia 6
SQL esttico
tabla de objetos 65
descripcin 1
tabla dependiente 6
SQL incorporado para Java (SQLJ)
tabla descendiente 6
Conectividad de base de datos Java 3
tabla padre 6
SQL interactivo 1
tabla resultante
SQLCA (rea de comunicaciones SQL)
consulta 529
descripcin 595
definicin 4
informe de errores 595
tablas
sistemas de bases de datos particionadas 595
autorreferente 6
visualizacin interactiva 595
base 4
SQLDA (rea de descriptores de SQL)
clusula FROM, convenios de denominacin de
contenido 601
subseleccin 530
SQLDATA, campo de SQLDA 601
clave de distribucin 5
SQLJ (SQL incorporado para Java)
clave de particionamiento 5
conectividad 3
clave fornea 5
SQLSTATE
clave primaria 5
en la funcin RAISE_ERROR 403
colocacin 42
SQRT, funcin escalar
con tipo 4
descripcin 429
definicin 4
STDDEV, funcin 293
dependiente 6
STRIP, funcin escalar
descendiente 6
descripcin 430
designador para evitar ambigedad 65
subconsulta de SQL, clusula WHERE 530
escalares, seleccin completa 65
subconsultas
excepciones 879
clusula WHERE 530
expresin de tabla anidada 65
HAVING, clusula 530
nombre de columna calificado 65
utilizar seleccin completa como condicin de
nombre de correlacin 65
bsqueda 65
nombres
subseleccin
descripcin 65
clusula FROM, relacin con la subseleccin 530
en clusula FROM 530
descripcin 530
SELECT, diagrama de sintaxis en la clusula 530
ejemplo de secuencia de operaciones 530
nombres de correlacin exclusivos 65
ejemplos 530
nombres expuestos en clusula FROM 65
subseries 431
nombres no expuestos en clusula FROM 65
SUBSTR, funcin
padre 6
fragmentos 431
referencia de tabla 530
SUBSTR, funcin escalar
restricciones de comprobacin
descripcin 431
tipos 6
valores y argumentos 431
resultados 4
ndice 933
tipos de referencia unidades de trabajo (UOW)
comparaciones 117 definicin 21
conversin 110 distribuidas 31
DEREF, funcin 340 remotas 31
descripcin 105 UNION, operador, papel en comparaciones de seleccin
tipos de servidor completa 569
tipos federados vlidos 777 unin externa
tipos definidos por el usuario (UDT) tabla unida 530
conversin 110 uniones
descripcin 105 ejemplos 530
tipo de referencia 105 ejemplos de subselecciones 530
tipos de datos no soportados 51 tipos
tipos diferenciados completas externas 530
descripcin 105 derechas externas 530
tipos estructurados 105 internas 530
tipos diferenciados izquierdas externas 530
como operandos aritmticos 189 UPPER, funcin
comparacin 117 descripcin 459
concatenacin 189 valores y argumentos 459
constantes 137 USER, registro especial 171
descripcin 105
nombres 65
tipos estructurados
descripcin 105
V
valor
variables del lenguaje principal 65
definicin 4, 88
TO_CHAR, funcin
null 88
descripcin 449
valor nulo
valores y argumentos 449
definicin 88
TO_DATE, funcin
valor nulo, SQL
descripcin 450
apariciones en filas duplicadas 530
valores y argumentos 450
asignacin 117
TRANSLATE, funcin escalar
columnas del resultado 530
descripcin 451
condicin desconocida 225
serie de caracteres 451
especificado por variable indicadora 65
serie grfica 451
expresiones-agrupacin, utilizaciones permitidas 530
valores y argumentos 451
valores
TRIM, funcin escalar
secuencia 220
descripcin 453
valores enteros de expresiones
truncamiento
funcin INTEGER 366
nmeros 117
valores enteros pequeos de expresiones, funcin
TRUNCATE o TRUNC, funcin escalar
SMALLINT 426
descripcin 455
VALUE, funcin
valores y argumentos 455
descripcin 460
TYPE_NAME, funcin
valores y argumentos 460
descripcin 457
VALUES, clusula
valores y argumentos 457
seleccin completa 569
VARCHAR, funcin
descripcin 461
U valores y argumentos 461
UCASE, funcin escalar VARCHAR, tipo de datos
descripcin 459 descripcin 91
valores y argumentos 459 funcin escalar DOUBLE 343
UDF (funciones definidas por el usuario) funcin escalar WEEK 467
descripcin 514 WEEK_ISO, funcin escalar 468
unario, operador VARCHAR_FORMAT, funcin
signo ms 189 descripcin 463
signo menos 189 valores y argumentos 463
Unicode VARGRAPHIC, funcin
conversin a maysculas 63 descripcin 465
Unicode (UCS-2) valores y argumentos 465
funciones en 296 VARGRAPHIC, tipo de datos
unidad de trabajo distribuida descripcin 95
descripcin 31 variables
unidad de trabajo remota transicin 11
descripcin 31 variables del lenguaje principal
unidades de serie BLOB 65
funciones incorporadas 91 CLOB 65
ndice 935
vistas de catlogo (continuacin) XMLTEXT, funcin escalar
TABDEP 732 descripcin 500
TABDETACHEDDEP 734 XMLVALIDATE, funcin escalar
TABLES 735 descripcin 502
TABLESPACES 742 XMLXSROBJECTID, funcin escalar
TABOPTIONS 744 descripcin 507
TBSPACEAUTH 745 XSR_COMPLETE, procedimiento almacenado 520
TRANSFORMS 746 XSR_DTD, procedimiento almacenado 522
TRIGDEP 747 XSR_ENTITY, procedimiento almacenado 524
TRIGGERS 748 XSR_REGISTER, procedimiento almacenado 526
TYPEMAPPINGS 750
USEROPTIONS 753
VIEWS 754
visin general 613
Y
YEAR, funcin escalar
WRAPOPTIONS 755
descripcin 508
WRAPPERS 756
valores y argumentos 508
XDBMAPGRAPHS 757
XDBMAPSHREDTREES 758
XSROBJECTAUTH 759
XSROBJECTCOMPONENTS 760
XSROBJECTDEP 761
XSROBJECTHIERARCHIES 762
XSROBJECTS 763
Visual Explain
gua de aprendizaje 911
W
WEEK_ISO, funcin escalar
descripcin 468
valores y argumentos 468
WITH, expresin de tabla comn 574
X
XML
tipo de datos 104
versiones soportadas 52
XMLAGG, funcin agregada
descripcin 288
XMLATTRIBUTES, funcin escalar
descripcin 469
XMLCAST
especificaciones 207
XMLCOMMENT, funcin escalar
descripcin 471
XMLCONCAT, funcin escalar
descripcin 472
XMLDOCUMENT, funcin escalar
descripcin 474
XMLELEMENT, funcin escalar
descripcin 476
XMLFOREST, funcin escalar
descripcin 482
XMLNAMESPACES, declaracin
descripcin 486
XMLPARSE, funcin escalar
descripcin 489
XMLPI, funcin escalar
descripcin 491
XMLQUERY, funcin escalar
descripcin 493
XMLSERIALIZE, funcin escalar
descripcin 497
XMLTABLE, funcin de tabla
descripcin 510
SC11-3180-00
Spine information: