0% encontró este documento útil (0 votos)
255 vistas1425 páginas

DB2CommandRef db2n0z1010

Referencia de comandos para DB2 de IBM

Cargado por

silfo22
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
255 vistas1425 páginas

DB2CommandRef db2n0z1010

Referencia de comandos para DB2 de IBM

Cargado por

silfo22
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

IBM DB2 10.

1
para Linux, UNIX y Windows

Consulta de mandatos



SC11-8069-00
IBM DB2 10.1
para Linux, UNIX y Windows

Consulta de mandatos



SC11-8069-00
Nota
Antes de utilizar esta información y el producto al que da soporte, lea la información general contenida en el apartado
Apéndice D, “Avisos”, en la página 1387.

Nota de edición
Este manual es la traducción del original en inglés IBM DB2 10.1 for Linux, UNIX, and Windows Command Reference
(SC27-3868-00).
Este documento contiene información propiedad de IBM. Se proporciona según un acuerdo de licencia y está
protegido por la ley de la propiedad intelectual. La información contenida en esta publicación no incluye ninguna
garantía de producto, por lo que ninguna declaración proporcionada en este manual deberá interpretarse como tal.
Puede realizar pedidos de publicaciones de IBM en línea o a través del representante de IBM de su localidad.
v Para solicitar publicaciones en línea, vaya a IBM Publications Center en http://www.ibm.com/shop/
publications/order
v Para encontrar al representante local de IBM que le corresponde, vaya a la sección Worlwide Contacts de IBM
Directory en http://www.ibm.com/planetwide/
Para realizar pedidos de publicaciones de DB2 desde DB2 Marketing and Sales, en los EE.UU. o en Canadá, llame
al 1-800-IBM-4YOU (426-4968).
Cuando envía información a IBM, está otorgando a IBM el derecho no exclusivo de utilizar o distribuir la
información de cualquier forma que considere adecuada sin incurrir por ello a ninguna obligación para con usted.
© Copyright IBM Corporation 1993, 2012.
Contenido
Acerca de este manual . . . . . . . . ix Capítulo 5. mandatos CLP . . . . . . 65
Quién debe utilizar este manual . . . . . . . ix ACTIVATE DATABASE . . . . . . . . . .66
Cómo esta estructurado este manual . . . . . . ix ADD CONTACT . . . . . . . . . . . .68
Convenios de resaltado . . . . . . . . . . . x ADD CONTACTGROUP . . . . . . . . . .70
ADD DBPARTITIONNUM . . . . . . . . .71
Cómo leer los diagramas de sintaxis . . xi ADD XMLSCHEMA DOCUMENT . . . . . .74
ARCHIVE LOG . . . . . . . . . . . . .76
ATTACH . . . . . . . . . . . . . . .79
Capítulo 1. Procesador de línea de
AUTOCONFIGURE . . . . . . . . . . .81
mandatos (CLP) . . . . . . . . . . . 1 BACKUP DATABASE . . . . . . . . . . .84
Funciones del procesador de línea de mandatos . . 2 BIND . . . . . . . . . . . . . . . .95
db2 - Invocación del procesador de línea de CATALOG DATABASE . . . . . . . . . . 116
mandatos . . . . . . . . . . . . . . . 9 CATALOG DCS DATABASE . . . . . . . . 120
Opciones del procesador de línea de mandatos . . 11 CATALOG LDAP DATABASE . . . . . . . . 122
Códigos de retorno del procesador de línea de CATALOG LDAP NODE . . . . . . . . . 125
mandatos . . . . . . . . . . . . . . . 20 CATALOG LOCAL NODE . . . . . . . . . 126
Invocar ayuda de mandatos desde el procesador de CATALOG NAMED PIPE NODE . . . . . . . 128
línea de mandatos . . . . . . . . . . . . 21 CATALOG ODBC DATA SOURCE . . . . . . 130
Invocar ayuda de mensajes desde el procesador de CATALOG TCPIP/TCPIP4/TCPIP6 NODE . . . 132
línea de mandatos . . . . . . . . . . . . 21 CHANGE DATABASE COMMENT . . . . . . 136
CHANGE ISOLATION LEVEL . . . . . . . 138
Capítulo 2. Utilización de sentencias de COMPLETE XMLSCHEMA . . . . . . . . 140
SQL y XQuery de línea de mandatos . . 23 CREATE DATABASE . . . . . . . . . . . 141
CREATE TOOLS CATALOG . . . . . . . . 161
Capítulo 3. Command Line Processor DEACTIVATE DATABASE . . . . . . . . . 164
DECOMPOSE XML DOCUMENT . . . . . . 166
Plus (CLPPlus) . . . . . . . . . . . 31 DECOMPOSE XML DOCUMENTS . . . . . . 168
Instalación de CLPPlus en clientes de servidor de DEREGISTER . . . . . . . . . . . . . 172
datos de IBM existentes . . . . . . . . . . 31 DESCRIBE . . . . . . . . . . . . . . 173
Inicio de CLPPlus . . . . . . . . . . . . 32 DETACH . . . . . . . . . . . . . . . 183
Mandato de CLPPLUS. . . . . . . . . . . 33 DROP CONTACT . . . . . . . . . . . . 184
Tipos de consolas de CLPPlus . . . . . . . . 35 DROP CONTACTGROUP . . . . . . . . . 185
Modalidad de ventana y soporte de caracteres DROP DATABASE . . . . . . . . . . . 186
UTF-8 . . . . . . . . . . . . . . . . 37 DROP DBPARTITIONNUM VERIFY. . . . . . 188
Alias de DSN en CLPPlus . . . . . . . . . 37 DROP TOOLS CATALOG . . . . . . . . . 189
Autentificación de Kerberos en CLPPlus . . . . . 39 ECHO . . . . . . . . . . . . . . . . 191
Autentificación SERVER_ENCRYPT en CLPPlus . . 40 EDIT . . . . . . . . . . . . . . . . 192
Soporte de LDAP en CLPPlus . . . . . . . . 41 EXPORT . . . . . . . . . . . . . . . 193
CREATE DATABASE en CLPPlus . . . . . . . 45 FORCE APPLICATION . . . . . . . . . . 205
Ejecución de un archivo script en CLPPlus . . . . 46 GET ADMIN CONFIGURATION . . . . . . . 207
Interrupción y omisión de mandatos de CLPPlus . . 47 GET ALERT CONFIGURATION . . . . . . . 209
Comentarios en CLPPlus . . . . . . . . . . 48 GET CLI CONFIGURATION . . . . . . . . 215
Caracteres de escape en CLPPlus . . . . . . . 49 GET CONNECTION STATE . . . . . . . . 217
Vinculación de variables en CLPPlus . . . . . . 51 GET CONTACTGROUP . . . . . . . . . . 218
Variables de entorno y shell en CLPPlus . . . . . 55 GET CONTACTGROUPS . . . . . . . . . 219
Rastreos y anotación cronológica de registro de GET CONTACTS . . . . . . . . . . . . 220
CLPPlus . . . . . . . . . . . . . . . 56 GET DATABASE CONFIGURATION . . . . . 221
Mandatos de DB2 soportados por CLPPlus . . . . 57 GET DATABASE MANAGER CONFIGURATION 234
Restricciones de CLPPlus . . . . . . . . . . 57 GET DATABASE MANAGER MONITOR
Consejos y sugerencias para la resolución de SWITCHES . . . . . . . . . . . . . . 243
problemas de CLPPlus . . . . . . . . . . 58 GET DESCRIPTION FOR HEALTH INDICATOR 246
GET HEALTH NOTIFICATION CONTACT LIST 248
Capítulo 4. Cómo leer la ayuda de GET HEALTH SNAPSHOT. . . . . . . . . 249
sintaxis de mandatos . . . . . . . . 61 GET INSTANCE . . . . . . . . . . . . 253
GET MONITOR SWITCHES . . . . . . . . 254

© Copyright IBM Corp. 1993, 2012 iii


GET RECOMMENDATIONS FOR HEALTH SET SERVEROUTPUT . . . . . . . . . . 647
INDICATOR. . . . . . . . . . . . . . 257 SET TABLESPACE CONTAINERS . . . . . . 649
GET ROUTINE . . . . . . . . . . . . . 260 SET TAPE POSITION . . . . . . . . . . 652
GET SNAPSHOT . . . . . . . . . . . . 262 SET UTIL_IMPACT_PRIORITY . . . . . . . 653
HELP . . . . . . . . . . . . . . . . 278 SET WORKLOAD . . . . . . . . . . . . 656
HISTORY. . . . . . . . . . . . . . . 279 SET WRITE . . . . . . . . . . . . . . 657
IMPORT . . . . . . . . . . . . . . . 280 START DATABASE MANAGER . . . . . . . 659
INGEST . . . . . . . . . . . . . . . 312 START HADR . . . . . . . . . . . . . 668
INITIALIZE TAPE. . . . . . . . . . . . 360 STOP DATABASE MANAGER . . . . . . . 671
INSPECT . . . . . . . . . . . . . . . 361 STOP HADR . . . . . . . . . . . . . 675
LIST ACTIVE DATABASES. . . . . . . . . 369 TAKEOVER HADR . . . . . . . . . . . 677
LIST APPLICATIONS . . . . . . . . . . 371 TERMINATE . . . . . . . . . . . . . 682
LIST COMMAND OPTIONS . . . . . . . . 374 UNCATALOG DATABASE . . . . . . . . . 683
LIST DATABASE DIRECTORY . . . . . . . 375 UNCATALOG DCS DATABASE . . . . . . . 685
LIST DATABASE PARTITION GROUPS . . . . 379 UNCATALOG LDAP DATABASE . . . . . . 686
LIST DBPARTITIONNUMS. . . . . . . . . 381 UNCATALOG LDAP NODE . . . . . . . . 687
LIST DCS APPLICATIONS . . . . . . . . . 382 UNCATALOG NODE . . . . . . . . . . 688
LIST DCS DIRECTORY . . . . . . . . . . 384 UNCATALOG ODBC DATA SOURCE . . . . . 689
LIST DRDA INDOUBT TRANSACTIONS . . . . 386 UNQUIESCE . . . . . . . . . . . . . 690
LIST HISTORY . . . . . . . . . . . . . 388 UPDATE ADMIN CONFIGURATION . . . . . 692
LIST INDOUBT TRANSACTIONS . . . . . . 394 UPDATE ALERT CONFIGURATION . . . . . 695
LIST NODE DIRECTORY . . . . . . . . . 397 UPDATE ALTERNATE SERVER FOR DATABASE 700
LIST ODBC DATA SOURCES . . . . . . . . 400 UPDATE ALTERNATE SERVER FOR LDAP
LIST PACKAGES/TABLES . . . . . . . . . 401 DATABASE . . . . . . . . . . . . . . 702
LIST TABLESPACE CONTAINERS . . . . . . 404 UPDATE CLI CONFIGURATION . . . . . . 703
LIST TABLESPACES . . . . . . . . . . . 406 UPDATE COMMAND OPTIONS. . . . . . . 705
LIST UTILITIES . . . . . . . . . . . . 411 UPDATE CONTACT . . . . . . . . . . . 707
LOAD . . . . . . . . . . . . . . . . 413 UPDATE CONTACTGROUP . . . . . . . . 708
LOAD QUERY . . . . . . . . . . . . . 462 UPDATE DATABASE CONFIGURATION . . . . 709
MIGRATE DATABASE . . . . . . . . . . 468 UPDATE DATABASE MANAGER
PING . . . . . . . . . . . . . . . . 469 CONFIGURATION . . . . . . . . . . . 713
PRECOMPILE . . . . . . . . . . . . . 471 UPDATE HEALTH NOTIFICATION CONTACT
PRUNE HISTORY/LOGFILE . . . . . . . . 500 LIST . . . . . . . . . . . . . . . . 715
PUT ROUTINE . . . . . . . . . . . . . 503 UPDATE HISTORY . . . . . . . . . . . 716
QUERY CLIENT . . . . . . . . . . . . 505 UPDATE LDAP NODE . . . . . . . . . . 719
QUIESCE. . . . . . . . . . . . . . . 506 UPDATE MONITOR SWITCHES . . . . . . . 721
QUIESCE TABLESPACES FOR TABLE . . . . . 510 UPDATE XMLSCHEMA. . . . . . . . . . 724
QUIT . . . . . . . . . . . . . . . . 513 UPGRADE DATABASE . . . . . . . . . . 725
REBIND . . . . . . . . . . . . . . . 514
RECOVER DATABASE . . . . . . . . . . 518 Capítulo 6. Mandatos de CLPPlus . . 727
REDISTRIBUTE DATABASE PARTITION GROUP 525 .. . . . . . . . . . . . . . . . . . 728
REFRESH LDAP . . . . . . . . . . . . 534 !. . . . . . . . . . . . . . . . . . 729
REGISTER . . . . . . . . . . . . . . 536 Mandato / . . . . . . . . . . . . . . 730
REGISTER XMLSCHEMA . . . . . . . . . 539 @ . . . . . . . . . . . . . . . . . 731
REGISTER XSROBJECT . . . . . . . . . . 541 @@ . . . . . . . . . . . . . . . . . 732
REORG INDEXES/TABLE . . . . . . . . . 543 Mandato ACCEPT. . . . . . . . . . . . 733
REORGCHK . . . . . . . . . . . . . 561 Mandato APPEND . . . . . . . . . . . 735
RESET ADMIN CONFIGURATION . . . . . . 574 BREAK . . . . . . . . . . . . . . . 736
RESET ALERT CONFIGURATION . . . . . . 576 BTITLE . . . . . . . . . . . . . . . 737
RESET DATABASE CONFIGURATION. . . . . 578 CHANGE . . . . . . . . . . . . . . 739
RESET DATABASE MANAGER Mandato CLEAR . . . . . . . . . . . . 742
CONFIGURATION . . . . . . . . . . . 580 COLUMN . . . . . . . . . . . . . . 744
RESET MONITOR . . . . . . . . . . . . 582 COMPUTE . . . . . . . . . . . . . . 749
RESTART DATABASE . . . . . . . . . . 584 CONNECT . . . . . . . . . . . . . . 751
RESTORE DATABASE . . . . . . . . . . 587 COPY . . . . . . . . . . . . . . . . 753
REWIND TAPE. . . . . . . . . . . . . 611 Mandato DEFINE . . . . . . . . . . . . 755
ROLLFORWARD DATABASE . . . . . . . . 612 Mandato DEL . . . . . . . . . . . . . 756
RUNCMD . . . . . . . . . . . . . . 624 DESCRIBE . . . . . . . . . . . . . . 758
RUNSTATS . . . . . . . . . . . . . . 625 Mandato DISCONNECT. . . . . . . . . . 763
SET CLIENT . . . . . . . . . . . . . 642 EDIT . . . . . . . . . . . . . . . . 764
SET RUNTIME DEGREE . . . . . . . . . 645 EXECUTE . . . . . . . . . . . . . . 765

iv Consulta de mandatos
EXIT . . . . . . . . . . . . . . . . 768 db2cfexp - Herramienta de exportación de
EXPLAIN PLAN . . . . . . . . . . . . 770 configuración de conectividad . . . . . . . . 882
GET . . . . . . . . . . . . . . . . 771 db2cfimp - Herramienta de importación de
Mandato HELP. . . . . . . . . . . . . 772 configuración de conectividad . . . . . . . . 884
Mandato HOST . . . . . . . . . . . . 773 db2chglibpath - Modificar la vía de acceso de
Mandato IMPORT de CLPPlus . . . . . . . 774 búsqueda de biblioteca en tiempo de ejecución
Mandato INPUT . . . . . . . . . . . . 776 incorporada . . . . . . . . . . . . . . 885
LIST . . . . . . . . . . . . . . . . 777 db2chgpath - Cambiar vía de acceso de tiempo de
Mandato PAUSE . . . . . . . . . . . . 779 ejecución incorporada . . . . . . . . . . 888
Mandato PRINT . . . . . . . . . . . . 780 db2ckbkp - Comprobar copia de seguridad . . . 890
Mandato PROMPT . . . . . . . . . . . 781 db2cklog - Comprobar la validez de los archivos
Mandato QUIT . . . . . . . . . . . . . 782 de anotaciones cronológicas . . . . . . . . 895
Mandato REMARK . . . . . . . . . . . 783 db2ckrst - Comprobar secuencia de imágenes de
REORGCHK . . . . . . . . . . . . . 784 restauración incremental. . . . . . . . . . 898
REPFOOTER . . . . . . . . . . . . . 786 db2ckupgrade - Comprobar base de datos para
REPHEADER . . . . . . . . . . . . . 788 actualización . . . . . . . . . . . . . 900
Mandato RUN . . . . . . . . . . . . . 790 Mandato db2cli - interactiva de DB2 CLI . . . . 903
SAVE . . . . . . . . . . . . . . . . 791 db2cmd - Abrir ventana de mandatos de DB2 . . 916
SET. . . . . . . . . . . . . . . . . 792 db2cptsa - Instalar o actualizar scripts HA de DB2 917
SPOOL . . . . . . . . . . . . . . . 800 db2dart - Herramienta de informes y análisis de
SHOW . . . . . . . . . . . . . . . 801 base de datos . . . . . . . . . . . . . 919
START . . . . . . . . . . . . . . . 802 db2daslevel - Mostrar nivel de DAS . . . . . . 927
TTITLE . . . . . . . . . . . . . . . 803 db2dclgn - Generador de declaraciones . . . . . 928
Mandato UNDEFINE. . . . . . . . . . . 805 db2diag - Herramienta de análisis de anotaciones
WHENEVER OSERROR . . . . . . . . . . 806 cronológicas db2diag . . . . . . . . . . . 931
WHENEVER SQLERROR . . . . . . . . . 808 db2drdat - Rastreo de DRDA . . . . . . . . 949
db2drvmp - Correlación de unidades de base de
Capítulo 7. Mandatos del sistema . . . 811 datos DB2 . . . . . . . . . . . . . . 951
dasauto - Iniciar automáticamente un servidor de db2empfa - Habilitar asignación de archivos de
administración de DB2 . . . . . . . . . . 812 múltiples páginas . . . . . . . . . . . . 953
dascrt - Crear un Servidor de administración de db2envar.bat - Establecer entorno de la ventana de
DB2 . . . . . . . . . . . . . . . . 813 mandatos actual . . . . . . . . . . . . 954
dasdrop - Eliminar un servidor de administración db2evmon - Herramienta de productividad del
de DB2 . . . . . . . . . . . . . . . 815 supervisor de sucesos . . . . . . . . . . 955
dasmigr - Migrar el Servidor de administración de db2evtbl - Generar definiciones de tabla de destino
DB2 . . . . . . . . . . . . . . . . 816 del supervisor de sucesos . . . . . . . . . 957
dasupdt - Actualizar DAS . . . . . . . . . 818 db2exfmt - Formato de la tabla de Explain . . . 959
db2_deinstall - Desinstalar productos, db2exmig - Migrar tablas de Explain . . . . . 962
características o idiomas de base de datos DB2 . . 820 db2expln - Explicación de SQL y XQuery . . . . 963
db2_install - Instalar el producto de base de datos db2extsec - Establecer permisos para objetos DB2 973
DB2 . . . . . . . . . . . . . . . . 824 db2flsn - Buscar número de secuencia de
db2_local_ps - Estado de procesos de DB2 para anotaciones cronológicas . . . . . . . . . 975
Linux/UNIX . . . . . . . . . . . . . 827 db2fm - Supervisor de anomalías de DB2 . . . . 981
db2acsutil - Gestionar objetos de copia de db2fmcu - Controlador de supervisor de anomalías
seguridad selectiva de DB2 . . . . . . . . . 829 de DB2 . . . . . . . . . . . . . . . 983
db2addicons - Crear entradas del menú principal db2fodc - Recopilación de datos de primera
para las herramientas de DB2 . . . . . . . . 833 aparición de DB2 . . . . . . . . . . . . 985
db2admin - Servidor de administración de DB2 834 db2fopt - Especificar parámetros del optimizador
db2adutl - Gestión de objetos DB2 en TSM . . . 836 de consultas . . . . . . . . . . . . . . 997
db2advis - Asesor de diseño de DB2. . . . . . 845 db2fs - Primeros pasos . . . . . . . . . . 1000
db2audit - Herramienta de administrador del db2gcf - Controlar instancia de DB2 . . . . . 1001
recurso de auditoría . . . . . . . . . . . 852 db2gov - DB2 Governor . . . . . . . . . 1004
db2batch - Herramienta de evaluación . . . . . 862 db2govlg - Consulta de anotación cronológica de
db2bfd - Herramienta de descripción de archivo de DB2 Governor. . . . . . . . . . . . . 1007
vinculación . . . . . . . . . . . . . . 872 db2gpmap - Obtener correlación de distribución 1008
db2caem - Herramienta de captura de datos de db2iauto - Iniciar instancia automáticamente . . 1010
supervisor de sucesos de actividad . . . . . . 873 Mandato db2iclus - Servidor de clústeres de
db2cap - Herramienta de vinculación de paquetes Microsoft . . . . . . . . . . . . . . 1011
estáticos CLI/ODBC . . . . . . . . . . . 877 db2icrt - Crear instancia . . . . . . . . . 1014
db2cat - Análisis del catálogo del sistema . . . . 879 db2idrop - Eliminar instancia. . . . . . . . 1023

Contenido v
db2IdentifyType1 - Herramienta de identificación db2rmicons - Eliminar las herramientas de DB2
de índices de tipo 1 . . . . . . . . . . . 1026 del menú principal . . . . . . . . . . . 1234
db2ilist - Listar instancias . . . . . . . . . 1029 db2rspgn - Generador de archivos de respuestas 1235
db2inidb - Inicializar una base de datos duplicada 1030 db2sampl - Crear base de datos de ejemplo . . . 1236
db2inspf - Formatear resultados de inspección 1033 db2schex - Ampliación de esquema de Active
db2iprune - Reducir el tamaño de la imagen de Directory . . . . . . . . . . . . . . 1239
instalación . . . . . . . . . . . . . . 1034 db2set - Registro de perfiles de DB2 . . . . . 1241
db2isetup - Iniciar interfaz de creación de Mandato db2setup - Instalar productos de base de
instancias . . . . . . . . . . . . . . 1036 datos DB2 . . . . . . . . . . . . . . 1246
db2iupdt - Actualizar instancias . . . . . . . 1038 db2snapcore - DB2 snapcore para Linux y Solaris 1248
db2iupgrade - Actualizar instancia . . . . . . 1047 db2start - Iniciar DB2 . . . . . . . . . . 1250
Mandato db2jdbcbind - Vinculador de paquetes db2stat - Estado de procesos de DB2 para
de JDBC de DB2 . . . . . . . . . . . . 1051 Windows . . . . . . . . . . . . . . 1251
db2ldcfg - Configurar entorno de LDAP . . . . 1053 db2stop - Detener DB2 . . . . . . . . . . 1252
Mandato db2level - Mostrar nivel de servicio de db2support - Herramienta de análisis de
DB2 . . . . . . . . . . . . . . . . 1054 problemas y recolección del entorno . . . . . 1253
db2licm - Herramienta de gestión de licencias 1055 db2swtch - Conmutar copia de DB2 por omisión y
db2listvolumes - Visualizar los GUID para todos copia de interfaz de cliente de base de datos . . 1272
los volúmenes de disco. . . . . . . . . . 1058 db2sync - Iniciar el sincronizador de DB2 . . . 1274
db2logsforrfwd - Listar anotaciones cronológicas Mandato db2systray - Iniciar la bandeja del
necesarias para recuperación en avance . . . . 1059 sistema DB2 . . . . . . . . . . . . . 1275
db2look - Herramienta de extracción de DDL y de db2tapemgr - Gestionar archivos de anotaciones
estadísticas de DB2 . . . . . . . . . . . 1060 cronológicas en cinta . . . . . . . . . . 1277
db2ls - Listar productos y características de DB2 1073 db2tbst - Obtener estado de espacio de tablas 1281
db2move - Herramienta de movimiento de base db2tdbmgr - Migrar base de datos de catálogo de
de datos. . . . . . . . . . . . . . . 1076 herramientas . . . . . . . . . . . . . 1282
Mandato db2mqlsn - MQListener . . . . . . 1086 db2top - Herramienta de supervisión de DB2 1283
db2mscs - Configurar programa de utilidad de db2trc - Rastrear . . . . . . . . . . . . 1288
conmutación por error de Windows . . . . . 1090 db2trcoff - Opciones de rastrero desactivado para
db2mtrk - Rastreador de memoria . . . . . . 1094 db2trc . . . . . . . . . . . . . . . 1304
db2nchg - Cambiar configuración de servidor de db2trcon - Opciones de rastreo activado para
particiones de base de datos . . . . . . . . 1099 db2trc . . . . . . . . . . . . . . . 1305
db2ncrt - Añadir servidor de particiones de base db2unins - Desinstalar productos, características o
de datos a una instancia . . . . . . . . . 1101 idiomas de base de datos DB2 . . . . . . . 1307
db2ndrop - Descartar servidor de particiones de db2untag - Liberar identificador de contenedor 1309
base de datos de una instancia . . . . . . . 1103 db2updserv - Mostrar actualizaciones del
db2nrcfg - Herramienta de configuración de producto . . . . . . . . . . . . . . 1310
instalación no root . . . . . . . . . . . 1105 db2val - Herramienta de validación de copia de
db2nrupdt - Actualización de instancia de DB2 . . . . . . . . . . . . . . . . 1311
instalación no root . . . . . . . . . . . 1106 db2xdbmig - Migrar objetos XSR . . . . . . 1313
db2nrupgrade - Actualizar una instancia no root 1107 db2xprt - Formatear archivo de detección de
db2osconf - Programa de utilidad para los valores excepción . . . . . . . . . . . . . . 1314
de parámetro de kernel. . . . . . . . . . 1109 Mandato disable_MQFunctions - Inhabilitar
db2pd - Supervisar y resolver problemas de base funciones de WebSphere MQ . . . . . . . . 1315
de datos DB2 . . . . . . . . . . . . . 1112 doce_deinstall - Desinstalar Centro de
db2pdcfg - Configurar la base de datos DB2 de información de DB2 . . . . . . . . . . . 1316
cara al comportamiento de la determinación de doce_install - Instalar el Centro de información de
problemas . . . . . . . . . . . . . . 1211 DB2 . . . . . . . . . . . . . . . . 1318
db2perfc - Restablecer valores de rendimiento de Mandato enable_MQFunctions - Habilitar
base de datos . . . . . . . . . . . . . 1218 funciones de WebSphere MQ . . . . . . . . 1320
db2perfi - Programa de utilidad de registro de installDSDriver - Extraer componentes de Data
contadores de rendimiento . . . . . . . . 1220 Server Driver . . . . . . . . . . . . . 1323
db2perfr - Herramienta de registro de supervisor installFixPack - Actualizar productos de base de
de rendimiento . . . . . . . . . . . . 1221 datos DB2 instalados . . . . . . . . . . 1324
db2rbind - Volver a vincular todos los paquetes 1222 setup - Instalar productos de base de datos DB2 1330
db2relocatedb - Reubicar base de datos . . . . 1224
db2rfe - Habilitar características root para Capítulo 8. Mandatos de DB2 Text
instalaciones no root . . . . . . . . . . 1231 Search . . . . . . . . . . . . . . 1333
db2rfpen - Restablecer estado pendiente de
db2ts ALTER INDEX . . . . . . . . . . 1334
avance . . . . . . . . . . . . . . . 1233
db2ts CLEANUP FOR TEXT . . . . . . . . 1339
db2ts CLEAR COMMAND LOCKS. . . . . . 1340

vi Consulta de mandatos
db2ts CLEAR EVENTS FOR TEXT . . . . . . 1342 Apéndice C. Visión general de la
db2ts CREATE INDEX . . . . . . . . . . 1344 información técnica de DB2 . . . . 1377
db2ts DISABLE DATABASE FOR TEXT . . . . 1352 Biblioteca técnica de DB2 en copia impresa o en
db2ts DROP INDEX . . . . . . . . . . . 1354 formato PDF . . . . . . . . . . . . . 1378
db2ts ENABLE DATABASE FOR TEXT . . . . 1356 Visualización de la ayuda para estados de SQL
db2ts HELP . . . . . . . . . . . . . 1358 desde el procesador de línea de mandatos . . . 1380
db2ts START FOR TEXT . . . . . . . . . 1360 Acceso a diferentes versiones del Centro de
db2ts STOP FOR TEXT . . . . . . . . . . 1362 información de DB2 . . . . . . . . . . . 1380
db2ts UPDATE INDEX . . . . . . . . . . 1364 Actualización del Centro de información de DB2
instalado en el sistema o en el servidor de
Apéndice A. Convenios de intranet . . . . . . . . . . . . . . . 1381
denominación . . . . . . . . . . 1369 Actualización manual del Centro de información
Convenios de denominación . . . . . . . . 1370 de DB2 instalado en el sistema o en el servidor de
intranet . . . . . . . . . . . . . . . 1382
Apéndice B. Modificadores y Guías de aprendizaje de DB2 . . . . . . . . 1384
Información de resolución de problemas de DB2 1384
delimitadores de tipo de archivo . . 1373
Términos y condiciones . . . . . . . . . 1385
Modificadores de tipo de archivo para los
programas de utilidad de exportación,
importación y carga . . . . . . . . . . . 1374 Apéndice D. Avisos . . . . . . . . 1387
Consideraciones sobre los delimitadores para
mover datos . . . . . . . . . . . . . 1375 Índice . . . . . . . . . . . . . . 1391

Contenido vii
viii Consulta de mandatos
Acerca de este manual
Este manual proporciona información acerca del uso de mandatos del sistema y del
procesador de la línea de mandatos (CLP) IBM® DB2 para ejecutar funciones
administrativas de bases de datos.

Quién debe utilizar este manual


Se supone que el lector tiene conocimientos de administración de bases de datos y
conoce el Lenguaje de Consulta Estructurada (SQL).

Cómo esta estructurado este manual


Este manual proporciona la información de consulta necesaria para utilizar los
mandatos de CLP, del sistema y de DB2 Text Search.

Las principales áreas temáticas tratadas en los capítulos de este manual son las
siguientes:
Utilización del procesador de línea de mandatos (CLP)
v El capítulo 1, “Procesador de la línea de mandatos (CLP),” explica cómo
invocar y utilizar el procesador de línea de mandatos y describe las
opciones del CLP.
v El capítulo 2, “Utilización de sentencias de SQL y XQuery de línea de
mandatos”, proporciona información sobre el uso de las sentencias de
SQL desde la línea de mandatos.
Uso de Command Line Processor Plus (CLPPlus)
v En el capítulo 3, “Command Line Processor Plus (CLPPlus)”, se describe
cómo instalar, invocar y utilizar la interfaz de Command Line Processor
Plus.
Ayuda para el uso de mandatos
v En el capítulo 4, “Cómo leer la ayuda de sintaxis de mandatos”, se
describe cómo invocar las pantallas de ayuda de los mandatos y explica
las convenciones sintácticas de la pantalla de ayuda que se utilizan.
mandatos CLP
v En el capítulo 5, “Mandatos CLP”, se describen todos los mandatos del
gestor de bases de datos en orden alfabético.
Mandatos de CLPPlus
v En el capítulo 6, “Mandatos de CLPPlus”, se listan alfabéticamente y se
describen todos los mandatos que se pueden utilizar en la interfaz de
CLPPlus.
Mandatos del sistema
v En el capítulo 7, “Mandatos del sistema”, se describen todos los
mandatos, en orden alfabético, que pueden especificarse en un indicador
de mandatos del sistema operativo o en un script de shell para acceder
al gestor de bases de datos.
Mandatos de DB2 Text Search

© Copyright IBM Corp. 1993, 2012 ix


Cómo esta estructurado este manual

v El Capítulo 8, “Mandatos de DB2”, describe todos los mandatos de Text


Search, en orden alfabético, que pueden especificarse en un indicador de
mandatos del sistema operativo con el prefijo db2ts.
Apéndices
v El Apéndice A, “Convenios de denominación” describe los convenios
utilizados para denominar los objetos como, por ejemplo, las bases de
datos y las tablas.
v El Apéndice B, “Modificadores y delimitadores de tipo de archivo”
describe los modificadores de tipo de archivo para los programas de
utilidad de carga, importación y exportación. Además, también se
incluyen consideraciones de los delimitadores para mover los datos.

Convenios de resaltado
En este manual se utilizan los siguientes convenios de resaltado.

Negrita Indica mandatos, palabras clave y otros elementos cuyos nombres están
predefinidos por el sistema. Los mandatos escritos en mayúsculas son
mandatos del CLP, mientras que los mandatos escritos en minúsculas son
mandatos del sistema.
Cursiva Indica uno de los elementos siguientes:
v Nombres o valores (variables) que el usuario debe proporcionar
v Énfasis general
v La introducción de un término nuevo
v Una referencia a otra fuente de información
Monoespaciado Indica uno de los elementos siguientes:
v Archivos y directorios
v Información que el usuario debe escribir en una solicitud de mandatos o
en una ventana
v Ejemplos de valores de datos concretos
v Ejemplo de texto similares a la forma en que es posible que el sistema los
visualice
v Ejemplos de mensajes de texto
v Ejemplos de código de programación

x Consulta de mandatos
Cómo leer los diagramas de sintaxis
En este tema se describe la estructura de los diagramas de la sintaxis de SQL.

Lea los diagramas de sintaxis de izquierda a derecha y de arriba a abajo, siguiendo


la vía de acceso de la línea.

El símbolo ??--- indica el principio de un diagrama de sintaxis.

El símbolo ---? indica que la sintaxis continúa en la línea siguiente.

El símbolo ?--- indica que la sintaxis continúa de la línea anterior.

El símbolo --?? indica el final de un diagrama de sintaxis.

Los fragmentos de sintaxis empiezan con el símbolo +--- y finalizan con el símbolo
---¦.

Los elementos necesarios aparecen en la línea horizontal (en la vía de acceso


principal).

 elemento_necesario 

Los elementos opcionales aparecen bajo la vía de acceso principal.

 elemento_necesario 
elemento_opcional

Si un elemento opcional aparece sobre la vía de acceso principal, ese elemento no


tiene ningún efecto en la ejecución y sólo se utiliza para posibilitar la lectura.

elemento_opcional
 elemento_necesario 

Si puede elegir entre dos o más elementos, éstos aparecen en una pila.

Si debe elegir uno de los elementos, un elemento de la pila aparece en la vía de


acceso principal.

 elemento_necesario opción_necesaria1 
opción_necesaria2

Si la elección de uno de los elementos es opcional, la pila entera aparece bajo la vía
de acceso principal.

 elemento_necesario 
opción_opcional1
opción_opcional2

© Copyright IBM Corp. 1993, 2012 xi


Cómo leer los diagramas de sintaxis

Si uno de los elementos es el valor por omisión, aparecerá sobre la vía de acceso
principal y las opciones restantes se mostrarán debajo.

opción_por_omisión
 elemento_necesario 
opción_opcional
opción_opcional

Una flecha que vuelve a la izquierda, sobre la línea principal, indica un elemento
que se puede repetir. En este caso, los elementos repetidos se deben separar
mediante uno o más espacios en blanco.

 elemento_necesario  elemento_repetible 

Si la flecha de repetición contiene una coma, debe separar los elementos repetidos
con una coma.

 elemento_necesario  elemento_repetible 

Una flecha de repetición sobre una pila indica que puede realizar más una elección
en los elementos apilados o repetir una sola elección.

Las palabras clave aparecen en mayúsculas (por ejemplo FROM). Se deben escribir
exactamente tal como se muestran. Las variables aparecen en minúsculas (por
ejemplo nombre-columna). Representan nombres o valores proporcionados por el
usuario en la sintaxis.

Si se muestran signos de puntuación, paréntesis, operadores aritméticos u otros


símbolos de este tipo, debe entrarlos como parte de la sintaxis.

A veces una variable individual representa un fragmento mayor de la sintaxis. Por


ejemplo, en el diagrama siguiente, la variable bloque-parámetros representa el
fragmento de sintaxis completo que está etiquetado bloque-parámetros:

 elemento_necesario bloque-parámetros 

bloque-parámetros:

parámetro1
parámetro2 parámetro3
parámetro4

Los segmentos adyacentes que aparecen entre “puntos” (?) se pueden especificar
en cualquier secuencia.

 elemento_necesario elemento1 ? elemento2 ? elemento3 ? elemento4 

xii Consulta de mandatos


Cómo leer los diagramas de sintaxis

El diagrama anterior muestra que elemento2 y elemento3 se pueden especificar en


cualquier orden. Son válidos los dos ejemplos siguientes:
elemento_necesario elemento1 elemento2 elemento3 elemento4
elemento_necesario elemento1 elemento3 elemento2 elemento4

Cómo leer los diagramas de sintaxis xiii


Cómo leer los diagramas de sintaxis

xiv Consulta de mandatos


Capítulo 1. Procesador de línea de mandatos (CLP)

© Copyright IBM Corp. 1993, 2012 1


Funciones del procesador de línea de mandatos

Funciones del procesador de línea de mandatos


En esta sección se proporciona información acerca de las funciones del procesador
de línea de mandatos.

El procesador de línea de mandatos opera del modo siguiente:


v El mandato de CLP (en cualquiera de los casos) se escribe en el indicador de
mandatos.
v El mandato se envía al shell de mandato pulsando la tecla INTRO.
v La salida se dirige automáticamente al dispositivo de salida estándar.
v Se soportan las áreas de interconexión y la redirección.
v Se informa al usuario acerca de la realización satisfactoria o no satisfactoria.
v A continuación de la ejecución del mandato, el control vuelve al indicador de
mandatos del sistema operativo y el usuario puede entrar más mandatos.
v Cuando se llama al CLP con una opción de entrada de archivo, se establecerá
automáticamente el registro especial CLIENT APPLNAME en CLP
nombrearchivo.

Puede iniciar el procesador de línea de mandatos:


v escribiendo el mandato db2 o
v en los sistemas operativos Linux, pulse Menú principal y seleccione IBM DB2 >
Procesador de línea de mandatos.

Determinados mandatos de CLP y sentencias de SQL requieren que la instancia de


servidor se esté ejecutando y que exista una conexión de base de datos. Conéctese
con una base de datos realizando una de las siguientes acciones:
v Emita la sentencia de SQL:
db2 connect to basedatos
v Establezca una conexión implícita a la base de datos por omisión definida por la
variable de registro DB2DBDFT de DB2.

Si un mandato excede el límite de caracteres permitido en el indicador de


mandatos, se puede utilizar una barra inclinada invertida (\) como carácter de
continuación de línea. Cuando el procesador de línea de mandatos encuentra el
carácter de continuación de línea, lee la línea siguiente y concatena los caracteres
contenidos en ambas líneas. Como alternativa, puede utilizarse la opción -t para
establecer un carácter de terminación de línea distinto.

El procesador de línea de mandatos reconoce una serie llamada NULL como una
serie nula. Los campos que se han establecido anteriormente a algún valor pueden
establecerse en NULL posteriormente. Por ejemplo,
db2 update database manager configuration using tm_database NULL

establece el campo tm_database en NULL. Esta operación es sensible a las


mayúsculas y minúsculas. Un null en minúsculas no se interpreta como una serie
nula, sino como una serie que contiene las letras null.

Personalización del procesador de línea de mandatos

Es posible personalizar el indicador de entrada interactivo utilizando la variable de


registro DB2_CLPPROMPT. Esta variable de registro se puede establecer en cualquier

2 Consulta de mandatos
Funciones del procesador de línea de mandatos

serie que tenga una longitud máxima de 100 caracteres y puede contener los
símbolos %i, %ia, %d, %da y %n. Estos símbolos se sustituirán por valores
específicos en tiempo de ejecución.
Tabla 1. Símbolos DB2_CLPPROMPT y valores en tiempo de ejecución
Símbolo DB2_CLPPROMPT Valor en tiempo de ejecución
%ia ID de autorización de la conexión de la instancia actual.
%i Alias local de la instancia conectada en la actualidad. Si no
existe ninguna conexión de instancia, será el valor de la
variable de registro DB2INSTANCE. Sólo en plataformas
Windows, si la variable de registro DB2INSTANCE no está
establecida, será el valor de la variable de registro
DB2INSTDEF.
%da ID de autorización de la conexión de base de datos actual.
%d Alias local de la base de datos conectada en la actualidad.
Si no existe ninguna conexión de base de datos, será el
valor de la variable de registro DB2DBDFT.
%n Línea nueva

v Si hay algún símbolo que no tenga asociado un valor durante el tiempo de


ejecución, la serie vacía se sustituirá por dicho símbolo.
v El indicador de entrada interactivo siempre presentará los ID de autorización,
los nombres de las bases de datos y los nombres de las instancias en mayúsculas
para mantener la coherencia con la información de conexión que se muestra en
el indicador.
v Si la variable de registro DB2_CLPPROMPT se cambia en la modalidad interactiva
del CLP, el valor nuevo de DB2_CLPPROMPT no tendrá efecto hasta que se cierre y
se vuelva a abrir la modalidad interactiva del CLP.

Se puede especificar el número de mandatos que se almacenarán en el historial de


mandatos mediante la variable de registro DB2_CLPHISTSIZE. El mandato HISTORY le
permite acceder al contenido del historial de mandatos que se ejecuta en una
sesión de modalidad interactiva CLP.

También puede especificar el editor que se abre al emitir el mandato EDIT mediante
la variable de registro DB2_CLP_EDITOR. Desde una sesión interactiva CLP, el
mandato EDIT abre un editor cargado previamente con un mandato especificado
por el usuario que luego se puede editar y ejecutar.

Ejemplos

Si DB2_CLPPROMPT se define como (%ia@%i, %da@%d), el indicador de entrada tendrá


los valores siguientes:
v Ninguna conexión de instancia y ninguna conexión de base de datos.
DB2INSTANCE establecida en DB2. DB2DBDFT no establecida.
(@DB2, @)
v (Windows) Ninguna conexión de instancia y ninguna conexión de base de datos.
DB2INSTANCE y DB2DBDFT no están establecidas. DB2INSTDEF establecida en DB2.
(@DB2, @)
v Ninguna conexión de instancia y ninguna conexión de base de datos.
DB2INSTANCE establecida en DB2. DB2DBDFT establecida en "SAMPLE".
(@DB2, @SAMPLE)

Capítulo 1. Procesador de línea de mandatos (CLP) 3


Funciones del procesador de línea de mandatos

v Conexión de instancia a la instancia "DB2" con el ID de autorización "keon14".


DB2INSTANCE establecida en DB2. DB2DBDFT establecida en "SAMPLE".
(KEON14@DB2, @SAMPLE)
v Conexión de base de datos a la base de datos "sample" con el ID de autorización
"horton7". DB2INSTANCE establecida en DB2. DB2DBDFT establecida en SAMPLE.
(@DB2, HORTON7@SAMPLE)
v Conexión de instancia a la instancia "DB2" con el ID de autorización "keon14".
Conexión de base de datos a la base de datos "sample" con el ID de autorización
"horton7". DB2INSTANCE establecida en DB2. DB2DBDFT no establecida.
(KEON14@DB2, HORTON7@SAMPLE)

Utilización del procesador de línea de mandatos en archivos de


mandatos
Las peticiones de CLP al gestor de bases de datos pueden incluirse en un archivo
de mandatos del script de shell. El ejemplo siguiente muestra cómo entrar la
sentencia CREATE TABLE en un archivo de mandatos del script de shell:
db2 “create table mitabla (name VARCHAR(20), color CHAR(10))”

Para obtener más información sobre mandatos y archivos de mandatos, consulte el


manual del sistema operativo apropiado.

Diseño del procesador de línea de mandatos

El procesador de línea de mandatos consta de dos procesos: el proceso de


componente frontal (el mandato DB2), que actúa como interfaz de usuario, y el
proceso de fondo (db2bp), que mantiene una conexión de base de datos.
Mantenimiento de conexiones a la base de datos
Cada vez que se invoca db2, se inicia un nuevo proceso de componente
frontal. El proceso de fondo lo inicia la primera invocación de db2 y puede
terminarse explícitamente con el mandato TERMINATE. Todos los procesos de
componente frontal con el mismo padre están atendidos por un solo
proceso de fondo y, por consiguiente, comparten una sola conexión a la
base de datos.
Por ejemplo, las llamadas db2 siguientes desde el mismo indicador de
mandatos de sistema operativo producen procesos de componente frontal
independientes que comparten un único proceso de fondo, que mantiene
una conexión a la base de datos durante:
v db2 ’connect to sample’,
v db2 ’select * from org’,
v . test01 (donde test01 es un script de shell que contiene mandatos
DB2 y
v db2 -tf myfile.clp
Las invocaciones siguientes desde el mismo indicador de sistema operativo
producen conexiones a la base de datos independientes porque cada una
tiene un proceso padre diferenciado y, por consiguiente, un proceso de
fondo diferenciado:
v test01
v . test01 &
v test01 &
v sh test01

4 Consulta de mandatos
Funciones del procesador de línea de mandatos

Comunicación entre los procesos de componente frontal y de fondo


El proceso de componente frontal y los procesos de fondo se comunican
mediante tres colas de mensajes: una cola de peticiones, una cola de
entrada y una cola de salida.
Variables de entorno
Las variables de entorno siguientes ofrecen un medio para configurar la
comunicación entre los dos procesos:
Tabla 2. Variables de entorno
Variable Mínimo Máximo Valor por omisión
DB2BQTIME 1 segundo 5294967295 1 segundo
DB2BQTRY 0 intentos 5294967295 60 intentos
DB2RQTIME 1 segundo 5294967295 5 segundos
DB2IQTIME 1 segundo 5294967295 5 segundos

DB2BQTIME
Cuando se invoca el procesador de línea de mandatos, el proceso
de componente frontal comprueba si el proceso de fondo ya está
activo. Si está activo, el proceso de componente frontal restablece la
conexión con el mismo. Si no está activo, el proceso de
componente frontal lo activa. Entonces el proceso de componente
frontal queda desocupado durante el período de tiempo
especificado por la variable DB2BQTIME y realiza la comprobación
otra vez. El proceso de componente frontal continúa realizando la
comprobación el número de veces especificado por la variable
DB2BQTRY, después de lo cual, si el proceso de fondo aún no está
activo, excede el tiempo de espera y devuelve un mensaje de error.
DB2BQTRY
Funciona junto con la variable DB2BQTIME y especifica el número de
veces que el proceso de componente frontal intenta determinar si el
proceso de fondo está activo.
Los valores de DB2BQTIME y DB2BQTRY pueden aumentar durante
períodos punta para optimizar el tiempo de consulta.
DB2RQTIME
El proceso de fondo, una vez iniciado, espera en la cola de
peticiones una petición del componente frontal. También espera en
la cola de peticiones durante el tiempo que transcurre entre las
peticiones iniciadas desde el indicador de mandatos.
La variable DB2RQTIME especifica el tiempo que espera el proceso de
fondo a una petición del proceso de componente frontal. Al final
de este tiempo, si no hay ninguna petición en la cola de peticiones,
el proceso de fondo comprueba si aún existe el padre del proceso
de componente frontal y termina, si éste no existe. De lo contrario,
continúa esperando en la cola de peticiones.
DB2IQTIME
Cuando el proceso de fondo recibe una petición del proceso de
componente frontal, envía un acuse de recibo al proceso de
componente frontal indicando que está preparado para recibir
entrada a través de la cola de entrada. Entonces el proceso de
fondo espera en su cola de entrada. También espera en la cola de

Capítulo 1. Procesador de línea de mandatos (CLP) 5


Funciones del procesador de línea de mandatos

entrada mientras se está ejecutando un archivo de proceso por


lotes (especificado con la opción -f) y mientras el usuario está en
modalidad interactiva.
La variable DB2IQTIME especifica el tiempo que el proceso de fondo
espera en la cola de entrada a que el proceso de componente
frontal pase los mandatos. Cuando este tiempo ha transcurrido, el
proceso de fondo comprueba si el proceso de componente frontal
está activo y vuelve a esperar en la cola de peticiones si el proceso
de componente frontal ya no existe. De lo contrario, el proceso de
fondo continúa esperando entrada del proceso de componente
frontal.
Para ver los valores de estas variables de entorno, utilice LIST COMMAND
OPTIONS.
Las variables de entorno del programa de fondo heredan los valores
establecidos por el proceso de componente frontal en el momento en que
se inicia el proceso de fondo. Sin embargo, si se cambian las variables de
entorno del componente frontal, el proceso de fondo no heredará estos
cambios. El proceso de fondo debe terminarse primero y, a continuación,
reiniciarse (emitiendo el mandato db2) para heredar los valores
modificados.
En el escenario siguiente se proporciona un ejemplo de cuándo debe
terminarse el proceso de fondo:
1. El usuario A se conecta, emite algunos mandatos de CLP y, a
continuación, se desconecta sin emitir TERMINATE.
2. El usuario B se conecta utilizando la misma ventana.
3. Cuando el usuario B emite determinados mandatos de CLP, éstos fallan
con el mensaje DB21016 (error del sistema).
El proceso de fondo iniciado por el usuario A aún está activo cuando el
usuario B empieza a utilizar el CLP, porque el padre del proceso de
componente frontal del usuario B (la ventana de sistema operativo desde la
que se emiten los mandatos) está aún activo. El proceso de fondo intenta
atender los nuevos mandatos emitidos por el usuario B; sin embargo, el
proceso de componente frontal del usuario B no tiene suficiente
autorización para utilizar las colas de mensajes del proceso de fondo,
porque necesita la autorización del usuario A, que ha creado dicho proceso
de fondo. Una sesión CLP debe terminar con un mandato TERMINATE antes
que un usuario inicie una nueva sesión CLP utilizando la misma ventana
de sistema operativo. Esto crea un proceso de fondo nuevo para cada
usuario nuevo, evitando problemas de autorización y estableciendo los
valores correctos de las variables de entorno (por ejemplo DB2INSTANCE) en
el proceso de fondo del nuevo usuario.

Notas de uso del CLP

Los mandatos se pueden entrar tanto en mayúsculas como en minúsculas desde el


indicador de mandatos. Sin embargo, los parámetros que son sensibles a las
mayúsculas y minúsculas para DB2 deben especificarse con las mayúsculas y
minúsculas exactas necesarias. Por ejemplo, la serie-comentario de la cláusula WITH
del mandato CHANGE DATABASE COMMENT es un parámetro sensible a las mayúsculas
y minúsculas.

Se permiten identificadores delimitados en las sentencias de SQL.

6 Consulta de mandatos
Funciones del procesador de línea de mandatos

Se permiten caracteres especiales o metacaracteres (por ejemplo $ & * ( ) ; < > ? \ '
") en los mandatos CLP. Si se utilizan fuera de la modalidad interactiva del CLP o
la modalidad de entrada de proceso por lotes de CLP, el shell del sistema
operativo interpreta dichos caracteres. Es necesario utilizar comillas o un carácter
de escape si el shell no debe realizar ninguna acción especial.

Por ejemplo, cuando se ejecuta dentro del entorno del shell Korn de AIX,
db2 select * from org where division > ’Eastern’

se interpreta como "select <los nombres de todos los archivos> from org where
division". El resultado, un error de sintaxis de SQL, se redirige al archivo Eastern.
La sintaxis siguiente produce la salida correcta:
db2 "select * from org where division > ’Eastern’"

Los caracteres especiales varían de una plataforma a otra. En el shell Korn de AIX,
el ejemplo anterior podría volverse a escribir utilizando un carácter de escape (\),
como \*, \>, o \'.

La mayoría de los entornos de sistema operativo permiten redirigir la entrada y la


salida. Por ejemplo, si se ha realizado una conexión a la base de datos SAMPLE, la
petición siguiente consulta la tabla STAFF y envía la salida a un archivo llamado
staflist.txt del directorio misdatos:
db2 "select * from staff" > mydata/staflist.txt

Para entornos donde no está soportada la redirección de la salida, se pueden


utilizar opciones de CLP. Por ejemplo, la petición puede escribirse como
db2 -r
mydata\staflist.txt "select * from staff"

db2 -z mydata\staflist.txt "select * from staff"

El procesador de línea de mandatos no es un lenguaje de programación. Por


ejemplo, no soporta variables del lenguaje principal, y la sentencia
db2 connect to :HostVar in share mode

es sintácticamente incorrecta, porque :HostVar no es un nombre de base de datos


válido.

El procesador de línea de mandatos representa los valores NULL de SQL como


guiones (-). Si la columna es numérica, el guión se coloca a la derecha de la
columna. si la columna no es numérica, el guión está a la izquierda.

Para visualizar correctamente los caracteres nacionales para idiomas de un solo


byte (SBCS) desde la ventana del procesador de línea de mandatos de DB2, se debe
seleccionar un font True Type. Por ejemplo, en un entorno Windows, abra el
cuaderno de propiedades de la ventana de mandatos y seleccione un font como
por ejemplo Lucinda Console.

El procesador de línea de mandatos no da soporte a caracteres de soporte de


idiomas nacionales (NLS) en los nombres de vía de acceso a archivo. Esto afecta
especialmente a mandatos como por ejemplo IMPORT, EXPORT y REGISTER XMLSCHEMA,
donde aparecen con mayor frecuencia nombres problemáticos de vía de acceso a
archivos.

Se da soporte a la conexión de la salida de un mandato del procesador de línea de


mandatos para otro mandato del procesador de línea de mandatos. Por ejemplo:

Capítulo 1. Procesador de línea de mandatos (CLP) 7


Funciones del procesador de línea de mandatos

db2 -x <sentencia_SQL> | db2 +p -tv. Este soporte tiene como única limitación el
tamaño del almacenamiento intermedio de la conexión. Los tamaños de los
almacenamientos intermedios de las conexiones no pueden configurarse. Si el
primer mandato excede el tamaño de almacenamiento intermedio de la conexión,
puede que el procesador de la línea de mandatos se cuelgue o genere un error al
intentar grabar la salida en el almacenamiento intermedio de la conexión. Si el
segundo mandato no es un mandato del procesador de línea de mandatos, por
ejemplo, un mandato de shell de UNIX, el procesador no se colgará ni generará un
error debido a la limitación del tamaño del almacenamiento intermedio de la
conexión.

8 Consulta de mandatos
db2 - Invocación del procesador de línea de mandatos

db2 - Invocación del procesador de línea de mandatos


El mandato db2 inicia el procesador de línea de mandatos (CLP). El CLP se utiliza
para ejecutar programas de utilidad de base de datos, sentencias de SQL y ayuda
en línea.

Ofrece diversas opciones de mandato y se puede iniciar en:


v Modalidad de entrada interactiva, caracterizada por el indicador de entrada
db2 =>
v Modalidad de mandatos, donde cada mandato debe llevar el prefijo db2
v Modalidad de proceso por lotes, que utiliza la opción de entrada de archivo -f.

En sistemas operativos Windows, db2cmd abre la ventana de DB2 habilitada para


CLP e inicializa el entorno de línea de mandatos de DB2. La emisión de este
mandato equivale a pulsar el icono Ventana de mandatos de DB2.

QUIT detiene el procesador de línea de mandatos. TERMINATE también detiene el


procesador de línea de mandatos, pero elimina el proceso de fondo asociado y
libera la memoria que se esté utilizando. Se recomienda emitir un mandato
TERMINATE antes de cada mandato STOP DATABASE MANAGER (db2stop). También
podría ser necesario emitir TERMINATE después de haber cambiado los parámetros
de configuración de base de datos para que estos cambios entren en vigor. Antes
de terminar el CLP se deberán restablecer las conexiones existentes.

El mandato de shell (!)permite que los mandatos del sistema operativo se ejecuten
en la modalidad interactiva o por lotes en sistemas operativos basados en Linux y
UNIX y en sistemas operativos Windows (!ls en sistemas operativos UNIX y !dir
en sistemas operativos Windows, por ejemplo).

Sintaxis del mandato


 db2 


distintivo-opción mandato-db2
sentencia-sql
?
frase
mensaje
sqlstate
código-clase
-- comentario

distintivo-opción
Especifica un distintivo de opción de CLP.
mandato-db2
Especifica un mandato DB2.
sentencia-sql
Especifica una sentencia de SQL.
? Solicita ayuda general de CLP.
? frase Solicita el texto de ayuda asociado con un mandato o un tema

Capítulo 1. Procesador de línea de mandatos (CLP) 9


db2 - Invocación del procesador de línea de mandatos

especificado. Si el gestor de bases de datos no puede encontrar la


información solicitada, visualiza la pantalla de ayuda general.
? options solicita una descripción y los valores actuales de las opciones de
CLP. ? help solicita información sobre la lectura de los diagramas de
sintaxis de la ayuda en línea.
? mensaje
Solicita ayuda para un mensaje especificado por un SQLCODE válido (por
ejemplo ? sql10007n).
? sqlstate
Solicita ayuda para un mensaje especificado por un mensaje SQLSTATE
válido.
? código-clase
Solicita ayuda para un mensaje especificado por un código-clase válido.
-- comentario
El procesador de línea de mandatos trata como un comentario la entrada
que empieza con los caracteres de comentario ---

En cada caso, un espacio en blanco debe separar el interrogante (?) del nombre de
variable.

10 Consulta de mandatos
Opciones del procesador de línea de mandatos

Opciones del procesador de línea de mandatos


Las opciones de mandatos de CLP pueden especificarse estableciendo la variable
de entorno del procesador de línea de mandatos DB2OPTIONS (que debe estar en
mayúsculas), o con distintivos de línea de mandatos.

Los usuarios pueden establecer opciones para una sesión entera utilizando
DB2OPTIONS.

Vea los valores actuales para los distintivos de opción y el valor de DB2OPTIONS
utilizando LIST COMMAND OPTIONS. Cambie un valor de opción de la modalidad de
entrada interactiva o un archivo de mandato utilizando UPDATE COMMAND OPTIONS.

El procesador de línea de mandatos establece opciones en el orden siguiente:


1. Configura las opciones por omisión.
2. Lee DB2OPTIONS para alterar temporalmente los valores por omisión.
3. Lee la línea de mandatos para alterar temporalmente DB2OPTIONS.
4. Acepta entrada de UPDATE COMMAND OPTIONS como una alteración temporal final
interactiva.

La Tabla 3 resume los distintivos de opciones de CLP. Estas opciones pueden


especificarse en cualquier secuencia y combinación. Para activar una opción, ponga
un signo menos (-) delante de la letra de opción correspondiente. Para desactivar
una opción, ponga un signo menos delante de la letra de opción y otro signo
menos después de dicha letra o ponga como prefijo de la letra de opción un signo
más (+). Por ejemplo, -c activa la opción de confirmación automática y -c- o +c la
desactiva. Estas letras de opciones no son sensibles a las mayúsculas y minúsculas,
es decir, -a y -A son equivalentes.
Tabla 3. Opciones de mandatos de CLP
Distintivo de Valor por
opción Descripción omisión
-a Esta opción indica al procesador de línea de mandatos que OFF
visualice datos SQLCA.
-c Esta opción indica al procesador de línea de mandatos que ON
confirme automáticamente las sentencias de SQL.
-d Esta opción indica al procesador de línea de mandatos que OFF
recupere y visualice las declaraciones XML de datos XML.
-e{c|s} Esta opción indica al procesador de línea de mandatos que OFF
visualice SQLCODE o SQLSTATE. Estas opciones se
excluyen mutuamente.
-fnombrearchivo Esta opción indica al procesador de línea de mandatos que OFF
lea entrada de mandato de un archivo en lugar de hacerlo
de la entrada estándar.
-i Esta opción indica al procesador de línea de mandatos que OFF
'imprima con estilo' los datos XML con el sangrado
correcto. Esta opción solamente afectará al conjunto de
resultados de sentencias XQuery.
-l Esta opción indica al procesador de línea de mandatos que OFF
nombrearchivo anote cronológicamente los mandatos en un archivo
histórico.

Capítulo 1. Procesador de línea de mandatos (CLP) 11


Opciones del procesador de línea de mandatos

Tabla 3. Opciones de mandatos de CLP (continuación)


Distintivo de Valor por
opción Descripción omisión
-m Esta opción indica al procesador de línea de mandatos que OFF
imprima el número de filas afectadas de las sentencias
INSERT, DELETE, UPDATE y MERGE.
-n Elimina el carácter de línea nueva dentro de un solo OFF
símbolo delimitado. Si no se especifica esta opción, el
carácter de línea nueva se sustituye por un espacio. Esta
opción debe utilizarse con la opción -t.
-o Esta opción indica al procesador de línea de mandatos que ON
visualice los datos de salida y los mensajes en la salida
estándar.
-p Esta opción indica al procesador de línea de mandatos que ON
visualice un indicador del procesador de línea de
mandatos cuando se esté en modalidad de entrada
interactiva.
-q Esta opción indica al procesador de línea de mandatos que OFF
conserve los espacios en blanco y los saltos de línea en las
series delimitadas por comillas o apóstrofos. Cuando la
opción q es ON, se ignora la opción n.
-rnombrearchivo Esta opción indica al procesador de línea de mandatos que OFF
grabe el informe generado por un mandato en un archivo.
-s Esta opción indica al procesador de línea de mandatos que OFF
detenga la ejecución si se producen errores mientras se
ejecutan mandatos en un archivo de proceso por lotes o en
modalidad interactiva.
-t Esta opción indica al procesador de línea de mandatos que OFF
utilice un punto y coma (;) como carácter de terminación
de sentencia.
-tdx o -tdxx Esta opción indica al procesador de línea de mandatos que OFF
defina y utilice x o xx como carácter o caracteres de
terminación de sentencia (1 o 2 caracteres de longitud).
-v Esta opción indica al procesador de línea de mandatos que OFF
repita en eco el texto del mandato en la salida estándar.
-w Esta opción indica al procesador de línea de mandatos que ON
visualice los mensajes de aviso FETCH y SELECT.
-x Esta opción indica al procesador de línea de mandatos que OFF
devuelva datos sin ninguna cabecera, incluidos los
nombres de columna. Este distintivo no afectará a todos
los mandatos. Es aplicable a sentencias de SQL y algunos
mandatos basados en sentencias de SQL tales como LIST
TABLES.
-znombrearchivo Esta opción indica al procesador de línea de mandatos que OFF
redirija toda la salida a un archivo. Es similar a la opción
-r, pero incluye los mensajes o los códigos de error con la
salida.

El mandato de AIX:
export DB2OPTIONS=’+a -c +ec -o -p’

establece los valores por omisión siguientes para la sesión:

12 Consulta de mandatos
Opciones del procesador de línea de mandatos

Visualizar SQLCA - off


Confirmar automáticamente - on
Visualizar SQLCODE - off
Visualizar salida - on
Visualizar indicador - on

A continuación se proporciona una descripción detallada de estas opciones:


Opción de visualización de datos SQLCA (-a):
Visualiza datos SQLCA en la salida estándar después de ejecutar un
mandato DB2 o una sentencia de SQL. Se visualizan los datos SQLCA en
lugar de un mensaje de error o de éxito.
El valor por omisión para esta opción de mandato es OFF (+a o -a-).
Las opciones -o y -r afectan a la opción -a; consulte las descripciones de
opciones para obtener detalles.
Opción de confirmación automática (-c):
Esta opción especifica si cada mandato o sentencia debe tratarse de forma
independiente. Si se establece en ON (-c), cada mandato o sentencia se
confirma o se retrotrae automáticamente. Si el mandato o la sentencia se
ejecuta satisfactoriamente, se confirman dicho mandato o dicha sentencia y
todos los mandatos y las sentencias satisfactorios que se han emitido antes
que éstos con la confirmación automática desactivada OFF (+c o -c-). Sin
embargo, si el mandato o la sentencia falla, se retrotraen dicho mandato o
dicha sentencia y todos los mandatos y todas las sentencias que se han
emitido antes que éstos con la confirmación automática desactivada OFF. Si
está establecida en OFF (+c o -c-), se deben emitir sentencias COMMIT o
ROLLBACK de forma explícita o se producirá una de estas acciones
cuando se emita el siguiente mandato con confirmación automática
habilitada ON (-c).
El valor por omisión para esta opción de mandato es ON.
La opción de confirmación automática no afecta a ninguna otra opción del
procesador de línea de mandatos.
Ejemplo: Examine el escenario siguiente:
1. db2 create database test
2. db2 connect to test
3. db2 +c "create table a (c1 int)"
4. db2 select c2 from a
La sentencia de SQL del paso 4 falla porque no hay ninguna columna
denominada C2 en la tabla A. Dado que dicha sentencia se ha emitido con
la confirmación automática establecida en ON (valor por omisión), retrotrae
no sólo la sentencia del paso 4, sino también la del paso 3, porque la
última se ha emitido con la confirmación automática establecida en OFF. El
mandato:
db2 list tables

devuelve entonces una lista vacía.


Opción de declaración XML (-d):
La opción -d indica al procesador de línea de mandatos si debe recuperar
y visualizar las declaraciones XML de datos XML.

Capítulo 1. Procesador de línea de mandatos (CLP) 13


Opciones del procesador de línea de mandatos

Si se establece en ON (-d), las declaraciones XML se recuperarán y


visualizarán. Si se establece en OFF (+d o -d-), las declaraciones XML no se
recuperarán y visualizarán. El valor por omisión para esta opción de
mandato es OFF.
La opción de declaración XML no afecta a ninguna otra opción de
procesador de línea de mandatos.
Opción de visualización de SQLCODE/SQLSTATE (-e):
La opción -e{c|s} indica al procesador de línea de mandatos que debe
mostrar el mensaje SQLCODE (-ec) o SQLSTATE (-es) en la salida
estándar. Las opciones -ec y -es no son válidas en modalidad interactiva
de CLP.
El valor por omisión para esta opción de mandato es OFF (+e o -e-).
Las opciones -o y -r afectan a la opción -e; consulte las descripciones de
opciones para obtener detalles.
La opción de visualización de SQLCODE/SQLSTATE no afecta a ninguna
otra opción del procesador de línea de mandatos.
Ejemplo: Para recuperar SQLCODE del procesador de línea de mandatos
ejecutando en AIX, entre:
sqlcode=`db2 -ec +o db2–command`
Opción de lectura del archivo de entrada (-f):
La opción -f nombrearchivo indica al procesador de línea de mandatos que
lea entrada de un archivo especificado, en lugar de hacerlo de la entrada
estándar. Nombrearchivo es un nombre de archivo absoluto o relativo que
puede incluir la vía de acceso de directorio al archivo. Si no se especifica la
vía de acceso de directorio, se utiliza el directorio actual.
Cuando se llama al CLP con una opción de entrada de archivo, se
establecerá automáticamente el registro especial CLIENT APPLNAME en
CLP nombrearchivo.
Cuando se combinan otras opciones con la opción -f, la opción -f debe
especificarse en último lugar. Por ejemplo:
db2 -tvf nombrearchivo
Cuando se ejecuta un archivo script CLP mediante el mandato db2 -tvf
nombrearchivo, se establece el registro especial de CLIENT APPLNAME en
CLP nombrearchivo. El siguiente mandato que ejecute, restablece los
registros especiales CLIENT APPLNAME y CLIENT ACCTNG en el valor
que tenía antes de emitir el mandato db2 -tvf nombrearchivo. Si el mandato
siguiente que se ejecuta es db2 terminate o el último mandato de
nombrearchivo es TERMINATE, no se restablecerán los registros especiales. Esta
acción resulta útil para supervisar qué trabajo por lotes se está ejecutando
y para diferenciar la carga de trabajo CLP.
Esta opción no se puede cambiar desde la modalidad interactiva.
El valor por omisión para esta opción de mandato es OFF (+f o -f-).
Los mandatos se procesan hasta que se emite el mandato QUIT o TERMINATE
o se encuentra un código de fin de archivo.
Si se especifican esta opción y un mandato de base de datos, el procesador
de línea de mandatos no procesa ningún mandato y se devuelve un
mensaje de error.

14 Consulta de mandatos
Opciones del procesador de línea de mandatos

El procesador de línea de mandatos trata como comentarios las líneas del


archivo de entrada que empiezan con los caracteres de comentario --. Los
caracteres de comentario deben ser los primeros caracteres distintos de
espacios en blanco de una línea.
Las líneas de los archivos de entrada que empiezan por (= se tratan como
el principio de un bloque de comentario. Las líneas que acaban por =)
marcan el fin de un bloque de comentario. El bloque de líneas de entrada
que empieza en (= y finaliza en =) se trata como un comentario continuo
por parte del procesador de línea de mandatos. Están permitidos los
espacios antes de (= y después de =). Pueden jerarquizarse los
comentarios, y pueden utilizarse jerarquizados en las sentencias. El carácter
de terminación de mandato (;) no se puede utilizar después de =).
Si se especifica la opción -f nombrearchivo, se ignora la opción -p.
La opción de lectura del archivo de entrada no afecta a ninguna otra
opción del procesador de línea de mandatos.
Tenga en cuenta que el carácter de terminación por omisión es uno de los
caracteres de línea nueva a menos que se especifique de otro modo con la
opción -t o el fin de archivo.
Opción de impresión con estilo (-i):
La opción -i indica al procesador de línea de mandatos que 'imprima con
estilo' los datos XML con el sangrado correcto. Esta opción solamente
afectará al conjunto de resultados de sentencias XQuery.
El valor por omisión para esta opción de mandato es OFF (+i o -i-).
La opción de impresión con estilo no afecta a ninguna otra opción de
procesador de línea de mandatos.
Opción Anotar mandatos en archivo histórico (-l):
La opción -l nombrearchivo indica al procesador de línea de mandatos que
anote cronológicamente los mandatos en un archivo especificado. Este
archivo histórico contiene registros de los mandatos ejecutados y su estado
de realización. Nombrearchivo es un nombre de archivo absoluto o relativo
que puede incluir la vía de acceso de directorio al archivo. Si no se
especifica la vía de acceso de directorio, se utiliza el directorio actual. Si el
archivo especificado o el archivo por omisión ya existe, la nueva entrada
de anotación cronológica se añade a dicho archivo.
Cuando se combinan otras opciones con la opción -l, la opción -l debe
especificarse en último lugar. Por ejemplo:
db2 -tvl nombrearchivo
El valor por omisión para esta opción de mandato es OFF (+l o -l-).
La opción de anotación cronológica de mandatos en archivo histórico no
afecta a ninguna otra opción del procesador de línea de mandatos.
Opción Visualizar el número de filas afectadas (-m):
La opción -m indica al procesador de línea de mandatos si debe imprimir o
no el número de filas afectadas de las sentencias INSERT, DELETE,
UPDATE o MERGE.
Si se establece en ON (-m), se visualizará el número de filas afectadas de las
sentencias INSERT, DELETE, UPDATE o MERGE. Si se establece en OFF

Capítulo 1. Procesador de línea de mandatos (CLP) 15


Opciones del procesador de línea de mandatos

(+m o -m-), no se visualizará el número de filas afectadas. Para otras


sentencias, se pasará por alto esta opción. El valor por omisión para esta
opción de mandato es OFF.
Las opciones -o y -r afectan a la opción -m; consulte las descripciones de
opciones para obtener detalles.
Opción Eliminar carácter de línea nueva (-n):
Elimina el carácter de línea nueva dentro de un solo símbolo delimitado. Si
no se especifica esta opción, el carácter de línea nueva se sustituye por un
espacio. Esta opción no se puede cambiar desde la modalidad interactiva.
El valor por omisión para esta opción de mandato es OFF (+n o -n-).
Esta opción debe utilizarse con la opción -t; consulte la descripción de las
opciones para obtener detalles.
Opción Visualizar salida (-o):
La opción -o indica al procesador de línea de mandatos que envíe los
datos de salida y los mensajes a la salida estándar.
El valor por omisión para esta opción de mandato es ON.
Esta opción no afecta a la información de arranque de modalidad
interactiva. Los datos de salida constan de la salida de informe de la
ejecución del mandato especificado por el usuario y de datos SQLCA (si se
solicitan).
La opción +o puede afectar a las opciones siguientes:
v -r nombrearchivo: La información de arranque de modalidad interactiva
no se guarda.
v -e: Se visualiza SQLCODE o SQLSTATE en la salida estándar incluso si
se especifica +o.
v -a: Ningún efecto si se especifica +o. Si se especifican -a, +o y
-rnombrearchivo, la información SQLCA se graba en un archivo.
Si se especifican ambas opciones -o y -e, se visualizan en la pantalla los
datos y el SQLCODE o el SQLSTATE.
Si se especifican ambas opciones -o y -v, se visualizan los datos y el texto
de cada mandato emitido se repite en eco en la pantalla.
La opción de visualización de salida no afecta a ninguna otra opción del
procesador de línea de mandatos.
Opción Visualizar indicador interactivo de DB2 (-p):
La opción -p indica al procesador de línea de mandatos que visualice el
indicador del procesador de línea de mandatos cuando el usuario está en
modalidad interactiva.
El valor por omisión para esta opción de mandato es ON.
La desactivación del indicador es útil cuando los mandatos se redirigen al
procesador de línea de mandatos. Por ejemplo, un archivo que contiene
mandatos de CLP podría ejecutarse emitiendo:
db2 +p < miarchivo.clp
La opción -p se ignora si se especifica la opción -f nombrearchivo.
La opción de visualización de indicador interactivo de DB2 no afecta a
ninguna otra opción del procesador de línea de mandatos.
Opción de conservación de espacios en blanco y saltos de línea (-q):

16 Consulta de mandatos
Opciones del procesador de línea de mandatos

La opción -q indica al procesador de línea de mandatos que conserve los


espacios en blanco y los saltos de línea en las series delimitadas por
comillas o apóstrofos.
El valor por omisión para esta opción de mandato es OFF (+q o -q-).
Si la opción -q es ON, se ignora la opción -n.
Opción Guardar en archivo de informe (-r):
La opción -r nombrearchivo hace que los datos de salida generados por un
mandato se graben en un archivo especificado y es útil para capturar un
informe que, de lo contrario, se desplazaría fuera de la pantalla. No se
graban mensajes o códigos de error en el archivo. Nombrearchivo es un
nombre de archivo absoluto o relativo que puede incluir la vía de acceso
de directorio al archivo. Si no se especifica la vía de acceso de directorio, se
utiliza el directorio actual. Las entradas de informe nuevas se añaden al
archivo.
El valor por omisión para esta opción de mandato es OFF (+r o -r-).
Si se especifica la opción -a, los datos SQLCA se graban en el archivo.
La opción -r no afecta a la opción -e. Si se especifica la opción -e,
SQLCODE o SQLSTATE se graba en la salida estándar, no en un archivo.
Si -r nombrearchivo se establece en DB2OPTIONS, el usuario puede establecer
la opción +r (o -r-) desde la línea de mandatos para impedir que los datos
de salida de una invocación de mandato determinada se graben en el
archivo.
La opción de guardar en archivo de informe no afecta a ninguna otra
opción del procesador de línea de mandatos.
Opción Detener ejecución en error de mandato (-s):
Cuando se emiten mandatos en modalidad interactiva o desde un archivo
de entrada y se producen errores de sintaxis o de mandato, la opción -s
hace que el procesador de línea de mandatos detenga la ejecución y grabe
mensajes de error en la salida estándar.
El valor por omisión para esta opción de mandato es OFF (+s o -s-). Este
valor hace que el procesador de línea de mandatos visualice mensajes de
error, continúe la ejecución de los mandatos restantes y detenga la
ejecución sólo si se produce un error del sistema (código de retorno 8).
La tabla siguiente resume este comportamiento:
Tabla 4. Códigos de retorno de CLP y ejecución de mandato
Código de retorno Opción -s establecida Opción +s establecida
0 (satisfactorio) continúa la ejecución continúa la ejecución
1 (0 filas seleccionadas) continúa la ejecución continúa la ejecución
2 (aviso) continúa la ejecución continúa la ejecución
4 (error de DB2 o SQL) se detiene la ejecución continúa la ejecución
8 (Error del sistema) se detiene la ejecución se detiene la ejecución

Opciones de carácter de terminación de sentencia (-t y -tdx o -tdxx):


La opción -t indica al procesador de línea de mandatos que utilice un
punto y coma (;) como carácter de terminación de sentencia e inhabilita el
carácter de continuación de línea de barra inclinada invertida (\). Esta
opción no se puede cambiar desde la modalidad interactiva.

Capítulo 1. Procesador de línea de mandatos (CLP) 17


Opciones del procesador de línea de mandatos

El valor por omisión para esta opción de mandato es OFF (+t o -t-).

Nota: Si utiliza el CLP para emitir sentencias de XQuery, es mejor elegir


un carácter de terminación distinto del punto y coma. Esto asegura que las
sentencias o las consultas que utilizan declaraciones de espacio de nombres
no se interpreten incorrectamente, porque las declaraciones de espacio de
nombres también terminan con un punto y coma.
Para definir caracteres de terminación de 1 o 2 caracteres de longitud,
utilice -td seguido del carácter o caracteres elegidos. Por ejemplo, -td%%
establece %% como carácter de terminación de sentencia. Otra posibilidad es
utilizar la directiva --#SET TERMINATOR en un archivo de entrada para
establecer los caracteres de terminación de sentencia. Por ejemplo:
db2 -td%% -f file1.txt

o bien
db2 -f file2.txt

donde file2.txt contiene lo siguiente como primera sentencia del archivo:


--#SET TERMINATOR %%
El valor por omisión para esta opción de mandato es OFF.
El carácter o los caracteres de terminación no se pueden utilizar para
concatenar varias sentencias desde la línea de mandatos, dado que las
comprobaciones de símbolo de terminación sólo se realizan en el último
carácter o los dos últimos caracteres distintos de espacio en blanco de cada
línea de entrada.
Las opciones de carácter de terminación de sentencia no afectan a ninguna
otra opción del procesador de línea de mandatos.
Opción Salida verbosa (-v):
La opción -v da lugar a que el procesador de línea de mandatos emita un
mandato echo (para la salida estándar) para el texto del mandato
especificado por el usuario antes de visualizar la salida, así como los
mensajes de ese mandato. ECHO está exento de esta opción.
El valor por omisión para esta opción de mandato es OFF (+v o -v-).
La opción -v no tiene ningún efecto si se especifica +o (o bien -o-).
La opción de salida verbosa no afecta a ninguna opción del procesador de
línea de mandatos.
Opción Mostrar mensajes de aviso (-w):
La opción -w indica al procesador de línea de mandatos si debe visualizar
o no mensajes de aviso que puedan aparecer durante una consulta
(sentencia FETCH o SELECT). Los avisos pueden aparecer durante varias
fases de la ejecución de la consulta, lo que puede dar como resultado que
los mensajes se visualicen antes, durante o tras la devolución de los datos.
Para asegurar que los datos devueltos no contienen texto de mensaje de
aviso, puede utilizarse este distintivo.
El valor por omisión para esta opción de mandato es ON.
Opción Suprimir impresión de cabeceras de columna (-x):
La opción -x indica al procesador de línea de mandatos que devuelva
datos sin ninguna cabecera, incluidos los nombres de columna. Este

18 Consulta de mandatos
Opciones del procesador de línea de mandatos

distintivo no afectará a todos los mandatos. Es aplicable a sentencias de


SQL y algunos mandatos basados en sentencias de SQL tales como LIST
TABLES.
El valor por omisión para esta opción de mandato es OFF.
Opción Guardar toda la salida en archivo (-z):
La opción -z nombrearchivo hace que toda la salida generada por un
mandato se grabe en un archivo especificado y es útil para capturar un
informe que, de lo contrario, se desplazaría fuera de la pantalla. Es similar
a la opción -r; sin embargo, en este caso también se graban en el archivo
mensajes, códigos de error y más información de salida. Nombrearchivo es
un nombre de archivo absoluto o relativo que puede incluir la vía de
acceso de directorio al archivo. Si no se especifica la vía de acceso de
directorio, se utiliza el directorio actual. Las entradas de informe nuevas se
añaden al archivo.
El valor por omisión para esta opción de mandato es OFF (+z o -z-).
Si se especifica la opción -a, los datos SQLCA se graban en el archivo.
La opción -z no afecta a la opción -e. Si se especifica la opción -e,
SQLCODE o SQLSTATE se graba en la salida estándar, no en un archivo.
Si -z nombrearchivo se establece en DB2OPTIONS, el usuario puede establecer
la opción +z (o -z-) desde la línea de mandatos para impedir que los datos
de salida de una invocación de mandato determinada se graben en el
archivo.
La opción de guardar toda la salida en archivo no afecta a ninguna otra
opción del procesador de línea de mandatos.

Capítulo 1. Procesador de línea de mandatos (CLP) 19


Códigos de retorno del procesador de línea de mandatos

Códigos de retorno del procesador de línea de mandatos


En esta sección se proporciona información acerca de los códigos de retorno del
procesador de línea de mandatos.

Cuando el procesador de línea de mandatos termina de procesar un mandato o


una sentencia de SQL, devuelve un código de retorno (o de salida). Estos códigos
son transparentes para los usuarios que ejecutan funciones CLP desde la línea de
mandatos, pero se pueden recuperar cuando dichas funciones se ejecutan desde un
script de shell.

Por ejemplo, el siguiente script del shell Bourne ejecuta el mandato GET
DATABASE MANAGER CONFIGURATION y, a continuación, inspecciona el
código de retorno del CLP:
db2 get database manager configuration
if [ "$?" = "0" ]
then echo "OK!"
fi

El cómodo de retorno puede ser uno de los valores siguientes:


Código
Descripción
0 El mandato DB2 o la sentencia de SQL se ha ejecutado satisfactoriamente
1 La sentencia SELECT o FETCH no ha devuelto filas
2 Aviso de mandato DB2 o de sentencia de SQL
4 Error de mandato DB2 o de sentencia de SQL
8 Error de sistema del Procesador de línea de mandatos

El procesador de línea de mandatos no proporciona ningún código de retorno


mientras un usuario está ejecutando sentencias desde la modalidad interactiva o
mientras se está leyendo entrada en un archivo (utilizando la opción -f).

Un código de retorno sólo queda disponible después de que el usuario haya salido
de la modalidad interactiva o cuando ha finalizado el proceso de un archivo de
entrada. En estos casos, el código de retorno es el OR lógico de los códigos de
retorno diferenciados devueltos desde los mandatos o las sentencias individuales
que se han ejecutado hasta ese momento.

Por ejemplo, si un usuario en modalidad interactiva emite mandatos que producen


códigos de retorno de 0, 1 y 2, se devolverá un código de retorno de 3 después de
que el usuario haya salido de la modalidad interactiva. No se devuelven los
códigos individuales 0, 1 y 2. El código de retorno 3 indica al usuario que durante
el proceso en modalidad interactiva, uno o más mandatos han devuelto un 1 y uno
o más mandatos han devuelto un 2.

Un SQLCODE negativo devuelto por un mandato DB2 o una sentencia de SQL


produce un código de retorno de 4. Un código de retorno de 8 sólo se produce si
el procesador de línea de mandatos encuentra un error del sistema.

Si se emiten mandatos desde un archivo de entrada o en modalidad interactiva y


el procesador de línea de mandatos experimenta un error del sistema (código de
retorno 8), se detiene inmediatamente la ejecución de mandatos. Si uno o más
mandatos DB2 o sentencias de SQL terminan en error (código de retorno 4), la

20 Consulta de mandatos
Códigos de retorno del procesador de línea de mandatos

ejecución de mandatos se detiene si se ha establecido la opción -s (Detener


ejecución en error de mandato); de lo contrario, la ejecución continúa.

Invocar ayuda de mandatos desde el procesador de línea de mandatos


La ayuda de mandatos explica la sintaxis de mandatos en el procesador de línea
de mandatos.

Procedimiento

Para invocar la ayuda de mandatos, abra el procesador de línea de mandatos y


especifique:
? mandato

donde mandato representa una palabra clave o todo el mandato.


Por ejemplo, ? catalog visualiza ayuda para todos los mandatos CATALOG, mientras
que ? catalog database visualiza ayuda solamente para el mandato CATALOG
DATABASE.

Invocar ayuda de mensajes desde el procesador de línea de mandatos


La ayuda de mensajes describe la causa de un mensaje y describe cualquier acción
que deberá tomar como respuesta al error.

Procedimiento

Para invocar la ayuda de mensajes, abra el procesador de línea de mandatos y


especifique:
? XXXnnnnn

donde XXXnnnnn representa un identificador de mensaje válido.


Por ejemplo, ? SQL30081 visualiza ayuda sobre el mensaje SQL30081.

Capítulo 1. Procesador de línea de mandatos (CLP) 21


Invocar ayuda de mensajes desde el procesador de línea de mandatos

22 Consulta de mandatos
Capítulo 2. Utilización de sentencias de SQL y XQuery de
línea de mandatos
Esta sección proporciona información sobre la utilización de sentencias de Lenguaje
de Consulta Estructurada (SQL) desde la línea de mandatos.

Estas sentencias pueden ejecutarse directamente desde un indicador de mandatos


de sistema operativo y se pueden utilizar para definir y manipular información
almacenada en una tabla, un índice o una vista de base de datos del mismo modo
que si se escribieran los mandatos en un programa de aplicación. Se puede añadir,
suprimir o actualizar información y se pueden generar informes a partir del
contenido de las tablas.

Puede utilizar sentencias de SQL desde la línea de mandatos y puede utilizar un


procedimiento almacenado (SYSPROC.ADMIN_CMD()) para ejecutar algunos
mandatos del CLP mediante SQL. Para obtener más información sobre cómo
utilizar este procedimiento almacenado, consulte las rutinas administrativas de
SQL.

Para emitir sentencias XQuery en CLP, anteponga como prefijo a las sentencias la
palabra clave XQUERY.

Nota: Si utiliza el CLP para emitir sentencias de XQuery, es mejor elegir un


carácter de terminación distinto del punto y coma (opción -t). Esto asegura que las
sentencias o las consultas que utilizan declaraciones de espacio de nombres no se
interpreten incorrectamente, porque las declaraciones de espacio de nombres
también terminan con un punto y coma.

Todas las sentencias de SQL que se pueden ejecutar mediante el procesador de


línea de mandatos se listan en la columna CLP de la Tabla 5 en la página 27. La
sintaxis de todas las sentencias de SQL, tanto si se ejecutan desde la línea de
mandatos como si se incorporan en un programa fuente, se describen en la
publicación Consulta de SQL. La sintaxis de muchas sentencias de SQL
incorporadas y sentencias de SQL CLP es idéntica. Sin embargo, las variables del
lenguaje principal, los marcadores de parámetro, los nombres de descriptor y los
nombres de sentencia sólo son aplicables al SQL incorporado. La sintaxis de CALL,
CLOSE, CONNECT, DECLARE CURSOR, FETCH y OPEN depende de si estas
sentencias estén incorporadas o se ejecuten mediante el CLP. En la sección
siguiente se proporciona la sintaxis CLP de estas sentencias:

CALL
 CALL procedure-name ( ) 
,

 expresión
?
null

CLOSE

© Copyright IBM Corp. 1993, 2012 23


Utilización de sentencias de SQL y XQuery de línea de mandatos

 CLOSE nombre-cursor 

CONNECT
 CONNECT 

 
TO nombre-servidor
bloque-bloqueo autorización
RESET
(1)
autorización

autorización:

USER nombre-autorización 


USING contraseña
NEW contraseña CONFIRM contraseña
CHANGE PASSWORD

bloque-bloqueo:

IN SHARE MODE

IN EXCLUSIVE MODE
ON SINGLE NODE

Notas:
1 Este formato sólo es válido si se ha habilitado la conexión implícita.

DECLARE CURSOR
 DECLARE nombre-cursor CURSOR 
WITH HOLD

 
DATABASE nombrebd
USER usuario USING contraseña

 FOR sentencia-select 
XQUERY sentencia-xquery

FETCH
 FETCH nombre-cursor 
FROM

24 Consulta de mandatos
Utilización de sentencias de SQL y XQuery de línea de mandatos

 
FOR ALL ROW
n ROWS
LOB COLUMN ALL INTO nombre-archivo APPEND
COLUMNS NEW
OVERWRITE

OPEN
 OPEN nombre-cursor 

Nota:
1. Cuando se emite CALL:
v Debe utilizarse una expresión para cada parámetro IN o INOUT del
procedimiento. Para un parámetro INOUT, la expresión debe ser un solo
valor de literal. Los parámetros INOUT XML deben ser NULL (si se pueden
anular) o estar en el siguiente formato: XMLPARSE(DOCUMENT serie).
Observe que la serie del argumento para XMLPARSE debe ser un literal de
serie y estar sujeto al registro especial CURRENT IMPLICIT XMLPARSE
OPTION. No puede ser una expresión.
v Debe utilizarse un signo de cierre de interrogación (?) para cada parámetro
OUT del procedimiento.
v El proceso almacenado debe estar catalogado. Si se llama a un
procedimiento no catalogado, se devuelve el mensaje de error SQL0440N.
El siguiente script de CLP crea un procedimiento denominado PROC4
después de crear una tabla con una columna de XML C1. Utiliza tres
parámetros XML: IN (PARM1), INOUT (PARM2) y OUT (PARM3) y devuelve
un conjunto de resultados con datos XML.
CREATE TABLE TAB4(C1 XML)
CREATE PROCEDURE PROC4(IN PARM1 XML, INOUT PARM2 XML, OUT PARM3 XML)
LANGUAGE SQL
BEGIN
DECLARE STMT CLOB(1M) DEFAULT ’’;
DECLARE C1 CURSOR WITH RETURN FOR S1;
SET STMT = ’SELECT C1 FROM TAB4’;

/* INSERT PARM1 */
INSERT INTO TAB4 VALUES(PARM1);

/* MANIPULATE PARM2 */

/* SET PARM3 AND INSERT */


SET PARM3 = XMLPARSE(DOCUMENT ’<a>333</a>’);
INSERT INTO TAB4 VALUES(PARM3);

/* RETURN A RESULT SET WITH XML DATA */


PREPARE S1 FROM STMT;
OPEN C1;
END
Para invocar el procedimiento PROC4 desde el procesador de línea de
mandatos, emita una sentencia CALL:
CALL PROC4(XMLPARSE(DOCUMENT ’<a>111</a>’), XMLPARSE(DOCUMENT ’<a>222</a>’), ?)
2. La versión CLP de CONNECT permite al usuario cambiar la contraseña,
utilizando los parámetros siguientes:

Capítulo 2. Sentencias de SQL y XQuery de línea de mandatos 25


Utilización de sentencias de SQL y XQuery de línea de mandatos

NEW contraseña
Especifica la contraseña nueva que se debe asignar al nombre de
usuario. Las contraseñas pueden tener hasta 18 caracteres de longitud.
El sistema en el que se cambiará la contraseña depende del modo en
que se haya configurado la autentificación de usuario.
CONFIRM contraseña
Serie que debe ser idéntica a la contraseña nueva. Este parámetro se
utiliza para detectar errores de entrada.
CHANGE PASSWORD
Si se especifica esta opción, se solicita al usuario la contraseña actual,
una contraseña nueva y la confirmación de la contraseña nueva. Las
contraseñas no se visualizan al entrarse.
3. La cláusula DATABASE de la sentencia DECLARE CURSOR sólo es aplicable cuando
el cursor va a utilizarse para una carga posterior a la operación del cursor.
4. Para utilizar la sentencia DECLARE CURSOR con una sentencia XQuery, los
usuarios deben preceder explícitamente la sentencia XQuery con la palabra
clave XQUERY.
5. Cuando se emite FETCH mediante el procesador de línea de mandatos, se
visualizan números decimales y de coma flotante con el delimitador decimal
del territorio, es decir, un punto (.) en EE.UU., Canadá y el Reino Unido; una
coma (,) en la mayoría de los países y regiones restantes. Sin embargo, cuando
se emiten sentencias INSERT, UPDATE, CALL y otras sentencias de SQL
mediante el procesador de línea de mandatos para actualizar tablas, se deberá
utilizar un punto como delimitador decimal, incluso en países y regiones que
utilizan una coma para dicha finalidad.
6. Cuando se emite FETCH mediante el procesador de línea de mandatos, los
valores nulos se visualizan normalmente como un guión (-). Para bases de
datos configuradas con DFT_SQLMATHWARN YES, las expresiones que
producen un error aritmético se procesan como valores nulos. Los nulos de
errores aritméticos de este tipo se visualizan como un signo más (+).
Por ejemplo, cree y llene la tabla t1 del modo siguiente:
create table t1 (i1 int , i2 int);
insert into t1 values (1,1),(2,0),(3,null);
La sentencia: select i1/i2 from t1 genera el siguiente resultado:
1
---
1
+
-
3 registros seleccionados
7. Se ha añadido una opción LOB nueva a FETCH. Si se especifica la cláusula
LOB, sólo se capta la fila siguiente:
v Cuando se emite SELECT desde el procesador de línea de mandatos para
consultar tablas que contienen columnas LOB, todas las columnas se
truncan a 8KB en la salida.
v Cada valor de columna LOB se capta en un archivo con el nombre
nombre-archivo.xxx, donde nombre-archivo se especifica en la cláusula LOB y
xxx es una extensión de archivo de 001 a 999 (001 es la primera columna
LOB de la lista de selección de la sentencia DECLARE CURSOR
correspondiente, 002 es la segunda columna LOB y 999 es la columna
número 999). El número máximo de columnas LOB que se pueden captar
en archivos es de 999.

26 Consulta de mandatos
Utilización de sentencias de SQL y XQuery de línea de mandatos

v Los nombres de los archivos que contienen los datos se visualizan en las
columnas LOB.
8. El procesador de línea de mandatos visualiza las columnas BLOB en
representación hexadecimal.
9. Las sentencias de SQL que contienen referencias a columnas de tipo
estructurado no se pueden emitir si no está disponible una función de
transformación apropiada.
10. Se ha eliminado el límite de 64K impuesto por CLP para las sentencias de
SQL y para los mandatos de CLP que contienen componentes de sentencias de
SQL.
11. Los datos de XML, recuperados mediante SELECT, CALL o XQuery se truncan
a 4000 bytes en la salida.

Para cambiar el modo en que el CLP muestra los datos (al consultar bases de datos
utilizando sentencias de SQL mediante el CLP), vuelva a vincular los archivos de
vinculación CLP para la base de datos que se está consultando. Por ejemplo, para
visualizar la fecha y la hora en formato ISO, realice lo siguiente:
1. Cree un archivo de texto que contenga los nombres de los archivos de
vinculación CLP. Este archivo se utiliza como el archivo de lista para vincular
múltiples archivos con un mandato BIND. En este ejemplo el archivo se llama
clp.lst y su contenido es:
db2clpcs.bnd +
db2clprr.bnd +
db2clpur.bnd +
db2clprs.bnd +
db2clpns.bnd
2. Conéctese a la base de datos.
3. Emita el mandato siguiente:
db2 bind @clp.lst collection nullid datetime iso
Tabla 5. Sentencias de SQL (DB2).

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de la tabla.
Procesador
de línea de
mandatos
Sentencia de SQL Dinámico1 (CLP) Interfaz de nivel de llamada3 (CLI) Proc. SQL
ALLOCATE CURSOR X
sentencia de asignación X
ASSOCIATE LOCATORS X
ALTER { BUFFERPOOL, DATABASE X X X
PARTITION GROUP, NICKNAME,9
SERVER,9 TABLE, TABLESPACE,
USER MAPPING,9 TYPE, VIEW }
BEGIN DECLARE SECTION2
CALL X X X X
Sentencia CASE X
CLOSE X SQLCloseCursor(), SQLFreeStmt() X
COMMENT ON X X X X
COMMIT X X SQLEndTran(), SQLTransact() X
4
SQL compuesto (incorporado) X

Capítulo 2. Sentencias de SQL y XQuery de línea de mandatos 27


Utilización de sentencias de SQL y XQuery de línea de mandatos

Tabla 5. Sentencias de SQL (DB2) (continuación).

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de la tabla.
Procesador
de línea de
mandatos
Sentencia de SQL Dinámico1 (CLP) Interfaz de nivel de llamada3 (CLI) Proc. SQL
sentencia compuesta X
CONNECT (Tipo 1) X SQLBrowseConnect(), SQLConnect(),
SQLDriverConnect()
CONNECT (Tipo 2) X SQLBrowseConnect(), SQLConnect(),
SQLDriverConnect()
CREATE { ALIAS, BUFFERPOOL, X X X X10
DATABASE PARTITION GROUP,
DISTINCT TYPE,
EVENT MONITOR, FUNCTION,
FUNCTION MAPPING9, GLOBAL
TEMPORARY TABLE, INDEX,
INDEX EXTENSION, METHOD,
NICKNAME,9 PROCEDURE,
SCHEMA, SERVER, TABLE,
TABLESPACE, TRANSFORM, TYPE
MAPPING,9 TRIGGER, USER
MAPPING,9 TYPE, VIEW,
WRAPPER9 }
DECLARE CURSOR2 X SQLAllocStmt() X
DECLARE GLOBAL TEMPORARY X X X X
TABLE
DELETE X X X X
8
DESCRIBE X SQLColAttributes(),
SQLDescribeCol(),
SQLDescribeParam()6
DISCONNECT X SQLDisconnect()
DROP X X X X10
END DECLARE SECTION2
EXECUTE SQLExecute() X
EXECUTE IMMEDIATE SQLExecDirect() X
EXPLAIN X X X X
FETCH X SQLExtendedFetch(), SQLFetch(), X
SQLFetchScroll()
FLUSH EVENT MONITOR X X X
Sentencia FOR X
4
FREE LOCATOR X X
GET DIAGNOSTICS X
Sentencia GOTO X
GRANT X X X X
Sentencia IF X
2
INCLUDE
INSERT X X X X

28 Consulta de mandatos
Utilización de sentencias de SQL y XQuery de línea de mandatos

Tabla 5. Sentencias de SQL (DB2) (continuación).

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de la tabla.
Procesador
de línea de
mandatos
Sentencia de SQL Dinámico1 (CLP) Interfaz de nivel de llamada3 (CLI) Proc. SQL
ITERATE X
Sentencia LEAVE X
LOCK TABLE X X X X
Sentencia LOOP X
OPEN X SQLExecute(), SQLExecDirect() X
PREPARE SQLPrepare() X
REFRESH TABLE X X X
RELEASE X X
RELEASE SAVEPOINT X X X X
RENAME TABLE X X X
RENAME TABLESPACE X X X
Sentencia REPEAT X
Sentencia RESIGNAL X
Sentencia RETURN X
REVOKE X X X
ROLLBACK X X SQLEndTran(), SQLTransact() X
SAVEPOINT X X X X
sentencia-select X X X X
SELECT INTO X
SET CONNECTION X SQLSetConnection()
SET CURRENT DEFAULT X X X X
TRANSFORM GROUP
SET CURRENT DEGREE X X X X
SET CURRENT EXPLAIN MODE X X X, SQLSetConnectAttr() X
SET CURRENT EXPLAIN X X X, SQLSetConnectAttr() X
SNAPSHOT
SET CURRENT PACKAGESET
SET CURRENT QUERY X X X X
OPTIMIZATION
SET CURRENT REFRESH AGE X X X X
SET EVENT MONITOR STATE X X X X
SET INTEGRITY X X X
9
SET PASSTHRU X X X X
SET PATH X X X X
SET SCHEMA X X X X
9
SET SERVER OPTION X X X X
5
SET variable-transición X X X X

Capítulo 2. Sentencias de SQL y XQuery de línea de mandatos 29


Utilización de sentencias de SQL y XQuery de línea de mandatos

Tabla 5. Sentencias de SQL (DB2) (continuación).

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de la tabla.
Procesador
de línea de
mandatos
Sentencia de SQL Dinámico1 (CLP) Interfaz de nivel de llamada3 (CLI) Proc. SQL
Sentencia SIGNAL X
5
SIGNAL SQLSTATE X X X
UPDATE X X X X
VALUES INTO X
2
WHENEVER
Sentencia WHILE X
Notas:
1. Puede codificar todas las sentencias de esta lista como SQL estático, pero sólo las marcadas con X como SQL
dinámico.
2. No puede ejecutar esta sentencia.
3. Una X indica que puede ejecutar esta sentencia utilizando SQLExecDirect() o SQLPrepare() y SQLExecute(). Si
existe una función CLI equivalente, se lista el nombre de función.
4. Aunque esta sentencia no es dinámica, con CLI puede especificar esta sentencia al llamar a SQLExecDirect() o
SQLPrepare() y SQLExecute().
5. Sólo puede utilizar esto en sentencias CREATE TRIGGER.
6. Sólo puede utilizar la sentencia DESCRIBE de SQL para describir salida, mientras que con CLI también puede
describir entrada (utilizando la función SQLDescribeParam()).
7. Sólo puede utilizar la sentencia FETCH de SQL para captar una fila cada vez en una dirección, mientras que con
las funciones CLI SQLExtendedFetch() y SQLFetchScroll(), puede captar en matrices. Además, puede captar en
cualquier dirección y en cualquier posición del conjunto de resultados.
8. La sentencia DESCRIBE de SQL tiene una sintaxis diferente de la del mandato DESCRIBE de CLP.
9. Esta sentencia sólo recibe soporte para servidores de bases de datos federados.
10. Los procedimientos SQL sólo pueden emitir las sentencias CREATE y DROP para índices, tablas y vistas.

30 Consulta de mandatos
Capítulo 3. Command Line Processor Plus (CLPPlus)
Command Line Processor Plus (CLPPlus) proporciona una interfaz de usuario de
línea de mandatos que puede utilizarse para conectarse a bases de datos y definir,
editar y ejecutar sentencias, scripts y mandatos.

CLPPlus complementa las funciones que ofrece el procesador de línea de mandatos


(CLP). CLPPlus incluye las funciones siguientes:
v Soporte para establecer conexiones con bases de datos cuando se proporcionan
un ID de usuario y contraseña de base de datos.
v Un almacenamiento intermedio que puede utilizar para almacenar scripts,
fragmentos de script, sentencias de SQL, sentencias de SQL PL o sentencias de
PL/SQL para edición y posterior ejecución. Puede listar, imprimir o editar el
texto del almacenamiento intermedio o ejecutar el texto del almacenamiento
intermedio como script de proceso por lotes.
v Un completo conjunto de mandatos de procesador que puede utilizar para
definir variables y series que pueden almacenarse en el almacenamiento
intermedio.
v Un conjunto de mandatos que recupera información acerca de una base de datos
y objetos de base de datos.
v Capacidad de almacenar almacenamientos intermedios o salida de
almacenamiento intermedio en un archivo.
v Múltiples opciones para dar formato a la salida de scripts y consultas.
v Soporte para ejecutar rutinas definidas por el usuario.
v Soporte para ejecutar mandatos del sistema operativo.
v Opción para registrar la salida de mandatos, sentencias o scripts ejecutados.

CLPPlus sólo da soporte a la autentificación SERVER, SERVER_ENCRYPT y


KERBEROS.

Instalación de CLPPlus en clientes de servidor de datos de IBM


existentes
CLPPlus no viene instalado por omisión en todos los clientes de servidor de datos
de IBM. Si la instalación de su cliente de servidor de datos de IBM no incluía
CLPPlus, podrá instalarlo y configurarlo más tarde.

Antes de empezar

Asegúrese de tener instalado un SDK o un JRE para Java, Versión 1.5.0 o posterior.
Para todos los clientes de servidor de datos de IBM excepto IBM Data Server
Runtime Client e IBM Data Server Driver Package, el proceso de instalación del
cliente de servidor de datos de IBM instala automáticamente el SDK para Java,
Versión 5.

Procedimiento
Para instalar y configurar CLPPlus en un cliente de servidor de datos de IBM
existente:

© Copyright IBM Corp. 1993, 2012 31


Instalación de CLPPlus en clientes de servidor de datos de IBM existentes

1. Asegúrese de que la variable de entorno JAVA_HOME esté establecida en el


directorio de instalación de Java en su sistema.
2. Asegúrese de que la configuración de la variable de entorno PATH incluya el
directorio directorio de instalación de Java/bin en el sistema.
3. Añada los archivos clpplus.jar, jline-0.9.93.jar y db2jcc.jar a la
configuración de la variable de entorno CLASSPATH. Si CLPPlus no encuentra
estos archivos, muestra mensajes de error para los archivos y no se inicia.

Inicio de CLPPlus
CLPPlus debe iniciarse para que se puedan ejecutar mandatos de CLPPlus.

Antes de empezar
v Es probable que CLPPlus no esté instalado ni configurado en un cliente de
servidor de datos de IBM existente. CLPPlus está configurado para utilizarlo con
todos los demás productos DB2 V9.7.
v Consulte el tema sobre los mandatos de CLPPLUS.

Procedimiento

Para iniciar CLPPlus, utilice uno de los métodos siguientes:


v En los sistemas operativos Windows, Linux o UNIX, utilice un mandato:
1. En el procesador de línea de mandatos (CLP) o en la ventana de mandatos
de DB2, ejecute el mandato CLPPLUS sin especificar ninguna contraseña. Por
ejemplo, para iniciar CLPPlus e intentar conectarse a una base de datos
denominada SAMPLE en el sistema principal local usando el ID de usuario
db2admin y el número de puerto 50000, emita el mandato siguiente:
clpplus db2admin@localhost:50000/sample
2. Entre la contraseña. Usando el mandato del apartado 1) como ejemplo, si se
especifica una contraseña válida para db2admin, se visualiza lo siguiente:
C:\DB2\9.7\db2 > clpplus db2admin@localhost:50000/sample
Connected to SAMPLE v 9.7 AS db2admin
SQL>
v En sistemas operativos Windows, utilice una opción de menú:
1. Pulse Inicio > IBM DB2 > CLPPlus.
2. Especifique el ID de usuario y la información de conexión.
v En sistemas operativos Linux, utilice una opción de menú:
1. Pulse Menú principal > IBM DB2 > Command Line Processor Plus.
2. Especifique el ID de usuario y la información de conexión.

Resultados

El indicador de mandatos de CLPPlus (SQL>) está disponible y se ha establecido


una conexión con la base de datos especificada.

Qué hacer a continuación

Ahora puede utilizar mandatos de CLPPlus y funciones relacionadas. Especifique


los mandatos en el indicador de mandatos de CLPPlus.

Para finalizar la sesión de CLPPLus, emita el mandato EXIT o QUIT de CLPPlus.

32 Consulta de mandatos
Mandato de CLPPLUS

Mandato de CLPPLUS
Inicia CLPPlus (Command Line Processor Plus). Después de iniciar CLPPlus,
puede emitir mandatos CLPPlus, conectarse a bases de datos, definir y ejecutar
sentencias de SQL y mandatos de base de datos, y ejecutar scripts que contienen
sentencias de SQL y mandatos.

Invocación

Debe ejecutar este mandato desde el indicador de mandatos del sistema operativo.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 clpplus 
-verbose -nw -s identificador_conexión
-si /
-sil
-sile
-silen
-silent

 
@ alias_dsn @ nombre_script

identificador_conexión:

usuario
/ contraseña @ sistema_principal : puerto / basedatos

Parámetros del mandato


-verbose
Activa la modalidad verbosa. Cuando la modalidad verbosa está activada,
todos los mensajes de CLPPlus se imprimen en la consola.
-nw
Especifica que la sesión de CLPPlus se iniciará en la ventana de línea de
mandatos actual.
-s | -si | -sil | -sile | -silen | -silent
Hace que la información de versión, la información de copyright, los mensajes
de solicitud, el eco de los mandatos y la información de conexión no se
impriman en la sesión de CLPPlus actual. En modalidad silenciosa, ECHO se
establece en OFF por omisión. No se tienen en cuenta los intentos de establecer
ECHO en ON.
/ Especifica el ID de usuario de inicio de sesión del sistema operativo actual que
se utiliza para conectar con la base de datos.

Capítulo 3. Command Line Processor Plus (CLPPlus) 33


Mandato de CLPPLUS

usuario
Especifica el ID de usuario para conectarse a la base de datos.
contraseña
Especifica la contraseña que corresponde al ID de usuario.
nombre-sistema-principal
Especifica el nombre del sistema en el que está ubicada la base de datos. Por
ejemplo, para un sistema denominado ascender, especifique @ascender.
puerto
Especifica el nombre de puerto que recibe conexiones en el sistema donde está
instalado el servidor de bases de datos. El valor por omisión es 50000.
basedatos
Especifica el nombre de la base de datos con la que se establece la conexión. El
valor por omisión es SAMPLE.
alias_dsn
Especifica que la información de conexión de base de datos se tome del
archivo db2dsdriver.cfg del DSN con el nombre de alias alias_dsn. Si el alias_dsn
especificado no se encuentra en el archivo db2dsdriver.cfg, se utiliza la serie
alias_dsn como nombre de base de datos y todos los demás parámetros de
conexión se obtienen de forma interactiva.
nombre-script
Especifica el nombre de un archivo de script. Si el archivo no se encuentra en
el directorio de trabajo actual, también debe incluir la vía de acceso totalmente
calificada a la ubicación del archivo. El archivo de script puede contener
sentencias de SQL que se ejecutan automáticamente después de iniciar
CLPPlus y establecer una conexión de base de datos.

Ejemplo
Los ejemplos siguientes muestran cómo utilizar el mandato CLPPLUS para iniciar el
procesador CLPPlus y opcionalmente conectarse a bases de datos.

El mandato siguiente inicia CLPPlus en modalidad de cliente:


clpplus

No se intenta realizar ninguna conexión de base de datos. Después de emitir este


mandato, para conectarse a una base de datos utilice el mandato CONNECT de
CLPPlus.

El mandato siguiente inicia CLPPlus e intenta conectarse a una base de datos


denominada SAMPLE en un sistema principal local con el ID de usuario db2admin
y el número de puerto 50000:
clpplus db2admin@localhost:50000/sample

El mandato siguiente inicia CLPPlus y solicita una contraseña para el ID de


usuario db2admin. Si la contraseña es válida, CLPPlus intenta conectarse a una
base de datos denominada SAMPLE, que es el nombre por omisión de la base de
datos.
clpplus db2admin

El mandato siguiente inicia CLPPlus e intenta conectarse a una base de datos


denominada SAMPLE con el ID de usuario db2admin y la contraseña

34 Consulta de mandatos
Mandato de CLPPLUS

mypassw0rd: Si el ID de usuario y la contraseña son válidos, se establece una


conexión de base de datos. El inconveniente de especificar una contraseña es que
la contraseña se visualiza en la pantalla.
clpplus db2admin/mypassw0rd

El mandato siguiente inicia CLPPlus e intenta conectarse a una base de datos


denominada SAMPLE en la máquina remota ascender usando el puerto 50000, el
ID de usuario db2admin y la contraseña mypassw0rd: Si estos valores son válidos,
se establece una conexión de base de datos.
clpplus db2admin/mypassw0rd@ascender:50000/sample

El mandato siguiente inicia CLPPlus e intenta conectarse a una base de datos


llamada DB en el sistema local con el ID de usuario db2admin, la contraseña
mypassw0rd y el número de puerto por omisión, que es 50000:
clpplus db2admin/mypassw0rd@localhost/db

El mandato siguiente inicia CLPPlus e intenta conectarse a una base de datos


localizando primero un archivo db2dsdriver.cfg. Si se encuentra uno, se lee el valor
default_dsn para los valores de sistema principal, puerto y base de datos. Se utiliza
el ID de inicio de sesión actual en el intento de conexión. Si no se encuentra
ningún archivo db2dsdriver.cfg, todos los parámetros necesarios se solicitan de
forma interactiva.
clpplus /

El mandato siguiente inicia CLPPlus e intenta conectarse a una base de datos


localizando primero un archivo db2dsdriver.cfg. Si se encuentra uno, se lee el valor
default_dsn para los valores de sistema principal, puerto y base de datos. Se utiliza
el ID db2admin en el intento de conexión. Si no se encuentra ningún archivo
db2dsdriver.cfg, todos los parámetros necesarios se solicitan de forma interactiva.
clpplus db2admin

El mandato siguiente inicia CLPPlus e intenta conectarse a una base de datos


captando los parámetros del alias data_dsn en el archivo db2dsdriver.cfg. Puesto
que no se especifica ningún ID de usuario, se utiliza el ID de usuario de inicio de
sesión actual. Los parámetros que no se puedan leer se solicitan de forma
interactiva.
clpplus /@data_dsn

El mandato siguiente inicia CLPPlus e intenta conectarse a una base de datos


captando los parámetros del alias data_dsn en el archivo db2dsdriver.cfg. Se utiliza
el ID de usuario db2admin en la conexión. Los parámetros que no se puedan leer
se solicitan de forma interactiva.
clpplus db2admin@data_dsn

Tipos de consolas de CLPPlus


A partir del fixpack 2 de la versión 9.7, CLPPlus incorpora una nueva modalidad
de ventana en la consola de línea de mandatos tradicional.

Modalidad de ventana

La nueva consola incorporada en el fixpack 2 de la versión 9.7 es una consola con


estilo de ventana. Cuando CLPPlus se inicia con el mandato CLPPLUS, se abre por
omisión la consola en modalidad de ventana. Esta nueva ventana de consola tiene
mejores funciones de edición de mandatos. Por ello, cuando se utilice CLPPlus en

Capítulo 3. Command Line Processor Plus (CLPPlus) 35


Tipos de consolas de CLPPlus

modalidad interactiva, esta modalidad de ventana podría ser la elección de consola


preferente.

Modalidad no de ventana

CLPPlus sigue incluyendo la opción de utilizar la modalidad no de ventana o la


consola de línea de mandatos tradicional. Cuando CLPPlus se inicia con el
mandato CLPPLUS y se especifica la opción -nw, se utiliza el entorno de línea de
mandatos actual, es decir, no se abre una ventana nueva. Esta podría ser la opción
preferente si se llama a un archivo de script y no se necesita abrir una ventana de
consola.

36 Consulta de mandatos
Modalidad de ventana y soporte de caracteres UTF-8

Modalidad de ventana y soporte de caracteres UTF-8


A partir del fixpack 3 de la versión 9.7, la nueva consola en modalidad de ventana
solo da soporte a caracteres UTF-8.

Antes de la incorporación de la nueva consola en modalidad de ventana, CLPPlus


no podía leer ni escribir en la consola caracteres UTF-8 procedentes del sistema de
archivos o de la base de datos. Los caracteres UTF-8 mostrados en la pantalla
estaban mal alineados o eran incorrectos. Los usuarios no podían escribir caracteres
UTF-8 con el teclado.

La nueva consola en modalidad de ventana soluciona todos estos problemas con


los caracteres UTF-8, sin dejar de proporcionar un estilo de consola. Ahora,
CLPPlus puede leer y grabar caracteres UTF-8 procedentes del sistema de archivos
y de la base de datos o especificados de forma interactiva con el teclado o la
interfaz de usuario sin problemas. Los problemas de alineación de las columnas
también quedan resueltos con la nueva consola en modalidad de ventana. De este
modo, la salida en forma de tabla se muestra correctamente.

Nota:

Este soporte solamente está disponible en modalidad de ventana, que es la consola


por omisión a partir del fixpack 2 de la versión 9.7. En el caso de la modalidad no
de ventana, el soporte de los caracteres UTF-8 sigue siendo limitado. En la
modalidad no de ventana, es posible que no pueda especificar determinados
caracteres UTF-8 con el teclado. Las columnas de los conjuntos de resultados
pueden aparecer mal alineadas si los conjuntos de resultados contienen caracteres
UTF-8.

Alias de DSN en CLPPlus


CLPPlus da soporte a la conexión a los alias de DSN definidos en el archivo de
configuración db2dsdriver.cfg. Antes de este soporte, solamente se permitían las
conexiones interactivas en la interfaz de CLPPlus.

El archivo de configuración del controlador ds, db2dsdriver.cfg, es un archivo XML


que contiene una lista de alias de DSN y sus propiedades. Se utiliza para
almacenar los detalles de la conexión en un solo lugar. CLPPlus puede utilizar esa
información para conectar automáticamente con una fuente de datos en lugar de
solicitar de forma interactiva todos los detalles de la conexión cada vez que intenta
conectarse.

Puede establecer la variable de entorno DB2DSDRIVER_CFG_PATH para que


apunte al archivo db2dsdriver.cfg.

Si no se establece DB2DSDRIVER_CFG_PATH, CLPPlus buscará automáticamente


el archivo de configuración en directorio-instalación/cfg/.

Si se encuentra un archivo de configuración y es legible, CLPPlus lo utilizará al


iniciarse en los intentos de conexión siguientes.

En este punto, al usuario que intente establecer una conexión se le solicita el


nombre de una base de datos. Ese nombre de base de datos se trata como alias de
DSN y se busca en el archivo de configuración. Si se encuentra dicho alias de DSN,
se leen los atributos de conexión y se solicita una contraseña para completar la
conexión. Si no se encuentra el alias de DSN, se solicitan de forma interactiva el

Capítulo 3. Command Line Processor Plus (CLPPlus) 37


Alias de DSN en CLPPlus

nombre de sistema principal, el número de puerto, el nombre de usuario y la


contraseña que acompañarán al nombre de base de datos original, y se utilizará
toda la información recopilada para intentar establecer una conexión.

Ejemplo

Considere el contenido del archivo db2dsdriver.cfg siguiente:


<configuration>
<dsncollection>
<dsn alias="S" name="SAMPLE" host="9.121.221.159" port="50000">
</dsn>
</dsncollection>
<databases>
<database name="SAMPLE" host="9.121.221.159" port="50000">
<parameter name="UserID" value="john"/>
</database>
</databases>
</configuration>

En este ejemplo se muestra una conexión que se establece utilizando el contenido


del archivo db2dsdriver.cfg.

En primer lugar, el usuario establece DB2DSDRIVER_CFG_PATH.


C:\>set DB2DSDRIVER_CFG_PATH=”C:\john\clpplus\db2dsdriver.cfg”

A continuación, el usuario inicia una sesión de CLPPlus e intenta una conexión al


alias de DSN "S".
C:\>clpplus
CLPPlus: Versión 1.1
Copyright (c) 2009, IBM CORPORATION. Reservados todos los derechos.

SQL> connect

Especifique el nombre de base de datos [SAMPLE]: S


Especifique el ID [john]:
Entre la contraseña: ********

Información de la conexión con la base de datos


-------------------------------
Nombre de sistema principal = 9.121.221.159
Servidor bases datos = DB2/NT SQL09071
ID de autorización de SQL = john
Alias de base de datos local = S
Puerto = 50000

SQL>

En el ejemplo siguiente se muestra una conexión que se establece cuando el


nombre de la base de datos que se ha especificado no se encuentra como alias en
el archivo db2dsdriver.cfg.
SQL> connect

Especifique el nombre de base de datos [SAMPLE]:


Especifique el nombre de sistema principal [localhost]:
Especifique el puerto [50000]:
Entre el ID: john
Entre la contraseña: ********

Información de la conexión con la base de datos


-------------------------------
Nombre de sistema principal = 9.121.221.159
Servidor bases datos = DB2/NT SQL09071

38 Consulta de mandatos
Alias de DSN en CLPPlus

ID de autorización de SQL = john


Alias de base de datos local = SAMPLE
Puerto = 50000

SQL>

Puesto que "sample" no se ha encontrado como alias de DSN en el archivo de


configuración, CLPPlus solicita de forma interactiva los valores restantes y, a
continuación, se intenta establecer una conexión.

Autentificación de Kerberos en CLPPlus


A partir la versión 9.7, fixpack 2, CLPPlus da soporte a la conexión a alias de DSN
mediante la autentificación de Kerberos tal como se define en el archivo de
configuración db2dsdriver.cfg. Antes de este soporte, solamente se permitían las
conexiones interactivas en la interfaz de CLPPlus.

El archivo de configuración db2dsdriver.cfg es un archivo XML que contiene una


lista de alias de DSN y sus propiedades. Si se lee la propiedad Authentication
para el alias de DSN en cuestión, se leerá, y si el valor es kerberos se intentará
utilizar el mecanismo de autentificación de Kerberos. Para obtener más detalles
sobre la conexión a los alias de DSN en CLPPlus, consulte: “Alias de DSN en
CLPPlus” en la página 37.

CLPPlus no solicitará un certificado TGT de Kerberos por sí solo. Utilizará el


certificado obtenido ya por el usuario a través de otras aplicaciones o
herramientas.

Ejemplo

Considere el contenido del archivo db2dsdriver.cfg siguiente:


<configuration>
<dsncollection>
<dsn alias="S" name="SAMPLE" host="9.121.221.159" port="50000">
</dsn>
</dsncollection>
<databases>
<database name="SAMPLE" host="9.121.221.159" port="50000">
<parameter name="UserID" value="john"/>
</database>
</databases>
<parameters>
<parameter name="Authentication" value="KERBEROS"/>
</parameters>
</configuration>

En este ejemplo se muestra una conexión que se establece mediante el contenido


del archivo db2dsdriver.cfg que incluye la lectura del valor del parámetro
Authentication.

El usuario inicia una sesión de CLPPlus e intenta una conexión al alias de DSN "S".
C:\>clpplus
CLPPlus: Versión 1.1
Copyright (c) 2009, IBM CORPORATION. Reservados todos los derechos.

SQL> connect

Especifique el nombre de base de datos [SAMPLE]: S


Especifique el ID [john]:
Entre la contraseña: ********

Capítulo 3. Command Line Processor Plus (CLPPlus) 39


Autentificación de Kerberos en CLPPlus

Información de la conexión con la base de datos


-------------------------------
Nombre de sistema principal = 9.121.221.159
Servidor bases datos = DB2/NT SQL09071
ID de autorización de SQL = john
Alias de base de datos local = S
Puerto = 50000

SQL>

Autentificación SERVER_ENCRYPT en CLPPlus


A partir de la V9.7 Fixpack 5, CLPPlus añade soporte para conectar alias de DSN
con la autentificación SERVER_ENCRYPT tal como se define en el archivo de
configuración db2dsdriver.cfg.

El archivo de configuración db2dsdriver.cfg es un archivo XML que contiene una


lista de alias de DSN y sus propiedades. Si se lee la propiedad Autentificación
para el alias de DSN en cuestión, se leerá, y si el valor es SERVER_ENCRYPT se
utilizará el mecanismo de autentificación de SERVER_ENCRYPT. Para obtener más
detalles sobre la conexión a los alias de DSN en CLPPlus, consulte la referencia
relacionada.

Ejemplo
Este ejemplo muestra una conexión con el contenido del archivo db2dsdriver.cfg
que incluye el valor del parámetro de Autentificación SERVER_ENCRYPT.

Considere este archivo de ejemplo db2dsdriver.cfg:


<configuration>
<dsncollection>
<dsn alias="S" name="SAMPLE" host="9.121.221.159" port="50000">
<parameter name="Authentication" value="SERVER_ENCRYPT"/>
</dsn>
</dsncollection>
<databases>
<database name="SAMPLE" host="9.121.221.159" port="50000">
<parameter name="UserID" value="john"/>
</database>
</databases>
</configuration>

El usuario inicia una sesión CLPPlus y se conecta al alias de DSN "S".


C:\>clpplus -nw
CLPPlus: Versión 1.5
Copyright (c) 2009, 2011, IBM CORPORATION. Reservados todos los derechos.

SQL> connect
Especifique el nombre de base de datos [SAMPLE]: S
Especifique el ID [john]:
Entre la contraseña: **********

Información de la conexión con la base de datos:


---------------------------------
Nombre de sistema principal = 9.121.221.159
Servidor bases datos = DB2/NT SQL09075
ID de autorización de SQL = john
Alias de base de datos local = S
Puerto = 50000

40 Consulta de mandatos
Soporte de LDAP en CLPPlus

Soporte de LDAP en CLPPlus


A partir de la V9.7 Fixpack 5, las conexiones de CLPPlus dan soporte a las
búsquedas de alias de DSN en un servidor de directorio LDAP configurado.

Descripción

Antes de la V9.7 Fixpack 5, CLPPlus buscaba en el archivo db2dsdriver.cfg los


alias de DSN que se proporcionaban como parte del intento de conexión. Si se
encontraba una coincidencia en el archivo db2dsdriver.cfg, se recuperaba
información como el nombre del sistema principal y el número de puerto, y se
utilizaba en el intento de conexión. Si no se encontraba ningún alias de DSN en el
archivo db2dsdriver.cfg, el nombre del alias de DSN se consideraba como el
nombre de base de datos durante el intento de conexión interactiva, donde el
usuario debía proporcionar el nombre del sistema principal y el número de puerto.

A partir de la V9.7 Fixpack 5, CLPPlus amplía la búsqueda de nombres de alias de


DSN en un servidor de directorio LDAP configurado. Si especifica un nombre de
alias de DSN y éste no figura en el archivo db2dsdriver.cfg, CLPPlus intenta
conectarse al servidor del directorio LDAP mediante una URL que haya
proporcionado en el archivo de configuración. Si CLPPlus se conecta
satisfactoriamente al servidor del directorio LDAP configurado, se realiza la
búsqueda del nombre de alias de DSN en el servidor. Si se encuentra una
coincidencia en el servidor del directorio LDAP, se utilizan los detalles necesarios
de la conexión, como el nombre del sistema principal, el número de puerto, el ID
de usuario y la contraseña, para realizar una conexión CLPPlus. Si no se encuentra
ninguna coincidencia en el servidor del directorio LDAP o la conexión al mismo
falla, el nombre de alias de DSN se considera como nombre de base de datos
durante una conexión interactiva, como anteriormente.

Para habilitar el nuevo soporte, utilice el identificador <ldapserver> en el archivo


db2dsdriver.cfg para especificar la URL del servidor del directorio de LDAP. En el
archivo db2dsdriver.cfg se permite una única entrada de servidor LDAP. Los
campos ID de usuario y Contraseña del identificador <ldapserver> son opcionales;
puede escribir el ID de usuario y la contraseña durante la ejecución. El ID de
usuario y la contraseña es una información que se coloca en la antememoria el
tiempo que dura la sesión CLPPlus.

Si establece el parámetro UserID en el archivo db2dsdriver.cfg como “*anonymous”,


se intentará realizar una conexión anónima en el servidor LDAP; no se pasará la
información de ID de usuario y contraseña. No se le pedirá una contraseña, y si
establece el parámetro Password en el archivo db2dsdriver.cfg, el parámetro se
pasará por alto.

Importante:
Si establece el parámetro UserID como “*anonymous”, deberá configurar el servidor
LDAP de manera que dé soporte a las conexiones anónimas.

Ejemplos

Considere este archivo de ejemplo db2dsdriver.cfg:


<configuration>
<dsncollection>
<dsn alias="alias1" name="name1" host="server1.net1.com" port="50001"/>
</dsncollection>

<databases>

Capítulo 3. Command Line Processor Plus (CLPPlus) 41


Soporte de LDAP en CLPPlus

<database name="name1" host="server1.net1.com" port="50001">


<parameter name="CurrentSchema" value="OWNER1"/>
<wlb>
<parameter name="enableWLB" value="true"/>
<parameter name="maxTransports" value="50"/>
</wlb>
<acr>
<parameter name="enableACR" value="true"/>
</acr>
</database>

</databases>

<ldapserver>
<parameter name="EnableLDAP" value="YES"/>
<parameter name="LDAPServerHost" value="ipv6lab7.torolab.ibm.com"/>
<parameter name="LDAPServerPort" value=”389”/>
<parameter name="UserID" value="root"/>
<parameter name="Password" value="itdsv23"/>
<parameter name="BaseDN" value="O=IBM"/>
<parameter name="Authentication" value="simple"/>
</ldapserver>
</configuration>

Tal como se muestra en el ejemplo siguiente, al utilizar el archivo de ejemplo


db2dsdriver.cfg, se intenta realizar una conexión al nombre de alias DBLDAP1. El
nombre del alias no se encuentra en el archivo. Sin embargo, hay especificado un
servidor de directorio LDAP, ipv6lab7.torolab.ibm, en el archivo. CLPPlus se
conecta satisfactoriamente a dicho servidor. Se busca correctamente en el servidor
del directorio LDAP el alias DBLDAP1, y se recupera la información sobre el
sistema principal, el puerto y la base de datos. Se produce un intento de conexión
de CLPPlus.
SQL> connect
Especifique el nombre de base de datos [SAMPLE]: DBLDAP1
Entre el ID: db2admin
Entre la contraseña: ********

Información de la conexión con la base de datos:


---------------------------------
Nombre de sistema principal = winguest.torolab.ibm.com
Servidor bases datos = DB2/NT SQL09075
ID de autorización de SQL = db2admin
Alias de base de datos local = DBLDAP1
Puerto = 50000

La situación en el ejemplo siguiente es la misma que la del ejemplo anterior, pero


la salida siguiente muestra los resultados de ejecutar CLPPlus en la modalidad
VERBOSE:
SQL> connect
DB250001I: CLPPlus ha leído correctamente el archivo de configuración llamado
’C:\Documents
and Settings\All Users\Application data\IBM\DB2\DB2COPY1\cfg\db2dsdriver.cfg’.

Especifique el nombre de base de datos [SAMPLE]: DBLDAP1

DB250014I: No se ha encontrado el alias de DSN ’DBLDAP1’ en el archivo de


configuración denominado ’C:\Documents and Settings\All Users\Application
Data\IBM\DB2\DB2COPY1\cfg\db2dsdriver.cfg’.

DB250015I: CLPPlus ha establecido satisfactoriamente una conexión con el servidor de


directorio LDAP ’ipv6lab7.torolab.ibm.com:389’

Entre el ID: db2admin


Entre la contraseña: ********

Información de la conexión con la base de datos:

42 Consulta de mandatos
Soporte de LDAP en CLPPlus

---------------------------------
Nombre de sistema principal = winguest.torolab.ibm.com
Servidor bases datos = DB2/NT SQL09075
ID de autorización de SQL = db2admin
Alias de base de datos local = DBLDAP1
Puerto = 50000

En el ejemplo siguiente, al utilizar de nuevo el archivo de ejemplo


db2dsdriver.cfg, se intenta realizar una conexión al nombre de alias DBLDAP2.
CLPPlus se ejecuta en modalidad VERBOSE. DBLDAP2 no se encuentra en el archivo
db2dsdriver.cfg ni en el servidor de directorio LDAP especificado. A continuación,
se produce un intento de conexión interactiva de CLPPlus.
SQL> connect
DB250001I: CLPPlus ha leído correctamente el archivo de configuración llamado
’C:\Documents and Settings\All Users\Application
data\IBM\DB2\DB2COPY1\cfg\db2dsdriver.cfg’.

Especifique el nombre de base de datos [SAMPLE]: DBLDAP2

DB250014I: No se ha encontrado el alias de DSN ’DBLDAP2’ en el archivo de


configuración denominado ’C:\Documents and Settings\All Users\Application
Data\IBM\DB2\DB2COPY1\cfg\db2dsdriver.cfg’.

DB250015I: CLPPlus ha establecido satisfactoriamente una conexión con el servidor de


directorio LDAP ’ipv6lab7.torolab.ibm.com:389’

DB250016E: El alias de DSN ’DBLDAP2’ no se encuentra en el servidor de


directorio LDAP ’ipv6lab7.torolab.ibm.com:389’. ’DBLDAP2’ se utiliza
como nombre de base de datos en el intento de conexión interactiva de
CLPPlus subsiguiente.

Entre el nombre del sistema principal [localhost]: 9.128.34.89


Entre el puerto [50000]: 50003
Entre el ID: db2admin
Entre la contraseña:*******

Información de la conexión con la base de datos:


---------------------------------
Nombre de sistema principal = 9.128.34.89
Servidor bases datos = DB2/NT SQL09075
ID de autorización de SQL = db2admin
Alias de base de datos local = DBLDAP2
Puerto = 50003

La situación del ejemplo anterior se repite en el ejemplo siguiente, excepto en que


no puede establecerse la conexión al servidor de directorio LDAP. CLPPlus se
ejecuta en modalidad VERBOSE.
SQL> connect
DB250001I: CLPPlus ha leído correctamente el archivo de configuración llamado
’C:\Documents and Settings\All Users\Application
data\IBM\DB2\DB2COPY1\cfg\db2dsdriver.cfg’.

Especifique el nombre de base de datos [SAMPLE]: DBLDAP2

DB250014I: No se ha encontrado el alias de DSN ’DBLDAP2’ en el archivo de


configuración denominado ’C:\Documents and Settings\All Users\Application
Data\IBM\DB2\DB2COPY1\cfg\db2dsdriver.cfg’.

DB250017E: CLPPlus no ha podido establecer una conexión con el servidor de


directorios LDAP ’ipv6lab7.torolab.ibm.com:389’. ’DBLDAP2’ se utiliza como nombre de base
de datos en un intento de conexión interactivo.

Entre el nombre del sistema principal [localhost]: 9.128.34.89


Entre el puerto [50000]: 50003
Entre el ID: db2admin
Entre la contraseña:*******

Información de la conexión con la base de datos:


---------------------------------
Nombre de sistema principal = 9.128.34.89
Servidor bases datos = DB2/NT SQL09075
ID de autorización de SQL = db2admin
Alias de base de datos local = DBLDAP2
Puerto = 50003

Capítulo 3. Command Line Processor Plus (CLPPlus) 43


Soporte de LDAP en CLPPlus

Considere la siguiente versión modificada del archivo db2dsdriver.cfg. El archivo


no incluye los parámetros UserID y Password para la configuración del servidor de
directorio LDAP. El servidor de directorio LDAP está especificado como
ipv6lab7.torolab.ibm.
<configuration>
<dsncollection>
<dsn alias="alias1" name="name1" host="server1.net1.com" port="50001"/>
</dsncollection>

<databases>

<database name="name1" host="server1.net1.com" port="50001">


<parameter name="CurrentSchema" value="OWNER1"/>
<wlb>
<parameter name="enableWLB" value="true"/>
<parameter name="maxTransports" value="50"/>
</wlb>
<acr>
<parameter name="enableACR" value="true"/>
</acr>
</database>

</databases>

<ldapserver>
<parameter name="EnableLDAP" value="YES"/>
<parameter name="LDAPServerHost" value="ipv6lab7.torolab.ibm.com"/>
<parameter name="LDAPServerPort" value=”389”/>
<parameter name="BaseDN" value="O=IBM"/>
<parameter name="Authentication" value="simple"/>
</ldapserver>
</configuration>

Se realiza un intento de conexión al nombre de alias SAMPLE32 mediante el


archivo db2dsdriver.cfg actualizado. El nombre del alias no se encuentra en el
archivo. Cuando se especifican el ID de usuario y la contraseña en el servidor de
directorio LDAP de manera interactiva, tal como se muestra en el ejemplo
siguiente, CLPPlus se conecta al servidor de directorio LDAP ipv6lab7.torolab.ibm.
Se busca correctamente en el servidor del directorio LDAP el alias SAMPLE32, y se
recupera la información sobre el sistema principal, el puerto y la base de datos. Se
produce un intento de conexión de CLPPlus. CLPPlus no se ejecuta en modalidad
VERBOSE en este ejemplo.
C:\Documents and Settings>clpplus /@SAMPLE32

CLPPlus: Versión 1.4


Copyright (c) 2009, 2011, IBM CORPORATION. Reservados todos los derechos.

Conectando con servidor de LDAP ’9.234.67.89:389’.


ID de usuario de servidor de LDAP: root
Entre una contraseña de servidor de LDAP: ********

Entre la contraseña: **********

Información de la conexión con la base de datos:


---------------------------------
Nombre de sistema principal = 9.128.32.149
Servidor bases datos = DB2/NT SQL09075
ID de autorización de SQL = db2admin
Alias de base de datos local = SAMPLE32
Puerto = 50002

44 Consulta de mandatos
CREATE DATABASE en CLPPlus

CREATE DATABASE en CLPPlus


A partir de la V9.7 Fixpack 5, se añade soporte limitado del mandato CREATE
DATABASE a CLPPlus para DB2 Database para Linux, UNIX y Windows y IBM
Informix.

Restricciones

Para DB2 Database para Linux, UNIX y Windows, los únicos parámetros válidos
para el mandato CREATE DATABASE en la interfaz CLPPlus son los siguientes:
v La variable nombre_base_datos obligatoria
v El parámetro CODESET opcional
v El parámetro TERRITORY opcional

Para IBM Informix, CREATE DATABASE desde la interfaz CLPPlus requiere


credenciales de conexión, especialmente para la base de datos sysmaster. Se le
pedirán las credenciales de conexión si no existe una conexión. Para obtener más
información sobre el mandato CREATE DATABASE en IBM Informix, consulte
http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/
com.ibm.sqls.doc/ids_sqs_0368.htm

Ejemplos

El mandato siguiente crea una base de datos llamada testdb en DB2 Database para
Linux, UNIX y Windows:
create database testdb;

El mandato siguiente crea una base de datos llamada testdb en DB2 Database para
Linux, UNIX y Windows. La página de códigos establecida está definida como
UTF-8, y el territorio está definido como US.
create db testdb using codeset UTF-8 territory US;

El mandato siguiente crea una base de datos llamada udttest en IBM Informix. No
existe ninguna conexión previa, por lo que el mandato solicita información.
SQL> create database udttest;

Especifique el nombre de base de datos [sysmaster]:


Entre el nombre del sistema principal [localhost]: 9.130.34.100
Entre el puerto [50000]: 9089
Entre el ID: informix
Entre la contraseña: **********

DB250000I: El mandato se ha completado satisfactoriamente.

En el ejemplo siguiente, el primer mandato se conecta a una base de datos IBM


Informix. El segundo mandato crea una base de datos llamada udttest.
SQL> connect Informix/[email protected]:9089/stores

Información de la conexión con la base de datos:


---------------------------------
Nombre de sistema principal = 9.130.34.100
Servidor bases datos = IDS/NT32 IFX11700
ID de autorización de SQL = informix
Alias de base de datos local = stores
Puerto = 9089

SQL> create database udttest with log mode ansi ;


DB250000I: El mandato se ha completado satisfactoriamente.

Capítulo 3. Command Line Processor Plus (CLPPlus) 45


Ejecución de un archivo script en CLPPlus

Ejecución de un archivo script en CLPPlus


En CLPPlus, un archivo de script puede ejecutarse de muchas formas. Puede
proporcionar el nombre de un archivo de script que contiene mandatos de base de
datos y mandatos de SQL como símbolo para el mandato CLPPLUS. Se puede
ejecutar un archivo de script mediante el mandato START de CLPPlus. También se
puede ejecutar un script copiando su contenido en el almacenamiento intermedio
SQL de CLPPlus mediante el mandato GET de CLPPlus y, a continuación, emitiendo
el mandato RUN de CLPPlus.

Acerca de esta tarea


Esta tarea muestra cómo ejecutar un script con el mandato CLPPLUS. Para ver otros
métodos, consulte los enlaces relacionados.

Procedimiento

Para ejecutar un script con el mandato CLPPLUS:

Ejecute el mandato CLPPLUS, especificando un nombre de script. Por ejemplo,


supongamos que el archivo de script se llama dept_query.sql:
SET PAGESIZE 9999
SET ECHO ON
SELECT * FROM DEPT;
EXIT

Para ejecutar el script dept_query.sql en la base de datos por omisión SAMPLE en


el puerto 50000 con el nombre de usuario db2user y la contraseña passw0rd, emita
el mandato siguiente:
clpplus db2user/passw0rd @dept_query

El archivo de script dept_query.sql se ejecuta después de que el usuario se conecte


a la base de datos. Cuando se ejecuta el script, se emiten los mandatos SET
PAGESIZE y SET ECHO ON y la sentencia SELECT * FROM.
La salida del script es la siguiente. ECHO ON muestra la sentencia que se ha emitido
en el archivo de script, y los valores de DEPT se muestran hasta un límite de
página de 9999.
C:\DB2\9.7\db2 > clpplus db2user/passw0rd @dept_query.sql
Connected to DB2 v 9.7 (localhost:5444/db2sampl) AS db2user

SQL >
SELECT * FROM dept;

DEPT NODNAME LOC


------ ---------- -----------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
4 OPERATIONS BOSTON

SQL >

EXIT

46 Consulta de mandatos
Interrupción y omisión de mandatos de CLPPlus

Interrupción y omisión de mandatos de CLPPlus


A partir del fixpack 3 de la versión 9.7, CLPPlus permite omitir e interrumpir la
ejecución de los mandatos y también de los scripts.

En los releases anteriores de CLPPlus no se incluía ningún soporte para omitir o


interrumpir la ejecución de los mandatos y los scripts. El fixpack 3 de la versión
9.7 da respuesta a esa necesidad.

Puede interrumpir cualquier mandato o script que CLPPlus esté ejecutando con la
combinación de teclas Control+C. Esto resulta de utilidad cuando hay una consulta
o un script que tarda mucho en ejecutarse y es necesario devolver el control a la
interfaz de CLPPlus.

También puede saltar al siguiente indicador SQL> pulsando la tecla INTRO dos
veces seguidas. Esto es útil cuando se especifica un mandato incorrecto y se desea
cancelarlo. El mandato incorrecto permanece en el almacenamiento intermedio y se
puede editar con cualquiera de los mandatos de CLPPlus que utilice para editar y
revisar.

Ejemplo

El ejemplo siguiente muestra un mandato que se omite.


SQL> select *
2 from emplouee <- primer retorno de carro
3 <- segundo retorno de carro
SQL> <- siguiente indicador de sql

Capítulo 3. Command Line Processor Plus (CLPPlus) 47


Comentarios en CLPPlus

Comentarios en CLPPlus
A partir del fixpack 3 de la versión 9.7, CLPPlus permite incluir comentarios en los
scripts y en los mandatos.

En CLPPlus, los comentarios pueden ocupar más de una línea. Los comentarios
contenidos en una sola línea comienzan por # o --. Los comentarios que ocupan
varias líneas se incluyen entre /* y */.

Ejemplo

En los ejemplos siguientes se muestran comentarios de una línea y de varias líneas.


SQL> # Comentario de una sola línea
SQL>
SQL> -- Este comentario también es de una sola línea
SQL>
SQL> /* Este comentario
ocupa
varias líneas. */
SQL>

48 Consulta de mandatos
Caracteres de escape en CLPPlus

Caracteres de escape en CLPPlus


A partir de la V9.7 Fixpack 4, puede utilizar caracteres de escape en consultas y
mandatos de CLPPlus.

Descripción

En CLPPlus, puede utilizar el carácter de ampersand (&) para sustituir variables en


sentencias de SQL. Los caracteres de escape se pueden usar para escapar el
carácter de ampersand en valores de entrada, a fin de evitar la sustitución, por
ejemplo “AT&M”.

Los caracteres de escape también se pueden usar para escapar los caracteres "$" y
"%", que se utilizan para hacer referencia a variables de entorno y shell en
CLPPlus.

Puede definir el carácter de escape con el mandato SET. El carácter de escape por
omisión es "\". Para obtener más información sobre el mandato SET, consulte la
referencia relacionada.

Ejemplo
1. Este ejemplo muestra cómo se utiliza el carácter de escape por omisión que
impide que "&M" se trate como una variable de sustitución.
SQL> set escape ON
SQL> insert into testtab values(’AT\&M’);
DB250000I: El mandato se ha completado satisfactoriamente.

SQL> select * from testtab;


TEXT
-------------------
AT&M
2. Este ejemplo muestra cómo se utiliza el carácter de escape definido por el
usuario que impide que "&G" se trate como una variable de sustitución.
SQL> set escape ^
SQL> insert into testtab values(’L^&G’);
DB250000I: El mandato se ha completado satisfactoriamente.

SQL> select * from testtab;


TEXT
-------------------
AT&M
L&G
3. Este ejemplo muestra el comportamiento cuando no se utilizan caracteres de
escape. "&V" se trata como una variable de sustitución y requiere que el
usuario proporcione un valor de entrada para "Planet".
SQL> set escape OFF
SQL> insert into testtab values(’Smarter &V’);
Especifique un valor para la variable V: Planet

Sentencia original: insert into testtab values(’Smarter &V’)


Sentencia nueva con sustituciones: insert into testtab values(’Smarter Planet’)
DB250000I: El mandato se ha completado satisfactoriamente.

SQL> select * from testtab;


TEXT
-------------------
AT&M
L&G
Smarter Planet

Capítulo 3. Command Line Processor Plus (CLPPlus) 49


Caracteres de escape en CLPPlus

4. Este ejemplo muestra el comportamiento cuando no se utilizan caracteres de


escape. "&V" se trata como una variable de sustitución y requiere que el
usuario proporcione un valor de entrada para "Gene".
SQL> set escape OFF
SQL> insert into testtab values(’Blue \&V’);
Especifique un valor para la variable V: Gene

Sentencia original: insert into testtab values('Blue \&V’)


Sentencia nueva con sustituciones: insert into testtab values('Blue \Gene’)
DB250000I: El mandato se ha completado satisfactoriamente.

SQL> select * from testtab;


TEXT
-------------------
AT&M
L&G
Smarter Planet
Blue \Gene
5. Este ejemplo muestra el comportamiento cuando se utiliza un carácter de
escape. "$100" se trata como un valor, en lugar de como una variable de
entorno o shell.
SQL> set escape ON
SQL> insert into testsub values(’\$100’);
DB250000I: El mandato se ha completado satisfactoriamente.

SQL> select * from testsub;


TEXT
-------------------
$100
6. Este ejemplo muestra el comportamiento cuando se utiliza un carácter de
escape. "86%" se trata como un valor, en lugar de como una variable de entorno
o shell.
SQL> set escape ON
SQL> insert into testsub values('86\%’);
DB250000I: El mandato se ha completado satisfactoriamente.

SQL> select * from testsub;


TEXT
-------------------
$100
86%

50 Consulta de mandatos
Vinculación de variables en CLPPlus

Vinculación de variables en CLPPlus


Las variables de vinculación se utilizan en lugar de valores literales. Si emite
sentencias de SQL varias veces, puede utilizar variables de vinculación para
reducir el número de valores literales.

Autorización

No se necesita ninguna autorización especial.

Declaración
Se puede declarar una variable de vinculación mediante la sintaxis siguiente:

 VARIABLE nombre datatype; 

nombre
Especifica el nombre de la variable de vinculación.
datatype
Especifica el tipo de datos asociado a la variable de vinculación. Se puede
tratar de: BOOLEAN, CHARACTER, DATE, DECIMAL, DOUBLE, FLOAT,
INTEGER, REAL, SMALLINT o VARCHAR.
A partir del fixpack 2 de la versión 9.7, también se da soporte a REFCURSOR.
REFCURSOR se utiliza para recibir los valores del parámetro OUT de tipo
CURSOR en procedimientos, funciones y bloques de PL/SQL anónimos.
A partir del fixpack 3 de la versión 9.7, también se da soporte a NUMBER,
NUMBER(p[,s]) y VARCHAR2. NUMBER y NUMBER(p[,s]) están
correlacionados implícitamente con el tipo de datos DECIMAL. VARCHAR2
está correlacionado implícitamente con el tipo de datos VARCHAR.
A partir de la V9.7 Fixpack 4, con los servidores DB2 para Linux, UNIX y
Windows, CLPPlus permite utilizar los tipos de datos BOOLEAN, ROW y
ARRAY como parámetros de los procedimientos almacenados. Puede ejecutar
un procedimiento almacenado con las sentencias de CLPPlus CALL o EXEC.

Ámbito

Las variables de vinculación se mantienen a lo largo de la sesión de CLPPlus del


usuario. Cuando se haya iniciado una sesión de CLPPlus, se pueden declarar y
usar las variables de vinculación mientras dure la sesión. Cuando se termina una
sesión de CLPPlus, se borran las variables de vinculación.

Restricciones

Si se utiliza en una sentencia de SQL o en un bloque de PL/SQL anónimo, una


variable de vinculación sólo puede aparecer una vez. Si se utiliza la variable de
vinculación más de una vez, se devolverá un error del servidor de bases de datos.

Las variables de vinculación con servidores de datos de DB2 para z/OS e Informix
Dynamic Server tienen las limitaciones siguientes:
v Las variables de vinculación no se pueden inicializar con el mandato EXEC.
Exec :var_name:=’john’ /* esto no recibe soporte */
v Las variables de vinculación no se pueden inicializar con un bloque begin-end.

Capítulo 3. Command Line Processor Plus (CLPPlus) 51


Vinculación de variables en CLPPlus

begin
:var_name:=’john’; /* esto no recibe soporte en un bloque begin-end */
end;
v Dado que no se da soporte a PL/SQL en los servidores de datos de DB2 para
z/OS e Informix Dynamic Server, no se da soporte a las variables de vinculación
en los cuerpos de PL/SQL.
v No se da soporte a las variables con tipo CURSOR.
SQL> CREATE PROCEDURE getEmployeeData( ID INT, OUT NAME char(10),
OUT DOB Date, OUT SAL DECIMAL(7,2))
LET NAME=’dummy’;
LET DOB=’10/10/2010’;
LET SAL=0;
SELECT empname, empdob, salary INTO name, dob, sal FROM emp WHERE empid = ID;
END PROCEDURE;
/
DB250000I: El mandato se ha completado satisfactoriamente.

SQL> define var_id=1001 /* uso de variable de sustitución */


SQL> Variable name varchar(10)
DB250000I: El mandato se ha completado satisfactoriamente.
SQL> Variable dob date
DB250000I: El mandato se ha completado satisfactoriamente.
SQL> Variable salary double
DB250000I: El mandato se ha completado satisfactoriamente.

Call getEmployeeData(&id_var, :name, :dob, :salary)


DB250000I: El mandato se ha completado satisfactoriamente.
SQL> Print name
’JOHN’
SQL> Print dob
’26/04/1982’
SQL> Print salary
10000.50
v Pueden especificarse valores de precisión y de escala mientras se crean variables
de vinculación con los tipos de datos NUMBER y DECIMAL. Existe una
limitación en el soporte de precisión. Cualquier valor decimal o numérico
asignado no se modifica según la precisión especificada en la definición de la
variable. Vea el ejemplo 13 para obtener más información.

Estas restricciones se aplican también al mandato EXECUTE de CLPPlus.

Ejemplos

Los ejemplos siguientes muestran cómo puede definir, inicializar y utilizar


variables de vinculación.
1. Variables de vinculación llamadas ID y LNAME de tipo VARCHAR:
VARIABLE ID VARCHAR
VARIABLE LNAME VARCHAR
2. Una variable de vinculación llamada ID inicializada en un bloque PL/SQL:
BEGIN
:ID := ’000020’;
END;
/
3. Variables de vinculación ID y LNAME utilizadas en un bloque PL/SQL:
BEGIN
SELECT lastname INTO :LNAME FROM employee
WHERE empno = :ID;
END;
/
4. Una única sentencia de PL/SQL inicializa una variable de vinculación llamada
ID:

52 Consulta de mandatos
Vinculación de variables en CLPPlus

EXECUTE :ID := '000022';


5. La variable ID se inicializa desde una variable de sustitución a (a se define con
el mandato de CLPPlus DEFINE):
EXECUTE :ID := &a;
6. La variable de vinculación ID se utiliza en una sentencia SELECT:
SELECT lastname FROM employee WHERE empno = :ID;
7. Las variables de vinculación ID y LNAME se utilizan en una sentencia UPDATE:
UPDATE employee SET lastname = :LNAME WHERE empno = :ID;
8. La variable de vinculación salary se define con el tipo de datos number:
variable salary number
exec :salary := 1000.00
9. La variable de vinculación bonus se define con el tipo de datos number(p[,s]):
variable bonus number(6)
exec :bonus:= 999.999
10. La variable de vinculación comm se define con el tipo de datos number(p[,s]):
variable bonus comm(4,2)
exec :comm:= 10.455

SQL> print comm


10.45
11. La variable de vinculación name se define con el tipo de datos varchar2:
variable name varchar2
exec :name:=’MICHAEL’
12. Este ejemplo muestra la sustitución de las variables de vinculación como
argumentos de entrada y de salida en la ejecución del procedimiento.
Supongamos que un archivo llamado example_proc.db2 contiene la sentencia
siguiente:
CREATE PROCEDURE DEPT_MEDIAN
(IN deptNumber SMALLINT, OUT medianSalary DOUBLE)

Variables de vinculación sustituidas como argumentos de entrada y salida.


Defina las variables de vinculación:
variable in_var integer
variable out_var double

Ejecute el procedimiento y sustituya las variables como parámetros:


call dept_median(:in_var, :out_var)

Si lo desea puede imprimir el contenido del argumento de salida, que es la


variable de vinculación out_var:
print out_var
13. Este ejemplo muestra una variable de vinculación var1 que no refleja la
precisión en la definición:
variable var1 number(4,2)
DB250000I: El mandato se ha completado satisfactoriamente.

Asigne un valor con una precisión de 6 dígitos y una escala de 3 dígitos:


exec :var1 := 333.333
/
DB250000I: El mandato se ha completado satisfactoriamente.

Imprima el contenido de var1:


print var1
333.33

Capítulo 3. Command Line Processor Plus (CLPPlus) 53


Vinculación de variables en CLPPlus

La escala es correcta, 2. La precisión no es 4 como se ha definido. Este caso de


ejemplo es una limitación actual de la funcionalidad.

54 Consulta de mandatos
Variables de entorno y shell en CLPPlus

Variables de entorno y shell en CLPPlus


A partir de la V9.7 Fixpack 4, puede utilizar variables de entorno y shell en
consultas y mandatos de CLPPlus.

Descripción

Con este soporte, se puede utilizar cualquier valor de variable de entorno o shell
en una consulta o un mandato de CLPPlus. A estas variables se accede de la
misma forma que en las ventanas de mandatos o shell.

Cualquier variable que tenga el prefijo "$" se trata como una variable de entorno o
shell. Este carácter proporciona a los scripts que se utilizan en distintos sistemas
operativos independencia con respecto al sistema operativo. Se puede acceder
también a las variables de entorno en plataformas Microsoft escribiendo "%"
delante y detrás del nombre de la variable, por ejemplo %VAR%.

CLPPlus entiende y resuelve las variables de entorno o shell que incluyen los
caracteres a-z, A-Z, 0-9, y "_". Si se detecta algún otro carácter, se trata como si
fuera el final del nombre de la variable. Los ejemplos siguientes ilustran esta
norma de denominación:
$clpplus&version <==== “clpplus” seguido por "&"
$clpplus[version] <==== “clpplus” seguido por "["
$clpplus version <==== “clpplus” seguido por " "(espacio)
$clpplus#version <==== “clpplus” seguido por "#"
$clpplus-version <==== “clpplus” seguido por "-"
$clpplus(version) <==== “clpplus” seguido por "("

Si CLPPlus intenta utilizar una variable y ya está definida, no se recupera su valor


y se utiliza conforme a lo previsto. Si CLPPlus intenta utilizar una variable que no
está definida, se sustituye un valor de serie vacía y se anota un mensaje
informativo. El mensaje informativo es visible cuando CLPPlus funciona en
modalidad verbosa.

Puede acceder a las variables de entorno y shell en CLPPlus con los métodos
siguientes:
v Al iniciar CLPPlus, puede pasar variables de entorno o shell como argumentos a
un script. Estas variables pasadas se convierten en parámetros de posición, a los
que se accede con el carácter "&" y su posición (número).
v Se puede acceder directamente a las variables de entorno o shell en CLPPlus con
el carácter "$" seguido por el nombre de la variable. Este método es
independiente del sistema operativo en el que se ejecuta el script.

Ejemplo
1. El ejemplo siguiente muestra cómo utilizar las variables de entorno o shell al
iniciar CLPPlus:
En plataformas UNIX y Linux:
Export TABLE_NAME=employee
Export SCRIPT_PATH=/home/user

clpplus –nw @$SCRIPT_PATH/script.sql $TABLE_NAME


En plataformas Windows:
Set TABLE_NAME=employee
Set SCRIPT_PATH=c:\testfiles

clpplus –nw @%SCRIPT_PATH%\script.sql %TABLE_NAME%

Capítulo 3. Command Line Processor Plus (CLPPlus) 55


Variables de entorno y shell en CLPPlus

donde script.sql contiene


Select * from &1

y &1 se resuelve como el valor de la variable TABLE_NAME.


2. El ejemplo siguiente muestra cómo utilizar las variables de entorno o shell
directamente en CLPPlus:
En plataformas UNIX y Linux:
select * from $TABLE_NAME;
insert into test values ($NAME, $ID, $DESG);
En plataformas Windows:
select * from %TABLE_NAME%;
insert into test values (%NAME%, %ID%, %DESG%);

Rastreos y anotación cronológica de registro de CLPPlus


CLPPlus proporciona mecanismos para rastreos de archivo y anotación cronológica
de registro. CLPPlus soporta la anotación cronológica o los rastreos desde la capa
de cliente de CLPPlus y la capa de controlador JDBC.

IBM Data Server Driver para JDBC y SQLJ e IBM Data Server Driver para ODBC y
CLI ofrecen recursos completos de rastreo. Estas funciones se han ampliado a
CLPPlus. Los recursos de rastreo generan archivos de anotaciones cronológicas de
texto siempre que una aplicación accede al controlador especificado (capa de
cliente de CLPPLus o capa de controlador JDBC) mediante el mandato SET. Estos
archivos de anotaciones cronológicas ofrecen información detallada acerca del
cliente de CLPPlus y JDBC:
v funciones invocadas por una aplicación
v contenido de funciones, incluidos los parámetros de entrada y salida que se han
pasado o se han recibido
v códigos de retorno de función y cualquier mensaje de error o aviso generados

Para configurar las funciones de rastreo de CLPPlus, emita el mandato SET desde
un indicador de mandatos de CLPPlus. Para habilitar los rastreos de capa de
cliente o capa de controlador, establezca el parámetro LOGMODE:
CLPPlus> SET LOGMODE valor-modalidadanotación

donde valor-modalidadanotación indica si se realiza el rastreo y para qué capa. El


valor por omisión es NONE, que indica que no se lleva a cabo rastreo alguno.
Otros valores válidos son CLPPLUS, que rastrea la capa de cliente, JCC, que rastrea
la capa de JDBC, y BOTH, que rastrea tanto la capa de cliente como la capa de
JDBC.

Para realizar un rastreo de JDBC más detallado, establezca valor-modalidadanotación


en JCC o BOTH y especifique el parámetro JCCLOGMODE:
SET LOGMODE JCC
SET JCCLOGMODE valor-modalidadanotaciónjcc

donde valor-modalidadanotaciónjcc indica las funciones que deben rastrearse y


anotarse cronológicamente. Para obtener más información sobre los valores válidos
de jcclogmode_value, consulte el apartado “SET” en la página 792.

56 Consulta de mandatos
Mandatos de DB2 soportados por CLPPlus

Mandatos de DB2 soportados por CLPPlus


CLPPlus ofrece soporte un subconjunto de mandatos de DB2 para la
administración, ajuste y mantenimiento de bases de datos y de gestores de bases
de datos.

Se da soporte a los siguientes mandatos de DB2 en la interfaz de CLPPlus:


v GET DATABASE CONFIGURATION
v GET DATABASE MANAGER CONFIGURATION
v UPDATE DATABASE CONFIGURATION
v UPDATE DATABASE MANAGER CONFIGURATION
v RESET DATABASE CONFIGURATION
v RESET DATABASE MANAGER CONFIGURATION

A partir del fixpack 3 de la versión 9.7, se añade soporte de CLPPlus para estos
mandatos de DB2:
v LIST PACKAGES
v IMPORT
v EXPORT
v LOAD

A partir del fixpack 4 de la versión 9.7, se añade soporte de CLPPlus para los
siguientes mandatos de DB2:
v REORG también recibe soporte estando conectado con DB2 para z/OS.
v RUNSTATS también recibe soporte estando conectado con DB2 para z/OS.
v REORGCHK, para obtener más información consulte la referencia relacionada.

A partir de la V9.7 Fixpack 5, se añade soporte de CLPPlus para estos mandatos de


DB2:
v Soporte limitado para CREATE DATABASE; también recibe soporte cuando se
conecta a IBM Informix. Para obtener más información sobre las restricciones,
consulte la referencia relacionada.
v DROP DATABASE también recibe soporte cuando se conecta a IBM Informix.

Restricciones de CLPPlus
CLPPlus presenta algunas restricciones de conexión, mandato y sentencia.

CLPPlus puede establecer conexiones de base de datos con los productos de base
de datos DB2 siguientes pero con las restricciones siguientes:
v DB2 para Linux, UNIX y Windows Versión 9.8 Fixpack 1 o posterior. Debe
aplicar el fixpack 1 a la versión 9.8 para dar soporte a la conectividad.

CLPPlus presenta las restricciones siguientes en el soporte de PL/SQL:


v No se da soporte a la compilación y ejecución de sentencias de PL/SQL en DB2
Personal Edition.
v No se pueden crear activadores y funciones de PL/SQL en un entorno de base
de datos particionada.
v No se da soporte al uso del tipo de datos NCLOB en sentencias de PL/SQL o
contextos de PL/SQL cuando la base de datos no está definida como base de

Capítulo 3. Command Line Processor Plus (CLPPlus) 57


Restricciones de CLPPlus

datos Unicode. En las bases de datos Unicode, el tipo de datos NCLOB está
correlacionado con un tipo de datos DBCLOB de DB2.
v No se da soporte al tipo de datos XMLTYPE.
v No se da soporte a la declaración TYPE en una función, un procedimiento, un
activador o un bloque anónimo.
v No se da soporte a la opción FOR EACH STATEMENT para los activadores de
PL/SQL.
Tabla 6. Limitaciones de CLPPlus en los diferentes servidores de datos
DB2 Database para
Linux, UNIX y
Función CLPPlus Windows DB2 para z/OS IBM Informix
Variable Sí No No
REFCURSOR
SERVEROUTPUT Sí No No
EXECUTE Sí No No
LIST PACKAGES Sí Sí No
SHOW ERRORS Sí No No
UPDATE/GET/ Sí No No
RESET DB CFG
UPDATE/GET/ Sí No No
RESET DBM CFG
EXPORT Sí No No
IMPORT Sí No No
LOAD Sí No No

Consejos y sugerencias para la resolución de problemas de CLPPlus


Utilice esta información como ayuda para resolver los problemas y los errores de
CLPPlus.
Tabla 7. Inicio de CLPPlus: Problemas y soluciones
Problema Explicación y solución
Se muestra el mensaje siguiente cuando se Asegúrese de tener instalado Java 1.5 o
intenta iniciar CLPPlus: posterior. Cuando el proceso de instalación
de CLPPlus no instala un producto Java,
CLPPlus requires Java 1.5 or higher to CLPPlus busca un producto Java en las
execute. Please ensure Java is in your variables de entorno JAVA_HOME y PATH.
PATH.
Descargue e instale un SDK o JRE de Java
CLPPlus no puede iniciarse. de la versión 1.5 o posterior. Establezca
JAVA_HOME para que señale al directorio de
instalación de Java. Añada el directorio de
archivos binarios de Java a su variable de
entorno PATH.

58 Consulta de mandatos
Consejos y sugerencias para la resolución de problemas de CLPPlus

Tabla 7. Inicio de CLPPlus: Problemas y soluciones (continuación)


Problema Explicación y solución
Se muestra el mensaje siguiente cuando se CLPPlus necesita los controladores
intenta iniciar CLPPlus: universales de Java del archivo db2jcc.jar.
Cuando CLPPlus no encuentra el archivo
Could not find db2jcc.jar. Please ensure db2jcc.jar en CLASSPATH o en el directorio
that your installation completed directorio de instalación/java, no se
successfully. If the problem persists, puede realizar el inicio.
please locate and add db2jcc.jar to your
CLASSPATH. Asegúrese de que la instalación se haya
completado correctamente. Añada la vía de
CLPPlus no puede iniciarse. acceso absoluta del archivo db2jcc.jar a la
configuración de la variable de entorno
CLASSPATH.
Se muestra el mensaje siguiente cuando se CLPPlus necesita el archivo clpplus.jar que
intenta iniciar CLPPlus: se incluye con el producto. Cuando CLPPlus
no encuentra clpplus.jar en CLASSPATH o en
Could not find clpplus.jar. Please el directorio de instalación, no se puede
ensure that your installation completed realizar el inicio.
successfully. If the problem persists,
please locate and add clpplus.jar to Asegúrese de que la instalación se haya
your CLASSPATH. completado correctamente. Añada la vía de
acceso absoluta del archivo db2jcc.jar a la
CLPPlus no puede iniciarse. configuración de la variable de entorno
CLASSPATH.
Se muestra el mensaje siguiente cuando se CLPPlus necesita el archivo
intenta iniciar CLPPlus: jline-0.9.93.jar que se incluye con el
producto. Cuando CLPPlus no encuentra
Could not find jline-0.9.93.jar. Please jline-0.9.93.jar en CLASSPATH o en el
ensure that your installation completed directorio de instalación, CLPPlus no se
successfully. If the problem persists, puede iniciar.
please locate and add jline-0.9.93.jar
to your CLASSPATH. Asegúrese de que la instalación se haya
completado correctamente. Añada la vía de
CLPPlus no puede iniciarse. acceso absoluta del archivo
jline-0.9.93.jar a la configuración de la
variable de entorno CLASSPATH.

Capítulo 3. Command Line Processor Plus (CLPPlus) 59


60 Consulta de mandatos
Capítulo 4. Cómo leer la ayuda de sintaxis de mandatos
De vez en cuando, puede olvidar las opciones válidas para un mandato. Puede
invocar la salida de pantalla de ayuda de mandatos, que utiliza una convención de
sintaxis que se explica aquí.

Todos los mandatos del procesador de línea de mandatos (CLP) pueden invocar
una pantalla de ayuda en el indicador CLP haciendo preceder la palabra o
palabras clave del mandato por un signo de interrogación (?). Para muchos de los
mandatos del sistema se puede mostrar una pantalla de ayuda de resumen
emitiendo la palabra clave del mandato seguida de un parámetro help.

Invocación de ayuda
mandatos CLP
Para mostrar una pantalla de ayuda del mandato de CLP, anteponga a la
palabra o palabras clave de mandato un signo de interrogación en el
indicador de modalidad interactiva de db2 (db2 =>), como se muestra en
el ejemplo siguiente para el mandato BACKUP DATABASE:
db2 => ? backup database

o bien, fuera de la modalidad interactiva de 'db2', anteponga db2 a cada


invocación de pantalla de ayuda de mandato, como se muestra para el
mandato BACKUP DATABASE:
=> db2 ? backup database
Mandatos del sistema
La mayoría de los mandatos del sistema pueden mostrar una pantalla de
ayuda de mandato entrando la palabra clave de mandato del sistema
seguida de una opción de ayuda. Muchos mandatos del sistema utilizan
una opción de ayuda común, mientras que otros mandatos del sistema
pueden utilizar opciones de ayuda diferentes y/o adicionales. Para los
primeros intentos, sin tener que buscar todavía la opción de ayuda olvidada
de un mandato, utilice las siguientes opciones más comunes con las que
probablemente conseguirá invocar satisfactoriamente la pantalla de ayuda
de mandato:
Opciones de ayuda
v -h
v -?
v -help
v no hay datos especificados después de la palabra clave de
mandato

Nota: si no se especifican datos después de la palabra clave de


mandato, en algunos casos esto puede ejecutar el mandato si las
opciones no son necesarias.

Convenios de sintaxis de la pantalla de ayuda


[ ] Encierra parámetros opcionales
{ } Encierra parámetros obligatorios
| Separa dos o más elementos, de los que sólo puede elegirse uno

© Copyright IBM Corp. 1993, 2012 61


Cómo leer la ayuda de sintaxis de mandatos

... Indica un parámetro repetible


( ) Delimitador de parámetro repetible (no siempre se utiliza)
El mandato KEYWORDS aparece en mayúsculas
Las variables, que requieren determinar y especificar la entrada apropiada,
aparecen en minúsculas
Salida de pantalla de ayuda de mandato de ejemplo
A continuación figura la pantalla de ayuda de mandato CLP para el
mandato UPDATE MONITOR SWITCHES:
db2 => ? update monitor
UPDATE MONITOR SWITCHES USING {switch-name {ON | OFF} ...}
[AT DBPARTITIONNUM db-partition-number | GLOBAL]

switch-name:
BUFFERPOOL, LOCK, SORT, STATEMENT, TABLE, TIMESTAMP, UOW

A continuación figura la pantalla de ayuda de mandato del sistema para el


mandato db2look que, en este caso, no ha sido invocada por la opción de
ayuda -h especificada:
C:\Archivos de programa\IBM\SQLLIB\BIN>db2look

Syntax: db2look -d DBname [-e] [-xs] [-xdir Path] [-u Creator] [-z Schema]
[-t Tname1 Tname2...TnameN] [-tw Tname] [-h]
[-o Fname] [-a] [-m] [-c] [-r] [-l] [-x] [-xd] [-f]
[-fd] [-td x] [-noview] [-i userID] [-w password]
[-v Vname1 Vname2 ... VnameN] [-dp] [-ct]
[-wrapper WrapperName] [-server ServerName] [-nofed]
[-wlm] [-ap]

[-wrapper WrapperName] [-server ServerName][-fedonly] [-nofed]

db2look [-h]

-d: Nombre de base de datos: se debe especificar

-e: Extraer archivo DDL necesario para duplicar la base de datos


-xs: Exportar objetos XSR y generar un script que contenga sentencias DDL
-xdir: Nombre de vía de acceso: el directorio en el que se colocarán los objetos XSR
-u: ID de creador: si -u y -a no se especifican, se utilizará $USER
-z: Nombre de esquema: si -z y -a se especifican, se pasará por alto -z
-t: Generar estadísticas para las tablas especificadas
-tw: Generar DDL para tablas cuyos nombres coincidan con el criterio de patrón (caracteres
comodín) del nombre de tabla
-ap: Generar sentencias AUDIT USING
-wlm: Generar sentencias DDL específicas de WLM
-h: Mensaje de ayuda más detallado
-o: Redirige la salida al nombre de archivo especificado
-a: Generar estadísticas para todos los creadores
-m: Ejecutar el programa de utilidad db2look en modalidad mímica
-c: No generar sentencias COMMIT para mímica
-r: No generar sentencias RUNSTATS para mímica
-l: Generar diseño de base de datos: grupos de particiones de base de datos,
agrupaciones de almacenamientos intermedios y espacios de tablas
-x: Generar sentencias de autorización DDL que excluyan el definidor original del objeto
-xd: Generar sentencias de autorización DDL que incluyan el definidor original del objeto
-f: Extraer parámetros de configuración y variables de entorno
-td: Especifica x como delimitador de sentencias (el valor por omisión es un punto y coma (;))
-i: ID de usuario para iniciar sesión en el servidor donde reside la base de datos
-w: Contraseña para iniciar sesión en el servidor donde reside la base de datos
-noview: No generar sentencias ddl CREATE VIEW
-wrapper: Genera DDL para objetos federados que se aplican a este derivador
-server: Genera DDL para objetos federados que se aplican a este servidor
-FEDONLY: Solamente sentencias DDL federadas creadas
-nofed: No generar DDL federadas

62 Consulta de mandatos
Cómo leer la ayuda de sintaxis de mandatos

-fd: Genera sentencias db2fopt para opt_buffpage y opt_sortheap además de otros


parámetros cfg y env.
-v: Generar DDL sólo para vista; esta opción se pasa por alto cuando se especifica -t
-dp: Generar sentencia DROP antes de sentencia CREATE
-ct: Generar sentencias DDL por hora de creación de objeto

Nota: En general, una pantalla de ayuda de mandato del sistema tiende a


proporcionar información más detallada que una pantalla de ayuda de
mandato CLP.

Entradas de mandato de ejemplo

Mediante el uso de la pantalla de ayuda de mandato UPDATE MONITOR SWITCHES


como ejemplo,
db2 => ? update monitor
UPDATE MONITOR SWITCHES USING {switch-name {ON | OFF} ...}
[AT DBPARTITIONNUM db-partition-number | GLOBAL]

switch-name:
BUFFERPOOL, LOCK, SORT, STATEMENT, TABLE, TIMESTAMP, UOW

las siguientes entradas de mandato son válidas,


UPDATE MONITOR SWITCHES USING LOCK OFF
UPDATE MONITOR SWITCHES USING LOCK OFF TIMESTAMP ON
UPDATE MONITOR SWITCHES USING STATEMENT ON AT DBPARTITIONNUM 1
UPDATE MONITOR SWITCHES USING SORT ON GLOBAL

mientras que las siguientes entradas de mandato no son válidas:


UPDATE MONITOR SWITCHES LOCK OFF
UPDATE MONITOR SWITCHES USING LOCK GLOBAL
UPDATE MONITOR SWITCHES USING STATEMENT ON AT DBPARTITIONNUM 1 GLOBAL

Recordatorio

Para poder recordar los convenios de sintaxis de pantalla de ayuda de mandato sin
necesidad de buscar en el Centro de información en línea, emita el siguiente
mandato en el indicador CLP:
db2 => ? ayuda

o bien, en el indicador de mandatos del sistema, especifique la consulta siguiente:


=> db2 ? ayuda

Capítulo 4. Cómo leer la ayuda de sintaxis de mandatos 63


Cómo leer la ayuda de sintaxis de mandatos

64 Consulta de mandatos
Capítulo 5. mandatos CLP

© Copyright IBM Corp. 1993, 2012 65


ACTIVATE DATABASE

ACTIVATE DATABASE
Activa la base de datos especificada y arranca todos los servicios de base de datos
necesarios, de modo que la base de datos esté disponible para que se conecte y la
utilice cualquier aplicación.

Ámbito

Este mandato activa la base de datos de destino en todos los miembros de la


instancia. Si uno o varios de estos miembros encuentran un error durante una
activación, se devuelve un aviso. La base de datos permanece activada en todos los
miembros en los que el mandato ha sido satisfactorio.

Una base de datos se activa de forma explícita o implícita. La activación de una


base de datos determinada por la primera conexión de usuario se denomina
activación implícita. La activación de una base de datos que se basa en la emisión
del mandato de activación de base de datos se denomina activación explícita.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT

Conexión necesaria
Ninguna

Sintaxis del mandato


 ACTIVATE DATABASE alias-base-datos 
DB

 
USER nombre-usuario
USING contraseña

Parámetros del mandato


DATABASE | DB alias-base-datos
Especifica el alias de la base de datos que se debe iniciar.
USER nombreusuario
Especifica el usuario que inicia la base de datos.
USING contraseña
Especifica la contraseña para el nombre de usuario.

Notas de uso

Los administradores de bases de datos pueden utilizar el mandato ACTIVATE


DATABASE para iniciar las bases de datos seleccionadas. Esto elimina el tiempo que
la aplicación emplea en la inicialización de la base de datos. El mandato ACTIVATE
DATABASE es la única forma de activar explícitamente una base de datos.

66 Consulta de mandatos
ACTIVATE DATABASE

Las bases de datos inicializadas por el mandato ACTIVATE DATABASE pueden


cerrarse mediante el mandato DEACTIVATE DATABASE o db2stop.

La aplicación que emite el mandato ACTIVATE DATABASE no puede tener una


conexión de base de datos activa con ninguna base de datos.

Si se inicia una base de datos emitiendo una sentencia CONNECT (o una conexión
implícita) y posteriormente se emite un mandato ACTIVATE DATABASE para la misma
base de datos, debe utilizarse el mandato DEACTIVATE DATABASE para cerrar esa base
de datos. Si no se ha utilizado el mandato ACTIVATE DATABASE para iniciar la base
de datos, la base de datos se cerrará cuando se desconecte la última aplicación. Sin
embargo, en un entorno DB2 pureScale, una base de datos activa en un miembro
solamente puede desactivarse en ese miembro si se emite un mandato DEACTIVATE
DATABASE.

En un entorno DB2 pureScale, no pueden utilizarse el mandato ACTIVATE DATABASE


ni la sentencia CONNECT para reiniciar una base de datos. En este caso, la base de
datos se reinicia automáticamente en función del parámetro de configuración de
base de datos autorestart. Consulte el parámetro de configuración autorestart
para conocer el comportamiento de conexión de la base de datos cuando la base de
datos de destino tenga un estado incoherente.
Información relacionada

Capítulo 5. mandatos CLP 67


ADD CONTACT

ADD CONTACT
Añade un contacto a la lista de contactos que se puede definir localmente en el
sistema o en una lista global. Los contactos son usuarios a los que los procesos,
tales como el Planificador y el Supervisor de salud, envían mensajes.

El valor del parámetro de configuración contact_host del Servidor de


administración de bases de datos (DAS) determina si la lista es local o global.

Autorización

Ninguna

Conexión necesaria

Ninguna. Sólo en ejecución local: este mandato no se puede utilizar con una
conexión remota.

Sintaxis del mandato

 ADD CONTACT nombre TYPE EMAIL 


PAGE
MAXIMUM PAGE LENGTH longitud-pg
MAX LEN

 ADDRESS dirección de destinatarios 


DESCRIPTION descripción contacto

Parámetros del mandato


ADD CONTACT nombre
Nombre del contacto que se añadirá. Por omisión, el contacto se añadirá al
sistema local, a menos que el parámetro de configuración contact_host del
Servidor de administración de DB2 apunte a otro sistema.
TYPE Método de contacto, que debe ser uno de los dos siguientes:
EMAIL Este contacto desea recibir las notificaciones por correo electrónico
en ADDRESS).
PAGE Este contacto desea recibir las notificaciones mediante un mensaje
de buscapersonas enviado a ADDRESS.
MAXIMUM PAGE LENGTH longitud-pg
Si el servicio de buscapersonas tiene restringida la longitud
de los mensajes, se especifica aquí en caracteres.

El sistema de notificación utiliza el protocolo SMTP para enviar la


notificación al servidor de correo especificado por el parámetro de
configuración smtp_server del Servidor de administración de DB2.
Es responsabilidad del servidor SMTP enviar el correo electrónico
o llamar al buscapersonas.
ADDRESS dirección-destinatario
Dirección del buzón de SMTP del destinatario. Por ejemplo,
[email protected]. El parámetro de configuración smtp_server de DAS
debe establecerse como el nombre del servidor SMTP.

68 Consulta de mandatos
ADD CONTACT

DESCRIPTION descripción contacto


Texto descriptivo del contacto. Tiene una longitud máxima de 128
caracteres.

Capítulo 5. mandatos CLP 69


ADD CONTACTGROUP

ADD CONTACTGROUP
Añade un nuevo grupo de contactos a la lista de los grupos definidos en el sistema
local. Un grupo de contacto es una lista de usuarios y grupos a los que los
procesos de supervisión, tales como el Planificador y el Supervisor de salud,
pueden enviar mensajes.

El valor del parámetro de configuración contact_host del Servidor de


administración de bases de datos (DAS) determina si la lista es local o global.

Autorización
Ninguna

Conexión necesaria

Ninguna. Sólo en ejecución local: este mandato no se puede utilizar con una
conexión remota.

Sintaxis del mandato


,

 ADD CONTACTGROUP nombre  CONTACT nombre 


GROUP

 
DESCRIPTION descripción grupo

Parámetros del mandato


ADD CONTACTGROUP nombre
Nombre del nuevo grupo de contacto, que debe ser exclusivo entre el
conjunto de grupos del sistema.
CONTACT nombre
Nombre del contacto que es miembro del grupo. Se puede definir un
contacto con el mandato ADD CONTACT después de haberlo añadido a un
grupo.
GROUP nombre
Nombre del grupo de contactos del que este grupo es miembro.
DESCRIPTION descripción grupo
Opcional. Texto descriptivo del grupo de contacto.

70 Consulta de mandatos
ADD DBPARTITIONNUM

ADD DBPARTITIONNUM
Añade una partición de base de datos a un servidor de particiones de bases de
datos.

Ámbito

Este mandato API sólo afecta al servidor de particiones de base de datos en el que
se ejecuta el mandato.

Autorización
Una de las autorizaciones siguientes:
v SYSADM
v SYSCTRL

Conexión necesaria

Ninguna

Sintaxis del mandato


 ADD DBPARTITIONNUM 
LIKE DBPARTITIONNUM número-partición-bd
WITHOUT TABLESPACES

Parámetros del mandato


LIKE DBPARTITIONNUM núm-partición-bd
Especifica que los contenedores para los nuevos espacios de tablas
temporales del sistema serán los mismos que los contenedores de la base
de datos en el servidor de particiones de base de datos especificado por
número-partición-bd. El servidor de particiones de base de datos especificado
debe estar ya definido en el archivo db2nodes.cfg.
Para los espacios de tablas temporales del sistema que están definidos para
utilizar el almacenamiento automático (esto se refiere a los espacios de
tablas temporales del sistema que se han creado con la cláusula
MANAGED BY AUTOMATIC STORAGE de la sentencia CREATE
TABLESPACE o sin especificarse la cláusula MANAGED BY CLAUSE), los
contenedores no han de coincidir necesariamente con los de la partición
especificada. Por el contrario, el gestor de bases de datos asignará
automáticamente contenedores basándose en las vías de acceso de
almacenamiento que están asociadas al grupo de almacenamiento del
espacio de tablas. Como consecuencia, puede que se utilicen los mismos
contenedores en ambas particiones o puede que no.
WITHOUT TABLESPACES
Especifica que no se crean contenedores para los espacios de tablas
temporales del sistema para ninguna de las particiones de base de datos.
La sentencia ALTER TABLESPACE se debe utilizar para añadir
contenedores de espacios de tablas temporales del sistema a cada partición
de base de datos antes de que se pueda utilizar la base de datos.
Si no se especifica ninguna opción, los contenedores para los espacios de
tablas temporales del sistema serán los mismos que los contenedores de la

Capítulo 5. mandatos CLP 71


ADD DBPARTITIONNUM

partición de catálogo para cada base de datos. La partición de catálogo


puede ser una partición de base de datos diferente para cada base de datos
del entorno de base de datos particionada. Esta opción se pasa por alto
para los espacios de tablas temporales del sistema que se han definido
para utilizar almacenamiento automático (esto se refiere a los espacios de
tablas temporales del sistema que se han creado con la cláusula
MANAGED BY AUTOMATIC STORAGE de la sentencia CREATE
TABLESPACE o sin haberse especificado la cláusula MANAGED BY
CLAUSE). Para estos espacios de tablas, no se puede aplazar la creación de
contenedores. El gestor de bases de datos asignará los contenedores
automáticamente en función de las vías de acceso de almacenamiento
asociadas con la base de datos.

Notas de uso
Este mandato solo debe utilizarse si se añade un servidor de particiones de base de
datos a un entorno que tenga una base de datos y ésta no se ha catalogado en el
momento en que se realizó la operación de adición de la partición. En esta
situación, puesto que la base de datos no está catalogada, la operación de añadir la
partición no reconoce la base de datos y no crea una partición de base de datos
correspondiente a la base de datos del nuevo servidor de particiones de base de
datos. Cualquier intento de conectarse a la partición de base de datos en el nuevo
servidor de particiones de base de datos dará como resultado un error. En primer
lugar, la base de datos debe catalogarse para que pueda utilizarse el mandato ADD
DBPARTITIONNUM para crear la partición de base de datos correspondiente a la base
de datos del nuevo servidor de particiones de base de datos.

Este mandato no deberá utilizarse si el entorno tiene más de una base de datos y
al menos una de esas bases de datos se catalogó en el momento de realizar la
operación de adición de la partición. En esta situación, utilice el parámetro AT
DBPARTITIONNUM del mandato CREATE DATABASE para crear una partición de base de
datos para cada base de datos que no se catalogó en el momento de realizar la
operación de adición de partición. Cada base de datos sin catalogar debe
catalogarse en primer lugar para poder utilizar el mandato CREATE DATABASE para
crear una partición de base de datos correspondiente a la base de datos del nuevo
servidor de particiones de base de datos.

Antes de añadir una nueva partición de base de datos, asegúrese de que hay
suficiente almacenamiento para los contenedores que deben crearse.

La operación de adición de servidor de particiones de base de datos crea una


partición de base de datos vacía para cada base de datos que existe en la instancia.
Los parámetros de configuración para las particiones de base de datos nuevas se
establecen en los valores por omisión.

Nota: Las bases de datos no catalogadas no se reconocen cuando se añade una


nueva partición de base de datos. Las bases de datos no catalogadas no estarán
presentes en la nueva partición de base de datos. Cualquier intento de conectarse a
la base de datos de la nueva partición de base de datos devolverá el mensaje de
error SQL1013N.

Si una operación de adición de servidor de particiones de base de datos falla


mientras se crea localmente una partición de base de datos, entra en fase de
borrado, en la que descarta localmente todas las bases de datos que se han creado.
Esto significa que las particiones de base de datos sólo se eliminan del servidor de
particiones de base de datos que se está añadiendo. Las particiones de base de

72 Consulta de mandatos
ADD DBPARTITIONNUM

datos existentes permanecen en todos los demás servidores de particiones de base


de datos sin quedar afectadas. Si esta acción de borrado falla, no se realiza ningún
borrado adicional y se devuelve un error.

Las particiones de base de datos de la nueva partición de base de datos no pueden


contener datos de usuario hasta después de haber utilizado la sentencia ALTER
DATABASE PARTITION GROUP para añadir la partición de base de datos a un
grupo de particiones de base de datos.

Este mandato fallará si está en curso una operación de creación de base de datos o
de descarte de base de datos. Se puede volver a emitir el mandato cuando la
operación haya finalizado.

Para determinar si una base de datos está habilitada para utilizar almacenamiento
automático o no, ADD DBPARTITIONNUM tiene que comunicarse con la partición de
catálogo de para cada una de las bases de datos de la instancia. Si el
almacenamiento automático está habilitado, las definiciones de grupo de
almacenamiento se recuperan como parte de esa comunicación. Asimismo, si se
deben crear espacios de tablas temporales del sistema con las particiones de base
de datos, puede que ADD DBPARTITIONNUM tenga que comunicarse con otro servidor
de particiones de base de datos a fin de recuperar las definiciones de espacio de
tablas para las particiones de base de datos que residen en ese servidor. El
parámetro de configuración start_stop_time del gestor de bases de datos se utiliza
para especificar el tiempo, en minutos, en que el otro servidor de particiones de
base de datos debe responder con las definiciones de almacenamiento automático y
espacio de tablas. Si se excede este tiempo, el mandato fallará. Si se produce esta
situación, aumente el valor de start_stop_time y vuelva a emitir el mandato.

Cuando se emite el mandato ADD DBPARTITIONNUM, no puede haber ninguna entrada


de grupo de almacenamiento que no sea coherente con la transacción.

Capítulo 5. mandatos CLP 73


ADD XMLSCHEMA DOCUMENT

ADD XMLSCHEMA DOCUMENT


Añade uno o más documentos de esquema XML a un esquema XML existente,
aunque incompleto, antes de llevar a cabo el registro.

Autorización

Se necesita la siguiente autorización:


v El ID de usuario debe ser el propietario del objeto XSR, tal como se indica en la
vista de catálogo SYSCAT.XSROBJECTS.

Conexión necesaria

Base de datos

Sintaxis del mandato

 ADD XMLSCHEMA DOCUMENT TO identificador-relacional 

  ADD URI-documento FROM URI-contenido 


WITH URI-propiedades

 
COMPLETE
WITH URI-propiedades-esquema ENABLE DECOMPOSITION

Descripción
TO identificador-relacional
Especifica el nombre relacional de un esquema XML registrado, aunque
incompleto, al que se añaden documentos de esquema adicionales.
ADD URI-documento
Especifica el identificador uniforme de recurso (URI) de un documento de
esquema XML que se debe añadir a este esquema, para cuando se haga
referencia al documento desde otro documento XML.
FROM URI-contenido
Especifica el URI en el que se encuentra el documento de esquema XML.
Solo está soportado un URI de esquema de archivo.
WITH URI-propiedades
Especifica el URI de un documento de propiedades para el esquema XML.
Solo está soportado un URI de esquema de archivo.
COMPLETE
Indica que no hay más documentos de esquema XML para añadir. Si se
especifica, el esquema se valida y se marca como utilizable, en el caso de
que no se encuentren errores.
WITH URI-propiedades-esquema
Especifica el URI de un documento de propiedades para el esquema XML.
Solo está soportado un URI de esquema de archivo.

74 Consulta de mandatos
ADD XMLSCHEMA DOCUMENT

ENABLE DECOMPOSITION
Especifica que hay que usar este esquema para descomponer documentos
XML.

Ejemplo
ADD XMLSCHEMA DOCUMENT TO JOHNDOE.PRODSCHEMA
ADD ’http://myPOschema/address.xsd’
FROM ’file:///c:/TEMP/address.xsd’

Capítulo 5. mandatos CLP 75


ARCHIVE LOG

ARCHIVE LOG
Cierra y trunca el archivo de anotaciones cronológicas activo para una base de
datos recuperable.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v DBADM

Conexión necesaria

Ninguna. Este mandato establece una conexión de base de datos mientras dura el
mandato.

Sintaxis del mandato


 ARCHIVE LOG FOR DATABASE alias-base-datos 
DB

 
USER nombre-usuario
USING contraseña

 
Cláusula En número de partición de base de datos

Cláusula En número de partición de base de datos:

ON Cláusula Lista de números de partición de base de datos


ALL DBPARTITIONNUMS
EXCEPT Cláusula Lista de número de particiones de base de datos

Cláusula Lista de números de partición de base de datos:

DBPARTITIONNUM 
DBPARTITIONNUMS

 (  número-partición-bd )
TO número-partición-bd

Parámetros del mandato


DATABASE alias-base-datos
Especifica el alias de la base de datos cuya anotación cronológica activa
debe archivarse.
USER nombreusuario
Especifica el nombre de usuario bajo el cual se intentará una conexión.
76 Consulta de mandatos
ARCHIVE LOG

USING contraseña
Especifica la contraseña para autentificar el nombre de usuario.
ON ALL DBPARTITIONNUMS
Especifica que el mandato debe emitirse en todas las particiones de base de
datos del archivo db2nodes.cfg. Es el valor por omisión si no se especifica
una cláusula de número de partición de base de datos.
EXCEPT
Especifica que el mandato debe emitirse en todas las particiones de base de
datos del archivo db2nodes.cfg, excepto las especificadas en la lista de
números de partición de base de datos.
ON DBPARTITIONNUM | ON DBPARTITIONNUMS
Especifica que las anotaciones cronológicas deben archivarse para la base
de datos especificada en un conjunto de particiones de base de datos.
núm-partición-bd
Especifica un número de partición de base de datos en la lista de números
de partición de base de datos.
TO número-partición-bd
Se utiliza cuando se especifica un rango de particiones de base de datos
para las que deben archivarse las anotaciones cronológicas. En la lista de
números de partición de base de datos se incluyen todas las particiones de
base de datos desde el primer número de partición de base de datos hasta
el segundo número de partición de base de datos inclusive.

Notas de uso

Este mandato puede utilizarse para obtener un conjunto completo de datos de


anotaciones cronológicas hasta un punto conocido. A continuación, los datos de
anotaciones cronológicas pueden utilizarse para actualizar una base de datos en
espera.

Si los datos de las anotaciones cronológicas hasta el momento en que se emite el


mandato ARCHIVE LOG se encuentran a mitad de un archivo de anotaciones
cronológicas, este archivo se truncará y la anotación cronológica continuará en el
siguiente archivo.

Este mandato sólo se puede ejecutar cuando el shell o la aplicación de invocación


no tiene una conexión de base de datos con la base de datos especificada. Esto
evita que un usuario pueda ejecutar el mandato con transacciones no confirmadas.
Así, el mandato ARCHIVE LOG no confirmará de modo forzado las transacciones
incompletas del usuario. Si el shell o la aplicación de invocación ya tiene una
conexión de base de datos con la base de datos especificada, el mandato terminará
y devolverá un error. Si otra aplicación tiene transacciones en curso con la base de
datos especificada cuando se ejecuta este mandato, se producirá un ligero descenso
del rendimiento puesto que el mandato vacía el almacenamiento intermedio de
anotaciones cronológicas en disco. Cualquier otra transacción que intente grabar
registros de anotaciones cronológicas en el almacenamiento intermedio tendrá que
esperar a que la operación de vaciar se haya completado.

Si se utiliza en un entorno de base de datos particionada, puede especificarse un


subconjunto de particiones de base de datos utilizando una cláusula de número de
partición de base de datos. Si no se especifica la cláusula de número de partición

Capítulo 5. mandatos CLP 77


ARCHIVE LOG

de base de datos, el comportamiento por omisión para este mandato consiste en


cerrar y archivar la anotación cronológica activa en todas las particiones de base de
datos.

El uso de este mandato utilizará una porción del espacio de las anotaciones
cronológicas activas, debido al truncamiento del archivo de anotaciones
cronológicas activo. El espacio de anotaciones cronológicas activas recuperará su
tamaño anterior cuando las anotaciones cronológicas truncadas queden inactivas.
El uso frecuente de este mandato puede reducir drásticamente la cantidad del
espacio de anotaciones cronológicas activas que esté disponible para transacciones.
El mandato puede fallar con SQL0964 si no hay suficiente espacio de anotaciones
disponible.

El mandato ARCHIVE LOG es asíncrono. Cuando emita el mandato ARCHIVE LOG, las
anotaciones cronológicas se cerrarán, de forma que estarán disponibles para su
archivado. Las anotaciones cronológicas no se archivarán inmediatamente; es
posible que se produzca un retardo entre el momento en el que se ejecuta el
mandato y el momento en el que se archivan las anotaciones cronológicas. Este
retardo se advertirá especialmente si desactiva una base de datos inmediatamente
después de haber emitido el mandato ARCHIVE LOG. El archivado de las anotaciones
cronológicas lo realiza el proceso db2logmgr. Puede que las anotaciones
cronológicas no se archiven hasta la siguiente activación de la base de datos.

El mandato se distribuye a cada miembro al que tiene acceso la base de datos al


emitir el mandato ARCHIVE LOG o invocar la API db2ArchiveLog en un entorno DB2
pureScale. Si un miembro es coherente (en línea o fuera de línea), ARCHIVE LOG
omitirá ese miembro, puesto que su último archivo de anotaciones cronológicas ya
se habría truncado cuando el miembro se cerró ordenadamente. Si un miembro
fuera de línea no es coherente, ARCHIVE LOG espera a que se complete MCR antes
del truncamiento.

78 Consulta de mandatos
ATTACH

ATTACH
Permite que una aplicación especifique la instancia en la que los mandatos a nivel
de instancia (CREATE DATABASE y FORCE APPLICATION, por ejemplo) se deben ejecutar.
Esta instancia puede ser la instancia actual, otra instancia de la misma estación de
trabajo o una instancia de una estación de trabajo remota.

Autorización

Ninguna

Conexión necesaria

Ninguna. Este mandato establece una conexión de instancia.

Sintaxis del mandato

 ATTACH 
TO nombre-nodo

 
USER nombre-usuario
USING contraseña
NEW contraseña CONFIRM contraseña
CHANGE PASSWORD

Parámetros del mandato


TO nombre-nodo
Alias de la instancia a la que desea conectarse el usuario. Esta instancia
puede tener una entrada que coincide en el directorio de nodo local. La
única excepción a esto es la instancia local (especificada por la variable de
entorno DB2INSTANCE), que puede especificarse como objeto de una
conexión, pero que no se puede utilizar como nombre de nodo en el
directorio de nodos.
USER nombreusuario
Especifica el identificador de autentificación. Al conectarse a una instancia
de base de datos DB2 en un sistema operativo Windows, el nombre de
usuario se puede especificar en un formato compatible con Microsoft
Security Account Manager (SAM). El calificador debe ser un nombre de
estilo plano con una longitud máxima de 15 caracteres. Por ejemplo,
nombre-dominio\nombre-usuario.
USING contraseña
Especifica la contraseña para el nombre de usuario. Si se especifica un
nombre de usuario, pero no se especifica una contraseña, se solicita al
usuario la contraseña actual. La contraseña no se visualiza al entrarse.
NEW contraseña
Especifica la contraseña nueva que se debe asignar al nombre de usuario.
El sistema en el que se cambiará la contraseña depende del modo en que
se haya configurado la autentificación de usuario. El sistema de base de
datos DB2 proporciona soporte para cambiar las contraseñas en sistemas
operativos AIX, Linux y Windows y soporta hasta 255 caracteres para sus
propios conectores que ha escrito. Consulte Normas de contraseñas para
obtener información adicional acerca de las contraseñas.

Capítulo 5. mandatos CLP 79


ATTACH

CONFIRM contraseña
Serie que debe ser idéntica a la contraseña nueva. Este parámetro se utiliza
para detectar errores de entrada.
CHANGE PASSWORD
Si se especifica esta opción, se solicita al usuario la contraseña actual, una
contraseña nueva y la confirmación de la contraseña nueva. Las
contraseñas no se visualizan al entrarse.

Ejemplos

Catalogar dos nodos remotos:


db2 catalog tcpip node nodo1 remote freedom server servidor1
db2 catalog tcpip node nodo2 remote flash server servidor1

Conectarse al primer nodo, forzar todos los usuarios y, a continuación,


desconectarse:
db2 attach to nodo1
db2 force application all
db2 detach

Conectarse al segundo nodo y ver qué está activo:


db2 attach to nodo2
db2 list applications

Después de que el mandato devuelva los ID de agente 1, 2 y 3, forzar 1 y 3 y


luego desconectarse:
db2 force application (1, 3)
db2 detach

Conectarse a la instancia actual (no necesario, estará implícito), forzar todos los
usuarios y, a continuación, desconectarse (sólo AIX):
db2 attach to $DB2INSTANCE
db2 force application all
db2 detach

Notas de uso

Si se omite nombrenodo en el mandato, se devuelve información acerca del estado


actual de la conexión.

Si no se ha ejecutado ATTACH, los mandatos a nivel de instancia se ejecutan en la


instancia actual, especificada por la variable de entorno DB2INSTANCE.

80 Consulta de mandatos
AUTOCONFIGURE

AUTOCONFIGURE
Calcula y visualiza los valores iniciales para los parámetros del tamaño de
agrupación de almacenamientos intermedios, de configuración de base de datos y
de configuración de gestor de bases de datos, con la opción de aplicar los valores
mencionados.

Autorización

SYSADM

Conexión necesaria

Base de datos

Sintaxis del mandato


 AUTOCONFIGURE 

USING  palabraclave-entrada valor-parám

 APPLY DB ONLY 
DB AND DBM ON CURRENT MEMBER
NONE

Parámetros del mandato


USING palabraclave-entrada valor-parám
Tabla 8. Palabras claves de entrada y valores de parámetro válidos
Valores Valor por
Palabra clave válidos omisión Explicación
mem_percent 1–100 25 Porcentaje de memoria de instancia que se
asigna a la base de datos. Sin embargo, si
el mandato CREATE DATABASE invoca al
asesor de configuración y no se especifica
un valor para mem_percent, el porcentaje se
calcula en función del uso de memoria de
la instancia y del sistema hasta un máximo
del 25% de la memoria de instancia.
workload_type simple, mixed Las cargas de trabajo sencillas tienden a
mixed, tener una actividad intensiva de E/S y
complex principalmente de transacciones, mientras
que las cargas de trabajo complejas tienden
a tener una actividad intensiva de CPU y
principalmente de consultas.
num_stmts 1–1 000 000 10 Número de sentencias por unidad de
trabajo
tpm 1–200 000 60 Transacciones por minuto
admin_priority performance, both Optimizar para obtener un rendimiento
recovery, mejor (más transacciones por minuto) o un
both tiempo de recuperación mejor
is_populated yes, no yes ¿Hay datos en la base de datos?
num_local_apps 0–5 000 0 Número de aplicaciones locales conectadas

Capítulo 5. mandatos CLP 81


AUTOCONFIGURE

Tabla 8. Palabras claves de entrada y valores de parámetro válidos (continuación)


Valores Valor por
Palabra clave válidos omisión Explicación
num_remote_ 0–5 000 10 Número de aplicaciones remotas
apps conectadas
isolation RR, RS, CS, UR RR Nivel máximo de aislamiento de
aplicaciones que se conectan con esta base
de datos (RR: Lectura repetible; RS:
Estabilidad de lectura; CS: Estabilidad de
cursor; UR: Lectura no confirmada). Solo se
usa para determinar los valores de otros
parámetros de configuración. No se
establece nada para restringir las
aplicaciones para que tengan un
determinado nivel de aislamiento y no hay
problema en utilizar el valor por omisión.
bp_resizeable yes, no yes ¿Puede modificarse el tamaño de las
agrupaciones de almacenamientos
intermedios?

APPLY
DB ONLY
Muestra los valores recomendados para la configuración de la base
de datos y los valores de la agrupación de almacenamientos
intermedios según la configuración actual del gestor de bases de
datos. Aplica los cambios recomendados a los valores de
configuración de la base de datos y de la agrupación de
almacenamientos intermedios.
DB AND DBM
Visualiza y aplica los cambios recomendados a la configuración del
gestor de bases de datos, la configuración de la base de datos y los
valores de la agrupación de almacenamientos intermedios.
NONE Visualiza los cambios recomendados, pero no los aplica.
ON CURRENT MEMBER
En un entorno de base de datos particionada o un entorno DB2 pureScale,
el asesor de configuración actualiza por omisión la configuración de la base
de datos en todos los miembros. Especificar la opción ON CURRENT MEMBER
hace que el Asesor de configuración establezca los parámetros de
configuración de nivel de miembro en el miembro actual según lo
determine su conexión, mientras que los parámetros de configuración de
nivel global, que pueden configurarse para que sean funcionales sólo en el
nivel global, se establecen y afectan a todos los miembros.
Los cambios de la agrupación de almacenamientos intermedios siempre se
aplican a los catálogos del sistema. Por lo tanto, todos los miembros se ven
afectados. La opción ON CURRENT MEMBER se ignora para recomendaciones
de agrupaciones de almacenamiento intermedio.

Notas de uso
v Este mandato realiza recomendaciones de configuración para la base de datos
actualmente conectada y da por supuesto que la base de datos es la única base
de datos activa de la instancia. Si no ha habilitado el gestor de memoria de
ajuste automático y dispone de más de una base de datos activa en la instancia,
especifique un valor mem_percent que refleje la distribución de memoria de la
82 Consulta de mandatos
AUTOCONFIGURE

base de datos. Por ejemplo, si dispone de dos bases de datos activas en la


instancia que deben utilizar el 80% de la memoria de instancia y deben
compartir los recursos de forma equitativa, especifique 40% (80% dividido entre
dos bases de datos) como valor mem_percent.
v Si dispone de varias instancias en el mismo equipo y no está habilitado el gestor
de memoria de ajuste automático, especifique un valor fijo para instance_memory
en cada instancia o especifique un valor mem_percent que refleje la distribución
de memoria de la base de datos. Por ejemplo, si desea que todas las bases de
datos activas utilicen el 80% de la memoria del equipo y existen cuatro
instancias con una base de datos cada una, especifique 20% (80% dividido entre
cuatro bases de datos) como valor mem_percent.
v Al invocar explícitamente el asesor de configuración con el mandato
AUTOCONFIGURE, no se tendrá en cuenta el valor de la variable de registro
DB2_ENABLE_AUTOCONFIG_DEFAULT.
v La ejecución del mandato AUTOCONFIGURE en una base de datos recomendará la
habilitación del gestor de memoria de ajuste automático. Sin embargo, si ejecuta
el mandato AUTOCONFIGURE en una instancia en la que sheapthres no es cero, el
ajuste de memoria de clasificación (sortheap) no se habilitará automáticamente.
Para habilitar el ajuste de memoria de clasificación (sortheap), debe establecer
que sheapthres sea igual a cero mediante la utilización del mandato UPDATE
DATABASE MANAGER CONFIGURATION. Tenga en cuenta que el hecho de cambiar el
valor de sheapthres podría afectar al uso de memoria de clasificación de las
bases de datos que existían anteriormente.

Compatibilidades

Para mantener la compatibilidad con las versiones anteriores:


v Pueden especificarse NODE y DBPARTITIONNUM en lugar de MEMBER, salvo cuando la
variable de registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.

Capítulo 5. mandatos CLP 83


BACKUP DATABASE

BACKUP DATABASE
Crea una copia de seguridad de una base de datos o de un espacio de tablas.

Para obtener información sobre las operaciones de copia de seguridad que reciben
el soporte de los sistemas de base de datos DB2 entre diferentes sistemas
operativos y plataformas de hardware, consulte el apartado “Operaciones de copia
de seguridad y restauración entre diferentes sistemas operativos y plataformas de
hardware”.

Ámbito
En un entorno de base de datos particionada, si no se especifica ninguna partición
de base de datos, este mandato sólo afecta a la partición de base de datos en la que
se ejecuta.

Si se especifica la opción para realizar una copia de seguridad particionada, sólo se


puede llamar al mandato en la partición de base de datos de catálogo. Si la opción
especifica que se debe hacer copia de seguridad de todos los servidores de
particiones de base de datos, afecta a todos los servidores de particiones de base
de datos listados en el archivo db2nodes.cfg. De lo contrario, afecta a los
servidores de particiones de base de datos que se especifican en el mandato.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT

Conexión necesaria

Base de datos. Este mandato establece automáticamente una conexión a la base de


datos especificada.

Nota: Si ya existe una conexión a la base de datos especificada, esa conexión se


terminará y se establecerá una nueva conexión específicamente para la operación
de copia de seguridad. La conexión terminará cuando se haya realizado la
operación de copia de seguridad.

Sintaxis del mandato

 BACKUP DATABASE alias-base-datos 


DB USER nombre-usuario
USING contraseña

 
ON DBPARTITIONNUM Número(s) de partición
DBPARTITIONNUMS
ALL DBPARTITIONNUMS
EXCEPT DBPARTITIONNUM Número(s) de partición
DBPARTITIONNUMS

 
, ONLINE INCREMENTAL
DELTA
TABLESPACE (  nombre-espacio-tablas )

84 Consulta de mandatos
BACKUP DATABASE

 
USE TSM Sesiones abiertas Opciones DEDUP_DEVICE
XBSA
SNAPSHOT
LIBRARY nombre-biblioteca
LOAD nombre_biblioteca Sesiones abiertas Opciones
,

TO  dir
disp

 
WITH núm-almacints BUFFERS BUFFER tamaño-almacint PARALLELISM n

 
COMPRESS
COMPRLIB nombre COMPROPTS serie
EXCLUDE

 
UTIL_IMPACT_PRIORITY EXCLUDE LOGS WITHOUT PROMPTING
prioridad INCLUDE LOGS

Número(s) de partición:

(  partición-bd-número1 )
TO partición-bd-número2

Sesiones abiertas:

OPEN núm-sesiones SESSIONS

Opciones:

OPTIONS "opciones-serie"
@ nombrearchivo

Parámetros del mandato


DATABASE | DB alias-base-datos
Especifica el alias de la base de datos de la que se debe hacer copia de
seguridad.
USER nombreusuario
Identifica el nombre de usuario bajo el que debe efectuarse la copia de
seguridad de la base de datos.
USING contraseña
Contraseña utilizada para autentificar el nombre de usuario. Si se
omite la contraseña, se solicitará al usuario que la entre.
ON Realiza la copia de seguridad de la base de datos en un conjunto de
particiones de base de datos.
DBPARTITIONNUM número1-partición-bd
Especifica un número de partición de base de datos en la lista de
particiones de base de datos.
DBPARTITIONNUMS número1-partición-bd TO número2-partición-bd
Especifica un rango de números de particiones de base de datos
Capítulo 5. mandatos CLP 85
BACKUP DATABASE

para que todas las particiones desde número1-partición-bd1 hasta


número2-partición-bd inclusive se incluyan en la lista de particiones
de base de datos.
ALL DBPARTITIONNUMS
Especifica que la operación de copia de seguridad de la base de
datos ha de realizarse en todas las particiones especificadas en el
archivo db2nodes.cfg.
EXCEPT Especifica que la operación de copia de seguridad de la
base de datos ha de realizarse en todas las particiones
especificadas en el archivo db2nodes.cfg, excepto aquellas
especificadas en la lista de particiones de base de datos.
DBPARTITIONNUM número1-partición-bd
Especifica un número de partición de base de datos
en la lista de particiones de base de datos.
DBPARTITIONNUMS número1-partición-bd TO
número2-partición-bd
Especifica un rango de números de particiones de
base de datos para que todas las particiones desde
número1-partición-bd1 hasta número2-partición-bd
inclusive se incluyan en la lista de particiones de
base de datos.
TABLESPACE nombre-espacio-tablas
Lista de nombres utilizados para especificar los espacios de tablas de los
que se debe hacer copia de seguridad.
ONLINE
Especifica copia de seguridad en línea. El valor por omisión es copia de
seguridad fuera de línea. Las copias de seguridad en línea sólo están
disponibles para bases de datos configuradas con logarchmeth1 habilitado.
Durante una copia de seguridad en línea, DB2 obtiene bloqueos IN
(Ningún intento) en todas las tablas existentes en los espacios de tablas
SMS mientras se van procesando. Los bloqueos S (Compartimiento) ya no
se mantienen en los datos LOB de los espacios de tablas SMS durante la
copia de seguridad en línea.
INCREMENTAL
Especifica una imagen de copia de seguridad acumulativa (incremental).
Una imagen de copia de seguridad incremental es una copia de todos los
datos de base de datos que han cambiado desde la operación de copia de
seguridad completa más reciente que ha resultado satisfactoria.
DELTA Especifica una imagen de copia de seguridad (delta) no
acumulativa. Una imagen de copia de seguridad delta es una copia
de todos los datos de la base de datos que se han modificado
desde la operación de copia de seguridad de cualquier tipo más
reciente que ha resultado satisfactoria.
USE
TSM Especifica que la copia de seguridad debe utilizar Tivoli Storage
Manager (TSM) como dispositivo de destino.
XBSA Especifica que debe utilizarse la interfaz XBSA. Las API de
servicios de copia de seguridad (XBSA) se encuentran en una
interfaz de programación de aplicaciones abierta para aplicaciones

86 Consulta de mandatos
BACKUP DATABASE

o recursos que necesitan gestión de almacenamiento de datos para


finalidades de copia de seguridad o archivo.
SNAPSHOT
Especifica que se debe realizar una copia de seguridad instantánea.
No se puede utilizar el parámetro SNAPSHOT con ninguno de los
siguientes parámetros:
v TABLESPACE
v INCREMENTAL
v WITH núm-almacints BUFFERS
v BUFFER
v PARALLELISM
v COMPRESS
v UTIL_IMPACT_PRIORITY
v SESSIONS
El comportamiento por omisión para una copia de seguridad
selectiva es una copia de seguridad de base de datos completa
fuera de línea de todas las vías de acceso que componen la base de
datos incluyendo todos los contenedores, el directorio de
volúmenes local, la vía de acceso de base de datos (DBPATH) y las
vías de acceso de anotaciones cronológicas primaria y de
duplicación (INCLUDE LOGS es el valor por omisión de todas las
copias de seguridad selectivas a menos que se indique EXCLUDE
LOGS explícitamente).
LIBRARY nombre-biblioteca
En IBM Data Server se integra un controlador de API ACS
de DB2 para el hardware de almacenamiento siguiente:
v IBM TotalStorage SAN Volume Controller
v IBM Enterprise Storage Server Model 800
v IBM System Storage DS6000
v IBM System Storage DS8000
v IBM System Storage N Series
v NetApp V-series
v NetApp FAS
Si tiene otro hardware de almacenamiento y un controlador
de API ACS de DB2 para ese hardware de almacenamiento,
puede utilizar el parámetro LIBRARY para especificar el
controlador de API ACS de DB2.
El valor del parámetro LIBRARY es un nombre de archivo
de biblioteca completamente calificado.
OPTIONS
"opciones-serie"
Especifica opciones que se deben utilizar para la operación de
copia de seguridad. La serie se pasará exactamente tal y como se
ha especificado, sin las comillas dobles.
@nombrearchivo
Especifica que las opciones que se deben utilizar para la operación
de copia de seguridad están incluidas en un archivo situado en el

Capítulo 5. mandatos CLP 87


BACKUP DATABASE

servidor de DB2. La serie se pasará a la biblioteca de soporte del


proveedor. El archivo debe ser un nombre de archivo totalmente
calificado.
No se puede utilizar el parámetro de configuración de base de datos
vendoropt para especificar opciones específicas del proveedor para
operaciones de copia de seguridad selectiva. En su lugar, debe utilizar el
parámetro OPTIONS de los programas de utilidad de copia de seguridad.
OPEN núm-sesiones SESSIONS
El número de sesiones de E/S que se deben crear entre DB2 y TSM u otro
producto del proveedor de copia de seguridad. Este parámetro no tiene
ningún efecto cuando se hace la copia de seguridad en cinta, en disco o en
otro dispositivo local. Para una copia de seguridad en línea, si se especifica
la opción INCLUDE LOGS, se creará una sesión adicional para este parámetro
después de que se cierren las sesiones iniciales.
TO dir | disp
Lista de nombres de directorio o dispositivo de cinta. Se debe especificar la
vía de acceso completa en la que reside el directorio. Si se omiten USE TSM,
TO, y LOAD, el directorio de destino por omisión de la imagen de copia de
seguridad es el directorio de trabajo actual del sistema cliente. Este
directorio o dispositivo de destino debe existir en el servidor de bases de
datos.
En una base de datos particionada, el directorio o el dispositivo de destino
deben existir en todas las particiones de base de datos, y opcionalmente
pueden ser una vía de acceso compartida. El nombre de directorio o de
destino puede especificarse utilizando una expresión de partición de base
de datos. Para obtener más información sobre las expresiones de partición
de base de datos, consulte “Almacenamiento automático de bases de
datos”.
Este parámetro puede repetirse para especificar los directorios y los
dispositivos de destino que fragmentará la imagen de copia de seguridad.
Si se especifica más de un destino (por ejemplo destino1, destino2 y
destino3), se abrirá primero destino1. La cabecera del soporte y los
archivos especiales (incluidos el archivo de configuración, la tabla de
espacios de tablas y el archivo histórico) se colocarán en destino1. Todos
los demás destinos se abren y, a continuación, se utilizan en paralelo
durante la operación de copia de seguridad. Dado que no existe ningún
soporte de cinta general en los sistemas operativos Windows, cada tipo de
dispositivo de cinta requiere un controlador de dispositivo exclusivo.
El uso de dispositivos de cinta o disquetes podría generar mensajes y
solicitudes de entrada de usuario. Las opciones de respuesta válidas son:
c Continuar. Continuar utilizando el dispositivo que ha generado el
mensaje de aviso (por ejemplo, cuando se ha montado una cinta
nueva)
d Terminación de dispositivo. Dejar de utilizar solamente el
dispositivo que ha generado el mensaje de aviso (por ejemplo,
cuando no hay más cintas)
t Terminar. Terminar anormalmente la operación de copia de
seguridad.

88 Consulta de mandatos
BACKUP DATABASE

Si el sistema de la cinta no soporta la capacidad de hacer referencia


exclusivamente a una imagen de copia de seguridad, se recomienda no
guardar varias copias de seguridad de la misma base de datos en la misma
cinta.
LOAD nombre_biblioteca
El nombre de la biblioteca compartida (DLL en sistemas operativos
Windows) que contiene las funciones de E/S de copia de seguridad y
restauración del proveedor que se debe utilizar. Puede contener la vía de
acceso completa. Si no se proporciona la vía de acceso completa, tomará
por omisión la vía de acceso en la que reside el programa de salida de
usuario.
DEDUP_DEVICE
Optimiza el formato de las imágenes de copia de seguridad de los
dispositivos de almacenamiento de destino que dan soporte a la
optimización de almacenamiento de datos.
WITH núm-almacints BUFFERS
Número de almacenamientos intermedios a utilizar. Si el número de
almacenamientos intermedios especificado no basta para crear
correctamente una copia de seguridad, se selecciona automáticamente el
valor mínimo necesario de este parámetro para completar la copia de
seguridad. Si se está realizando una copia de seguridad en varias
ubicaciones, se puede especificar un número mayor de almacenamientos
intermedios para mejorar el rendimiento. Si especifica el parámetro
COMPRESS, para mejorar el rendimiento puede añadir un almacenamiento
intermedio adicional para cada espacio de tablas indicado para el
parámetro PARALLELISM.
BUFFER tamaño-almacint
Tamaño, en páginas de 4 KB, del almacenamiento intermedio utilizado al
crear la imagen de copia de seguridad. DB2 seleccionará automáticamente
un valor óptimo para este parámetro a menos que especifique
explícitamente un valor. El valor mínimo para este parámetro es de 8
páginas.
Si utiliza una cinta con tamaños de bloque variables, reduzca el tamaño de
almacenamiento intermedio a un rango soportado por el dispositivo de
cinta. De lo contrario, la operación de copia de seguridad podría ser
satisfactoria, pero podría ser que la imagen resultante no se pudiese
recuperar.
En la mayoría de las versiones de Linux, la utilización del tamaño del
almacenamiento intermedio por omisión incluido con DB2 para
operaciones de copia de seguridad en un dispositivo de cinta SCSI genera
un error SQL2025N, código de razón 75. Para evitar el desbordamiento de
almacenamientos intermedios Linux utilice esta fórmula:
páginas-alm-int <= ST_MAX_BUFFERS * ST_BUFFER_BLOCKS / 4

donde páginas-alm-int es el valor que desea utilizar con el parámetro


BUFFER, y ST_MAX_BUFFERS y ST_BUFFER_BLOCKS se definen en el kernel de
Linux en el directorio drivers/scsi.
PARALLELISM n
Determina el número de espacios de tablas que puede leer en paralelo el
programa de utilidad de copia de seguridad. DB2 seleccionará
automáticamente un valor óptimo para este parámetro a menos que
especifique explícitamente un valor.

Capítulo 5. mandatos CLP 89


BACKUP DATABASE

UTIL_IMPACT_PRIORITY prioridad
Especifica que la copia de seguridad se ejecutará en modalidad
disminuida, con la prioridad especificada. La disminución le permite
regular el impacto en el rendimiento de la operación de copia de
seguridad. La prioridad puede ser cualquier número entre 1 y 100, donde 1
representa la prioridad más baja, y 100 representa la prioridad más alta. Si
se especifica la palabra clave UTIL_IMPACT_PRIORITY sin ninguna prioridad,
la copia de seguridad se ejecutará con la prioridad por omisión de 50. Si
no se ha especificado UTIL_IMPACT_PRIORITY, la copia de seguridad se
ejecutará en modalidad disminuida. Se debe definir una política de
impacto estableciendo el parámetro de configuración util_impact_lim para
que una copia de seguridad se ejecute en modalidad disminuida.
COMPRESS
Indica que la copia de seguridad se debe comprimir.
COMPRLIB nombre
Indica el nombre de la biblioteca que se debe utilizar para realizar
la compresión (por ejemplo, db2compr.dll para Windows;
libdb2compr.so para sistemas operativos Linux y UNIX). El
nombre debe ser una vía de acceso totalmente calificada que haga
referencia a un archivo del servidor. Si no se especifica este
parámetro, se utilizará la biblioteca de compresión de DB2 por
omisión. Si la biblioteca especificada no se puede cargar, la copia
de seguridad fallará.
EXCLUDE
Indica que la biblioteca de compresión no se almacenará en la
imagen de copia de seguridad.
COMPROPTS serie
Describe un bloque de datos binarios que se pasará a la rutina de
inicialización en la biblioteca de compresión. DB2 pasará esta serie
directamente del cliente al servidor, de modo que los posibles
problemas de inversión de bytes o de conversión de páginas de
códigos los deberá manejar la biblioteca de compresión. Si el
primer carácter del bloque de datos es '@', DB2 interpretará los
datos restantes como el nombre de un archivo que se encuentra en
el servidor. A continuación, DB2 sustituirá el contenido de la serie
por el contenido de este archivo y pasará en su lugar este nuevo
valor a la rutina de inicialización. La longitud máxima de serie es
de 1024 bytes.
EXCLUDE LOGS
Especifica que la imagen de copia de seguridad no debe incluir ningún
archivo de anotaciones cronológicas. Al realizar una operación de copia de
seguridad fuera de línea, las anotaciones cronológicas se excluyen tanto si
se especifica esta opción como si no, con la excepción de las copias de
seguridad selectivas.Por omisión, los archivos de anotaciones cronológicas
se excluyen en los siguientes escenarios de copia de seguridad:
v Copia de seguridad fuera de línea de una base de datos con una sola
partición.
v Copia de seguridad en línea o fuera de línea de una base de datos de
varias particiones, cuando no se utiliza una copia de seguridad mediante
la vista única del sistema.
INCLUDE LOGS
Especifica que la imagen de copia de seguridad debe incluir el rango de

90 Consulta de mandatos
BACKUP DATABASE

archivos de anotaciones cronológicas necesarios para restaurar y avanzar


esta imagen hasta un punto en el tiempo coherente. Esta opción no es
válida para una copia de seguridad fuera de línea, con la excepción de
copias de seguridad selectivas. INCLUDE LOGS siempre es la opción por
omisión para cualquier operación de copia de seguridad en línea salvo en
una copia de seguridad en línea con varias particiones en que se realiza
una copia de seguridad independiente de cada partición de una base de
datos (por ejemplo, una copia de seguridad que no sea de vista única del
sistema).
Si se ha realizado anteriormente copia de seguridad de alguno de los
archivos de anotaciones cronológicas necesarios para la copia de seguridad
y ya no está presente en la vía de acceso de anotaciones cronológicas, el
gestor de bases de datos de DB2 los recupera para la copia de seguridad
de la vía de acceso de anotaciones cronológicas de desbordamiento, si se
ha establecido la vía de acceso. De lo contrario, el gestor de bases de datos
los recupera de la vía de acceso de anotaciones cronológicas actual o de la
vía de acceso de anotaciones cronológicas de duplicación para la copia de
seguridad. Esos archivos de anotaciones cronológicas se eliminan de la vía
de acceso de anotaciones cronológicas después de que se haya completado
la copia de seguridad.
WITHOUT PROMPTING
Especifica que la copia de seguridad se ejecutará desatendida y que las
acciones que normalmente requieren la intervención del usuario
devolverán un mensaje de error.

Nota:
1. Si el mandato de copia de seguridad indica de qué particiones de una
base de datos particionada se ha de realizar una copia de seguridad, la
operación de copia de seguridad se realiza implícitamente WITHOUT
PROMPTING (sin solicitud).
2. Las opciones que se han especificado en el mandato BACKUP DATABASE
en un entorno de base de datos particionada se aplicarán
individualmente a cada partición. Por ejemplo, si la operación de copia
de seguridad se especifica en USE TSM OPEN 3 SESSIONS, DB2 abrirá tres
sesiones TSM en cada partición.

Ejemplos
1. En el ejemplo siguiente, la base de datos WSDB se define en las 4 particiones
de base de datos, numeradas de 0 a 3. La vía de acceso /dev3/backup es
accesible desde todas las particiones de base de datos. La partición de base de
datos 0 es la partición del catálogo. Para realizar una copia de seguridad fuera
de línea de todas las particiones de base de datos WSDB en /dev3/backup,
emita el siguiente mandato desde la partición de base de datos 0:
db2 BACKUP DATABASE wsdb ON ALL DBPARTITIONNUMS TO /dev3/backup
La copia de seguridad se realiza simultáneamente en todas las particiones. Las
cuatro imágenes de copia de seguridad de las particiones se almacenarán en el
directorio /dev3/backup, que puede ser un directorio compartido accesible
desde más de una partición o un directorio montado localmente accesible
desde cada partición individualmente, o bien una combinación de ambos.
2. En el ejemplo siguiente se realiza una copia de seguridad SAMPLE en un
servidor TSM utilizando dos sesiones de cliente TSM simultáneas. DB2 calcula
el tamaño óptimo del almacenamiento intermedio para este entorno.
db2 backup database sample use tsm open 2 sessions with 4 buffers

Capítulo 5. mandatos CLP 91


BACKUP DATABASE

3. En el ejemplo siguiente, se realiza una copia de seguridad en cintas en el nivel


de espacio de tablas de los espacios de tablas (syscatspace, userspace1) de la
base de datos payroll.
db2 backup database payroll tablespace (syscatspace, userspace1) to
/dev/rmt0, /dev/rmt1 with 8 buffers without prompting
4. Se pueden utilizar las palabras clave USE TSM OPTIONS para especificar la
información de TSM que se debe utilizar para la operación de copia de
seguridad. El ejemplo siguiente muestra cómo utilizar las palabras clave USE
TSM OPTIONS para especificar un nombre de archivo totalmente calificado:
db2 backup db sample use TSM options @/u/dmcinnis/myoptions.txt

El archivo myoptions.txt contiene la información siguiente: -fromnode=bar


-fromowner=dmcinnis
5. A continuación se proporciona un ejemplo de estrategia de copia de seguridad
incremental semanal para una base de datos recuperable. Incluye una
operación de copia de seguridad de base de datos completa semanal, una
operación de copia de seguridad no acumulativa (delta) diaria y una
operación de copia de seguridad acumulativa (incremental) de mitad de
semana:
(Dom) db2 backup db sample use tsm
(Lun) db2 backup db sample online incremental delta use tsm
(Mar) db2 backup db sample online incremental delta use tsm
(Mié) db2 backup db sample online incremental use tsm
(Jue) db2 backup db sample online incremental delta use tsm
(Vie) db2 backup db sample online incremental delta use tsm
(Sáb) db2 backup db sample online incremental use tsm
6. En el ejemplo siguiente, se especifican tres directorios de destino idénticos
para una operación de copia de seguridad en la base de datos SAMPLE. Esto
resulta recomendable si el sistema de archivos de destino consta de varios
discos físicos.
db2 backup database sample to /dev3/backup, /dev3/backup, /dev3/backup

Se realizará una copia de seguridad simultánea de los datos en los tres


directorios de destino y se generarán tres imágenes de copia de seguridad con
las extensiones .001, .002 y .003.
7. En el siguiente ejemplo, la base de datos WSDB se define en las cuatro
particiones de base de datos, numeradas del 0 al 3. La partición de base de
datos 0 es la partición del catálogo. Para realizar una copia de seguridad en
línea del espacio de tablas USERSPACE1 en las particiones de base de datos 1
y 2, con la imagen de copia de seguridad que se va a almacenar en un
servidor TSM, emita el siguiente mandato desde la partición 0:
db2 BACKUP DATABASE wsdb ON DBPARTITIONNUMS (1, 2) TABLESPACE (USERSPACE1)
ONLINE USE TSM
8. Salida de ejemplo generada para indicar el sqlcode devuelto por cada
partición.
Ejemplo 1
Todas las particiones son satisfactorias (sqlcode >= 0)
$ db2 backup db foo on all dbpartitionnums tablespace(T1)
Parte Resultado
---- ------
0000 DB20000I El mandato BACKUP DATABASE se ha realizado satisfactoriamente.
0001 SQL2430W La copia de seguridad de la base de datos ha funcionado pero
pero los espacios de tablas siguientes no existen en esta
partición de la base de datos: "T1".

92 Consulta de mandatos
BACKUP DATABASE

Copia de seguridad satisfactoria. La indicación de fecha y hora


para esta imagen es:
20040908010203
Ejemplo 2
Una o más particiones fallarán (sqlcode < 0)
$ db2 backup db foo on all dbpartitionnums to /backups
Parte Resultado
---- ------
0000 SQL2001N El programa de utilidad se ha interrumpido.
Es posible que los datos de salida estén
incompletos.
0001 SQL2419N El disco de destino "/backups" se ha llenado.

SQL2429N La reorganización de la base de datos ha fallado. Las siguientes particiones


de base de datos han devuelto errores: "1".
9. Las siguientes copias de seguridad incluirán los directorios de anotaciones
cronológicas en la imagen creada:
db2 backup db sample use snapshot
db2 backup db sample online use snapshot
db2 backup db sample use snapshot INCLUDE LOGS
db2 backup db sample online use snapshot INCLUDE LOGS
10. Las siguientes copias de seguridad NO incluirán los directorios de anotaciones
cronológicas en la imagen creada:
db2 backup db sample use snapshot EXCLUDE LOGS
db2 backup db sample online use snapshot EXCLUDE LOGS

Notas de uso
v Los datos de una copia de seguridad no pueden ir protegidos por el servidor de
bases de datos. Asegúrese de que las copias de seguridad estén protegidas
correctamente, en especial, si la copia de seguridad contiene datos protegidos
para LBAC.
v Al hacer copia de seguridad en cinta, el uso del tamaño de bloque variable no
está soportado actualmente. Si debe usar esta opción, asegúrese de que tiene
implantados procedimientos bien probados que le permitan hacer una
recuperación satisfactoria, utilizando imágenes de copia de seguridad que se
crearon con un tamaño de bloque variable.
v Al utilizar un tamaño de bloque variable, debe especificar un tamaño de
almacenamiento intermedio de copia de seguridad que sea menor o igual que el
límite máximo de los dispositivos de cinta que esté utilizando. Para optimizar el
rendimiento, el tamaño del almacenamiento intermedio debe ser igual al límite
de tamaño de bloque máximo del dispositivo que se utilice.
v Las copias de seguridad selectivas se deben complementar con copias de
seguridad de disco regulares en caso de anomalía en el sistema del
archivador/almacenamiento.
v Puesto que deberá realizar una copia de seguridad de la base de datos
regularmente, es posible que acumule imágenes de copia de seguridad de base
de datos de gran tamaño, numerosas anotaciones cronológicas de base de datos
e imágenes de copia de carga que pueden ocupar una gran cantidad de espacio
en disco. Consulte la tarea “Gestión de objetos de recuperación” para obtener
información sobre cómo gestionar estos objetos de recuperación.
v Puede utilizar el parámetro OPTIONS para habilitar las operaciones de copia de
seguridad en entornos de TSM que dan soporte a los nodos de proxy. Para
obtener más información, consulte el tema “Configuración de un cliente de
Tivoli Storage Manager”.

Capítulo 5. mandatos CLP 93


BACKUP DATABASE

Información relacionada

94 Consulta de mandatos
BIND

BIND
Invoca el programa de utilidad de vinculación, que prepara las sentencias de SQL
almacenadas en el archivo de vinculación generado por el precompilador y crea un
paquete que se almacena en la base de datos.

Ámbito

Este mandato puede emitirse desde cualquier partición de base de datos de


db2nodes.cfg. Actualiza los catálogos de base de datos de la partición de base de
datos de catálogo. Sus efectos son visibles en todas las particiones de base de
datos.

Autorización

Una de las autorizaciones siguientes:


v Autorización DBADM
v Si se especifica EXPLAIN ONLY, basta con la autorización EXPLAIN o una
autorización que incluya implícitamente EXPLAIN.
v Si no existe un paquete, la autorización BINDADD; y:
– Si el nombre de esquema del paquete no existe, la autorización
IMPLICIT_SCHEMA en la base de datos.
– Si el nombre de esquema del paquete existe, el privilegio CREATEIN para el
esquema.
v Si el paquete existe, uno de los privilegios siguientes:
– Privilegio ALTERIN para el esquema
– Privilegio BIND en el paquete

Además, si se captura información de Explain con la cláusula EXPLAIN o


EXPLSNAP, es necesaria una de las autorizaciones siguientes:
v Privilegio INSERT para las tablas de Explain
v Autorización DATAACCESS

El usuario también necesita todos los privilegios necesarios para compilar las
sentencias de SQL estático en la aplicación. Los privilegios otorgados a grupos no
se utilizan para la comprobación de autorización de las sentencias estáticas.

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión.

Sintaxis del mandato


Para DB2 para Linux, Windows y UNIX

 BIND nombrearchivo 
ACTION ADD APREUSE NO
REPLACE YES

RETAIN NO REPLVER id-versión


YES

 
BLOCKING UNAMBIG BUSTIMESENSITIVE YES CLIPKG paquetes-cli COLLECTION nombre-esquema
ALL NO
NO

Capítulo 5. mandatos CLP 95


BIND

 
CONCURRENTACCESSRESOLUTION USECURRENTLYCOMMITTED DATETIME DEF DEGREE 1
WAITFOROUTCOME EUR grado-de-paralelismo
USE CURRENTLY COMMITTED ISO ANY
WAIT FOR OUTCOME JIS
LOC
USA

 
DYNAMICRULES RUN EXPLAIN NO EXPLSNAP NO NO
BIND ALL ALL EXTENDEDINDICATOR YES
INVOKERUN REOPT REOPT
INVOKEBIND ONLY YES
DEFINERUN YES
DEFINEBIND

 
FEDERATED NO FEDERATED_ASYNCHRONY ANY , GENERIC "serie"
YES número_de_atqs_en_el_plan
FUNCPATH  nombre-esquema

 
GRANT idaut DEF ISOLATION CS MESSAGES archivo-mensajes
PUBLIC INSERT BUF RR
GRANT_GROUP nombre-grupo RS
GRANT_USER nombre-usuario UR
GRANT_ROLE nombre-rol

 
OPTPROFILE nombre-perfil-optimización OWNER id-autorización QUALIFIER nombre-calificador

REOPT NONE
 
QUERYOPT nivel-optimización REOPT ONCE SQLERROR CHECK SQLWARN NO
REOPT ALWAYS CONTINUE YES
NOPACKAGE

 
STATICREADONLY NO
YES VALIDATE BIND SYSTIMESENSITIVE YES TRANSFORM GROUP nombregrupo
INSENSITIVE RUN NO

Para DB2 en servidores que no sean Linux, Windows ni UNIX

 BIND nombrearchivo 

 
ACTION ADD
REPLACE

RETAIN NO REPLVER id-versión


YES

 
UNAMBIG CCSIDG ccsid-doble CCSIDM ccsid-mixto
BLOCKING ALL
NO

 
CCSIDS ccsid-sbcs CHARSUB DEFAULT CLIPKG paquetes-cli
BIT
MIXED
SBCS

 
CNULREQD NO COLLECTION nombre-esquema
YES

 
CONCURRENTACCESSRESOLUTION USECURRENTLYCOMMITTED
WAITFOROUTCOME
USE CURRENTLY COMMITTED
WAIT FOR OUTCOME

96 Consulta de mandatos
BIND

 
(1) DBPROTOCOL DRDA DEC 15
DATETIME DEF PRIVATE 31
EUR
ISO
JIS
LOC
USA

 
DECDEL COMMA (2)
PERIOD DEGREE 1
grado-de-paralelismo
ANY

 
RUN ENCODING ASCII
DYNAMICRULES BIND EBCDIC
INVOKERUN UNICODE
INVOKEBIND CCSID
DEFINERUN
DEFINEBIND

 
(3) NO
EXPLAIN NO EXTENDEDINDICATOR YES
YES

 
GENERIC "serie" GRANT idaut IMMEDWRITE NO
PUBLIC YES
PH1

 
INSERT BUF CS KEEPDYNAMIC YES
DEF ISOLATION NC NO
RR
RS
UR

 
MESSAGES archivo-mensajes OPTHINT id-pista

 
OS400NAMING SYSTEM OWNER id-autorización
SQL

 
PATH nombre-esquema QUALIFIER nombre-calificador

REOPT NONE
 
RELEASE COMMIT REOPT ONCE REOPT VARS
DEALLOCATE REOPT ALWAYS NOREOPT VARS

 
SORTSEQ JOBRUN SQLERROR CHECK VALIDATE BIND
HEX CONTINUE RUN
NOPACKAGE

 
STRDEL APOSTROPHE TEXT etiqueta
QUOTE

Capítulo 5. mandatos CLP 97


BIND

Notas:
1 Si el servidor no da soporte a la opción DATETIME DEF, se
correlaciona con DATETIME ISO.
2 La opción DEGREE sólo está soportada por servidores de aplicaciones
DRDA de Nivel 2.
3 DRDA define la opción EXPLAIN para que tenga el valor YES o NO.
Si el servidor no da soporte a la opción EXPLAIN YES, el valor se
correlaciona con EXPLAIN ALL.

Parámetros del mandato


nombrearchivo
Especifica el nombre del archivo de vinculación que se ha generado al
precompilar el programa de aplicación o un archivo de lista que contiene
los nombres de varios archivos de vinculación. Los archivos de vinculación
tienen la extensión .bnd. Se puede especificar el nombre de vía de acceso
completo.
Si se especifica un archivo de lista, el carácter @ debe ser el primer carácter
del nombre de archivo de lista. El archivo de lista puede contener varias
líneas de nombres de archivos de vinculación. Los archivos de vinculación
listados en la misma línea deben estar separados por el signo más (+), pero
un + no puede aparecer delante del primer archivo listado en cada línea ni
a continuación del último archivo de vinculación listado. Por ejemplo,
/u/smith/sqllib/bnd/@all.lst

es un archivo de lista que contiene los archivos de vinculación siguientes:


mybind1.bnd+mybind.bnd2+mybind3.bnd+
mybind4.bnd+mybind5.bnd+
mybind6.bnd+
mybind7.bnd
ACTION
Indica si el paquete se puede añadir o sustituir.
ADD Indica que el paquete mencionado no existe y que se debe crear un
paquete nuevo. Si el paquete ya existe, se detiene la ejecución y se
devuelve un mensaje de error de diagnóstico.
REPLACE
Indica que el paquete existente ha de sustituirse por uno nuevo
que tiene el mismo nombre de paquete y creador. Es el valor por
omisión de la opción ACTION.
RETAIN
Indica si se deben conservar las autorizaciones BIND y
EXECUTE cuando se sustituya un paquete. Si cambia la
propiedad del paquete, el nuevo propietario otorga la
autorización BIND y EXECUTE al propietario anterior del
paquete.
NO No conserva las autorizaciones BIND y EXECUTE
cuando se sustituye un paquete. Este valor no está
soportado por DB2.
YES Conserva las autorizaciones BIND y EXECUTE
cuando se sustituye un paquete. Éste es el valor
por omisión.

98 Consulta de mandatos
BIND

REPLVER id-versión
Sustituye una versión específica de un paquete. El
identificador de versión especifica qué versión del paquete
debe sustituirse. Si la versión especificada no existe, se
devolverá un error. Si no se especifica la opción REPLVER de
REPLACE y ya existe un paquete que coincide con el nombre
de paquete, el creador y la versión del paquete que se está
vinculando, dicho paquete debe ser sustituido; de lo
contrario, se añadirá un paquete nuevo.
APREUSE
Especifica si se van a reutilizar planes de acceso de SQL estático. Cuando
esta opción está habilitada, el compilador de consultas intentará reutilizar
los planes de acceso para la sentencia en todos los paquetes existentes
durante la vinculación y durante las revinculaciones futuras implícitas y
explícitas.
YES El compilador de consultas intentará reutilizar los planes de acceso
para las sentencias del paquete. Si existe un paquete, el compilador
de consultas intentará reutilizar el plan de acceso para cada
sentencia que pueda coincidir con una sentencia en el nuevo
archivo de vinculación. Para que la sentencia coincida, el texto de
la sentencia debe ser idéntico y el número de sección para la
sentencia en el paquete existente debe coincidir con el número de
sección que tendrá la sentencia en el nuevo paquete.
NO El compilador de consultas no intentará reutilizar planes de acceso
para las sentencias del paquete. Es el valor por omisión.
BLOCKING
Especifica el tipo de bloqueo de filas para cursores. El bloqueo de datos de
fila que contienen referencias a tipos de datos de columna LOB también
está soportado en entornos de bases de datos particionadas.
ALL Para los cursores especificados con la cláusula FOR READ ONLY o
los cursores no especificados como FOR UPDATE, se produce un
bloqueo.
Los cursores ambiguos se tratan como de sólo lectura.
NO No se produce ningún bloqueo para ningún cursor.
Para ver la definición de un cursor de sólo lectura y de un cursor
ambiguo, consulte la sentencia DECLARE CURSOR.
Los cursores ambiguos se tratan como actualizables.
UNAMBIG
Para los cursores especificados con la cláusula FOR READ ONLY,
se produce un bloqueo.
Los cursores que no se hayan declarado con la cláusula FOR READ
ONLY o FOR UPDATE que no sean ambiguos y sean de sólo
lectura se bloquearán. Los cursores ambiguos no se bloquearán.
Los cursores ambiguos se tratan como actualizables.
BUSTIMESENSITIVE
Indica si las referencias a tablas temporales de período de aplicación en
sentencias de SQL estático y dinámico se ven afectadas por el valor del
registro especial CURRENT TEMPORAL BUSINESS_TIME.
YES Las referencias a tablas temporales de período de aplicación se ven

Capítulo 5. mandatos CLP 99


BIND

afectadas por el valor del registro especial CURRENT TEMPORAL


BUSINESS_TIME. Este es el valor por omisión.
NO Las referencias a tablas temporales de período de aplicación no se
ven afectadas por el valor del registro especial CURRENT
TEMPORAL BUSINESS_TIME.
CCSIDG ccsid-doble
Número entero que especifica el identificador de juego de caracteres
codificado (CCSID) que se debe utilizar para caracteres de doble byte en
las definiciones de columnas de caracteres (sin una cláusula CCSID
específica) en las sentencias CREATE y ALTER TABLE de SQL. El servidor
para DB2 Database para Linux, UNIX y Windows no da soporte a esta
opción. El servidor DRDA utilizará un valor por omisión incorporado si no
se especifica esta opción.
CCSIDM ccsid-mixto
Número entero que especifica el identificador de juego de caracteres
codificado (CCSID) que se debe utilizar para caracteres de bytes mixtos en
las definiciones de columnas de caracteres (sin una cláusula CCSID
específica) en las sentencias CREATE y ALTER TABLE de SQL. El servidor
para DB2 Database para Linux, UNIX y Windows no da soporte a esta
opción. El servidor DRDA utilizará un valor por omisión incorporado si no
se especifica esta opción.
CCSIDS ccsid-sbcs
Número entero que especifica el identificador de juego de caracteres
codificado (CCSID) que se debe utilizar para caracteres de un solo byte en
las definiciones de columnas de caracteres (sin una cláusula CCSID
específica) en las sentencias CREATE y ALTER TABLE de SQL. DB2
Database para Linux, UNIX y Windows no soporta esta opción. El servidor
DRDA utilizará un valor por omisión incorporado si no se especifica esta
opción.
CHARSUB
Designa el subtipo de carácter por omisión que se debe utilizar para las
definiciones de columnas en las sentencias CREATE y ALTER TABLE de
SQL. El servidor para DB2 Database para Linux, UNIX y Windows no da
soporte a esta opción de precompilación/vínculo.
BIT Utiliza el subtipo de carácter FOR BIT DATA SQL en todas las
columnas de caracteres nuevas para las que no se ha especificado
un subtipo explícito.
DEFAULT
Utiliza el valor por omisión incorporado de destino en todas las
columnas de caracteres nuevas para las que no se ha especificado
un subtipo explícito.
MIXED
Utiliza el subtipo de carácter FOR MIXED DATA SQL en todas las
columnas de caracteres nuevas para las que no se ha especificado
un subtipo explícito.
SBCS Utiliza el subtipo de carácter FOR SBCS DATA SQL en todas las
columnas de caracteres nuevas para las que no se ha especificado
un subtipo explícito.

100 Consulta de mandatos


BIND

CLIPKG paquetes-cli
Un entero entre 3 y 30 que especifica el número de paquetes CLI grandes
que se deben crear cuando se vinculen archivos de vinculación CLI con
una base de datos.
CNULREQD
Esta opción está relacionada con la opción de precompilación LANGLEVEL.
Sólo es válida si el archivo de vinculación se crea desde una aplicación C o
C++. El servidor para DB2 Database para Linux, UNIX y Windows no da
soporte a esta opción de vínculo.
NO La aplicación se ha codificado en base a la opción de
precompilación LANGLEVEL de SAA1 respecto al terminador nulo de
las variables del lenguaje principal de serie C.
YES La aplicación se ha codificado en base a la opción de
precompilación LANGLEVEL de MIA respecto al terminador nulo de
las variables del lenguaje principal de serie C.
COLLECTION nombre-esquema
Especifica un identificador de colección de 128 bytes para el paquete. Si no
se especifica, se utilizará el identificador de autorización para el usuario
que procesa el paquete.
CONCURRENTACCESSRESOLUTION
Especifica la resolución de acceso simultáneo que se utilizará para las
sentencias del paquete.
USE CURRENTLY COMMITTED
Especifica que el gestor de bases de datos puede utilizar la versión
confirmada actualmente de los datos para las exploraciones
aplicables cuando está en el proceso de actualizarse o suprimirse.
Las filas en proceso de inserción se pueden omitir. Esta cláusula se
aplica cuando el nivel de aislamiento en vigor es Estabilidad del
cursor o Estabilidad de lectura (en este último caso, sólo omite
inserciones no confirmadas) y, de lo contrario, se ignora. Las
exploraciones aplicables incluyen las exploraciones de sólo lectura
que pueden formar parte de una sentencia de sólo lectura así como
de una sentencia de no sólo lectura. Los valores para las variables
del registro DB2_EVALUNCOMMITTED, DB2_SKIPDELETED y
DB2_SKIPINSERTED no se aplican a las exploraciones que utilizan
CURRENTLY COMMITTED. Sin embargo, los valores de estas
variables del registro se seguirán aplicando a las exploraciones que
no utilizan CURRENTLY COMMITTED.
WAIT FOR OUTCOME
Especifica que Estabilidad del cursor y las exploraciones superiores
esperen a la confirmación o a la retrotracción si encuentran datos
en proceso de actualización o supresión. Las filas en proceso de
inserción no se omitirán. Ya no se aplican los valores para las
variables del registro DB2_EVALUNCOMMITTED, DB2_SKIPDELETED y
DB2_SKIPINSERTED.
DATETIME
Especifica el formato de fecha y hora que se debe utilizar.
DEF Utiliza un formato de fecha y hora asociado al código de territorio
de la base de datos.
EUR Utiliza el estándar de IBM para el formato de fecha y hora
europeo.

Capítulo 5. mandatos CLP 101


BIND

ISO Utiliza el formato de fecha y hora de la International Standards


Organization (Organización internacional de estándares).
JIS Utiliza el formato de fecha y hora del Japanese Industrial Standard
(Estándar industrial japonés).
LOC Utiliza el formato de fecha y hora en la forma local asociada al
código de territorio de la base de datos.
USA Utiliza el estándar de IBM para el formato de fecha y hora de
EE.UU.
DBPROTOCOL
Especifica el protocolo que se va a utilizar al conectar con un sitio remoto
identificado por una sentencia de nombre en tres partes. Sólo está
soportado por DB2 para OS/390. Para ver una lista de los valores de
opción soportados, consulte la documentación de DB2 para OS/390.
DEC Especifica la precisión máxima que se debe utilizar en operaciones
aritméticas decimales. El servidor para DB2 Database para Linux, UNIX y
Windows no da soporte a esta opción de precompilación/vínculo. El
servidor DRDA utilizará un valor por omisión incorporado si no se
especifica esta opción.
15 Se utiliza la precisión de 15 dígitos en las operaciones aritméticas
decimales.
31 Se utiliza la precisión de 31 dígitos en las operaciones aritméticas
decimales.
DECDEL
Determina si se utilizará un punto (.) o una coma (,) como indicador de
coma decimal en literales decimales y de coma flotante. El servidor para
DB2 Database para Linux, UNIX y Windows no da soporte a esta opción
de precompilación/vínculo. El servidor DRDA utilizará un valor por
omisión incorporado si no se especifica esta opción.
COMMA
Utilizar una coma (,) como indicador de coma decimal.
PERIOD
Utilizar un punto (.) como indicador de coma decimal.
DEGREE
Especifica el grado de paralelismo para la ejecución de sentencias de SQL
estático en un sistema SMP. Esta opción no afecta al paralelismo de
CREATE INDEX.
1 La ejecución de la sentencia no utilizará paralelismo.
grado-de-paralelismo
Especifica el grado de paralelismo con el que se puede ejecutar la
sentencia, un valor entre 2 y 32.767 (inclusive).
ANY Especifica que la ejecución de la sentencia puede incluir
paralelismo utilizando un grado determinado por el gestor de
bases de datos.
DYNAMICRULES
Define qué normas se aplican al SQL dinámico en tiempo de ejecución
para el valor inicial de los valores utilizados para el ID de autorización y
para la calificación implícita de referencias de objetos no calificadas.
RUN Especifica que se debe utilizar el ID de autorización del usuario

102 Consulta de mandatos


BIND

que ejecuta el paquete para la comprobación de autorización de


sentencias de SQL dinámico. El ID de autorización se utilizará
también como calificador de paquetes por omisión para la
calificación implícita de referencias de objeto no calificadas en
sentencias de SQL dinámico. Éste es el valor por omisión.
BIND Especifica que en tiempo de ejecución deben utilizarse todas las
normas que se aplican al SQL estático para autorización y
calificación. Es decir, se debe utilizar el ID de autorización del
propietario del paquete para la comprobación de autorización de
sentencias de SQL dinámico y se debe utilizar el calificador de
paquete por omisión para la calificación implícita de referencias de
objeto no calificadas dentro de las sentencias de SQL dinámico.
DEFINERUN
Si el paquete se utiliza en el contexto de una rutina, el ID de
autorización del definidor de rutina debe utilizarse para la
comprobación de autorización y para la calificación implícita de
referencias de objeto no calificadas en sentencias de SQL dinámico
dentro de la rutina.
Si el paquete se utiliza como una aplicación autónoma, las
sentencias de SQL dinámico se procesan como si el paquete
estuviera vinculado a DYNAMICRULES RUN.
DEFINEBIND
Si el paquete se utiliza en el contexto de una rutina, el ID de
autorización del definidor de rutina debe utilizarse para la
comprobación de autorización y para la calificación implícita de
referencias de objeto no calificadas en sentencias de SQL dinámico
dentro de la rutina.
Si el paquete se utiliza como una aplicación autónoma, las
sentencias de SQL dinámico se procesan como si el paquete
estuviera vinculado a DYNAMICRULES BIND.
INVOKERUN
Si el paquete se utiliza en el contexto de una rutina, el ID de
autorización de la sentencia actual en vigor al invocar la rutina
debe utilizarse para la comprobación de autorización de sentencias
de SQL dinámico y para la calificación implícita de referencias de
objeto no calificadas en sentencias de SQL dinámico dentro de esa
rutina.
Si el paquete se utiliza como una aplicación autónoma, las
sentencias de SQL dinámico se procesan como si el paquete
estuviera vinculado a DYNAMICRULES RUN.
INVOKEBIND
Si el paquete se utiliza en el contexto de una rutina, el ID de
autorización de la sentencia actual en vigor al invocar la rutina
debe utilizarse para la comprobación de autorización de sentencias
de SQL dinámico y para la calificación implícita de referencias de
objeto no calificadas en sentencias de SQL dinámico dentro de esa
rutina.
Si el paquete se utiliza como una aplicación autónoma, las
sentencias de SQL dinámico se procesan como si el paquete
estuviera vinculado a DYNAMICRULES BIND.

Capítulo 5. mandatos CLP 103


BIND

Dado que las sentencias de SQL dinámico utilizarán el ID de autorización


del propietario del paquete en un paquete que exhibe un comportamiento
de vinculación, no se debe otorgar al vinculador del paquete ninguna
autorización que el usuario del paquete no deba recibir. De forma similar,
al definir una rutina que exhiba un comportamiento de definición, no se
debe otorgar al definidor de la rutina ninguna autorización que el usuario
del paquete no deba recibir, ya que una sentencia dinámica utilizará el ID
de autorización del definidor de la rutina.
Las siguientes sentencias de SQL preparadas dinámicamente no se pueden
utilizar dentro de un paquete que no se haya vinculado con DYNAMICRULES
RUN: GRANT, REVOKE, ALTER, CREATE, DROP, COMMENT ON,
RENAME, SET INTEGRITY y SET EVENT MONITOR STATE.
ENCODING
Especifica la codificación para todas las variables del lenguaje principal en
sentencias estáticas del plan o del paquete. Sólo está soportado por DB2
para OS/390. Para ver una lista de los valores de opción soportados,
consulte la documentación de DB2 para OS/390.
EXPLAIN
Almacena información en las tablas de Explain acerca de los planes de
acceso elegidos para cada sentencia de SQL del paquete.
NO La información de explicación no se capturará.
YES Las tablas de Explain se llenarán con información acerca del plan
de acceso elegido en tiempo de precompilación/vinculación las
sentencias estáticas y en tiempo de ejecución para las sentencias de
vinculación incremental.
Si el paquete va a utilizarse para una rutina y el paquete contiene
sentencias de vinculación incremental, la rutina debe definirse
como MODIFIES SQL DATA. Si esto no se hace así, las sentencias
de vinculación incremental del paquete causarán un error de
tiempo de ejecución (SQLSTATE 42985).
REOPT
La información de explicación para cada sentencia de SQL de
vinculación incremental reoptimizable se coloca en las tablas de
Explain en tiempo de ejecución. Además, se reúne información de
explicación para las sentencias de SQL dinámico reoptimizable en
tiempo de ejecución, aunque el registro CURRENT EXPLAIN
MODE esté establecido en NO.
Si el paquete ha de utilizarse para una rutina, ésta debe definirse
como MODIFIES SQL DATA; de lo contrario las sentencias
dinámicas y de vinculación incremental del paquete causarán un
error de tiempo de ejecución (SQLSTATE 42985).
ONLY La opción ONLY permite explicar sentencias sin tener el privilegio
de ejecutarlas. Las tablas de Explain se llenan, pero no se crea
ningún paquete permanente. Si, durante el proceso de vinculación,
se encuentra un paquete existente con el mismo nombre y la
misma versión, el paquete existente no se descarta ni se sustituye
aunque se haya especificado ACTION REPLACE. Si se produce un
error durante el llenado de las tablas de Explain, no se añade la
información de explicación para la sentencia que ha devuelto el
error ni para las sentencias que la siguen.
ALL La información de explicación para cada sentencia de SQL estática

104 Consulta de mandatos


BIND

elegible se colocará en las tablas de Explain en tiempo de


precompilación/vinculación. La información de explicación para
cada sentencia de SQL de vinculación incremental elegible se
colocará en las tablas de explain en tiempo de ejecución. Además,
se reunirá información de explicación para las sentencias de SQL
dinámico reoptimizable en tiempo de ejecución, aunque el registro
CURRENT EXPLAIN MODE esté establecido en NO.
Si el paquete ha de utilizarse para una rutina, ésta debe definirse
como MODIFIES SQL DATA; de lo contrario las sentencias
dinámicas y de vinculación incremental del paquete causarán un
error de tiempo de ejecución (SQLSTATE 42985).
EXPLSNAP
Almacena información de instantánea de explicación en las tablas de
Explain.
NO No se capturará una instantánea de explicación.
YES Se colocará una instantánea de explicación para cada sentencia de
SQL estática elegible en las tablas de Explain en tiempo de
precompilación/vinculación para las sentencias estáticas y en
tiempo de ejecución para las sentencias de vinculación incremental.
Si el paquete ha de utilizarse para una rutina y contiene sentencias
de vinculación incremental, la rutina debe definirse como
MODIFIES SQL DATA, o las sentencias de vinculación incremental
del paquete causarán un error de tiempo de ejecución (SQLSTATE
42985).
REOPT
La información de instantánea de explicación para cada sentencia
de SQL de vinculación incremental reoptimizable se coloca en las
tablas de Explain en tiempo de ejecución. Además, se reúne
información de instantánea de explicación para las sentencias de
SQL dinámico reoptimizable en tiempo de ejecución, aunque el
registro CURRENT EXPLAIN SNAPSHOT esté establecido en NO.
Si el paquete ha de utilizarse para una rutina, ésta debe definirse
como MODIFIES SQL DATA; de lo contrario las sentencias
dinámicas y de vinculación incremental del paquete causarán un
error de tiempo de ejecución (SQLSTATE 42985).
ALL Se colocará una instantánea de explicación para cada sentencia de
SQL estática elegible en las tablas de Explain en tiempo de
precompilación/vinculación. La información de instantánea de
explicación para cada sentencia de SQL de vinculación incremental
elegible se colocará en las tablas de Explain en tiempo de
ejecución. Además, se reunirá información de instantánea de
explicación para las sentencias de SQL dinámico elegibles en
tiempo de ejecución, aunque el registro CURRENT EXPLAIN
SNAPSHOT esté establecido en NO.
Si el paquete ha de utilizarse para una rutina, ésta debe definirse
como MODIFIES SQL DATA; de lo contrario las sentencias
dinámicas y de vinculación incremental del paquete causarán un
error de tiempo de ejecución (SQLSTATE 42985).
EXTENDEDINDICATOR
Habilita el reconocimiento de los valores de la variable de indicador
ampliado durante la ejecución del plan o paquete asociado.

Capítulo 5. mandatos CLP 105


BIND

NO No se reconocen los valores de la variable de indicador ampliado.


Las variables de indicador son variables de indicador normales; los
valores negativos de la variable de indicador implican valores
nulos y los valores positivos o equivalentes a cero implican valores
no nulos. Es la condición por omisión.
YES Se reconocen los valores de la variable de indicador ampliado. El
uso de valores de variable de indicador no reconocidos o el uso de
valores basados en variables de indicador sin asignar o por
omisión en una ubicación no soportada hará que el gestor de bases
de datos DB2 genere un mensaje de error durante la ejecución de
la sentencia vinculada.
FEDERATED
Especifica si una sentencia de SQL estático de un paquete hace referencia a
un apodo o a una vista federada. Si no se especifica esta opción y una
sentencia de SQL estático de un paquete hace referencia a un apodo o a
una vista federada, se devuelve un aviso y se crea el paquete.
NO No se hace referencia a ningún apodo ni vista federada en las
sentencias de SQL estático del paquete. Si se encuentra un apodo o
una vista federada en una sentencia de SQL estática durante la fase
de preparación o de vinculación de este paquete, se devuelve un
error y el paquete no se crea.
YES Se puede hacer referencia a un apodo o a una vista federada en las
sentencias de SQL estático del paquete. Si no se encuentra ningún
apodo ni ninguna vista federada en las sentencias de SQL estático
durante la preparación o la vinculación del paquete, no se
devuelven errores ni avisos y el paquete se crea.
FEDERATED_ASYNCHRONY
Especifica el número máximo de colas de tabla de asincronía (ATQ) al que
el servidor federado da soporte en el plan de acceso para los programas
que utilizan el SQL intercalado.
ANY El optimizador determina el número de ATQ para el plan de
acceso. El optimizador asigna una ATQ a todos los operadores de
pulsador remoto o SHIP del plan. El valor que se especifica para la
opción de servidor de DB2_MAX_ASYNC_REQUESTS_PER_QUERY limita el
número de peticiones asíncronas.
número_de_atqs_en_el_plan
El número de ATQ en el plan. Debe especificar un número
comprendido entre 0 y 32767.
FUNCPATH
Especifica la vía de acceso de función que se debe utilizar al resolver
funciones y tipos diferenciados definidos por el usuario en SQL estático. Si
no se especifica esta opción, la vía de acceso de función por omisión es
"SYSIBM","SYSFUN",USER donde USER es el valor del registro especial
USER.
nombre-esquema
Identificador de SQL, ordinario o delimitado, que identifica un
esquema que existe en el servidor de aplicaciones. No se realiza
ninguna validación de que el esquema existe en el momento de la
precompilación o de la vinculación. El mismo esquema no puede
aparecer más de una vez en la vía de acceso de función. No se
puede especificar el nombre de esquema SYSPUBLIC para la vía de

106 Consulta de mandatos


BIND

acceso de función. El número de esquemas que se puede


especificar está limitado por la longitud de la vía de acceso de
función resultante, que no puede exceder de 2048 bytes. No es
necesario especificar explícitamente el esquema SYSIBM; se supone
implícitamente que es el primer esquema si no está incluido en la
vía de acceso de función.
GENERIC "serie"
Da soporte a la vinculación de nuevas opciones que reciben soporte en el
servidor de destino pero que no reciben soporte en DB2 para Linux, UNIX
y Windows, como las opciones BIND PACKAGE o REBIND PACKAGE.
No utilice esta opción para pasar opciones de vinculación que estén
definidas en BIND o PRECOMPILE. La sintaxis es la siguiente:
generic "opción1 valor1 opción2 valor2 ..."

Cada opción y valor debe estar separado por uno o más espacios en
blanco. Por ejemplo, podría utilizarse lo siguiente para vincular cada una
de las opciones OPCIÓN1, OPCIÓN2 y OPCIÓN3:
generic "opción1 valor1 opción2 valor2 opción3 valor3"
La longitud máxima de la serie son 4096 bytes. La longitud máxima de
cada nombre de opción de la serie son 255 bytes.
Para los mandatos BIND remotos, se puede utilizar la cláusula BIND
GENERIC para el flujo de nuevas opciones del servidor DB2 sin que sea
necesario actualizar el cliente. El cliente pasará el mandato BIND al servidor
DB2 sin comprobar la sintaxis de esta opción. El servidor DB2 comprobará
la sintaxis del mandato BIND y el proceso.
GRANT

Nota: Si se especifica más de una de las opciones GRANT, GRANT_GROUP,


GRANT_USER, y GRANT_ROLE sólo se ejecutará la última opción.
authid Otorga privilegios EXECUTE y BIND a un nombre de usuario, un
nombre de rol o un ID de grupo especificado. La sentencia GRANT
de SQL y sus reglas se utilizan para determinar el tipo de authid
cuando no se determina USER, GROUP ni ROLE para especificar el
tipo al que se otorga en una sentencia GRANT. Para ver las reglas,
consulte la sentencia GRANT (Rol).
PUBLIC
Otorga privilegios EXECUTE y BIND a PUBLIC.
GRANT_GROUP
Otorga privilegios EXECUTE y BIND a un nombre de grupo especificado.
GRANT_USER nombre-usuario
Otorga privilegios EXECUTE y BIND a un nombre de usuario especificado.
GRANT_ROLE nombre-rol
Otorga los privilegios EXECUTE y BIND a un nombre de rol especificado.
INSERT
Permite a un programa que se está precompilando o vinculando en un
servidor DB2 Enterprise Server Edition solicitar que las inserciones de
datos se pongan en el almacenamiento intermedio para aumentar el
rendimiento.
BUF Especifica que las inserciones de una aplicación deben ponerse en
el almacenamiento intermedio.

Capítulo 5. mandatos CLP 107


BIND

DEF Especifica que las inserciones de una aplicación no deben ponerse


en el almacenamiento intermedio.
ISOLATION
Determina hasta qué punto un programa vinculado a este paquete puede
aislarse del efecto de otros programas en ejecución.
CS Especifica estabilidad de cursor como nivel de aislamiento.
NC Sin confirmación. Especifica que no se va a utilizar el control de
confirmación. DB2 Database para Linux, UNIX y Windows no
soporta este nivel de aislamiento.
RR Especifica lectura repetible como nivel de aislamiento.
RS Especifica estabilidad de lectura como nivel de aislamiento. La
estabilidad de lectura asegura que la ejecución de las sentencias de
SQL del paquete esté aislada de otros procesos de aplicación para
filas leídas y cambiadas por la aplicación.
UR Especifica lectura no confirmada como nivel de aislamiento.
IMMEDWRITE
Indica si se realizarán grabaciones inmediatas para las actualizaciones
efectuadas para agrupar conjuntos de páginas o particiones de base de
datos dependientes de agrupaciones de almacenamientos intermedios. Sólo
está soportado por DB2 para OS/390. Para ver una lista de los valores de
opción soportados, consulte la documentación de DB2 para OS/390.
KEEPDYNAMIC
Este parámetro especifica si se han de mantener las sentencias de SQL
dinámico después de los puntos de confirmación.
Para obtener una lista de valores de opciones soportados para DB2 para
z/OS, consulte la documentación en el Centro de información de DB2 para
z/OS.
A partir de DB2 para Linux, UNIX, y Windows Versión 9.8 Fixpack 2,
puede modificar el valor de la opción de vinculación KEEPDYNAMIC para un
paquete sin que sea necesaria una nueva operación de vinculación, con lo
que se evita una recompilación innecesaria hasta que tiene lugar la
siguiente operación de vinculación. La opción de vinculación KEEPDYNAMIC
controla durante cuánto tiempo el texto y la sección de la sentencia
asociados a una sentencia preparada se conservan en el contexto de SQL, y
se especifica si se conservan sentencias de SQL dinámico después de una
operación COMMIT o ROLLBACK.
YES
Indica al contexto SQL que conserve de forma indefinida el texto y
la sección de la sentencia asociados a sentencias preparadas. Las
sentencias de SQL dinámico se conservan de una transacción a
otra. Todos los paquetes vinculados con KEEPDYNAMIC YES son, por
omisión, compatibles con el comportamiento de antememoria de
paquete existente.
No
Indica al contexto SQL que elimine el texto y la sección de la
sentencia asociados a sentencias preparadas al final de cada unidad
de trabajo. Las sentencias de SQL dinámico inactivas preparadas en
un paquete vinculado con KEEPDYNAMIC NO se eliminan del contexto

108 Consulta de mandatos


BIND

SQL durante una operación COMMIT o ROLLBACK. Las


sentencias deben volverse a preparar en una nueva transacción. El
cliente, el controlador o la aplicación necesitan preparar de nuevo
cualquier sentencia de SQL dinámico que necesite reutilizar en una
nueva unidad de trabajo. Si una aplicación remota ejecuta el
paquete, las versiones ejecutables para sentencias preparadas se
disocian del contexto SQL de la aplicación cuando finaliza la
transacción.
Las sentencias de SQL dinámico activas deben conservarse hasta la
siguiente operación COMMIT o ROLLBACK en las que están
inactivas. Estas son algunas situaciones en las que las sentencias de
SQL dinámico pueden estar activas en límites de transacciones:
v Los cursores declarados utilizando la opción WITH HOLD se
abren en un punto de confirmación.
v Una sentencia de SQL dinámico ejecuta una operación COMMIT
o ROLLBACK.
v Una sentencia de SQL dinámico invoca un procedimiento
almacenado o una función definida por el usuario que ejecuta la
operación COMMIT o ROLLBACK.
MESSAGES archivo-mensajes
Especifica el destino para los mensajes de aviso, de error y de estado de
realización. Se crea un archivo de mensajes tanto si la vinculación es
satisfactoria como si no lo es. Si no se especifica un nombre de archivo de
mensajes, los mensajes se graban en la salida estándar. Si no se especifica
la vía de acceso completa al archivo, se utiliza el directorio actual. Si se
especifica el nombre de un archivo existente, se graba encima del
contenido del archivo.
OPTHINT
Controla si se utilizan pistas de optimización de consultas para SQL
estático. Sólo está soportado por DB2 para OS/390. Para ver una lista de
los valores de opción soportados, consulte la documentación de DB2 para
OS/390.
OPTPROFILE nombre-perfil-optimización
Especifica el nombre de un perfil de optimización existente que utilizará
para todas las sentencias estáticas del paquete. El valor por omisión de la
opción es una serie vacía. El valor también se aplica como valor por
omisión para la preparación dinámica de sentencias DML para las que el
registro especial CURRENT OPTIMIZATION PROFILE es nulo. Si el
nombre especificado no es calificado, será un identificador SQL, al que la
opción de vinculación QUALIFIER califica implícitamente.
El mandato BIND no procesa el archivo de optimización, sólo valida que el
nombre sea válido sintácticamente. Por lo tanto, si el perfil de optimización
no existe o no es válido, no se producirá un aviso SQL0437W con el código
de razón 13 hasta que se optimice una sentencia DML utilizando dicho
perfil de optimización.
OS400NAMING
Especifica cuál es la opción de denominación que se debe utilizar al
acceder a datos de DB2 para System i. Sólo recibe soporte de DB2 para
System i. Para ver una lista de los valores de opción soportados, consulte
la documentación de DB2 para System i.
Debido a que las barras inclinadas se utilizan como separadores, un
programa de utilidad DB2 puede informar de un error de sintaxis en

Capítulo 5. mandatos CLP 109


BIND

tiempo de ejecución para ciertas sentencias de SQL que utilizan el convenio


de denominación del sistema System i aunque el programa de utilidad se
pueda haber precompilado o vinculado con la opción OS400NAMING SYSTEM.
Por ejemplo, el procesador de línea de mandatos (CLP) informará de un
error de sintaxis en una sentencia de SQL CALL si se utiliza el convenio de
denominación del sistema System i, tanto si se ha precompilado o
vinculado, como si no, mediante la opción OS400NAMING SYSTEM.
OWNER id-autorización
Designa un identificador de autorización de 128 bytes para el propietario
del paquete. El propietario debe tener los privilegios necesarios para
ejecutar las sentencias de SQL contenidas en el paquete. Sólo un usuario
con autorización DBADM puede especificar un identificador de
autorización distinto del ID de usuario. El valor por omisión es el ID de
autorización del invocador del proceso de precompilación/vinculación.
SYSIBM, SYSCAT y SYSSTAT no son valores válidos para esta opción. El
id-autorización debe ser un usuario. No se puede especificar un rol ni un
grupo con la opción OWNER.
PATH Especifica la vía de acceso de función que se debe utilizar al resolver
funciones y tipos diferenciados definidos por el usuario en SQL estático. Si
no se especifica esta opción, la vía de acceso de función por omisión es
"SYSIBM","SYSFUN",USER donde USER es el valor del registro especial
USER.
nombre-esquema
Identificador de SQL, ordinario o delimitado, que identifica un
esquema que existe en el servidor de aplicaciones. No se realiza
ninguna validación de que el esquema existe en el momento de la
precompilación o de la vinculación.
QUALIFIER nombre-calificador
Proporciona un calificador implícito de 128 bytes para los objetos no
calificados contenidos en el paquete. El valor por omisión es el ID de
autorización del propietario, tanto si se ha especificado explícitamente
OWNER como si no se ha especificado.
QUERYOPT nivel-optimización
Indica el nivel necesario de optimización para todas las sentencias de SQL
estático contenidas en el paquete. El valor por omisión es 5. La sentencia
SET CURRENT QUERY OPTIMIZATION describe el rango completo de
niveles de optimización disponibles.
RELEASE
Indica si se liberan recursos en cada punto COMMIT o cuando termina la
aplicación. DB2 Database para Linux, UNIX y Windows no soporta esta
opción de precompilación/vinculación de DRDA. Para los servidores DB2
z/OS Versión 10 o posterior, el valor por omisión es DEALLOCATE.
COMMIT
Libera recursos en cada punto COMMIT. Se utiliza para sentencias
de SQL dinámico.
DEALLOCATE
Sólo libera recursos cuando termina la aplicación.
SORTSEQ
Especifica cuál es la tabla de secuencias de clasificación que se debe

110 Consulta de mandatos


BIND

utilizar en System i. Sólo recibe soporte de DB2 para System i. Para ver
una lista de los valores de opción soportados, consulte la documentación
de DB2 para System i.
SQLERROR
Indica si se debe crear un paquete o un archivo de vinculación en el caso
de que se encuentre un error.
CHECK
Especifica que el sistema de destino realiza todas las
comprobaciones de sintaxis y de semántica en las sentencias de
SQL que se están vinculando. No se creará un paquete como parte
de este proceso. Si, mientras se está realizando la vinculación, se
encuentra un paquete existente con el mismo nombre y la misma
versión, el paquete existente no se descarta ni se sustituye aunque
se haya especificado ACTION REPLACE.
CONTINUE
Crea un paquete, incluso si se producen errores al vincular las
sentencias de SQL. Aquellas sentencias que no se han podido
vincular por razones de autorización o existencia pueden
vincularse de forma incremental en el tiempo de ejecución si se
especifica también VALIDATE RUN. Cualquier intento de ejecutarlas
en la ejecución genera un error (SQLCODE -525, SQLSTATE 51015).
NOPACKAGE
No se crea un paquete o un archivo de vinculación si se encuentra
un error.
REOPT
Especifica si DB2 debe determinar una vía de acceso en tiempo de
ejecución utilizando valores para variables del lenguaje principal,
marcadores de parámetro, variables globales y registros especiales. Los
valores válidos son:
NONE
La vía de acceso para una determinada sentencia de SQL que
contenga variables del lenguaje principal, marcadores de
parámetros, variables globales o registros especiales no se
optimizará utilizando valores reales. Se utilizan las estimaciones
por omisión para estas variables y el plan se almacena en la
antememoria y se utiliza posteriormente. Éste es el valor por
omisión.
ONCE La vía de acceso de una determinada sentencia de SQL se
optimizará utilizando los valores reales de las variables del
lenguaje principal, marcadores de parámetros, variables globales o
registros especiales cuando la consulta se ejecute por primera vez.
Este plan se almacenará en la antememoria y se utilizará
posteriormente.
ALWAYS
La vía de acceso de una determinada sentencia de SQL siempre se
compilará y se reoptimizará utilizando los valores de las variables
del lenguaje principal, marcadores de parámetros, variables
globales o registros especiales que se conocen cada vez que se
ejecuta la consulta.
REOPT | NOREOPT VARS
Estas opciones se han sustituido por REOPT ALWAYS y REOPT NONE; no

Capítulo 5. mandatos CLP 111


BIND

obstante, aún se pueden utilizar por cuestiones de compatibilidad con


versiones anteriores. Especifica si DB2 debe determinar una vía de acceso
en tiempo de ejecución utilizando valores para variables del lenguaje
principal, variables globales, marcadores de parámetro y registros
especiales. Sólo está soportado por DB2 para OS/390. Para ver una lista de
los valores de opción soportados, consulte la documentación de DB2 para
OS/390.
SQLWARN
Indica si se devolverán avisos de la compilación de las sentencias de SQL
dinámicas (a través de PREPARE o EXECUTE IMMEDIATE) o del proceso
de descripción (a través de PREPARE...INTO o DESCRIBE).
NO No se devolverán avisos del compilador de SQL.
YES Se devolverán avisos del compilador de SQL.

SQLCODE +236, +237 y +238 son excepciones. Se devuelven


independientemente del valor de la opción SQLWARN.
STATICREADONLY
Determina si los cursores estáticos han de tratarse como si fueran READ
ONLY o INSENSITIVE.
NO Todos los cursores estáticos tomarán los atributos tal como se
generarían normalmente dado el texto de la sentencia y el valor de
la opción de precompilación LANGLEVEL. Éste es el valor por
omisión.
YES Cualquier cursor estático que no contenga la cláusula FOR
UPDATE o FOR READ ONLY se considerará de sólo lectura
(READ ONLY).
INSENSITIVE
Cualquier cursor estático que no contenga la cláusula FOR
UPDATE se considerará READ ONLY e INSENSITIVE.
STRDEL
Indica si se utilizará un apóstrofo (') o comillas dobles (") como delimitador
de serie en las sentencias de SQL. El servidor para DB2 Database para
Linux, UNIX y Windows no da soporte a esta opción de
precompilación/vínculo. El servidor DRDA utilizará un valor por omisión
incorporado si no se especifica esta opción.
APOSTROPHE
Utilizar un apóstrofo (') como delimitador de serie.
QUOTE
Utilizar comillas dobles (") como delimitador de serie.
SYSTIMESENSITIVE
Indica si las referencias a tablas temporales de período de sistema en
sentencias de SQL estático y dinámico se ven afectadas por el valor del
registro especial CURRENT TEMPORAL SYSTEM_TIME.
YES Las referencias a tablas temporales de período de sistema se ven
afectadas por el valor del registro especial CURRENT TEMPORAL
SYSTEM_TIME. Este es el valor por omisión.
NO Las referencias a tablas temporales de período de sistema no se
ven afectadas por el valor del registro especial CURRENT
TEMPORAL SYSTEM_TIME.

112 Consulta de mandatos


BIND

TEXT etiqueta
Descripción de un paquete. La longitud máxima es de 255 caracteres. El
valor por omisión son espacios en blanco. El servidor para DB2 Database
para Linux, UNIX y Windows no da soporte a esta opción de
precompilación/vínculo.
TRANSFORM GROUP
Especifica el nombre de grupo de transformaciones que deberán utilizar las
sentencias de SQL estático para intercambiar valores de tipo estructurado
definidos por el usuario con programas de sistema principal. Este grupo de
transformaciones no se utiliza para las sentencias de SQL dinámico o para
el intercambio de parámetros y resultados con funciones o métodos
externos.
groupname
Identificador de SQL de una longitud máxima de 18 bytes. Un
nombre de grupo no puede incluir un prefijo de calificador y no
puede empezar con el prefijo SYS, dado que éste está reservado
para uso de la base de datos. En una sentencia de SQL estática que
interactúe con variables del lenguaje principal, el nombre de grupo
de transformaciones a utilizar para intercambiar valores de un tipo
estructurado es el siguiente:
v El nombre de grupo de la opción de vinculación TRANSFORM
GROUP, si existe
v El nombre de grupo de la opción de precompilación TRANSFORM
GROUP que se ha especificado en el tiempo de precompilación
original, si existe
v El grupo DB2_PROGRAM, si existe una transformación para el
tipo proporcionado cuyo nombre de grupo es DB2_PROGRAM
v No se utiliza ningún grupo de transformaciones si no existe
ninguna de las condiciones indicadas anteriormente.
Son posibles los errores siguientes durante la vinculación de una
sentencia de SQL estática:
v SQLCODE aaaaa, SQLSTATE xxxxx: se necesita una
transformación, pero no se ha seleccionado ningún grupo de
transformación estático.
v SQLCODE aaaaa, SQLSTATE xxxxx: el grupo de transformaciones
seleccionado no incluye una transformación necesaria (TO SQL
para variables de entrada, FROM SQL para variables de salida)
para el tipo de datos que se tiene que intercambiar.
v SQLCODE aaaaa, SQLSTATE xxxxx: el tipo de resultado de la
transformación FROM SQL no es compatible con el tipo de la
variable de salida o el tipo de parámetro de la transformación
TO SQL no es compatible con el tipo de la variable de entrada.
En estos mensajes de error, aaaaa se sustituye por el código de error
de SQL y xxxxx por el código de estado de SQL.
VALIDATE
Determina cuándo el gestor de bases de datos comprueba los errores de
autorización y los errores de objeto no encontrado. Se utiliza el ID de
autorización del propietario del paquete para la comprobación de validez.
BIND La validación se realiza en el tiempo de precompilación/
vinculación. Si no existen todos los objetos o no se posee toda la
autorización, se producen mensajes de error. Si se especifica

Capítulo 5. mandatos CLP 113


BIND

SQLERROR CONTINUE, se produce un archivo de vinculación/paquete


a pesar del mensaje de error, pero las sentencias erróneas no son
ejecutables.
RUN Se intenta la validación en el tiempo de vinculación. Si existen
todos los objetos y se posee toda la autorización, no se realiza
ninguna comprobación adicional en el tiempo de ejecución.
Si no existen todos los objetos o no se posee toda la autorización
en el tiempo de precompilación/vinculación, se producen mensajes
de aviso y el paquete se vincula satisfactoriamente,
independientemente del valor de la opción SQLERROR CONTINUE. Sin
embargo, en el tiempo de ejecución se puede volver a realizar la
comprobación de autorización y la comprobación de existencia
para las sentencias de SQL que han fallado dichas comprobaciones
durante el proceso de precompilación/vinculación.

Ejemplos

El ejemplo siguiente vincula miapl.bnd (el archivo de vinculación generado al


precompilar el programa miapl.sqc) con la base de datos con la que se ha
establecido una conexión:
db2 bind miapl.bnd

Los mensajes resultantes del proceso de vinculación se envían a la salida estándar.

Notas de uso

Al vincular un paquete utilizando la opción REOPT con el valor ONCE o ALWAYS


especificado, es posible que la compilación y el rendimiento de las sentencias
estáticas y dinámicas cambie.

La vinculación puede realizarse como parte del proceso de precompilación para un


archivo fuente de programa de aplicación o posteriormente como un paso
independiente. Utilice BIND cuando la vinculación se realice como un proceso
independiente.

El nombre utilizado para crear el paquete se almacena en el archivo de vinculación


y se basa en el nombre del archivo fuente a partir del cual se ha generado (se
eliminan las vías de acceso o las extensiones existentes). Por ejemplo, un archivo
fuente precompilado llamado myapp.sql genera un archivo de vinculación por
omisión llamado myapp.bnd y un nombre de paquete por omisión MYAPP. Sin
embargo, el nombre de archivo de vinculación y el nombre de paquete pueden
alterarse temporalmente durante la precompilación, utilizando las opciones
BINDFILE y PACKAGE.

La vinculación de un paquete con un nombre de esquema que aún no existe


produce la creación implícita de dicho esquema. El propietario del esquema es
SYSIBM. El privilegio CREATEIN sobre el esquema se otorga a PUBLIC.

BIND se ejecuta bajo la transacción que se ha iniciado. Después de efectuar la


vinculación, BIND emite un COMMIT o un ROLLBACK para terminar la
transacción actual e iniciar otra.

La vinculación se detiene si se produce un error muy grave o se producen más de


100 errores. Si se produce un error muy grave, el programa de utilidad deja de
vincular, intenta cerrar todos los archivos y elimina el paquete.

114 Consulta de mandatos


BIND

Cuando un paquete exhibe un comportamiento de vinculación, lo siguiente puede


ser verdadero:
1. El valor implícito o explícito de la opción OWNER de BIND se utilizará para
realizar la comprobación de autorización de las sentencias de SQL dinámico.
2. El valor implícito o explícito de la opción QUALIFIER de BIND se utilizará como
calificador implícito para realizar la calificación de objetos no calificados en las
sentencias de SQL dinámico.
3. El valor del registro especial CURRENT SCHEMA no tiene ningún efecto sobre
la calificación.

En caso de que se haga referencia a varios paquetes durante una sola conexión,
todas las sentencias de SQL dinámico preparadas por esos paquetes exhibirán el
comportamiento que aparece especificado en la opción DYNAMICRULES para ese
paquete específico y el entorno en el que se utilicen.

Los parámetros visualizados en el mensaje SQL0020W están anotados


correctamente como errores y se pasarán por alto tal como indica el mensaje.

Si se encuentra que una sentencia de SQL es errónea y se ha especificado la opción


SQLERROR CONTINUE de BIND, se marcará la sentencia como no válida. Para cambiar
el estado de la sentencia de SQL, se deberá emitir otro BIND. La revinculación
implícita o explícita no cambiará el estado de una sentencia no válida. En un
paquete vinculado con VALIDATE RUN, una sentencia puede cambiar de estática a
vinculación incremental o de vinculación incremental a estática a través de
revinculaciones implícitas y explícitas, en función de si existen o no problemas de
autorización o de existencia de objeto durante la revinculación.

Los privilegios de los roles que se han otorgado a los identificadores de


autorización utilizados para vincular el paquete (el valor de la opción de
vinculación OWNER) o a PUBLIC, se tienen en cuenta al vincular un paquete. Los
roles adquiridos a través de grupos, en los que el identificador de autorización
utilizado para vincular el paquete es un miembro, no se utilizarán.

Para un programa SQL intercalado, si no se especifica la opción de vinculación de


modo explícito se vincularán las sentencias estáticas del paquete utilizando el
parámetro de configuración federated_async. Si se especifica la opción de
vinculación FEDERATED_ASYNCHRONY de forma explícita, dicho valor se utiliza para
vincular los paquetes y también es el valor inicial del registro especial. En caso
contrario, se utilizará el valor del parámetro de configuración del gestor de base de
datos como valor inicial del registro especial. La opción de vinculación
FEDERATED_ASYNCHRONY afecta a SQL dinámico sólo cuando se establece de forma
explícita.

El valor de la opción de vinculación FEDERATED_ASYNCHRONY se registra en la


columna FEDERATED_ASYNCHRONY de la tabla de catálogo
SYSCAT.PACKAGES. Cuando no se especifica de forma explícita la opción de
vinculación, se utiliza el valor del parámetro de configuración federated_async y
el catálogo muestra el valor -2 para la columna FEDERATED_ASYNCHRONY.

Si no se especifica de forma explícita la opción de vinculación


FEDERATED_ASYNCHRONY cuando se vincula un paquete, y si el paquete se vuelve a
vincular de forma implícita o explícita, el paquete se vuelve a vincular utilizando
el valor actual del parámetro de configuración federated_async.

Capítulo 5. mandatos CLP 115


CATALOG DATABASE

CATALOG DATABASE
Almacena información de ubicación de base de datos en el directorio de bases de
datos del sistema. La base de datos puede estar ubicada en la estación de trabajo
local o en un servidor de particiones de base de datos remoto.

Ámbito

En un entorno de base de datos particionada, cuando se cataloga una base de


datos local en el directorio de bases de datos del sistema, este mandato debe
emitirse desde una partición de base de datos del servidor donde reside la base de
datos.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL

Conexión necesaria

Ninguna. Las operaciones de directorio sólo afectan al directorio local.

Sintaxis del mandato


 CATALOG DATABASE nombre-basedatos 
DB AS alias

 
ON vía-acceso
unidad
AT NODE nombrenodo

 
AUTHENTICATION SERVER
CLIENT
SERVER_ENCRYPT
SERVER_ENCRYPT_AES
KERBEROS TARGET PRINCIPAL nombreprincipal
DATA_ENCRYPT
GSSPLUGIN

 
WITH "serie-comentario"

Parámetros del mandato


DATABASE nombre-base-datos
Especifica el nombre de la base de datos a catalogar.
AS alias
Especifica un alias como nombre alternativo para la base de datos que se
está catalogando. Si no se especifica un alias, el gestor de bases de datos
utiliza nombre-basedatos como alias.
ON vía_acceso | unidad
Especifica la vía de acceso donde reside la base de datos que se está

116 Consulta de mandatos


CATALOG DATABASE

catalogando. En sistemas operativos Windows, se puede especificar la letra


de la unidad en la que reside la base de datos que se está catalogando (si
se ha creado en una unidad, no en una vía de acceso específica).
AT NODE nombrenodo
Especifica el nombre del servidor de particiones de base de datos donde
reside la base de datos que se está catalogando. Este nombre debe coincidir
con el nombre de una entrada del directorio de nodos. Si el nombre de
nodo especificado no existe en el directorio de nodos, se devuelve un
aviso, pero la base de datos se cataloga en el directorio de bases de datos
del sistema. El nombre de nodo debe estar catalogado en el directorio de
nodos si se necesita una conexión con la base de datos catalogada.
AUTHENTICATION
El valor de autentificación se almacena para las bases de datos remotas
(aparece en la salida del mandato LIST DATABASE DIRECTORY) pero no se
almacena para las bases de datos locales.
La especificación de un tipo de autentificación puede producir un beneficio
en el rendimiento.
SERVER Especifica que la autentificación se realiza en el servidor de
particiones de base de datos que contiene la base de datos de
destino.
CLIENT Especifica que la autentificación se realiza en el servidor de
particiones de base de datos donde se invoca la aplicación.
SERVER_ENCRYPT
Especifica que la autentificación se realiza en el servidor de
particiones de base de datos que contiene la base de datos de
destino y que los ID de usuario y las contraseñas se cifran en la
fuente. Los ID de usuario y las contraseñas se descifran en el
destino, como lo especifica el tipo de autentificación catalogado en
la fuente.
KERBEROS
Especifica que la autentificación se realiza utilizando el mecanismo
de seguridad de Kerberos.
TARGET PRINCIPAL nombreprincipal
Nombre de principal de Kerberos totalmente calificado
para el servidor de destino; es decir, principal de Kerberos
totalmente calificado del propietario de la instancia de DB2
con el formato nombre/instancia@REINO. Para Windows
2000, Windows XP y Windows Server 2003, es la cuenta de
inicio de sesión del servicio de servidor de DB2 con el
formato IDusuario@DOMINIO, [email protected] o
dominio\IDusuario.
DATA_ENCRYPT
Especifica que la autentificación tiene lugar en el servidor de
particiones de base de datos que contiene la base de datos de
destino y que las conexiones deben utilizar el cifrado de datos.
GSSPLUGIN
Especifica que la autentificación se realiza utilizando un
mecanismo de seguridad externo basado en un plugin de la API de
GSS.

Capítulo 5. mandatos CLP 117


CATALOG DATABASE

SERVER_ENCRYPT_AES
Especifica que la autentificación se realiza en el servidor de
particiones de base de datos que contiene la base de datos de
destino y que los ID de usuario y las contraseñas se cifran con un
algoritmo de cifrado AES (Advanced Encryption Standard) en la
fuente y se descifran en el destino.
WITH "serie-comentario"
Describe la base de datos o la entrada de base de datos del directorio de
bases de datos del sistema. La longitud máxima de una serie de
comentario es de 30 caracteres. No se permiten caracteres de retorno de
carro ni de salto de línea. El texto de comentario debe escribirse entre
comillas dobles.

Ejemplos
db2 catalog database sample on /databases/sample
with "Base de datos de ejemplo"

Notas de uso

Utilice CATALOG DATABASE para catalogar bases de datos ubicadas en servidores de


particiones de base de datos locales o remotos, volver a catalogar bases de datos
que se han descatalogado anteriormente o mantener múltiples alias para una base
de datos (independientemente de la ubicación de la base de datos).

DB2 cataloga las bases de datos automáticamente cuando éstas se crean. Cataloga
una entrada para la base de datos en el directorio de bases de datos locales y otra
entrada en el directorio de bases de datos del sistema. Si la base de datos se crea
desde un cliente remoto (o un cliente que se está ejecutando desde una instancia
diferente en la misma máquina), también se realiza una entrada en el directorio de
bases de datos del sistema en la instancia del cliente.

Si no se especifica ni la vía de acceso ni el nombre del servidor de particiones de


base de datos, se supone que la base de datos es local y que la ubicación de la base
de datos es la que se ha especificado en el parámetro de configuración dftdbpath
del gestor de bases de datos.

Las bases de datos en el mismo servidor de particiones de base de datos que la


instancia del gestor de bases de datos se catalogan como entradas indirectas. Las
bases de datos en otros servidores de particiones de base de datos se catalogan
como entradas remotas.

CATALOG DATABASE crea automáticamente un directorio de bases de datos del


sistema si no existe ninguno. El directorio de bases de datos del sistema se
almacena en la vía de acceso que contiene la instancia del gestor de bases de datos
que se está utilizando y se mantiene fuera de la base de datos.

Liste el contenido del directorio de bases de datos del sistema utilizando el


mandato LIST DATABASE DIRECTORY. Para listar el contenido del directorio de bases
de datos local, utilice LIST DATABASE DIRECTORY ON vía_acceso, donde vía_acceso es
donde se ha creado la base de datos.

Si el almacenamiento en antememoria de directorios está habilitado, los archivos


de directorios de bases de datos, nodos y DCS se almacenarán en la antememoria.
Para saber si el almacenamiento en antememoria de directorios está habilitado,
compruebe el valor del parámetro de configuración del soporte de antememoria de

118 Consulta de mandatos


CATALOG DATABASE

directorios dir_cache en la salida del mandato GET DATABASE MANAGER


CONFIGURATION. La antememoria de directorio de una aplicación se crea durante la
primera búsqueda de directorio. Dado que la antememoria sólo se renueva cuando
la aplicación modifica alguno de los archivos de directorio, puede que los cambios
de directorio efectuados por otras aplicaciones no sean efectivos hasta que se haya
reiniciado la aplicación.

Para renovar la antememoria de directorios de CLP utilice el mandato TERMINATE.


Para renovar la antememoria compartida del gestor de bases de datos, detenga
(db2stop) y, a continuación, reinicie (db2start) el gestor de bases de datos. Para
renovar la antememoria de directorios para otra aplicación, detenga dicha
aplicación y, a continuación, reiníciela.

Capítulo 5. mandatos CLP 119


CATALOG DCS DATABASE

CATALOG DCS DATABASE


Almacena información acerca del sistema principal remoto o de las bases de datos
de System i en el directorio de Servicios de conexión de bases de datos (DCS).

A estas bases de datos se accede mediante un Peticionario de aplicaciones (AR),


por ejemplo DB2 Connect. Al tener una entrada de directorio de DCS con un
nombre de base de datos que coincide con un nombre de base de datos del
directorio de bases de datos del sistema, se invoca el AR especificado para reenviar
las peticiones SQL al servidor remoto donde reside la base de datos.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL

Conexión necesaria

Ninguna

Sintaxis del mandato


 CATALOG DCS DATABASE nombre-basedatos 
DB

 
AS nombre-base-datos-destino AR nombre-biblioteca

 
PARMS "serie-parámetros" WITH "serie-comentario"

Parámetros del mandato


DATABASE nombre-base-datos
Especifica el alias de la base de datos de destino a catalogar. Este nombre
debe coincidir con el nombre de una entrada del directorio de bases de
datos que está asociado al servidor de particiones de base de datos remoto.
AS nombre-base-datos-destino
Especifica el nombre del sistema principal de destino o de una base de
datos de System i a catalogar.
AR nombre-biblioteca
Especifica el nombre de la biblioteca de Peticionario de aplicaciones que se
carga y se utiliza para acceder a una base de datos remota listada en el
directorio de DCS.
Si se utiliza el AR de DB2 Connect, no especifique un nombre de
biblioteca. El valor por omisión hará que se invoque DB2 Connect.
Si no se utiliza DB2 Connect, especifique el nombre de biblioteca del AR y
coloque dicha biblioteca en la misma vía de acceso que las bibliotecas del
gestor de bases de datos. En los sistemas operativos Windows, la vía de
acceso es unidad:\sqllib\bin. En los sistemas operativos Linux y UNIX, la
vía de acceso es $HOME/sqllib/lib del propietario de la instancia.

120 Consulta de mandatos


CATALOG DCS DATABASE

PARMS "serie-parámetros"
Especifica una serie de parámetros que se debe pasar al AR cuando éste se
invoca. La serie de parámetros debe escribirse entre comillas dobles.
WITH "serie-comentario"
Describe la entrada del directorio de DCS. Se puede entrar cualquier
comentario que ayude a describir la base de datos catalogada en este
directorio. La longitud máxima es de 30 caracteres. No se permiten
caracteres de retorno de carro ni de salto de línea. El texto de comentario
debe escribirse entre comillas dobles.

Ejemplos

El ejemplo siguiente cataloga información acerca de la base de datos DB1, que es


una base de datos DB2 para z/OS, en el directorio de DCS:
db2 catalog dcs database db1 as dsn_db_1
with "DB2/z/OS location name DSN_DB_1"

Notas de uso

El programa DB2 Connect proporciona conexiones a Servidores de aplicaciones


DRDA tales como:
v Bases de datos DB2 para OS/390 o z/OS en sistemas principales de arquitectura
System/370 y System/390.
v Bases de datos DB2 para VM y VSE en sistemas principales de arquitectura
System/370 y System/390.
v Bases de datos System i en sistemas Application System/400 (System i) y System
i.

El gestor de bases de datos crea un directorio de Servicios de conexión de bases de


datos si no existe ninguno. Este directorio se almacena en la vía de acceso que
contiene la instancia del gestor de bases de datos que se está utilizando. El
directorio de DCS se mantiene fuera de la base de datos.

La base de datos también debe catalogarse como una base de datos remota en el
directorio de bases de datos del sistema.

Liste el contenido del directorio de DCS utilizando el mandato LIST DCS


DIRECTORY.

Si el almacenamiento en antememoria de directorios está habilitado, los archivos


de directorios de bases de datos, nodos y DCS se almacenarán en la antememoria.
La antememoria de directorio de una aplicación se crea durante la primera
búsqueda de directorio. Dado que la antememoria sólo se renueva cuando la
aplicación modifica alguno de los archivos de directorio, puede que los cambios de
directorio efectuados por otras aplicaciones no sean efectivos hasta que se haya
reiniciado la aplicación.

Para renovar la antememoria de directorios de CLP utilice el mandato TERMINATE.


Para renovar la antememoria compartida en DB2, detenga db2stop) y reinicie
(db2start) el gestor de bases de datos. Para renovar la antememoria de directorios
para otra aplicación, detenga dicha aplicación y, a continuación, reiníciela.

Capítulo 5. mandatos CLP 121


CATALOG LDAP DATABASE

CATALOG LDAP DATABASE


Registra la base de datos en el LDAP (Lightweight Directory Access Protocol).

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 CATALOG LDAP DATABASE nombre-basedatos 
DB AS alias

 
AT NODE nombrenodo GWNODE nodo-pasarela

 
PARMS "serie-parámetros" AR nombre-biblioteca

 
AUTHENTICATION SERVER
CLIENT
SERVER_ENCRYPT
SERVER_ENCRYPT_AES
KERBEROS TARGET PRINCIPAL nombreprincipal
DATA_ENCRYPT
GSSPLUGIN

 
WITH "comentarios" USER nombre-usuario
PASSWORD contraseña

Parámetros del mandato


DATABASE nombre-base-datos
Especifica el nombre de la base de datos a catalogar.
AS alias
Especifica un alias como nombre alternativo para la base de datos que se
está catalogando. Si no se especifica un alias, se utiliza el nombre de base
de datos como alias.
AT NODE nombrenodo
Especifica el nombre de nodo LDAP para el servidor de bases de datos en
el que reside la base de datos. Este parámetro debe especificarse al
registrar una base de datos en un servidor remoto.
GWNODE nodo-pasarela
Especifica el nombre de nodo LDAP para el servidor de pasarela.
PARMS "serie-parámetros"
Especifica una serie de parámetros que se pasa al Peticionario de
aplicaciones (AR) al acceder a bases de datos DCS. El nombre_dest_simb de
cambio de contraseña no se deberá especificar en la serie de parámetros.

122 Consulta de mandatos


CATALOG LDAP DATABASE

Utilice la palabra clave CHGPWDLU para especificar el cambio del nombre de


LU de contraseña al registrar el servidor DB2 en LDAP.
AR nombre-biblioteca
Especifica el nombre de la biblioteca de Peticionario de aplicaciones que se
carga y se utiliza para acceder a una base de datos remota listada en el
directorio de DCS.
Si se utiliza el AR de DB2 Connect, no especifique un nombre de
biblioteca. El valor por omisión hará que se invoque DB2 Connect.
Si no se utiliza DB2 Connect, especifique el nombre de biblioteca del AR y
coloque dicha biblioteca en la misma vía de acceso que las bibliotecas del
gestor de bases de datos. En sistemas operativos Windows, la vía de acceso
es unidad:\sqllib\dll. En sistemas operativos UNIX, la vía de acceso es el
directorio $HOME/sqllib/lib del propietario de la instancia.
AUTHENTICATION
Especifica el nivel de autentificación. Los valores válidos son:
SERVER Especifica que la autentificación se realiza en el nodo donde reside
la base de datos de destino.
CLIENT Especifica que la autentificación tiene lugar en el nodo desde el
que se invoca la aplicación.
SERVER_ENCRYPT
Especifica que la autentificación se realiza en el servidor de
particiones de base de datos que contiene la base de datos de
destino y que los ID de usuario y las contraseñas se cifran en la
fuente. Los ID de usuario y las contraseñas se descifran en el
destino, como lo especifica el tipo de autentificación catalogado en
la fuente.
SERVER_ENCRYPT_AES
Especifica que la autentificación se realiza en el servidor de
particiones de base de datos que contiene la base de datos de
destino y que los ID de usuario y las contraseñas se cifran con un
algoritmo de cifrado AES (Advanced Encryption Standard) en la
fuente y se descifran en el destino.
KERBEROS
Especifica que la autentificación se realiza utilizando el mecanismo
de seguridad de Kerberos.
TARGET PRINCIPAL nombreprincipal
Nombre principal Kerberos totalmente calificado para el
servidor de destino; es decir, la cuenta de inicio de sesión
del servicio de servidor DB2 con el formato de
[email protected] o dominio\IDusuario.
DATA_ENCRYPT
Especifica que la autentificación se realiza en el nodo donde reside
la base de datos de destino y que las conexiones deben utilizar el
cifrado de datos.
GSSPLUGIN
Especifica que la autentificación se realiza utilizando un
mecanismo de seguridad externo basado en un plugin de la API de
GSS.

Capítulo 5. mandatos CLP 123


CATALOG LDAP DATABASE

WITH "comentarios"
Describe el servidor DB2. Se puede entrar cualquier comentario que ayude
a describir el servidor registrado en el directorio de red. La longitud
máxima es de 30 caracteres. No se permiten caracteres de retorno de carro
ni de salto de línea. El texto de comentario debe escribirse entre comillas
dobles.
USER nombreusuario
Especifica el nombre distinguido (DN) LDAP del usuario. El nombre DN
LDAP de usuario debe tener suficiente autorización para crear el objeto en
el directorio LDAP. Si no se especifica el nombre DN LDAP del usuario, se
utilizarán las credenciales del usuario de la conexión actual. Si el DN
LDAP y la contraseña del usuario se han especificado utilizando db2ldcfg,
no se tienen que especificar aquí el nombre de usuario y la contraseña.
PASSWORD contraseña
Contraseña de cuenta. Si el DN LDAP y la contraseña del usuario se han
especificado utilizando db2ldcfg, no se tienen que especificar aquí el
nombre de usuario y la contraseña.

Notas de uso

Si no se especifica el nombre de nodo, DB2 utilizará el primer nodo de LDAP que


represente el servidor DB2 en la máquina actual.

Puede que sea necesario registrar (catalogar) manualmente la base de datos en


LDAP si:
v El servidor de bases de datos no soporta LDAP. El administrador debe registrar
manualmente cada base de datos en LDAP para permitir a los clientes que
soportan LDAP acceder a la base de datos sin tener que catalogarla localmente
en cada máquina cliente.
v La aplicación quiere utilizar un nombre diferente para conectarse a la base de
datos. En este caso, el administrador puede catalogar la base de datos utilizando
un nombre de alias diferente.
v La base de datos reside en el sistema principal o el servidor de bases de datos
de System i. En este caso, el administrador puede registrar la base de datos en
LDAP y especificar el nodo de pasarela mediante el parámetro GWNODE.
v Durante la operación CREATE DATABASE IN LDAP, el nombre de base de
datos ya existe en LDAP. La base de datos se crea de todos modos en la
máquina local (y pueden acceder a ella las aplicaciones locales), pero la entrada
existente en LDAP no se modificará para reflejar la nueva base de datos. En este
caso, el administrador puede:
– Suprimir la entrada de base de datos existente en LDAP y registrar
manualmente la nueva base de datos en LDAP.
– Registrar la nueva base de datos en LDAP utilizando un nombre de alias
diferente.

124 Consulta de mandatos


CATALOG LDAP NODE

CATALOG LDAP NODE


Cataloga una nueva entrada de nodo en LDAP (Lightweight Directory Access
Protocol).

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 CATALOG LDAP NODE nombrenodo AS aliasnodo 

 
USER nombre-usuario
PASSWORD contraseña

Parámetros del mandato


NODE nombrenodo
Especifica el nombre de nodo LDAP del servidor DB2.
AS aliasnodo
Especifica un nombre de alias nuevo para la entrada de nodo LDAP.
USER nombreusuario
Especifica el nombre distinguido (DN) LDAP del usuario. El nombre DN
LDAP de usuario debe tener suficiente autorización para crear el objeto en
el directorio LDAP. Si no se especifica el nombre DN LDAP del usuario, se
utilizarán las credenciales del usuario de la conexión actual.
PASSWORD contraseña
Contraseña de cuenta.

Notas de uso

El mandato CATALOG LDAP NODE se utiliza para especificar un nombre de alias


diferente para el nodo que representa el servidor DB2.

Capítulo 5. mandatos CLP 125


CATALOG LOCAL NODE

CATALOG LOCAL NODE


Crea un alias local para una instancia que reside en la misma máquina. Se deberá
catalogar un nodo local cuando hay más de una instancia en la misma estación de
trabajo a la que se debe acceder desde el cliente del usuario. Para acceder al nodo
local se utiliza Interprocess Communications (IPC).

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL

Conexión necesaria

Ninguna

Sintaxis del mandato


 CATALOG LOCAL NODE nombrenodo 
ADMIN INSTANCE nombreinstancia

 
SYSTEM nombre-sistema OSTYPE tipo-sistema-operativo

 
WITH "serie-comentario"

Parámetros del mandato


ADMIN
Especifica que se debe catalogar un nodo de servidor de administración
local.
INSTANCE nombreinstancia
Nombre de la instancia local a la que se debe acceder.
SYSTEM nombre-sistema
Especifica el nombre de sistema DB2 que se utiliza para identificar la
máquina servidor.
OSTYPE tipo-sistema-operativo
Especifica el tipo de sistema operativo de la máquina servidor. Los valores
válidos son: AIX, WIN, HPUX, SUN, OS390, OS400, VM, VSE, SNI, SCO, LINUX y
DYNIX.

Ejemplos

La estación de trabajo A tiene dos instancias de servidor, inst1 e inst2. Para crear
bases de datos en ambas instancias desde una sola sesión CLP, emita la secuencia
siguiente de mandatos (suponiendo que la variable de entorno DB2INSTANCE se
haya establecido en inst1):
1. Cree una base de datos local en inst1:
db2 create database mibd1
2. Catalogue otra instancia de servidor en esta estación de trabajo:
db2 catalog local node minodo2 instance inst2

126 Consulta de mandatos


CATALOG LOCAL NODE

3. Cree una base de datos en minodo2:


db2 attach to minodo2
db2 create database mibd2

Notas de uso

Si el almacenamiento en antememoria de directorios está habilitado, los archivos


de directorios de bases de datos, nodos y DCS se almacenarán en la antememoria.
La antememoria de directorio de una aplicación se crea durante la primera
búsqueda de directorio. Dado que la antememoria sólo se renueva cuando la
aplicación modifica alguno de los archivos de directorio, puede que los cambios de
directorio efectuados por otras aplicaciones no sean efectivos hasta que se haya
reiniciado la aplicación.

Para renovar la antememoria de directorios de CLP, utilice TERMINATE. Para renovar


la antememoria compartida de DB2, detenga (db2stop) y, a continuación, reinicie
(db2start) el gestor de bases de datos. Para renovar la antememoria de directorios
para otra aplicación, detenga dicha aplicación y, a continuación, reiníciela.

Capítulo 5. mandatos CLP 127


CATALOG NAMED PIPE NODE

CATALOG NAMED PIPE NODE


Añade una entrada de nodo de conexión con nombre al directorio de nodos. La
conexión con nombre se utiliza para acceder al nodo remoto.

Este mandato sólo está disponible en Windows.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL

Conexión necesaria

Ninguna

Sintaxis del mandato


 CATALOG NPIPE NODE nombrenodo REMOTE nombresistema 
ADMIN

 INSTANCE nombreinstancia 
SYSTEM nombre-sistema

 
OSTYPE tipo-sistema-operativo WITH "serie-comentario"

Parámetros del mandato


ADMIN
Especifica que se debe catalogar un nodo de servidor de administración
NPIPE.
REMOTE nombresistema
Nombre de sistema del nodo donde reside la base de datos de destino. La
longitud máxima es de 15 caracteres.
INSTANCE nombreinstancia
Nombre de la instancia de servidor en la que reside la base de datos de
destino. Es idéntico al nombre de conexión con nombre remota, que se
utiliza para comunicarse con el nodo remoto.
SYSTEM nombre-sistema
Especifica el nombre de sistema DB2 que se utiliza para identificar la
máquina servidor.
OSTYPE tipo-sistema-operativo
Especifica el tipo de sistema operativo de la máquina servidor. Los valores
válidos son: AIX, WIN, HPUX, SUN, OS390, OS400, VM, VSE, SNI, SCO y LINUX.

Ejemplos
db2 catalog npipe node db2np1 remote nphost instance db2inst1
with "Nodo área conexión con nombre remota."

128 Consulta de mandatos


CATALOG NAMED PIPE NODE

Notas de uso

El gestor de bases de datos crea el directorio de nodos cuando se cataloga el


primer nodo (es decir, cuando se emite el primer mandato CATALOG...NODE). En un
cliente Windows, almacena y mantiene el directorio de nodos en el subdirectorio
de instancias donde está instalado el cliente. En un cliente AIX, crea el directorio
de nodos en el directorio de instalación de DB2.

Liste el contenido del directorio de nodo local utilizando el mandato LIST NODE
DIRECTORY.

Si el almacenamiento en antememoria de directorios está habilitado (vea el


parámetro de configuración dir_cache del mandato GET DATABASE MANAGER
CONFIGURATION), los archivos de directorios de bases de datos, nodos y DCS se
almacenarán en la memoria. La antememoria de directorio de una aplicación se
crea durante la primera búsqueda de directorio. Dado que la antememoria sólo se
renueva cuando la aplicación modifica alguno de los archivos de directorio, puede
que los cambios de directorio efectuados por otras aplicaciones no sean efectivos
hasta que se haya reiniciado la aplicación.

Para renovar la antememoria de directorios de CLP utilice el mandato TERMINATE.


Para renovar la antememoria compartida de DB2, detenga (db2stop) y, a
continuación, reinicie (db2start) el gestor de bases de datos. Para renovar la
antememoria de directorios para otra aplicación, detenga dicha aplicación y, a
continuación, reiníciela.

Capítulo 5. mandatos CLP 129


CATALOG ODBC DATA SOURCE

CATALOG ODBC DATA SOURCE


Cataloga una fuente de datos ODBC de usuario o de sistema.

Una fuente de datos, en terminología de ODBC (Open Database Connectivity -


Conectividad de bases de datos abiertas), es un nombre definido por el usuario
para una base de datos o un sistema de archivos específico. Dicho nombre se
utiliza para acceder a la base de datos o al sistema de archivos mediante las API
ODBC. Se pueden catalogar fuentes de datos del usuario o del sistema. Una fuente
de datos de usuario sólo está visible para el usuario que la ha catalogado, mientras
que una fuente de datos de sistema está visible para todos los demás usuarios y
todos ellos la pueden utilizar.

Este mandato sólo está disponible en plataformas Windows.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


USER
 CATALOG ODBC DATA SOURCE nombre-fuente-datos 
SYSTEM ALL DATA SOURCES

Parámetros del mandato


USER Cataloga una fuente de datos de usuario. Es el valor por omisión si no se
especifica ninguna palabra clave.
SYSTEM
Cataloga una fuente de datos de sistema.
DATA SOURCE nombre-fuente-datos
Especifica el nombre de la fuente de datos que se debe catalogar. El
nombre de la fuente de datos y el nombre de la base de datos deben ser el
mismo. Por lo tanto, el nombre de la fuente de datos está limitado a la
longitud máxima para un nombre de base de datos.
ALL DATA SOURCES
Especifica catalogar todos los alias de base de datos como fuentes de datos
ODBC (DSN).

Notas de uso

En Microsoft Windows Vista o versiones posteriores, debe ejecutar el mandato


CATALOG SYSTEM ODBC DATA SOURCE desde una ventana de mandatos de DB2 con
todos los privilegios de administrador.

Especificar el parámetro ALL DATA SOURCES no actualizará un ODBC DSN existente


que tenga su parámetro dbalias establecido en un valor que se corresponda con el
alias de la base de datos del directorio de la base de datos local.

130 Consulta de mandatos


CATALOG ODBC DATA SOURCE

En entornos Windows, el DSN de ODBC debe restaurarse después de actualizar


DB2. Para importar y exportar los valores del DSN de ODBC, utilice el mandato
db2cfimp o el mandato db2cfexp o añada los DSN manualmente.

Ejemplo 1

Suponga que hay un ODBC DSN existente denominado "MyProdDatabase". El


parámetro dbalias se establece en "PRODDB". Suponga que también hay una base
de datos en el directorio local que tenga el alias "PRODDB". Si se ejecuta el
mandato CATALOG ODBC DATA SOURCE myproddatabase o el mandato CATALOG ODBC
ALL DATA SOURCES, no se modifica el DSN "MyProdDatabase" porque el DSN no
coincide con el alias de la base de datos. En su lugar, se creará una entrada ODBC
DSN para "PRODDB" con dbalias establecido en "PRODDB". Si existe un ODBC
DSN que tenga el mismo nombre que el alias de base de datos, el parámetro
dbalias de ODBC DSN se actualizará con el alias de base de datos. Todos los
valores y parámetros CLI asociados permanecerán sin modificar.

Ejemplo 2

Suponga que hay un DSN existente denominado "MYDB" que tenga el parámetro
dbalias establecido en "salesdb". Si hay una base de datos en el directorio local
llamada "MYDB", cuando se ejecute el mandato CATALOG ODBC DATA SOURCE mydb o
el mandato CATALOG ODBC ALL DATA SOURCES se cambiará el parámetro dbalias del
DSN por "MYDB".

Capítulo 5. mandatos CLP 131


CATALOG TCPIP/TCPIP4/TCPIP6 NODE

CATALOG TCPIP/TCPIP4/TCPIP6 NODE


Añade una entrada del servidor de particiones de base de datos TCP/IP
(Transmission Control Protocol/Internet Protocol) al directorio de nodos. Para
acceder al servidor de particiones de base de datos remoto se utiliza el protocolo
de comunicaciones TCP/IP. El mandato CATALOG TCPIP/TCPIP4/TCPIP6 NODE se
ejecuta en un cliente.

Nota: A partir del release DB2 para Linux, UNIX y Windows Versión 10.1, no se
da soporte al sistema operativo AIX 5.3. DB2 para Linux, UNIX y Windows
Versión 9.7 es el último release que da soporte al sistema operativo AIX 5.3. El
sistema operativo AIX 6.1 es el nivel mínimo soportado.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL

Conexión necesaria

Ninguna. Las operaciones de directorio sólo afectan al directorio local.

Sintaxis del mandato


 CATALOG TCPIP NODE nombrenodo 
ADMIN TCPIP4 NODE
TCPIP6 NODE

 REMOTE nombresistpral SERVER nombre-servicio 


dirección IPv4 número puerto SECURITY SOCKS
dirección IPv6 SECURITY SSL

 
REMOTE_INSTANCE nombre-instancia SYSTEM nombre-sistema

 
OSTYPE tipo-sistema-operativo WITH "serie-comentario"

Parámetros del mandato


ADMIN Especifica que se debe catalogar un nodo de servidor de administración
TCP/IP. Este parámetro no se puede especificar si se ha especificado el
parámetro SECURITY SOCKS.
TCPIP NODE nombrenodo
El nombre de nodo del servidor de particiones de base de datos TCPIP,
TCPIP4 o TCPIP6 representa un apodo local que puede establecer para la
máquina que contiene la base de datos que desea catalogar. Sólo
especifique TCPIP4 cuando desee especificar una dirección IP IPv4, y sólo
especifique TCPIP6 cuando desee especificar una dirección IP IPv6.
REMOTE nombresistemaprincipal | dirección IPv4 | dirección IPv6
El nombre de sistema principal o la dirección IP del nodo donde reside la
base de datos de destino. Dirección IP puede ser una dirección IPv4 o IPv6.
El nombre de sistema principal es el nombre del servidor de particiones de

132 Consulta de mandatos


CATALOG TCPIP/TCPIP4/TCPIP6 NODE

base de datos que se conoce en la red TCP/IP. La longitud máxima del


nombre de sistema principal es de 255 caracteres.
SERVER nombre-servicio | número-puerto
Especifica el nombre de servicio o el número de puerto de la instancia del
gestor de bases de datos del servidor. La longitud máxima es de 14
caracteres. Este parámetro es sensible a las mayúsculas y minúsculas.
Si se especifica un nombre de servicio, se utiliza el archivo services del
cliente para correlacionar el nombre de servicio con un número de puerto.
Se especifica un nombre de servicio en el archivo de configuración del
gestor de bases de datos del servidor y se utiliza el archivo services del
servidor para correlacionar este nombre de servicio con un número de
puerto. El número de puerto del cliente y del servidor deben coincidir.
Se puede especificar un número de puerto, en lugar de un nombre de
servicio, en el archivo de configuración del gestor de bases de datos del
servidor, pero no se recomienda. Si se especifica un número de puerto, no
es necesario especificar ningún nombre de servicio en el archivo services
local.
Este parámetro no debe especificarse para nodos ADMIN, pero es
obligatorio para nodos no ADMIN. El valor de los nodos ADMIN es
siempre 523.
SECURITY SOCKS
Especifica que el nodo estará habilitado para SOCKS. Este parámetro sólo
está soportado para IPv4. Si se utiliza CATALOG TCPIP NODE y se especifica
SECURITY SOCKS, el producto de base de datos de DB2 utilizará IPv4 para
establecer la conexión. Este parámetro no se puede especificar si se
especifica el parámetro ADMIN.
Las variables de entorno siguientes son obligatorias y deben establecerse
para habilitar SOCKS:
SOCKS_NS
Servidor de nombres de dominio para resolver la dirección de
sistema principal del servidor SOCKS. Debe ser un nombre de
sistema principal o una dirección IPv4.
SOCKS_SERVER
El nombre de sistema principal totalmente calificado o la dirección
IPv4 del servidor SOCKS. Si el IBM Data Server Client de
SOCKSified no puede resolver el nombre de sistema principal
totalmente calificado, se supone que se ha entrado una dirección
IPv4.

Debe ser verdadera una de las condiciones siguientes:


v Se tiene que poder acceder al servidor SOCKS a través del servidor de
nombres de dominio.
v El nombre de sistema principal aparece listado en el archivo hosts. La
ubicación de este archivo se describe en la documentación de TCP/IP.
v Se especifica una dirección IPv4.
Si se emite este mandato después de db2start, es necesario emitir un
mandato TERMINATE para que el mandato entre en vigor.
SECURITY SSL
Especifica que el nodo está habilitado para SSL. No puede especificar la
cláusula SECURITY SSL si también especifica el parámetro ADMIN.

Capítulo 5. mandatos CLP 133


CATALOG TCPIP/TCPIP4/TCPIP6 NODE

REMOTE_INSTANCE nombre-instancia
Especifica el nombre de la instancia del servidor en la que reside la base de
datos y con la que se realiza una conexión.
SYSTEM nombre-sistema
Especifica el nombre de sistema DB2 que se utiliza para identificar la
máquina servidor. Se trata del nombre de la máquina física, el sistema
servidor o la estación de trabajo.
OSTYPE tipo-sistema-operativo
Especifica el tipo de sistema operativo de la máquina servidor. Los valores
válidos son: AIX, WIN, HPUX, SUN, OS390, OS400, VM, VSE y LINUX.
WITH serie-comentario
Describe la entrada de base de datos en el directorio de bases de datos. Se
puede entrar cualquier comentario que ayude a describir la base de datos.
La longitud máxima es de 30 caracteres. No se permiten caracteres de
retorno de carro ni de salto de línea. El texto de comentario debe escribirse
entre comillas simples o comillas dobles.

Ejemplos

Para especificar un nombre de sistema principal mediante el mandato CATALOG


TCPIP NODE, emita lo siguiente:
db2 catalog tcpip node db2tcp1 remote hostname server db2inst1
with "Look up IPv4 or IPv6 address from hostname"

Para especificar una dirección IPv4 utilizando el mandato CATALOG TCPIP4 NODE,
emita lo siguiente:
db2 catalog tcpip4 node db2tcp2 remote 192.0.32.67 server db2inst1
with "Look up IPv4 address from 192.0.32.67"

Este ejemplo especifica una dirección IPv4. No debe especificar una dirección IPv6
en el mandato CATALOG TCPIP4 NODE. El catálogo no fallará si lo hace, pero no se
establecerá una conexión posterior porque se especificó una dirección no válida
durante la catalogación.

Para especificar una dirección IPv6 utilizando el mandato CATALOG TCPIP6 NODE,
emita lo siguiente:
db2 catalog tcpip6 node db2tcp3 1080:0:0:0:8:800:200C:417A server 50000
with "Look up IPv6 address from 1080:0:0:0:8:800:200C:417A"

En este ejemplo se especifican una dirección IPv6 y un número de puerto para


SERVER. No debe especificar una dirección IPv6 en el mandato CATALOG TCPIP4
NODE. El catálogo no fallará si lo hace, pero no se establecerá una conexión
posterior porque se especificó una dirección no válida durante la catalogación.

El ejemplo siguiente cataloga un nodo para una conexión SSL (el nombre de
sistema principal del servidor es nombresistprincipal, y puerto_ssl es el número del
puerto en el que este servidor de bases de datos espera las comunicaciones de los
nodos cliente remotos utilizando el protocolo SSL):
db2 catalog tcpip node db2tcp4 remote nombresistprincipal server puerto_ssl

Notas de uso

El gestor de bases de datos crea el directorio de nodos cuando se cataloga el


primer nodo (es decir, cuando se emite el primer mandato CATALOG...NODE). En un

134 Consulta de mandatos


CATALOG TCPIP/TCPIP4/TCPIP6 NODE

cliente Windows, almacena y mantiene el directorio de nodos en el subdirectorio


de instancias donde está instalado el cliente. En un cliente AIX, crea el directorio
de nodos en el directorio de instalación de DB2.

Liste el contenido del directorio de nodo local utilizando el mandato LIST NODE
DIRECTORY.

Si el almacenamiento en antememoria de directorios está habilitado, los archivos


de directorios de bases de datos, nodos y DCS se almacenarán en la antememoria.
La antememoria de directorio de una aplicación se crea durante la primera
búsqueda de directorio. Dado que la antememoria sólo se renueva cuando la
aplicación modifica alguno de los archivos de directorio, puede que los cambios de
directorio efectuados por otras aplicaciones no sean efectivos hasta que se haya
reiniciado la aplicación.

Para renovar la antememoria de directorios de CLP utilice el mandato TERMINATE.


Para renovar la antememoria compartida de DB2, detenga (db2stop) y, a
continuación, reinicie (db2start) el gestor de bases de datos. Para renovar la
antememoria de directorios para otra aplicación, detenga dicha aplicación y, a
continuación, reiníciela.

Para que el gestor de bases de datos DB2 pueda estar a la escucha de IPv6, el
sistema operativo y el servidor deben configurarse primero para IPv6. Hable con el
administrador del sistema para asegurarse de que se ha realizado esta
configuración antes de catalogar un nodo TCPIP de IPv6. Siga en Actualización a
IPv6 con IPv4 configurado para ver cómo se hace esto en AIX 6.1.

Capítulo 5. mandatos CLP 135


CHANGE DATABASE COMMENT

CHANGE DATABASE COMMENT


Cambia un comentario de base de datos en el directorio de bases de datos del
sistema o en el directorio de bases de datos locales. El texto actualmente asociado
con un comentario puede sustituirse por texto de comentario nuevo.

Ámbito

Este mandato sólo afecta a la partición de base de datos en la que se ejecuta.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL

Conexión necesaria

Ninguna

Sintaxis del mandato


 CHANGE DATABASE alias-base-datos COMMENT 
DB ON vía-acceso
unidad

 WITH "serie-comentario" 

Parámetros del mandato


DATABASE alias-base-datos
Especifica el alias de la base de datos cuyo comentario debe cambiarse.
Para cambiar el comentario en el directorio de bases de datos del sistema,
especifique el alias para la base de datos. Para cambiar el comentario en el
directorio de bases de datos locales, especifique la vía de acceso donde
reside la base de datos (con el parámetro vía-acceso) y entre el nombre (no
el alias) de la base de datos.
ON vía-acceso | unidad
Especifica la vía de acceso en la que reside la base de datos y cambia el
comentario en el directorio de bases de datos locales. Si no se especifica
una vía de acceso, se cambia el comentario de base de datos
correspondiente a la entrada del directorio de bases de datos del sistema.
En cambio, en sistemas operativos Windows, puede especificar la letra de
la unidad en la que reside la base de datos (si se ha creado en una unidad,
no en una vía de acceso concreta).
WITH "serie-comentario"
Describe la entrada del directorio de bases de datos del sistema o del
directorio de bases de datos locales. Se puede entrar cualquier comentario
que ayude a describir la base de datos catalogada. La longitud máxima de
una serie de comentario es de 30 caracteres. No se permiten caracteres de
retorno de carro ni de salto de línea. El texto de comentario debe escribirse
entre comillas dobles.

136 Consulta de mandatos


CHANGE DATABASE COMMENT

Ejemplos

El ejemplo siguiente cambia el texto del comentario del directorio de bases de


datos del sistema de la base de datos SAMPLE de "Test 2 - Holding" a "Test 2 -
Add employee inf rows":
db2 change database sample comment
with "Test 2 - Add employee inf rows"

Notas de uso

El texto de comentario nuevo sustituye al texto existente. Para añadir información,


entre el texto de comentario antiguo, seguido del texto nuevo.

Sólo se modifica el comentario para una entrada asociada con el alias de base de
datos. Otras entradas con el mismo nombre de base de datos, pero con alias
diferentes, no se verán afectadas.

Si se especifica la vía de acceso, el alias de base de datos debe estar catalogado en


el directorio de bases de datos locales. Si no se especifica la vía de acceso, el alias
de base de datos debe estar catalogado en el directorio de bases de datos del
sistema.

Capítulo 5. mandatos CLP 137


CHANGE ISOLATION LEVEL

CHANGE ISOLATION LEVEL


Cambia el modo en que DB2 aísla los datos de otros procesos mientras se está
accediendo a una base de datos.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


CS
 CHANGE SQLISL TO NC 
ISOLATION RR
RS
UR

Parámetros del mandato


TO
CS Especifica estabilidad de cursor como nivel de aislamiento.
NC Especifica sin confirmación como nivel de aislamiento. DB2 no lo
soporta.
RR Especifica lectura repetible como nivel de aislamiento.
RS Especifica estabilidad de lectura como nivel de aislamiento.
UR Especifica lectura no confirmada como nivel de aislamiento.

Notas de uso

DB2 utiliza niveles de aislamiento para mantener la integridad de los datos de una
base de datos. El nivel de aislamiento define el grado en el que se aísla (apantalla)
un proceso de aplicación de los cambios efectuados por otros procesos de
aplicación que se ejecutan simultáneamente.

Si una base de datos no soporta un nivel de aislamiento seleccionado, dicho nivel


se escala automáticamente a un nivel soportado en el momento de efectuar la
conexión.

Los cambios de nivel de aislamiento no están permitidos mientras se está


conectado a una base de datos con una conexión de tipo 1. El proceso de fondo
debe terminarse antes de poder cambiar el nivel de aislamiento:
db2 terminate
db2 change isolation to ur
db2 connect to sample

Los cambios están permitidos si se utiliza una conexión de tipo 2, pero deberán
realizarse con precaución porque se aplicarán a cada conexión efectuada desde el

138 Consulta de mandatos


CHANGE ISOLATION LEVEL

mismo proceso de fondo del procesador de línea de mandatos. El usuario tiene la


responsabilidad de recordar qué nivel de aislamiento se aplica a cada base de
datos conectada.

En el ejemplo siguiente, un usuario está en modalidad interactiva de DB2 después


de la creación de la base de datos SAMPLE:
update command options using c off
catalog db sample as sample2

set client connect 2

connect to sample
connect to sample2

change isolation to cs
set connection sample
declare c1 cursor for select * from org
open c1
fetch c1 for 3 rows

change isolation to rr
fetch c1 for 2 rows

Se produce un error SQL0514N porque c1 no está en un estado preparado para


este nivel de aislamiento.
change isolation to cs
set connection sample2
fetch c1 for 2 rows

Se produce un error SQL0514N porque c1 no está en un estado preparado para


esta base de datos.
declare c1 cursor for select division from org

Se produce un error DB21029E porque el cursor c1 ya se ha declarado y se ha


abierto.
set connection sample
fetch c1 for 2 rows

Esto funciona porque se ha utilizado la base de datos original (SAMPLE) con el


nivel de aislamiento (CS) original.

Capítulo 5. mandatos CLP 139


COMPLETE XMLSCHEMA

COMPLETE XMLSCHEMA
Lleva a cabo el proceso de registrar un esquema XML en el depósito de esquemas
XML (XSR).

Autorización
v El ID de usuario debe ser el propietario del objeto XSR, tal como se indica en la
vista de catálogo SYSCAT.XSROBJECTS.

Conexión necesaria

Base de datos

Sintaxis del mandato


 COMPLETE XMLSCHEMA identificador-relacional 

 
WITH URI-propiedades-esquema ENABLE DECOMPOSITION

Descripción
identificador-relacional
Especifica el nombre relacional de un esquema XML registrado con
anterioridad con el mandato REGISTER XMLSCHEMA. El nombre relacional se
puede especificar como un identificador de SQL de dos componentes, que
son el esquema SQL y el nombre del esquema XML, con el formato:
esquemaSQL.nombre. Si no se especifica un esquema, se usa el esquema SQL
por omisión, definido en el registro especial CURRENT SCHEMA.
WITH URI-propiedades-esquema
Especifica el identificador uniforme de recursos (URI) de un documento de
propiedades para el esquema XML. Solo está soportado un archivo local,
especificado por un URI de esquema de archivo. El documento de
propiedades de esquema solo se puede especificar durante la etapa de
terminación del registro de esquema XML.
ENABLE DECOMPOSITION
Indica que el esquema se puede usar para descomponer documentos de
instancia XML.

Ejemplo
COMPLETE XMLSCHEMA user1.POschema WITH ’file:///c:/TEMP/schemaProp.xml’

Notas de uso

No se puede hacer referencia al esquema XML ni se le puede usar para la


validación o la anotación mientras no se haya completado su proceso de registro.
Este mandato completa el proceso de registro de un esquema XML cuyo registro
empezó con el mandato REGISTER XMLSCHEMA.

140 Consulta de mandatos


CREATE DATABASE

CREATE DATABASE
Inicializa una base de datos nueva con una secuencia de clasificación opcional
definida por el usuario, crea los tres espacios de tablas iniciales, crea las tablas del
sistema y asigna el archivo de anotaciones cronológicas de recuperación. Cuando
se inicializa una base de datos nueva, el mandato AUTOCONFIGURE se emite por
omisión.

Nota: Cuando el gestor de bases de datos de DB2 crea los directorios de la


instancia y de bases de datos, los permisos son correctos y no se deben cambiar.

Cuando se emite el mandato CREATE DATABASE, el Asesor de configuración también


se ejecuta automáticamente. Esto significa que los parámetros de configuración de
la base se ajustan automáticamente para cada usuario según los recursos del
sistema. Además, Runstats automatizado está habilitado. Para evitar que el Asesor
de configuración se ejecute al crear la base de datos, consulte la variable de
registro DB2_ENABLE_AUTOCONFIG_DEFAULT. Para inhabilitar Runstats automatizado,
consulte el parámetro de configuración de base de datos auto_runstats.

La Memoria de ajuste automático adaptable también está habilitada por omisión


para particiones de base de datos individuales. Para inhabilitar la Memoria de
ajuste automático adaptable por omisión, consulte el parámetro de configuración
de base de datos self_tuning_mem. Para las bases de datos de múltiples particiones,
la Memoria de ajuste automático adaptable está habilitada por omisión.

Si no se especifica ningún conjunto de códigos en el mandato CREATE DATABASE, las


clasificaciones permitidas son: SYSTEM, IDENTITY_16BIT, recopilación-que-considera-
idioma y recopilación-sensible-al-entorno-local SQLCODE -1083). El conjunto de
códigos por omisión para una base de datos es UTF-8. Si se necesita un conjunto
de códigos y un territorio determinados para una base de datos, el conjunto de
códigos y el territorio necesarios deben especificarse en el mandato CREATE
DATABASE.

Este mandato no es válido en un cliente.

Ámbito

En un entorno de base de datos particionada, este mandato afecta a todas las


particiones de base de datos que aparecen listadas en el archivo db2nodes.cfg.

La partición de base de datos desde la que se emite este mandato se convierte en


la partición de base de datos de catálogo para la nueva base de datos.

Autorización

Debe disponer de una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL

Conexión necesaria

Instancia. Para crear una base de datos y otro servidor de particiones de base de
datos (remoto), es necesario conectarse primero a dicho servidor. Este mandato
establece temporalmente una conexión de base de datos durante el proceso.

Capítulo 5. mandatos CLP 141


CREATE DATABASE

Sintaxis del mandato


 CREATE DATABASE 
DB

 nombre-basedatos 
AT DBPARTITIONNUM
Opciones de Create Database

Opciones de Create Database:

AUTOMATIC STORAGE--YES

AUTOMATIC STORAGE--NO ,

ON  vía-acceso
unidad DBPATH ON vía-acceso
unidad

 
ALIAS alias-basedatos USING CODESET conjunto-códigos TERRITORY territorio

PAGESIZE 4096
 
SYSTEM PAGESIZE entero
COLLATE USING COMPATIBILITY K
IDENTITY
IDENTITY_16BIT
recopilación-que-considera-idioma
recopilación-sensible-al-entorno-local
NLSCHAR

 
NUMSEGS númsegs DFT_EXTENT_SZ dft_extentsize RESTRICTIVE

 
CATALOG TABLESPACE defn-espaciotablas USER TABLESPACE defn-espaciotablas

 
TEMPORARY TABLESPACE defn-espaciotablas WITH "serie-comentario"


DB ONLY
AUTOCONFIGURE APPLY DB AND DBM
NONE

USING  palabraclave-entrada valor-parám

defn-espaciotablas:

MANAGED BY 

 SYSTEM USING (  ' serie-contenedor ' ) 


,

DATABASE USING (  FILE ' serie-contenedor ' número-de-páginas )


DEVICE
AUTOMATIC STORAGE

142 Consulta de mandatos


CREATE DATABASE

 
EXTENTSIZE número-de-páginas PREFETCHSIZE número-de-páginas

 
OVERHEAD número-de-milisegundos TRANSFERRATE número-de-milisegundos

NO FILE SYSTEM CACHING


 
FILE SYSTEM CACHING AUTORESIZE NO INITIALSIZE entero K
YES M
G


INCREASESIZE entero PERCENT MAXSIZE NONE
K entero K
M M
G G

Nota:
1. La combinación de valores de conjunto de códigos y territorio debe ser válida.
2. No todos los órdenes de clasificación son válidos con cada combinación de
conjunto de códigos y territorio.
3. Las definiciones de espacio de tablas especificadas en CREATE DATABASE se
aplican a todas las particiones de base de datos en las que se está creando la
base de datos. No se pueden especificar por separado para cada partición de
base de datos. Si las definiciones de espacio de tablas han de crearse de forma
diferente en particiones de base de datos determinadas, debe utilizarse la
sentencia CREATE TABLESPACE.
Cuando se definen contenedores para espacios de tablas, se puede utilizar $N.
$N se sustituirá por el número de partición de base de datos cuando se cree
realmente el contenedor. Esto es necesario si el usuario desea especificar
contenedores en una base de datos de múltiples particiones lógicas.
4. El parámetro AUTOCONFIGURE requiere autorización SYSADM.

Parámetros del mandato


DATABASE nombre-base-datos
Nombre que se debe asignar a la nueva base de datos. Debe ser un nombre
exclusivo que distinga la base de datos de cualquier otra base de datos del
directorio de bases de datos locales o del directorio de bases de datos del
sistema. El nombre debe adaptarse a los convenios de denominación para
bases de datos. Específicamente, el nombre no debe contener ningún
carácter de espacio.
AT DBPARTITIONNUM
Especifica que la base de datos sólo se debe crear en la partición de base
de datos que emite el mandato. No especifique este parámetro al crear una
nueva base de datos. Puede utilizarla para volver a crear una partición de
base de datos que se ha descartado porque estaba dañada. Después de
utilizar el mandato CREATE DATABASE con la opción AT DBPARTITIONNUM, la
base de datos que está en esta partición de base de datos estará en estado
de pendiente de restauración. Debe restaurar inmediatamente la base de
datos en este servidor de particiones de base de datos. Este parámetro no
está destinado al uso general. Por ejemplo, debe utilizarse con el mandato

Capítulo 5. mandatos CLP 143


CREATE DATABASE

RESTORE DATABASE si la partición de base de datos de un servidor de


particiones de base de datos estaba dañada y ha de volver a crearse. El uso
incorrecto de este parámetro puede causar incoherencias en el sistema, de
modo que sólo se deberá utilizar con precaución.
Si este parámetro se utiliza para volver a crear una partición de base de
datos que se había descartado (porque estaba dañada), la base de datos de
esta partición de base de datos se encontrará en estado de restauración
pendiente. Después de volver a crear la partición de base de datos, la base
de datos debe restaurarse inmediatamente en esta partición de base de
datos.
AUTOMATIC STORAGE NO | YES
Especifica que el almacenamiento automático se está inhabilitando o
habilitando explícitamente para la base de datos. El valor por omisión es
YES. Aunque no se especifique la cláusula AUTOMATIC STORAGE, por omisión,
el almacenamiento automático se habilitará implícitamente.
NO No se está habilitando almacenamiento automático para la base de
datos. Este parámetro no se puede especificar en un entorno DB2
pureScale.
YES Se está habilitando almacenamiento automático para la base de
datos. Se crea el grupo de almacenamiento por omisión,
IBMSTOGROUP, en la tabla de catálogo SYSSTOGROUPS. Para
modificar un grupo de almacenamiento, utilice la sentencia ALTER
STOGROUP.

Importante: Este parámetro ha quedado en desuso y puede que se elimine


en un futuro release. Una vez que se haya eliminado, AUTOMATIC
STORAGE YES será la única opción.
ON vía-acceso o unidad
El significado de este parámetro depende del valor del parámetro
AUTOMATIC STORAGE.
v Si se especifica AUTOMATIC STORAGE NO, se inhabilita el almacenamiento
automático para la base de datos. En este caso, sólo se puede incluir una
vía de acceso como parte del parámetro ON y esta especifica la vía de
acceso en la que debe crearse la base de datos. Si no se especifica
ninguna vía de acceso, la base de datos se crea en la vía de acceso de
base de datos por omisión que se especifica en el archivo de
configuración del gestor de bases de datos (parámetro dftdbpath).
v De lo contrario, el almacenamiento automático se habilita por omisión
para la base de datos. En este caso, se pueden listar varias vías de
acceso, cada una de ellas separada por una coma. Estas vías de acceso se
denominan vías de acceso de almacenamiento definidas en el grupo de
almacenamiento por omisión IBMSTOGROUP y se utilizan para alojar
contenedores de espacios de tablas para espacios de tablas de
almacenamiento automático. Para bases de datos de varias particiones,
se utilizarán las mismas vías de acceso de almacenamiento en todas las
particiones.
El parámetro DBPATH ON especifica las vías de acceso para crear la base
de datos. Si no se especifica el parámetro DBPATH ON, la base de datos se
crea en la primera vía de acceso que se lista en el parámetro ON. Si no se
especifican vías de acceso con el parámetro ON, la base de datos se crea
en la vía de acceso de base de datos por omisión que se especifica en el
archivo de configuración del gestor de bases de datos (parámetro

144 Consulta de mandatos


CREATE DATABASE

dftdbpath). Ésta también se utilizará como ubicación para la única vía


de acceso de almacenamiento asociada al grupo de almacenamiento por
omisión.
La vía de acceso de la base de datos es la ubicación donde se crea una
estructura jerárquica de directorios. La estructura contiene los archivos
siguientes, necesarios para el funcionamiento de la base de datos:
– Información de agrupación de almacenamientos intermedios
– Información del espacio de tablas
– Información de la vía de acceso de almacenamiento
– Información de configuración de base de datos
– Información del archivo histórico relacionada con copias de
seguridad, restauraciones, carga de tablas, reorganización de tablas,
modificación de espacios de tablas y otros cambios en la base de
datos.
– Archivos de control de anotaciones cronológicas con información
sobre las anotaciones cronológicas activas.
El parámetro DBPATH ON se puede utilizar para colocar estos archivos y la
información en un directorio que está separado de las vías de acceso de
almacenamiento donde se guardan los datos de la base de datos. Se
recomienda utilizar el parámetro DBPATH ON cuando se habilita el
almacenamiento automático para mantener la información de la base de
datos separada de los datos de la base de datos.
La longitud máxima de una vía de acceso es de 175 caracteres.
Para entorno de base de datos particionada, no se deberá crear una base de
datos en un directorio montado en NFS. Si no se especifica ninguna vía de
acceso, asegúrese de que el parámetro de configuración dftdbpath del
gestor de bases de datos no se establezca en una vía de acceso montada
con NFS (por ejemplo, en los sistemas operativos UNIX, no deberá
especificar el directorio $HOME del propietario de la instancia). La vía de
acceso especificada para este mandato en un entorno de base de datos
particionada no puede ser una vía de acceso relativa. Además, todas las
vías de acceso especificadas como parte del parámetro ON deben existir en
todas las particiones de base de datos.
En cada partición de base de datos debe existir una vía de acceso a la base
de datos o una vía de acceso de almacenamiento determinadas y ha de ser
accesible.
DBPATH ON vía-acceso o unidad
Si el almacenamiento automático está habilitado, el parámetro DBPATH ON
especifica la vía de acceso en la que debe crearse la base de datos. Si el
almacenamiento automático está habilitado y no se especifica el parámetro
DBPATH ON, la base de datos se crea en la primera vía de acceso que se lista
con la opción ON.
La longitud máxima de una vía de acceso de base de datos es de 215
caracteres y la longitud máxima de una vía de acceso de almacenamiento
es de 175 caracteres.
ALIAS alias-basedatos
Alias para la base de datos del directorio de bases de datos del sistema. Si
no se proporciona ningún alias, se utiliza el nombre de base de datos
especificado.

Capítulo 5. mandatos CLP 145


CREATE DATABASE

USING CODESET conjunto-códigos


Especifica el conjunto de códigos que se debe utilizar para los datos
entrados en esta base de datos. Después de crear la base de datos, no se
puede cambiar el conjunto de códigos especificado.
TERRITORY territorio
Especifica el identificador de territorio o de entorno local que se debe
utilizar para los datos entrados en esta base de datos. Después de crear la
base de datos, no se puede cambiar el territorio especificado. La
combinación de valores del conjunto de códigos y territorio o entorno local
debe ser válida.
COLLATE USING
Identifica el tipo secuencia de clasificación que se debe utilizar para la base
de datos. Una vez que se ha creado la base de datos, no se puede cambiar
la secuencia de clasificación.
En una base de datos Unicode, las tablas y vistas del catálogo siempre se
crean con la clasificación IDENTITY, sin tener en cuenta la clasificación
especificada en la cláusula COLLATE USING. En bases de datos que no
son Unicode, las tablas y vistas del catálogo se crean con la clasificación de
base de datos.
COMPATIBILITY
Secuencia de clasificación de DB2 Versión 2. Algunas tablas de
clasificación se han ampliado. Este parámetro especifica que se
debe utilizar la versión anterior de estas tablas.
IDENTITY
Secuencia de clasificación de identidad, en la que se comparan las
series byte por byte.
IDENTITY_16BIT
Secuencia de ordenación CESU-8 (Esquema de codificación de
compatibilidad para UTF-16: 8 Bits) tal como se especifica en el
documento Unicode Technical Report #26, que está disponible en el
sitio web de Unicode Consortium (www.unicode.org). Este
parámetro sólo se puede especificar al crear una base de datos
Unicode.
clasificación-conocimiento-idioma
Este parámetro sólo se puede utilizar para bases de datos Unicode.
La secuencia de clasificación de la base de datos se basa en la
clasificación SYSTEM correspondiente a una base de datos no
Unicode. Esta serie debe tener el formato
SYSTEM_páginacódigos_territorio. Si la serie especificada no es
válida, no se podrá crear la base de datos (SQLCODE -204; no se
encuentra el objeto). Consulte el apartado “Clasificaciones con
conocimiento de idioma para datos Unicode” para obtener más
formación y para ver los nombres de las clasificaciones basadas en
el sistema.

Nota: Cuando se ejecuta un mandato CREATE DATABASE sobre un


servidor de la Versión 9.0, este parámetro no se puede utilizar Por
omisión, una base de datos Unicode en este tipo de servidor se
creará con la clasificación SYSTEM.
clasificación-sensible-entorno-local
Este parámetro sólo se puede utilizar para bases de datos Unicode.

146 Consulta de mandatos


CREATE DATABASE

Consulte el apartado “Clasificaciones basadas en el algoritmo de


clasificación Unicode” para obtener más información y para ver los
nombres de las clasificaciones basadas en UCA sensibles al entorno
local. Si el nombre de clasificación proporcionado no es válido,
fallará la ejecución del mandato CREATE DATABASE (SQLCODE -204).
NLSCHAR
Secuencia de clasificación incorporada que utiliza las normas de
clasificación exclusiva para el conjunto de códigos/territorio
específico.
Este parámetro sólo se puede utilizar con la página de códigos
tailandesa (CP874). Si se especifica este parámetro en entornos que
no sean el tailandés, el mandato fallará y devolverá el error
SQL1083N con el código de razón 4.
SYSTEM Se trata del parámetro por omisión cuando se crea una base de
datos. Para bases de datos no Unicode, la secuencia de clasificación
se basa en el territorio de la base de datos. Para bases de datos
Unicode, este parámetro se correlaciona con una clasificación en la
que se tiene en cuenta el idioma, basada en el territorio y en el
conjunto de códigos del cliente. Si no hay una clasificación que
tenga en cuenta el idioma disponible, se utiliza la clasificación
IDENTITY.
PAGESIZE entero
Especifica el tamaño de página de la agrupación de almacenamientos
intermedios por omisión junto con los espacios de tablas iniciales
(SYSCATSPACE, TEMPSPACE1, USERSPACE1) cuando se crea la base de
datos. Esto también representa el tamaño de página por omisión para todas
las sentencias CREATE BUFFERPOOL y CREATE TABLESPACE futuras.
Los valores válidos de "entero" sin el sufijo K son 4.096, 8.192, 16.384 o
32.768. Los valores válidos de "entero" con el sufijo K son 4, 8, 16 o 32. Es
necesario como mínimo un espacio entre el entero y el sufijo K. El valor
por omisión es un tamaño de página de 4.096 bytes (4 K).
NUMSEGS númsegs
Especifica el número de directorios (contenedores de espacios de tablas)
que se crearán y utilizarán para almacenar los archivos de tablas de base
de datos para cualquier espacio de tablas SMS por omisión. Este parámetro
no afecta a los espacios de tablas de almacenamiento automático, a los
espacios de tablas DMS, a cualquier espacio de tablas SMS con
características de creación explícitas (creadas al crear la base de datos) o a
cualquier espacio de tablas SMS creado explícitamente después de crear la
base de datos.
DFT_EXTENT_SZ dft_extentsize
Especifica el tamaño de extensión por omisión de los espacios de tablas de
la base de datos.
RESTRICTIVE
Si el parámetro RESTRICTIVE está presente, hará que el parámetro de
configuración de la base de datos restrict_access se establezca en YES y
que no se otorguen automáticamente privilegios ni autorizaciones a
PUBLIC. Si el parámetro RESTRICTIVE no está presente, hará que el
parámetro de configuración de la base de datos restrict_access se
establezca en NO y que se otorguen automáticamente privilegios a PUBLIC.
Para obtener información acerca de los privilegios, consulte el tema que

Capítulo 5. mandatos CLP 147


CREATE DATABASE

trata de los privilegios por omisión otorgados al crear una base de datos
(“Default privileges granted on creating a database”).
CATALOG TABLESPACE defn-espaciotablas
Especifica la definición del espacio de tablas que contendrá las tablas de
catálogos, SYSCATSPACE. Si no se especifica y el almacenamiento
automático no está habilitado para la base de datos, SYSCATSPACE se
creará como un espacio de tablas SMS (espacio gestionado por el sistema)
con el número de directorios NUMSEGS como contenedores y con un tamaño
de extensión de DFT_EXTENTSIZE. Por ejemplo, los siguientes contenedores
se crearían si se especificara NUMSEGS como 5:
/u/smith/smith/NODE0000/SQL00001/SQLT0000.0
/u/smith/smith/NODE0000/SQL00001/SQLT0000.1
/u/smith/smith/NODE0000/SQL00001/SQLT0000.2
/u/smith/smith/NODE0000/SQL00001/SQLT0000.3
/u/smith/smith/NODE0000/SQL00001/SQLT0000.4

Si no se especifica y el almacenamiento automático está habilitado para la


base de datos, SYSCATSPACE se creará como un espacio de tablas de
almacenamiento automático con sus contenedores creados en las vías de
almacenamiento definidas. El tamaño de extensión de este espacio de
tablas es 4. Los valores adecuados para AUTORESIZE, INITIALSIZE,
INCREASESIZE y MAXSIZE se establecen de modo automático.
Consulte la sección “Sentencia CREATE TABLESPACE” para obtener más
información sobre los campos de definición de espacios de tablas.
En un entorno de base de datos particionada, el espacio de tablas de
catálogos sólo se crea en la partición de base de datos de catálogo, la
partición de base de datos en la que se emite el mandato CREATE DATABASE.
USER TABLESPACE defn-espaciotablas
Especifica la definición del espacio de tablas de usuario inicial,
USERSPACE1. Si no se especifica y el almacenamiento automático no está
habilitado para la base de datos, USERSPACE1 se creará como un espacio
de tablas SMS con el número NUMSEGS de directorios como contenedores y
con un tamaño de extensión de DFT_EXTENTSIZE. Por ejemplo, los siguientes
contenedores se crearían si se especificara NUMSEGS como 5:
/u/smith/smith/NODE0000/SQL00001/SQLT0001.0
/u/smith/smith/NODE0000/SQL00001/SQLT0002.1
/u/smith/smith/NODE0000/SQL00001/SQLT0002.2
/u/smith/smith/NODE0000/SQL00001/SQLT0002.3
/u/smith/smith/NODE0000/SQL00001/SQLT0002.4

Si no se especifica y el almacenamiento automático está habilitado para la


base de datos, USERSPACE1 se creará como un espacio de tablas de
almacenamiento automático con sus contenedores creados en las vías de
almacenamiento definidas. El tamaño de extensión de este espacio de
tablas será DFT_EXTENTSIZE. Los valores adecuados para AUTORESIZE,
INITIALSIZE, INCREASESIZE y MAXSIZE se establecen de modo automático.
Consulte la sección “Sentencia CREATE TABLESPACE” para obtener más
información sobre los campos de definición de espacios de tablas.
TEMPORARY TABLESPACE defn-espaciotablas
Especifica la definición del espacio de tablas temporal del sistema inicial,
TEMPSPACE1. Si no se especifica y el almacenamiento automático no está
habilitado para la base de datos, TEMPSPACE1 se creará como un espacio
de tablas SMS con el número NUMSEGS de directorios como contenedores y

148 Consulta de mandatos


CREATE DATABASE

con un tamaño de extensión de DFT_EXTENTSIZE. Por ejemplo, los siguientes


contenedores se crearían si se especificara NUMSEGS como 5:
/u/smith/smith/NODE0000/SQL00001/SQLT0002.0
/u/smith/smith/NODE0000/SQL00001/SQLT0001.1
/u/smith/smith/NODE0000/SQL00001/SQLT0001.2
/u/smith/smith/NODE0000/SQL00001/SQLT0001.3
/u/smith/smith/NODE0000/SQL00001/SQLT0001.4

Si no se especifica y el almacenamiento automático está habilitado para la


base de datos, TEMPSPACE1 se creará como un espacio de tablas de
almacenamiento automático con sus contenedores creados en las vías de
almacenamiento definidas. El tamaño de extensión de este espacio de
tablas es DFT_EXTENTSIZE.
Consulte la sección “Sentencia CREATE TABLESPACE” para obtener más
información sobre los campos de definición de espacios de tablas.
defn-espaciotablas
Se pueden especificar varias definiciones de espacio de tablas mediante los
siguientes parámetros del mandato. En un entorno DB2 pureScale, solo
puede utilizarse MANAGED BY AUTOMATIC STORAGE.
MANAGED BY
SYSTEM USING serie-contenedor
Especifica que el espacio de tablas debe ser un espacio de
tablas SMS. Si no está especificado el tipo de espacio de
tablas, el comportamiento por omisión es crear un espacio
de tablas normal.
Para un espacio de tablas SMS, identifica uno o varios
contenedores que pertenecerán al espacio de tablas y en el
que se almacenarán los datos del espacio de tablas. La
variable serie-contenedor no puede superar los 240 de
longitud.
Cada serie-contenedor puede ser un nombre de directorio
absoluto o relativo.
El nombre del directorio, en el caso de que no sea absoluto,
es relativo al directorio de la base de datos y puede ser un
alias de nombre de vía de acceso (un enlace simbólico en
sistemas operativos UNIX) a almacenamiento que no está
físicamente asociado al directorio de la base de datos. Por
ejemplo, dirbd/work/c1 podría ser un enlace simbólico a
otro sistema de archivos.
Si algún componente del nombre del directorio no existe, el
gestor de bases de datos lo crea. Cuando se descarta un
espacio de tablas, se suprimen todos los componentes
creados por el gestor de bases de datos. Si el directorio
identificado por serie-contenedor existe, no debe contener
ningún archivo ni subdirectorio (SQLSTATE 428B2).
El formato de serie-contenedor depende del sistema
operativo. En los sistemas operativos Windows, un nombre
de vía de acceso de directorio absoluto comienza por una
letra de unidad y un signo de dos puntos (:); en los
sistemas operativos UNIX, comienza por una barra
inclinada (/). Un nombre de vía de acceso relativo en

Capítulo 5. mandatos CLP 149


CREATE DATABASE

cualquier plataforma no comienza por ningún carácter que


dependa del sistema operativo.
En la actualidad sólo se da soporte a recursos remotos
(como, por ejemplo, unidades redirigidas a LAN o sistemas
de archivos montados en NFS) cuando se utiliza Network
Appliance Filers, IBM iSCSI, IBM Network Attached
Storage, Network Appliance iSCSI, NEC iStorage S2100,
S2200 o S4100, o NEC Storage NS Series con un servidor
Windows DB2. Tenga en cuenta que NEC Storage NS
Series sólo recibe soporte con el uso de una fuente de
alimentación ininterrumpible (UPS); se recomienda utilizar
UPS continuo (no en espera). Un sistema de archivos
montado en NFS en AIX se debe montar en modalidad
ininterrumpible utilizando el parámetro -o nointr.

Importante: Para USER TABLESPACE, MANAGED BY


SYSTEM ha quedado en desuso y se puede eliminar en
futuros releases. En su lugar, utilice MANAGE BY
AUTOMATIC STORAGE o MANAGE BY DATABASE.
DATABASE USING
Especifica que el espacio de tablas debe ser un espacio de
tablas DMS. Si no está especificado el tipo de espacio de
tablas, el comportamiento por omisión es crear un espacio
de tablas grande.
Para un espacio de tablas DMS, identifica uno o varios
contenedores que pertenecerán al espacio de tablas y
donde se almacenarán los datos del espacio de tablas. Se
especifican el tipo del contenedor (FILE o DEVICE) y su
tamaño (en páginas de PAGESIZE). Se puede especificar una
combinación de contenedores de tipo FILE y DEVICE. La
variable serie-contenedor no puede superar los 254 de
longitud.
En la actualidad sólo se da soporte a recursos remotos
(como, por ejemplo, unidades redirigidas a LAN o sistemas
de archivos montados en NFS) cuando se utiliza Network
Appliance Filers, IBM iSCSI, IBM Network Attached
Storage, Network Appliance iSCSI, NEC iStorage S2100,
S2200 o S4100, o NEC Storage NS Series con un servidor
Windows DB2. Tenga en cuenta que NEC Storage NS
Series sólo recibe soporte con el uso de una fuente de
alimentación ininterrumpible (UPS); se recomienda utilizar
UPS continuo (no en espera).
Todos los contenedores deben ser únicos en todas las bases
de datos. Un contenedor sólo puede pertenecer a un
espacio de tablas. El tamaño de los contenedores puede
variar; sin embargo, el rendimiento óptimo se consigue
cuando todos los contenedores tienen el mismo tamaño. El
formato exacto de serie-contenedor depende del sistema
operativo.
FILE serie-contenedor número-de-páginas
En el caso de un contenedor de tipo FILE,
serie-contenedor debe ser un nombre de archivo

150 Consulta de mandatos


CREATE DATABASE

absoluto o relativo. El nombre de archivo, si no es


absoluto, será relativo al directorio de la base de
datos. Si algún componente del nombre del
directorio no existe, el gestor de bases de datos lo
crea. Si el archivo no existe, el gestor de bases de
datos lo creará y lo inicializará en el tamaño
especificado. Cuando se descarta un espacio de
tablas, se suprimen todos los componentes creados
por el gestor de bases de datos.

Nota: Si el archivo existe, se sobregraba, y si es


menor de lo especificado, se amplía. El archivo no
se truncará si es más grande de lo que se ha
especificado.
DEVICE serie-contenedor número-de-páginas
Para un contenedor de tipo DEVICE,
serie-contenedor debe ser un nombre de dispositivo.
El dispositivo ya debe existir.
AUTOMATIC STORAGE
Especifica que el espacio de tablas debe ser un espacio de
tablas de almacenamiento automático. Si no existen grupos
de almacenamiento definidos, se devuelve un error
(SQLSTATE 55060).
Un espacio de tablas de almacenamiento automático se
crea como un espacio de tablas gestionado por el sistema
(SMS) si es un espacio de tablas temporal o como un
espacio de tablas gestionado por la base de datos (DMS) si
es un espacio de tablas permanente. Si no está especificado
el tipo de espacio de tablas DMS, el comportamiento por
omisión es crear un espacio de tablas grande. Con un
espacio de tablas de almacenamiento automático, el gestor
de bases de datos determina qué contenedores deben
asignarse al espacio de tablas, basándose en las vías de
acceso de almacenamiento asociadas a la base de datos.
EXTENTSIZE número-de-páginas
Especifica el número de páginas de PAGESIZE que se
grabarán en un contenedor antes de pasar al siguiente
contenedor. El valor del tamaño de extensión también
puede especificarse como un valor entero seguido de K
(para kilobytes) o M (para megabytes). Si se especifica de
este modo, se utiliza el límite inferior del número de bytes
dividido por el tamaño de página para determinar el valor
del tamaño de extensión. El gestor de bases de datos pasa
periódicamente por los contenedores a medida que se
almacenan datos.
El valor por omisión lo proporciona el parámetro de
configuración de la base de datos dft_extent_sz, que tiene
un rango válido de 2 a 256 páginas.
PREFETCHSIZE número-de-páginas
Especifica el número de páginas PAGESIZE del espacio de
tablas que se leerán cuando se realice la captación previa
de datos. El valor del tamaño de captación previa también
puede especificarse como un valor entero seguido de K

Capítulo 5. mandatos CLP 151


CREATE DATABASE

(para kilobytes), M (para megabytes) o G(para gigabytes). Si


se especifica de este modo, se utiliza el límite inferior del
número de bytes dividido por el tamaño de página para
determinar el valor correspondiente al número de páginas
para el tamaño de captación previa.
OVERHEAD número-de-milisegundos
Número que especifica el tiempo de latencia, búsqueda de
disco y uso de controlador de E/S en milisegundos. Este
valor sirve para determinar el coste de E/S durante la
optimización de una consulta. El valor de
número-de-milisegundos es cualquier literal numérico (entero,
decimal o coma flotante). Si este valor no es el mismo para
todos los contenedores, el número debe ser el promedio de
todos los contenedores que pertenecen al espacio de tablas.
Para una base de datos creada en la Versión 9 o posterior,
el tiempo de latencia, búsqueda de disco y uso de
controlador de E/S por omisión son 7,5 milisegundos. Para
una base de datos que se ha actualizado desde una versión
anterior de DB2 a la versión 9 o posterior, el valor por
omisión es 12,67 milisegundos.
TRANSFERRATE número-de-milisegundos
Especifica el tiempo necesario para leer una página en
memoria. Este valor sirve para determinar el coste de E/S
durante la optimización de una consulta. El valor de
número-de-milisegundos es cualquier literal numérico (entero,
decimal o coma flotante). Si este valor no es el mismo para
todos los contenedores, el número debe ser el promedio de
todos los contenedores que pertenecen al espacio de tablas.
Para una base de datos creada en la versión 9 o posterior,
el tiempo por omisión para leer una página de la memoria
es de 0,06 milisegundos. Para una base de datos que se ha
actualizado desde una versión anterior de DB2 a la Versión
9 o posterior, el valor por omisión es 0,18 milisegundos.
NO FILE SYSTEM CACHING
Especifica que todas las operaciones de E/S deben saltarse
la antememoria de nivel del sistema de archivos. Consulte
“Espacios de tablas sin almacenamiento en antememoria
del sistema de archivos” para obtener más detalles. Se trata
del parámetro por omisión en la mayoría de las
configuraciones. Consulte “Configuraciones de colocación
en antememoria del sistema de archivos” para ver los
detalles.
FILE SYSTEM CACHING
Especifica que todas las operaciones de E/S del espacio de
tablas de destino deben colocarse en antememoria a nivel
de sistema de archivos. Consulte “Espacios de tablas sin
almacenamiento en antememoria del sistema de archivos”
para obtener más detalles. Se trata del parámetro por
omisión en algunas configuraciones. Consulte
“Configuraciones de colocación en antememoria del
sistema de archivos” para ver los detalles.

152 Consulta de mandatos


CREATE DATABASE

AUTORESIZE
Especifica si debe habilitarse o no la posibilidad de
cambiar automáticamente el tamaño de un espacio de
tablas DMS o de un espacio de tablas de almacenamiento
automático. Los espacios de tablas de redimensionamiento
automático aumentan automáticamente de tamaño cuando
se llenan. El valor por omisión es NO para los espacios de
tablas DMS y YES para los espacios de tablas de
almacenamiento automático.
NO Especifica que debe inhabilitarse la posibilidad de
cambiar automáticamente el tamaño de un espacio
de tablas DMS o de un espacio de tablas de
almacenamiento automático.
YES Especifica que debe habilitarse la posibilidad de
cambiar automáticamente el tamaño de un espacio
de tablas DMS o de un espacio de tablas de
almacenamiento automático.
INITIALSIZE entero
Especifica el tamaño inicial, por partición de base de datos,
de un espacio de tablas de almacenamiento automático.
Este parámetro sólo es válido para espacios de tablas de
almacenamiento automático. El valor entero debe ir
seguido de K (kilobytes), M (megabytes) o G (gigabytes).
Tenga en cuenta que el valor real utilizado puede ser
ligeramente inferior al especificado, ya que el gestor de
bases de datos procura mantener un tamaño coherente en
los contenedores del espacio de tablas. Además, si el
espacio de tablas permite cambiar el tamaño
automáticamente y el tamaño inicial no es lo
suficientemente grande para contener los metadatos que se
deben añadir al nuevo espacio de tablas, el gestor de bases
de datos seguirá ampliando el espacio de tablas mediante
el valor de INCREASESIZE hasta que haya espacio suficiente.
Si no se especifica la cláusula INITIALSIZE, el gestor de
bases de datos determinará un valor apropiado. El valor
para entero debe ser como mínimo 48 K.
K K (kilobytes).
M M (megabytes).
G G (gigabytes).
INCREASESIZE entero
Especifica la cantidad, por partición de base de datos, en la
que aumentará automáticamente un espacio de tablas
habilitado para cambiar de tamaño automáticamente,
cuando se llene el espacio de tablas y se haya efectuado
una petición de espacio. El valor entero debe ir seguido de:
v PERCENT para especificar la cantidad como porcentaje del
tamaño de espacio de tablas en el momento en el que se
efectúe una petición de espacio. Cuando se especifique
PERCENT, el valor entero debe estar entre 0 y 100
(SQLSTATE 42615).
v K (de kilobytes), M (de megabytes) o G (de gigabytes) para
especificar la cantidad en bytes.

Capítulo 5. mandatos CLP 153


CREATE DATABASE

Tenga en cuenta que el valor real utilizado puede ser


ligeramente inferior o superior al especificado, ya que el
gestor de bases de datos procura mantener un incremento
coherente en los contenedores del espacio de tablas. Si el
espacio de tablas es de redimensionamiento automático
pero no se especifica la cláusula INCREASESIZE, el gestor de
bases de datos determina el valor adecuado.
PERCENT
Porcentaje comprendido entre 0 y 100.
K K (para kilobytes).
M M (para megabytes).
G G (para gigabytes).
MAXSIZE
Especifica el tamaño máximo hasta el que se puede
aumentar automáticamente un espacio de tablas habilitado
para redimensionamiento automático. Si el espacio de
tablas es de redimensionamiento automático pero no se
especifica la cláusula MAXSIZE, el valor por omisión es NONE.
NONE Especifica que el espacio de tablas puede crecer
hasta la capacidad del sistema de archivos o hasta
el tamaño máximo del espacio de tablas.
entero Especifica un límite fijo sobre el tamaño, por
partición de base de datos, hasta el cual puede
aumentar automáticamente un espacio de tablas
DMS o un espacio de tablas de almacenamiento
automático. El valor entero debe ir seguido de K
(kilobytes), M (megabytes) o G (gigabytes). Tenga en
cuenta que el valor real utilizado puede ser
ligeramente inferior al especificado, ya que el
gestor de bases de datos procura mantener un
incremento coherente en los contenedores del
espacio de tablas.
K K (kilobytes).
M M (megabytes).
G G (gigabytes).
WITH serie-comentario
Describe la entrada de base de datos en el directorio de bases de datos. Se
puede entrar cualquier comentario que ayude a describir la base de datos.
La longitud máxima es de 30 caracteres. No se permiten caracteres de
retorno de carro ni de salto de línea. El texto de comentario debe escribirse
entre comillas simples o comillas dobles.
AUTOCONFIGURE
Basándose en la entrada de usuario, calcula los valores recomendados para
el tamaño de agrupación de almacenamientos intermedios, la configuración
de base de datos y la configuración de gestor de bases de datos y,
opcionalmente, los aplica. Cuando se emite el mandato CREATE DATABASE, el
Asesor de configuración se ejecuta por omisión. El parámetro
AUTOCONFIGURE sólo es necesario si se desean retocar las recomendaciones.
USING palabraclave-entrada valor-parám

154 Consulta de mandatos


CREATE DATABASE

Tabla 9. Palabras claves de entrada y valores de parámetro válidos


Palabra clave Valores válidos Valor por omisión Explicación
mem_percent 1–100 25 Porcentaje de
memoria de instancia
que se asigna a la
base de datos. Sin
embargo, si el
mandato CREATE
DATABASE invoca al
asesor de
configuración y no se
especifica un valor
para mem_percent, el
porcentaje se calcula
en función del uso de
memoria de la
instancia y del
sistema hasta un
máximo del 25% de
la memoria de
instancia.
workload_type simple, mixed, mixed Las cargas de trabajo
complex sencillas tienden a
tener una actividad
intensiva de E/S y
principalmente de
transacciones,
mientras que las
cargas de trabajo
complejas tienden a
tener una actividad
intensiva de CPU y
principalmente de
consultas.
num_stmts 1–1 000 000 25 Número de
sentencias por
unidad de trabajo
tpm 1–200 000 60 Transacciones por
minuto
admin_priority performance, both Optimizar para
recovery, both obtener un
rendimiento mejor
(más transacciones
por minuto) o un
tiempo de
recuperación mejor
num_local_apps 0–5 000 0 Número de
aplicaciones locales
conectadas
num_remote_apps 0–5 000 100 Número de
aplicaciones remotas
conectadas

Capítulo 5. mandatos CLP 155


CREATE DATABASE

Tabla 9. Palabras claves de entrada y valores de parámetro válidos (continuación)


Palabra clave Valores válidos Valor por omisión Explicación
isolation RR, RS, CS, UR RR Nivel de aislamiento
de aplicaciones que
se conectan con esta
base de datos (RR:
Lectura repetible; RS:
Estabilidad de
lectura; CS:
Estabilidad de cursor;
UR: Lectura no
confirmada)
bp_resizeable yes, no yes ¿Puede modificarse el
tamaño de las
agrupaciones de
almacenamientos
intermedios?

APPLY
DB ONLY
Muestra los valores recomendados para la configuración de
la base de datos y los valores de la agrupación de
almacenamientos intermedios según la configuración actual
del gestor de bases de datos. Aplica los cambios
recomendados a los valores de configuración de la base de
datos y de la agrupación de almacenamientos intermedios.
DB AND DBM
Visualiza y aplica los cambios recomendados a la
configuración del gestor de bases de datos, la configuración
de la base de datos y los valores de la agrupación de
almacenamientos intermedios.
NONE Inhabilita el Asesor de configuración (está habilitado por
omisión).
v Si se especifica la palabra clave AUTOCONFIGURE con el mandato CREATE
DATABASE, el valor de la variable DB2_ENABLE_AUTOCONFIG_DEFAULT no se
tendrá en cuenta. Se habilitarán la Memoria de ajuste automático
adaptable y Ejecutar estadísticas de forma automática, y el Asesor de
configuración ajustará los parámetros de configuración de la base de
datos y los parámetros de configuración del gestor de bases de datos tal
como indican los parámetros APPLY DB o APPLY DBM.
v Si se especifica el parámetro AUTOCONFIGURE con el mandato CREATE
DATABASE en una base de datos, se recomendará la habilitación del Gestor
de memoria de ajuste automático. Sin embargo, si ejecuta el mandato
AUTOCONFIGURE en una instancia en la que sheapthres no es cero, el
ajuste de memoria de clasificación (sortheap) no se habilitará
automáticamente. Para habilitar el ajuste de memoria de clasificación
(sortheap), debe establecer que sheapthres sea igual a cero mediante la
utilización del mandato UPDATE DATABASE MANAGER CONFIGURATION. Tenga
en cuenta que el hecho de cambiar el valor de sheapthres podría afectar
al uso de memoria de clasificación de las bases de datos que existían
anteriormente.

156 Consulta de mandatos


CREATE DATABASE

Ejemplos

Varios ejemplos del mandato CREATE DATABASE son los siguientes:

Ejemplo 1:
CREATE DATABASE TESTDB3

La base de datos TESTDB3 se crea en la unidad que es valor del parámetro de


configuración del gestor de bases de datos dftdbpath . Por omisión, se crea el
grupo de almacenamiento IBMSTOGROUP con la vía de acceso dftdbpath.

Ejemplo 2:
CREATE DATABASE TESTDB7 ON C:,D:

La base de datos TESTDB7 se crea en la unidad C: (primera unidad de la lista de


vías de acceso de almacenamiento). El grupo de almacenamiento IBMSTOGROUP
tiene vías de acceso de almacenamiento C: y D:.

Ejemplo 3:
CREATE DATABASE TESTDB15
ON C:,D: DBPATH ON E:

La base de datos TESTDB15 se crea en la unidad E: (listada explícitamente como


DBPATH). El grupo de almacenamiento IBMSTOGROUP tiene vías de acceso de
almacenamiento C: y D:.

Notas de uso

El mandato CREATE DATABASE:


v Crea una base de datos en el subdirectorio especificado. En un entorno de base
de datos particionada, crea la base de datos en todas las particiones de base de
datos listadas en db2nodes.cfg y crea en cada partición de base de datos un
directorio $DB2INSTANCE/NODExxxx bajo el subdirectorio especificado. En un
entorno de base de datos de una sola partición, crea un directorio
$DB2INSTANCE/NODE0000 bajo el subdirectorio especificado.
v Crea las tablas de catálogos del sistema y la anotación cronológica de
recuperación.
v Cataloga la base de datos en los directorios de bases de datos siguientes:
– Directorio de bases de datos locales del servidor en la vía de acceso indicada
por vía-acceso o, si no se especifica la vía de acceso, la vía de acceso de base
de datos por omisión definida en el archivo de configuración del sistema
gestor de bases de datos por el parámetro dftdbpath. En cada sistema de
archivos que contiene una base de datos reside un directorio de bases de
datos local.
– Directorio de bases de datos del sistema del servidor para la instancia
conectada. La entrada de directorio resultante contendrá el nombre de base de
datos y un alias de base de datos.
Si el mandato se ha emitido desde un cliente remoto, el directorio de bases de
datos del sistema del cliente también se actualiza con el nombre de base de
datos y un alias.
Crea un sistema o un directorio de bases de datos locales si no existe ninguno
de los dos. Si se han especificado, los valores de comentario y de conjunto de
códigos se colocan en ambos directorios.

Capítulo 5. mandatos CLP 157


CREATE DATABASE

Nota: Si no se establece el cambio de la base de datos mediante el parámetro de


configuración de vía de acceso newlogpath, el valor por omisión de la ubicación
del parámetro de configuración de los archivos de anotaciones cronológicas
logpath es la vía de acceso que muestra el parámetro DBPATH ON. Se recomienda
utilizar el parámetro DBPATH ON cuando se habilita el almacenamiento automático
para mantener la información de la base de datos separada de los datos de la
base de datos.
v Almacena el conjunto de códigos, el territorio y la secuencia de clasificación que
se han especificado. Se establece un distintivo en el archivo de configuración de
base de datos si la secuencia de clasificación consta de valores exclusivos o si es
la secuencia de identidad.
v Crea los esquemas denominados SYSCAT, SYSFUN, SYSIBM y SYSSTAT con
SYSIBM como propietario. El servidor de particiones de base de datos en el que
se emite este mandato se convierte en la partición de base de datos de catálogo
para la nueva base de datos. Se crean automáticamente dos grupos de
particiones de base de datos: IBMDEFAULTGROUP e IBMCATGROUP.
v Vincula los archivos de vinculación del gestor de bases de datos definidos
anteriormente a la base de datos (éstos se listan en la lista de archivos de
vinculación de programas de utilidad, db2ubind.lst). Si uno o varios de estos
archivos no se vinculan satisfactoriamente, CREATE DATABASE devuelve un aviso
en SQLCA y proporciona información acerca de las vinculaciones que han
fallado. Si falla una vinculación, el usuario puede realizar la acción correctiva y
vincular manualmente el archivo anómalo. De todos modos se crea la base de
datos. Un esquema denominado NULLID se crea implícitamente al efectuar las
vinculaciones con el privilegio CREATEIN otorgado a PUBLIC, en el caso de que
no se haya seleccionado el parámetro RESTRICTIVE.
La lista de archivos de vinculación de programas de utilidad contiene dos
archivos de vinculación que no se pueden vincular en servidores de versiones
anteriores:
– db2ugtpi.bnd no se puede vincular en servidores DB2 Versión 2.
– db2dropv.bnd no se puede vincular en servidores DB2 Parallel Edition Versión
1.
Si se vincula db2ubind.lst en un servidor que no esté al último nivel, se
devuelven avisos que pertenecen a estos dos archivos y dichos avisos se pueden
pasar por alto.
v Crea los espacios de tablas SYSCATSPACE, TEMPSPACE1 y USERSPACE1. El
espacio de tablas SYSCATSPACE sólo se crea en la partición de base de datos de
catálogo.
v Para obtener información acerca de los privilegios otorgados al crear una base de
datos, consulte el tema correspondiente (“Default privileges granted on creating
a database”).

Nota: Si el parámetro RESTRICTIVE está presente, hará que el parámetro de


configuración de la base de datos restrict_access se establezca en YES y que no
se otorguen automáticamente privilegios ni autorizaciones a PUBLIC. Para
obtener más información, consulte el parámetro RESTRICTIVE del mandato
CREATE DATABASE.

El almacenamiento automático es una colección de vías de acceso de


almacenamiento asociadas a un grupo de almacenamiento en el que se pueden
crear espacios de tablas sin tener que especificar explícitamente definiciones de
contenedor (vea la “sentencia CREATE TABLESPACE” para obtener más
información). El almacenamiento automático está habilitado por omisión, pero

158 Consulta de mandatos


CREATE DATABASE

puede inhabilitarse explícitamente para una base de datos al crearla. El


almacenamiento automático puede inhabilitarse durante la creación de la base de
datos especificando el parámetro AUTOMATIC STORAGE NO.

Cuando se calcula es espacio libre para una vía de acceso de almacenamiento


automático para una partición de base de datos determinada, el gestor de bases de
datos comprobará la existencia de los siguientes directorios o puntos de montaje de
la vía de acceso de almacenamiento y utilizará el primero que encuentre. Haciendo
esto, los sistemas de archivos pueden montarse en un punto por debajo de la vía
de acceso de almacenamiento y el gestor de bases de datos reconocerá que la
cantidad real de espacio libre disponible para los contenedores de espacios de
tablas puede que no sea la misma cantidad que la asociada con el propio directorio
de la vía de acceso de almacenamiento.
1. vía_acceso_almac/nombre_instancia/NODE####/nombre_base_datos
2. vía_acceso_almac/nombre_instancia/NODE####
3. vía_acceso_almac/nombre_instancia
4. vía_acceso_almac/

Donde
v vía_acceso_almac es una vía de acceso de almacenamiento asociada con la base de
datos.
v nombre_instancia es la instancia en la que reside la base de datos.
v NODE#### corresponde al número de partición de base de datos (por ejemplo
NODE0000 o NODE0001).
v nombre_base_datos es el nombre de la base de datos.

Veamos un ejemplo en que hay dos particiones lógicas de base de datos en una
máquina física y la base de datos se va a crear con una sola vía de acceso de
almacenamiento: /db2data. Cada partición de base de datos utilizará esta vía de
acceso de almacenamiento pero el usuario tal vez desee aislar los datos de cada
partición en su propio sistema de archivos. En este caso, puede crearse un sistema
de archivos distinto para cada partición, que se montará en /db2data/instancia/
NODE####. Al crear contenedores en la vía de acceso de almacenamiento y
determinar el espacio libre, el gestor de bases de datos no sabría cómo recuperar la
información de espacio libre para /db2data, y en su lugar recuperaría la
correspondiente al directorio /db2data/instancia/NODE####.

En general, deben utilizarse las mismas vías de acceso de almacenamiento para


cada partición de una base de datos de varias particiones y todas deben existir
antes de ejecutar el mandato CREATE DATABASE. Una excepción a esta regla es el
caso de que se utilicen expresiones de partición de base de datos en la vía de
acceso de almacenamiento. Esto permite que el número de partición de base de
datos quede reflejado en la vía de acceso de almacenamiento, de manera que el
nombre de vía de acceso resultante es distinto para cada partición.

En un entorno de base de datos particionada, el gestor de bases de datos crea un


subdirectorio, $DB2INSTANCE/NODExxxx, bajo la vía de acceso especificada o por
omisión en todas las particiones de base de datos. xxxx es el número de partición
de base de datos tal como está definido en el archivo db2nodes.cfg (es decir, la
partición de base de datos 0 se convierte en NODE0000). Los subdirectorios SQL00001
a SQLnnnnn residirán en esta vía de acceso. Esto asegura que los objetos de base de
datos asociados a particiones de base de datos diferentes se almacenen en
directorios diferentes (incluso si todas las particiones de base de datos comparten
el subdirectorio $DB2INSTANCE bajo la vía de acceso especificada o por omisión).

Capítulo 5. mandatos CLP 159


CREATE DATABASE

Si se habilita el soporte de LDAP (Lightweight Directory Access Protocol) en la


máquina actual, la base de datos se registrará automáticamente en el directorio
LDAP. Si en el directorio LDAP ya existe un objeto de base de datos del mismo
nombre, la base de datos se creará de todos modos en la máquina local, pero se
devolverá un mensaje de aviso, indicando que existe un conflicto de denominación.
En este caso, el usuario puede catalogar manualmente una entrada de base de
datos LDAP utilizando el mandato CATALOG LDAP DATABASE.

CREATE DATABASE fallará si la aplicación ya está conectada a una base de datos.

Cuando se crea una base de datos, se crea un supervisor de sucesos de punto


muerto detallado. Como sucede con cualquier supervisor, existe uso de proceso
adicional asociado a este supervisor de sucesos. Puede descartar el supervisor de
sucesos de punto muerto emitiendo el mandato DROP EVENT MONITOR.

Utilice CATALOG DATABASE para definir nombres de alias diferentes para la nueva
base de datos.

La combinación de valores de conjunto de códigos y territorio debe ser válida.


Para ver una lista de las combinaciones soportadas, consulte el apartado “Códigos
de territorio y páginas de códigos soportados”.

Para especificar una vía de acceso de base de datos (en vez de una unidad) en un
sistema operativo Windows, debe establecer la variable de registro de DB2:
DB2_CREATE_DB_ON_PATH=YES.

Utilice la cláusula COLLATE USING con una recopilación-que-considera-idioma o


recopilación-sensible-al-entorno-local en lugar de UCA400_NO, UCA400_LSK o
UCA400_LTH.

Importante: Las clasificaciones basadas en el Algoritmo de clasificación Unicode


del estándar Unicode versión 4.0.0 han quedado en desuso en la Versión 10.1 y
podrían eliminarse en un release futuro. Para obtener más información, consulte el
tema “Las clasificaciones basadas en el Algoritmo de clasificación Unicode del
estándar Unicode versión 4.0.0 han quedado en desuso” en Novedades en DB2
Versión 10.1
Información relacionada

160 Consulta de mandatos


CREATE TOOLS CATALOG

CREATE TOOLS CATALOG


Crea las tablas del catálogo de herramientas de DB2 en una base de datos nueva o
existente. El catálogo de herramientas contiene información acerca de las tareas
administrativas que el usuario tiene disponibles.

La base de datos debe ser local.

Opcionalmente, este mandato forzará a todas las aplicaciones a detener y reiniciar


el gestor de bases de datos si se crean nuevos espacios de tablas para el catálogo
de herramientas. También actualizará la configuración del Servidor de
administración de DB2 (DAS) y activará el planificador.

Este mandato no es válido en IBM Data Server Client.

Ámbito

El nodo desde el que se emite este mandato se convierte en el nodo de catálogo


para la nueva base de datos.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
El usuario también debe tener autorización DASADM para actualizar los
parámetros de configuración del Servidor de administración de DB2.

Conexión necesaria

Este mandato establece temporalmente una conexión de base de datos durante el


proceso. Opcionalmente, este mandato detendrá y reiniciará el gestor de bases de
datos si se crean nuevos espacios de tablas.

Sintaxis del mandato

 CREATE TOOLS CATALOG nombre-catálogo 

 CREATE NEW DATABASE nombre-base-datos 


USE EXISTING DATABASE nombre-base-datos
TABLESPACE nombre-espacio-tablas IN

 
FORCE KEEP INACTIVE

Parámetros del mandato


CATALOG nombre-catálogo
Nombre que se debe utilizar para identificar exclusivamente el catálogo de
herramientas de DB2. Las tablas de catálogos se crean bajo este nombre de
esquema.
NEW DATABASE nombre-basedatos
Nombre que se debe asignar a la nueva base de datos. Debe ser un nombre
exclusivo que distinga la base de datos de cualquier otra base de datos en

Capítulo 5. mandatos CLP 161


CREATE TOOLS CATALOG

el directorio de bases de datos local o en el directorio de bases de datos del


sistema. El nombre debe adaptarse a los convenios de denominación para
bases de datos.
EXISTING DATABASE nombre-basedatos
Nombre de una base de datos existente que ha de albergar el catálogo de
herramientas. Debe ser una base de datos local.
EXISTING TABLESPACE nombre-espacio-tablas
Nombre que se debe utilizar para especificar el espacio de tablas de
páginas de 32 K existente utilizado para crear las tablas del catálogo de
herramientas de DB2. Para que las tablas se creen satisfactoriamente,
también debe existir un espacio de tablas temporal con un tamaño de
página de 32 K.
FORCE
Al crear un catálogo de herramientas en un nuevo espacios de tablas, se
debe reiniciar el gestor de bases de datos, lo que requiere que no haya
ninguna aplicación conectada. Utilice la opción FORCE para asegurar que no
se conecte ninguna aplicación a la base de datos. Si se conectan
aplicaciones, la creación del catálogo de herramientas fallará, a menos que
se especifique un espacio de tablas existente.
KEEP INACTIVE
Esta opción no actualizará los parámetros de configuración del Servidor de
administración de DB2 ni habilitará el planificador.

Ejemplos
db2 create tools catalog cc create new database toolsdb

db2 create tools catalog catalog1 use existing database toolsdb force

db2 create tools catalog catalog1 use existing tablespace user32Ksp


in database toolsdb

db2 create tools catalog toolscat use existing database toolsdb keep inactive

Notas de uso
v Las tablas de catálogos de herramientas requieren dos espacios de tablas de
página de 32 K (regular y temporal). Además, a menos que especifique espacios
de tablas existentes, se creará una nueva agrupación de almacenamientos
intermedios de 32 K para el espacio de tablas. Esto requiere que se reinicie el
gestor de bases de datos. Si se debe reiniciar el gestor de bases de datos, hay
que forzar la desactivación de todas las aplicaciones existentes. Los nuevos
espacios de tablas se crean con un solo contenedor cada uno en la vía de acceso
del directorio de base de datos por omisión.
v Si existe un catálogo activo con este nombre antes de ejecutar este mandato, se
desactiva y el nuevo catálogo se convierte en el catálogo activo.
v Se pueden crear múltiples catálogos de herramientas de DB2 en la misma base
de datos y se identifican de forma exclusiva por el nombre de catálogo.
v El parámetro de configuración jdk_path se debe establecer en la configuración
del Servidor de administración de DB2 (DAS) en el nivel mínimo soportado del
SDK para Java.
v Para actualizar los parámetros de configuración de DAS se necesita la
autorización DASADM sobre el servidor de administración de DB2.

162 Consulta de mandatos


CREATE TOOLS CATALOG

v A menos que se especifique la opción KEEP INACTIVE, este mandato actualiza los
parámetros de configuración de DAS locales relacionados con la configuración
de base de datos del catálogo de herramientas de DB2 y habilita el planificador
en el servidor DAS local.
v El parámetro de configuración jdk_64_path se debe establecer si se va a crear un
catálogo de herramientas sobre una instancia de 64 bits en una de las
plataformas que soportan tanto instancias de 32 bits como de 64 bits (AIX,
HP-UX y Solaris).
v En entornos de bases de datos particionadas, el espacio de tablas REGULAR
(normal) de 32 KB debe existir en la partición de catálogo; de lo contrario, el
mandato (como el que se muestra a continuación) fallará cuando se especifique
un espacio de tablas:
db2 create tools catalog catalog1 use existing tablespace user32Ksp
in database toolsdb

Capítulo 5. mandatos CLP 163


DEACTIVATE DATABASE

DEACTIVATE DATABASE
Desactiva la base de datos especificada y detiene todos los servicios de base de
datos necesarios.

Ámbito

Este mandato desactiva la base de datos de destino en todos los miembros de la


instancia o un miembro especificado. Si uno o varios de estos miembros
encuentran un error durante una desactivación, se devuelve un aviso. La base de
datos permanece activa en estos miembros.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT

Conexión necesaria

Ninguna

Sintaxis del mandato


 DEACTIVATE DATABASE alias-base-datos 
DB

 
identificadores FORCE
MEMBER

 
USER nombre-usuario
USING contraseña

Parámetros del mandato


DATABASE | DB alias-base-datos
Especifica el alias de la base de datos que se debe detener.
MEMBER
Especifica uno o varios miembros en los que se desactivará la base de
datos.
identificadores
Especifica el identificador numérico de uno o varios miembros en
los que se desactivará la base de datos. Puede utilizar el
identificador numérico sin especificar la palabra clave del
parámetro MEMBER.
FORCE
Fuerza la desactivación de una base de datos aunque existan transacciones
dudosas.

Nota: Se devuelve un error si intenta desactivar una base de datos sin


utilizar la opción FORCE con transacciones dudosas existentes.

164 Consulta de mandatos


DEACTIVATE DATABASE

USER nombreusuario
Especifica el usuario que detiene la base de datos.
USING contraseña
Especifica la contraseña para el nombre de usuario.

Notas de uso
v Una aplicación que emite el mandato DEACTIVATE DATABASE no puede tener una
conexión de base de datos activa con ninguna base de datos.
v Las bases de datos inicializadas por el mandato ACTIVATE DATABASE pueden
cerrarse emitiendo el mandato DEACTIVATE DATABASE o db2stop. Si el mandato
ACTIVATE DATABASE se inicializa una base de datos, la última aplicación que se
desconecte de la base de datos no cerrará la base de datos y se deberá utilizar el
mandato DEACTIVATE DATABASE.
v En un entorno DB2 pureScale, una base de datos activa en un miembro
solamente puede desactivarse en ese miembro si se emite el mandato DEACTIVATE
DATABASE o db2stop.

Compatibilidades

Para mantener la compatibilidad con las versiones anteriores:


v DBPARTITIONNUM puede sustituirse por MEMBER, salvo cuando la variable de
registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.
Información relacionada

Capítulo 5. mandatos CLP 165


DECOMPOSE XML DOCUMENT

DECOMPOSE XML DOCUMENT


Invoca un procedimiento almacenado para descomponer un solo documento XML
utilizando un esquema XML registrado y habilitado para la descomposición.

Autorización

Se necesita uno de los siguientes grupos de privilegios o autorizaciones:


v Una de las autorizaciones siguientes:
– Privilegio CONTROL en todas las tablas de destino a las que se hace
referencia en el conjunto de documentos de esquema anotados
– Autorización DATAACCESS
v Todos estos privilegios:
– Privilegios INSERT sobre la tabla de destino, según lo exija la operación
especificada en el archivo de acción
– Privilegio SELECT, INSERT, UPDATE o DELETE, según se necesite, sobre
cualquier tabla a la que se haga referencia en la anotación db2-xdb:expression
o db2-xdb:condition

Si se especifica la opción VALIDATE, también es necesario el privilegio USAGE sobre


el esquema XML.

Conexión necesaria

Base de datos

Sintaxis del mandato


 DECOMPOSE XML DOCUMENT nombre-documento-xml 

 XMLSCHEMA nombre-esquema-xml 
VALIDATE

Parámetros del mandato


DECOMPOSE XML DOCUMENT nombre-documento-xml
nombre-documento-xml es la vía de acceso de archivo y el nombre de archivo
del documento XML de entrada que hay que descomponer.
XMLSCHEMA nombre-esquema-xml
nombre-esquema-xml es el nombre de un esquema XML existente registrado
en el depósito de esquemas XML para utilizarlo en la descomposición de
documentos. nombre-esquema-xml es un identificador de SQL calificado que
consta de un nombre de esquema de SQL opcional seguido de un punto y
del nombre de esquema XML. Si el nombre de esquema de SQL no se
especifica, se entiende que es el valor del registro especial CURRENT
SCHEMA de DB2.
VALIDATE
Este parámetro indica que primero hay que validar el documento XML de
entrada y después, si es válido, descomponerlo. Si no se especifica
VALIDATE, el documento XML de entrada no se validará antes de la
descomposición.

166 Consulta de mandatos


DECOMPOSE XML DOCUMENT

Ejemplos

El ejemplo siguiente especifica que el documento XML ./gb/document1.xml se tiene


que validar y descomponer con el esquema XML registrado
DB2INST1.GENBANKSCHEMA.
DECOMPOSE XML DOCUMENT ./gb/document1.xml
XMLSCHEMA DB2INST1.GENBANKSCHEMA
VALIDATE

El siguiente ejemplo especifica que el documento XML ./gb/document2.xml se tiene


que descomponer, sin antes validarlo, con el esquema XML registrado
DB2INST2."GENBANK SCHEMA1", suponiendo que el valor del registro especial
CURRENT SCHEMA de DB2 es igual a DB2INST2.
DECOMPOSE XML DOCUMENT ./gb/document2.xml
XMLSCHEMA "GENBANK SCHEMA1"

Capítulo 5. mandatos CLP 167


DECOMPOSE XML DOCUMENTS

DECOMPOSE XML DOCUMENTS


Descompone los documentos XML almacenados en una columna de base de datos.
Los datos de los documentos XML se guardan en columnas de tablas relacionales
basadas en las anotaciones específicas en un esquema XML.

El mandato DECOMPOSE XML DOCUMENTS invoca al procedimiento


almacenado XDB_DECOMP_XML_FROM_QUERY para descomponer uno o más
documentos XML procedentes de una columna XML o binaria utilizando para ello
un esquema XML registrado y habilitado para la descomposición.

Autorización

Se necesita uno de los grupos de privilegios siguientes:


v Todos estos privilegios:
– Privilegio INSERT en todas las tablas de destino a las que se hace referencia
en el esquema anotado
– Privilegio SELECT para la tabla, vista o alias donde está la columna que
contiene los documentos de entrada
– Privilegio SELECT, INSERT, UPDATE o DELETE, según se necesite, sobre
cualquier tabla a la que se haga referencia en la anotación db2-xdb:expression
o db2-xdb:condition
v Una de las autorizaciones siguientes:
– Privilegio CONTROL en todas las tablas a las que se hace referencia en el
conjunto de documentos de esquema anotados y en la tabla, vista o alias
donde está la columna que contiene los documentos de entrada
– Autorización DATAACCESS

Si se ha especificado la opción VALIDATE, también es necesario el privilegio USAGE


sobre el esquema XML.

Conexión necesaria

Base de datos

Sintaxis del mandato


 DECOMPOSE XML DOCUMENTS IN sentencia-select XMLSCHEMA 

ALLOW NO ACCESS
 nombre-esquema-xml 
VALIDATE ALLOW ACCESS

 
COMMITCOUNT entero CONTINUE_ON_ERROR

 
MESSAGES archivo-mensajes

168 Consulta de mandatos


DECOMPOSE XML DOCUMENTS

Parámetros del mandato


DECOMPOSE XML DOCUMENTS IN sentencia-select
La sentencia-select es conforme a las normas de una sentencia de SQL SELECT,
y debe devolver un conjunto de resultados con dos columnas. La primera
columna es el identificador de documento. Cada identificador de documento
identifica de forma exclusiva un documento XML que se va a descomponer. La
columna debe tener el tipo carácter o poderse convertir a él. La segunda
columna contiene los documentos XML que se van a descomponer. Los tipos
que reciben soporte para la columna de documentos son XML, BLOB,
VARCHAR FOR BIT DATA y LONG VARCHAR FOR BIT DATA. La columna
que contiene los documentos XML debe resolverse en una columna de una
tabla base subyacente; la columna no puede ser una columna generada.
Por ejemplo, la columna DOCID de la sentencia SELECT siguiente contiene los
identificadores exclusivos de los documentos XML almacenados en la columna
SALESDOC.
SELECT DOCID, SALESDOC FROM SALESTAB
XMLSCHEMA nombre-esquema-xml
nombre-esquema-xml es el nombre de un esquema XML existente registrado en
el depósito de esquemas XML para utilizarlo en la descomposición de
documentos. nombre-esquema-xml es un identificador de SQL calificado que
consta de un nombre de esquema de SQL opcional seguido de un punto y del
nombre de esquema XML. Si el nombre de esquema de SQL no se especifica,
se entiende que es el valor del registro especial CURRENT SCHEMA de DB2.
VALIDATE
Especifica que deben validarse todos los documentos XML contra
nombre-esquema-XML y, a continuación, descomponerse si son válidos. Si no se
ha especificado VALIDATE, los documentos XML de entrada no se validan antes
de la descomposición.
Si no se ha especificado VALIDATE, es responsabilidad del usuario validar los
documentos antes de llamar al mandato. Por ejemplo, el usuario puede utilizar
XMLVALIDATE al insertar los documentos XML en la columna, o utilizar un
procesador XML antes de insertarlos. Si un documento XML de entrada no es
válido y no se ha especificado VALIDATE, la descomposición genera un
resultado no definido. Consulte las referencias relacionadas del final de este
tema para obtener más información sobre la validación de XML.
ALLOW
Especifica si se permite acceder a las tablas de destino especificadas en el
esquema XML nombre-esquema-XML durante la descomposición. ALLOW NO
ACCESS es el valor por omisión.
ALLOW ACCESS
Si se especifica ALLOW ACCESS al obtener bloqueos en la tabla de
destino, la operación DECOMPOSE esperará y es posible que supere el
tiempo de espera.
ALLOW NO ACCESS
Si se especifica ALLOW NO ACCESS o se utiliza como valor por
omisión, la operación DECOMPOSE obtendrá un bloqueo exclusivo (X)
sobre todas las tablas que tienen correlaciones especificadas en el
esquema XML. No todas las tablas de destino participarán
necesariamente durante la descomposición de cada documento; sin
embargo, todas ellas se bloquearán en la posibilidad más baja de punto
muerto durante una unidad de trabajo larga.

Capítulo 5. mandatos CLP 169


DECOMPOSE XML DOCUMENTS

COMMITCOUNT entero
Especifica que se realice un COMMIT tras cada entero descomposiciones de
documentos realizadas con éxito. Si la opción no se especifica o el valor se fija
en 0, la operación DECOMPOSE nunca realizará ningún COMMIT.
CONTINUE_ON_ERROR
Especifica que la operación DECOMPOSE continúe con el documento siguiente
si se produce un error específico de documento. Los cambios ejecutados en la
base de datos debidos a que no se ha podido completar satisfactoriamente la
descomposición de un documento se deshacen antes de continuar con el
documento siguiente. Si no se especifica CONTINUE_ON_ERROR, la
operación DECOMPOSE se detiene en el primer documento cuya
descomposición no se ha podido completar con éxito.
La operación DECOMPOSE no continúa tras errores muy graves ni tras errores
que no sean específicos de documentos, incluso aunque se haya especificado la
opción CONTINUE_ON_ERROR.
MESSAGES archivo-mensajes
La operación DECOMPOSE genera un documento XML codificado en UTF-8
que enumera los documentos XML de entrada cuya descomposición no se
completó satisfactoriamente, junto al motivo de la anomalía en la
descomposición. El documento que contiene los errores de descomposición se
genera únicamente si existe por lo menos un documento XML que no se pudo
descomponer con éxito. Los mensajes se traducen en función del entorno local
del servidor. El archivo archivo-mensajes es el archivo que contiene el
documento XML en el que se especifica la información de descomposición. Si
se especifica archivo-mensajes, se creará el archivo en el sistema desde el que se
invocó el mandato CLP. Si no se especifica la vía de acceso completa del
archivo, se creará en el directorio actual.
Si no se especifica esta opción, la información de descomposición se grabará en
la salida estándar.
La información sobre la descomposición de los documentos XML se visualiza
como un documento XML que se puede enviar opcionalmente al
archivo-mensajes determinado por el parámetro MESSAGES. El formato del
documento XML del archivo-mensajes es el siguiente:
<?xml version=’1.0’ xmlns:xdb="http://www.ibm.com/xmlns/prod/db2/xdb1"?>
<xdb:errorReport>
<xdb:document>
<xdb:documentId>sssss</xdb:documentId>
<xdb:errorMsg>qqqqq</xdb:errorMsg>
</xdb:document>
<xdb:document>
. . .
</xdb:document>
. . .
</xdb:errorReport>

El valor del ID de documento sssss es el valor de la primera columna que


especifica la sentencia-select. El valor identifica el documento XML que no se
descompuso satisfactoriamente. El valor del mensaje de error qqqqq es el error
que se produjo al intentar descomponer el documento.

Ejemplo

Puede insertar documentos XML que desea descomponer en una tabla relacional,
por ejemplo: ABC.SALESTAB. Todos los documentos corresponden a un esquema
XML registrado como ABC.SALES, y el esquema se ha anotado con la información

170 Consulta de mandatos


DECOMPOSE XML DOCUMENTS

de la descomposición y se ha habilitado para la misma. Suponiendo que el nombre


de la columna en la que se insertan los documentos es SALESDOC, y que el ID
correspondiente se inserta en DOCID, se invocará el mandato DECOMPOSE XML
DOCUMENTS de la forma siguiente:
DECOMPOSE XML DOCUMENTS IN ’SELECT DOCID, SALESDOC FROM SALESTAB’
XMLSCHEMA ABC.SALES
MESSAGES /home/myid/errors/errorreport.xml

Capítulo 5. mandatos CLP 171


DEREGISTER

DEREGISTER
Borra el registro del servidor DB2 del servidor de directorios de red.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato

 DEREGISTER 
DB2 SERVER IN

 LDAP NODE nombrenodo 


USER nombre-usuario
PASSWORD contraseña

Parámetros del mandato


IN Especifica el servidor de directorios de red del que se debe borrar el
registro del servidor DB2. El valor válido es LDAP para un servidor de
directorios LDAP (Lightweight Directory Access Protocol).
USER nombreusuario
Se trata del nombre distinguido LDAP del usuario (DN). El DN LDAP de
usuario debe tener suficiente autorización para suprimir el objeto del
directorio LDAP. El nombre de usuario es opcional al borrar el registro en
LDAP. Si no se especifica el nombre DN LDAP del usuario, se utilizarán
las credenciales del usuario de la conexión actual.
PASSWORD contraseña
Contraseña de cuenta.
NODE nombrenodo
El nombre de nodo es el valor que se ha especificado cuando se ha
registrado el servidor DB2 en LDAP.

Notas de uso

Este mandato sólo se puede emitir para una máquina remota cuando se está en el
entorno LDAP. Cuando se emite para una máquina remota, se debe especificar el
nombre de nodo del servidor remoto.

El servidor DB2 se elimina del registro automáticamente cuando se descarta la


instancia.

172 Consulta de mandatos


DESCRIBE

DESCRIBE
El mandato DESCRIBE muestra los metadatos sobre las columnas, índices y
particiones de datos de tablas o vistas. Este mandato también puede mostrar
metadatos sobre la salida de las sentencias SELECT, CALL o XQuery.

Utilice el mandato DESCRIBE para visualizar información sobre cualquiera de los


elementos siguientes:
v Salida de una sentencia SELECT, CALL o XQuery
v Columnas de una tabla o de una vista
v Índices de una tabla o una vista
v Particiones de datos de una tabla o vista

Autorización

La autorización necesaria depende del tipo de información que desea mostrar al


utilizar el mandato DESCRIBE.
v Si existe el espacio de tablas SYSTOOLSTMPSPACE, es necesaria una de las
autorizaciones que se muestran en la siguiente tabla.

Objeto sobre el que se muestra


información Privilegios o autorizaciones necesarias
Salida de una sentencia SELECT o sentencia Cualquiera de los privilegios o de las
XQuery autorizaciones siguientes para cada tabla o
vista a la que se hace referencia en la
sentencia SELECT:
v Privilegio SELECT
v Autorización DATAACCESS
v Autorización DBADM
v Autorización SQLADM
v Autorización EXPLAIN
Salida de una sentencia CALL Cualquiera de los privilegios o de las
autorizaciones siguientes:
v Autorización DATAACCESS
v Privilegio EXECUTE para el
procedimiento almacenado

Capítulo 5. mandatos CLP 173


DESCRIBE

Objeto sobre el que se muestra


información Privilegios o autorizaciones necesarias
Columnas de una tabla o de una vista Cualquiera de los siguientes privilegios o
autorizaciones de la tabla de catálogo del
sistema SYSCAT.COLUMNS:
v Privilegio SELECT
v Autorización ACCESSCTRL
v Autorización DATAACCESS
v Autorización DBADM
v Autorización SECADM
v Autorización SQLADM

Si desea utilizar el parámetro SHOW DETAIL,


también puede requerir cualquiera de estos
privilegios o autorizaciones en la tabla de
catálogo
SYSCAT.DATAPARTITIONEXPRESSION.

Puesto que PUBLIC tiene todos los


privilegios sobre las tablas temporales
declaradas, puede utilizar el mandato para
mostrar información sobre cualquier tabla
temporal declarada que exista en la
conexión.
Índices de una tabla o una vista Cualquiera de los siguientes privilegios o
autorizaciones de la tabla de catálogo del
sistema SYSCAT.INDEXES:
v Privilegio SELECT
v Autorización ACCESSCTRL
v Autorización DATAACCESS
v Autorización DBADM
v Autorización SECADM
v Autorización SQLADM

Si desea utilizar el parámetro SHOW DETAIL,


también requiere privilegio EXECUTE sobre
la UDF GET_INDEX_COLNAMES().

Puesto que PUBLIC tiene todos los


privilegios sobre las tablas temporales
declaradas, puede utilizar el mandato para
mostrar información sobre cualquier tabla
temporal declarada que exista en la
conexión.

174 Consulta de mandatos


DESCRIBE

Objeto sobre el que se muestra


información Privilegios o autorizaciones necesarias
Particiones de datos de una tabla o vista Cualquiera de los siguientes privilegios o
autorizaciones de la tabla de catálogo del
sistema SYSCAT.DATAPARTITIONS:
v Privilegio SELECT
v Autorización ACCESSCTRL
v Autorización DATAACCESS
v Autorización DBADM
v Autorización SECADM
v Autorización SQLADM

Puesto que PUBLIC tiene todos los


privilegios sobre las tablas temporales
declaradas, puede utilizar el mandato para
mostrar información sobre cualquier tabla
temporal declarada que exista en la
conexión.

v Si el espacio de tablas SYSTOOLSTMPSPACE no existe, se necesitará la


autorización SYSADM o SYSCTRL además de una de las autorizaciones
indicadas anteriormente.

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión.

Sintaxis del mandato

 DESCRIBE 

OUTPUT
 sentencia-select 
sentencia-call
XQUERY sentencia-XQuery
TABLE nombre-tabla
INDEXES FOR TABLE SHOW DETAIL
RELATIONAL DATA
XML DATA
TEXT SEARCH
DATA PARTITIONS FOR TABLE

Parámetros del mandato


OUTPUT Indica que debe describirse la salida de la sentencia. Esta palabra clave es
opcional.
sentencia-select | sentencia-call | XQUERY sentencia-XQuery
Identifica la sentencia sobre la que se desea información. CLP
prepara automáticamente la sentencia. Para identificar una
sentencia XQuery, hay que poner antes la palabra clave XQUERY.
Una sentencia DESCRIBE OUTPUT sólo devuelve información
sobre una columna oculta implícita si la columna se especifica de
forma explícita como parte de la lista SELECT de la tabla de
resultados final de la consulta descrita.

Capítulo 5. mandatos CLP 175


DESCRIBE

TABLE nombre-tabla
Especifica la tabla o vista que se debe describir. Se debe utilizar el nombre
totalmente calificado con el formato esquema.nombre-tabla. No se puede
utilizar un alias para la tabla en lugar de la tabla misma. Se devuelve
información sobre columnas ocultas implícitamente, pero debe utilizarse
SHOW DETAIL para indicar qué columnas se han ocultado implícitamente.
El mandato DESCRIBE TABLE lista la siguiente información sobre cada
columna:
v Nombre de columna
v Esquema de tipo
v Nombre de tipo
v Longitud
v Escala
v Nulos (sí/no)
INDEXES FOR TABLE nombre-tabla
Especifica la tabla o la vista para la que es necesario describir índices.
Puede utilizar el nombre totalmente calificado con el formato
esquema.nombre-tabla o simplemente puede especificar el nombre-tabla y se
utilizará automáticamente el esquema por omisión. No se puede utilizar un
alias para la tabla en lugar de la tabla misma.
El mandato DESCRIBE INDEXES FOR TABLE lista la siguiente información
acerca de cada índice de la tabla o vista:
v Esquema de índice
v Nombre de índice
v Norma exclusiva
v Número de columnas
v Tipo de índice
Si el mandato DESCRIBE INDEXES FOR TABLE se ha especificado con la
opción SHOW DETAIL, el nombre de índice se trunca cuando sobrepasa los 18
bytes. Si no se ha especificado ninguna opción de tipo de índice, aparece la
información correspondiente a todos los tipos de índice: índice de datos
relacionales, índice sobre datos XML e índice de Text Search. La salida
incluye la siguiente información adicional:
v ID de índice para un índice de datos relacionales, un índice de vía de
acceso XML, un índice de regiones de XML o un índice sobre datos XML
v Tipo de datos para un índice sobre datos XML
v Generado aleatoriamente (hashed) para un índice sobre datos XML
v Longitud máxima de VARCHAR para un índice sobre datos XML
v Patrón XML especificado para un índice sobre datos XML
v Página de códigos para un índice de búsqueda de texto
v Idioma para un índice de búsqueda de texto
v Formato especificado para un índice de búsqueda de texto
v Actualización mínima para un índice de búsqueda de texto
v Frecuencia de actualización para un índice de búsqueda de texto
v Directorio de la colección para un índice de búsqueda de texto
v Nombres de columna
v Si se especifica la cláusula BUSINESS_TIME WITHOUT OVERLAPS

176 Consulta de mandatos


DESCRIBE

Especifique un tipo de índice para que se muestre información sólo de un


tipo de índice específico. No se admite la especificación de varios tipos de
índice.
RELATIONAL DATA
Si la opción de tipo de índice RELATIONAL DATA se especifica sin la
opción SHOW DETAIL, sólo aparece la información siguiente:
v Esquema de índice
v Nombre de índice
v Norma exclusiva
v Número de columnas
Si se especifica SHOW DETAIL, también aparece la información de
nombres de columnas.
XML DATA
Si la opción de tipo de índice XML DATA se especifica sin la opción
SHOW DETAIL, sólo aparece la información siguiente:
v Esquema de índice
v Nombre de índice
v Norma exclusiva
v Número de columnas
v Tipo de índice
Si se especifica SHOW DETAIL, la información siguiente de un índice
sobre datos XML también aparece en la lista:
v ID de índice
v Tipo de datos
v Generado aleatoriamente (hashed)
v Longitud máxima de Varchar
v Patrón XML
v Nombres de columna
TEXT SEARCH
Si la opción de tipo de índice TEXT SEARCH se especifica sin la
opción SHOW DETAIL, sólo aparece la información siguiente:
v Esquema de índice
v Nombre de índice
Si se especifica SHOW DETAIL, también aparece la información de
índice de búsqueda de texto siguiente:
v Nombre de columna
v Página de códigos
v Lenguaje
v Formato
v Actualización mínima
v Frecuencia de actualización
v Directorio de la colección
Si se ha especificado la opción TEXT SEARCH y no hay una opción
de búsqueda de texto instalada o no está bien configurada, se
devuelve un error (SQLSTATE 42724).

Capítulo 5. mandatos CLP 177


DESCRIBE

Consulte DB2 Text Search para saber qué información aparece en


las columnas.
DATA PARTITIONS FOR TABLE nombre-tabla
Especifica la tabla o la vista para la que es necesario describir particiones
de datos. La información visualizada para cada partición de datos en la
tabla es el identificador de la partición y los intervalos de particionamiento.
Los resultados se ordenan según la secuencia de identificadores de las
particiones. Se debe utilizar el nombre totalmente calificado con el formato
esquema.nombre-tabla. No se puede utilizar un alias para la tabla en lugar de
la tabla misma. El esquema es el nombre de usuario bajo el que se ha
creado la tabla o la vista.
En el caso del mandato DESCRIBE DATA PARTITIONS FOR TABLE, especifica
que la salida incluya una segunda tabla con la siguiente incluir adicional:
v Identificador de secuencia particiones de datos
v Expresión de particiones de datos en SQL
SHOW DETAIL
En el caso del mandato DESCRIBE TABLE, especifica que en la salida se
incluya la siguiente información adicional:
v Si se ha definido una columna CHARACTER, VARCHAR o LONG
VARCHAR como FOR BIT DATA
v Número de columna
v Secuencia de claves de distribución
v Página de códigos
v Atributo oculto
v Valor por omisión
v Tipo de particionamiento de tabla (en el caso de tablas particionadas por
rango, esta salida aparece tras la salida original)
v Columnas de clave de particionamiento (en el caso de tablas
particionadas por rango, esta salida aparece tras la salida original)
v Identificador del espacio de tablas utilizado para el índice
v Períodos definidos en la tabla (para las tablas temporales, esta salida
aparece tras la salida original)
v Si se ha habilitado la creación de versiones en la tabla (para las tablas
temporales, esta salida aparece tras la salida original)

Ejemplos
Descripción de la salida de una sentencia SELECT
El ejemplo siguiente muestra cómo describir una sentencia SELECT:
db2 describe output select * from staff
Información columna

Número de columnas: 7

Tipo de datos Long. Nombre de columna Long. nombre


-------------------- ------ ------------------------------ --------------
500 SMALLINT 2 ID 2
449 VARCHAR 9 NAME 4
501 SMALLINT 2 DEPT 4
453 CHARACTER 5 JOB 3

178 Consulta de mandatos


DESCRIBE

501 SMALLINT 2 YEARS 5


485 DECIMAL 7,2 SALARY 6
485 DECIMAL 7,2 COMM 4
Descripción de la salida de una sentencia CALL
Dado un procedimiento almacenado que se ha creado con la sentencia:
CREATE PROCEDURE GIVE_BONUS (IN EMPNO INTEGER,
IN DEPTNO INTEGER,
OUT CHEQUE INTEGER,
INOUT BONUS DEC(6,0))
...

El ejemplo siguiente muestra cómo describir la salida de una sentencia


CALL:
db2 describe output call give_bonus(123456, 987, ?, 15000.)

Información columna

Número de columnas: 2

Tipo de datos Long. Nombre de columna Long. nombre


-------------------- ------ ------------------------------ --------------
497 INTEGER 4 CHEQUE 6
485 DECIMAL 6, 0 BONUS 5

Si el procedimiento tiene uno o varios parámetros de tipo matriz, la salida


del mandato DESCRIBE tiene una columna adicional que indica la
cardinalidad máxima de los parámetros de matriz. Un valor vacío indica
que el parámetro no es una matriz.
Dados el tipo de matriz y el procedimiento creados con las siguientes
sentencias:
CREATE TYPE PRODUCT_LIST AS INTEGER ARRAY[100]
CREATE TYPE CUSTOMER_LIST AS INTEGER ARRAY[1000]

CREATE PROCEDURE DISCONTINUE_PROD (IN PROD_LIST PRODUCT_LIST,


IN EFFECTIVE_DATE DATE,
OUT NUM_PENDING_ORDERS INTEGER,
OUT CUST_LIST CUSTOMER_LIST)
...

El siguiente ejemplo muestra cómo describir la salida de una sentencia


CALL con parámetros de matriz. La única diferencia en cuanto a formato
con respecto al ejemplo anterior es la columna Cardinalidad máx.
db2 describe output call discontinue_prod(ARRAY[12, 34, 26],'04/13/2006’,?)

Información columna

Número de columnas: 2

Tipo de SQL Long. tipo Nombre de columna Long. nombre Cardinal. máx.
-------------------- ----------- ------------------------------ -------------- ---------------
497 INTEGER 4 NUM_PENDING_ORDERS 17
497 INTEGER 10 CUSTOMER_LIST 13 1000

Descripción de la salida de una sentencia XQuery


Dada una tabla cuyo nombre sea CUSTOMER con una columna llamada
INFO del tipo de datos XML, el siguiente ejemplo muestra cómo describir
una sentencia XQuery:
db2 describe xquery for $cust in db2-fn:xmlcolumn("CUSTOMER.INFO") return $cust
Información columna

Número de columnas: 1

Tipo de SQL Long. tipo Nombre de columna Long. nombre


-------------------- ----------- ------------------------------ --------------
998 XML 0 1 1

Capítulo 5. mandatos CLP 179


DESCRIBE

Si no se especifica la palabra clave XQUERY, se devuelve SQL0104N.


db2 describe for $cust in db2-fn:xmlcolumn("CUSTOMER.INFO") return $cust
SQL0104N Se ha encontrado un símbolo imprevisto "for" a continuación de "DESCRIBE". Los símbolos esperados pueden incluir: "OUTPUT". SQLSTATE=42601

Si el mandato DESCRIBE XQUERY se emite para un servidor anterior que no


da soporte a la opción XQUERY, se devuelve el mensaje DB21108E para
indicar que la funcionalidad no recibe soporte en el servidor anterior.
Descripción de una tabla
El ejemplo siguiente muestra cómo describir una tabla:
db2 describe table user1.department
Tabla: USER1.DEPARTMENT

Nombre Esquema Nombre Longitud


columna tipo datos tipos datos columna Escala Nulos
------------------ ----------- ------------------ -------- -------- --------
AREA SYSIBM SMALLINT 2 0 No
DEPT SYSIBM CHARACTER 3 0 No
DEPTNAME SYSIBM CHARACTER 20 0 Sí

En el siguiente ejemplo se muestra cómo describir una tabla con detalles.


Si la tabla está particionada, como en este ejemplo, aparecen detalles
adicionales tras la salida existente. En el caso de una tabla no particionada,
no se visualiza la cabecera de tabla adicional:
db2 describe table user1.employee show detail
Nombre Esquema Número Nombre tipo Longitud Oculta
columna tipo datos columna datos columna
------------------ ----------- --------- ----------- -------- ----------
FIRST SYSIBM 0 CHARACTER 10 No
LAST SYSIBM 1 CHARACTER 10 No
EMPLOYEENUM SYSTEM 2 CHARACTER 10 Implicitly

La tabla está particionada por rango (ordenados por la/s columna/s):


------------------------------------------------------------------
LAST
FIRST
EMPLOYEENUM
Descripción de un índice de tabla
En el siguiente ejemplo se muestra cómo describir un índice de tabla. Este
mandato enumera dos índices de datos relacionales, seis índices de datos
XML, dos índices de búsqueda de texto y los índices del sistema:
db2 describe indexes for table user1.department
Esquema Nombre Norma Número de Tipo de
índice índice exclusiva columnas índice
-------------- ------------------ -------------- ------------- --------------
SYSIBM SQL070531145253450 D - XML DATA - REGIONS
SYSIBM SQL070531145253620 U 1 XML DATA - PATH
USER1 RELIDX1 D 1 RELATIONAL DATA
USER1 RELIDX2 D 2 RELATIONAL DATA
SYSIBM SQL070531145253650 P 1 RELATIONAL DATA
USER1 XMLIDX1 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154625650 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX2 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626000 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX3 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626090 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX4 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626190 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX5 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626290 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX6 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626400 D 1 XML DATA - VALUES PHYSICAL
USER1 TXTIDX1 - 1 TEXT SEARCH
USER1 TXTIDX2 - 1 TEXT SEARCH

180 Consulta de mandatos


DESCRIBE

El mandato siguiente enumera los índices de datos relacionales de la tabla


USER1.DEPARTMENT:
db2 describe relational data indexes for table user1.department
Esquema Nombre Norma Número de
índice índice exclusiva columnas
-------------- ------------------ -------------- -------------
SYSIBM SQL070531145253650 P 1
USER1 RELIDX1 D 1
USER1 RELIDX2 D 2

El mandato siguiente enumera los índices sobre los datos XML para la
tabla USER1.DEPARTMENT:
db2 describe xml data indexes for table user1.department
Esquema Nombre Norma Número de Tipo de
índice índice exclusiva columnas índice
-------------- ------------------ -------------- ------------- --------------
SYSIBM SQL070531145253450 D - XML DATA - REGIONS
SYSIBM SQL070531145253620 U 1 XML DATA - PATH
USER1 XMLIDX1 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154625650 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX2 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626000 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX3 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626090 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX4 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626190 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX5 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626290 D 1 XML DATA - VALUES PHYSICAL
USER1 XMLIDX6 D 1 XML DATA - VALUES LOGICAL
SYSIBM SQL070531154626400 D 1 XML DATA - VALUES PHYSICAL

El mandato siguiente enumera la información de índice de búsqueda de


texto de la tabla USER1.DEPARTMENT:
db2 describe text search indexes for table user1.department
Esquema Nombre
índice índice
-------------- ------------------
USER1 TXTIDX1
USER1 TXTIDX2

El mandato siguiente enumera información sobre los índices particionados


y no particionados de la tabla particionada myDpartT:
db2 describe indexes for table myDPartT
Esquema Nombre Norma Número de Particionamiento de índice
índice índice exclusiva columnas
------------------------------- ------------------- -------------- -------------- -------------
NEWTON IDXNDP D 1 N
NEWTON IDXDP D 1 P
Descripción de particiones de datos
En el siguiente ejemplo se muestra cómo describir particiones de datos:
db2 describe data partitions for table user1.sales

ID partición Valor bajo Valor alto


inclusive (y/n) inclusive (y/n)
------------- -- -------------- -- -------------
0 Y 2001,1 Y 2001,3
1 N 2001,3 Y 2001,6
3 N 2001,6 Y 2001,9

Capítulo 5. mandatos CLP 181


DESCRIBE

La descripción de particiones de datos con detalles devuelve la misma


salida, como en el ejemplo anterior, e incluye una tabla adicional que
muestra el ID de partición y el espacio de tablas donde se guardan los
datos de la partición de datos, y el ID del espacio de tablas donde se
guarda el índice:
db2 describe data partitions for table user1.employee show detail

ID partición Valor bajo Valor alto


inclusive (y/n) inclusive (y/n)
------------- -- ------------------ -- -------------
0 Y MINVALUE,MINVALUE Y ’beck’,’kevin’
1 N ’beck’,’kevin’ N ’treece’,’jeff’
2 Y ’treece’,’jeff’ Y ’zhang’,’liping’
3 Y ’zyzyck’,MINVALUE Y MAXVALUE,MAXVALUE

IDPartición NombrePartic IDEspTabl IDLrgEspTbl IDEspTblIndc ModAcceso Estado


----------- ------------- --------- ----------- ------------ ---------- ------
0 PARTx 3 43 50 F
1 PARTNew 13 13 13 N A
2 PART3 31 33 35 F
3 PART4 23 34 23 N A

182 Consulta de mandatos


DETACH

DETACH
Elimina la conexión de instancia DBMS lógica y termina la conexión de
comunicación física si no hay otras conexiones lógicas que utilicen esta capa.

Autorización

Ninguna

Conexión necesaria

Ninguna. Elimina una conexión de instancia existente.

Sintaxis del mandato


 DETACH 

Parámetros del mandato

Ninguna

Capítulo 5. mandatos CLP 183


DROP CONTACT

DROP CONTACT
Elimina un contacto de la lista de contactos definidos en el sistema local. Un
contacto es un usuario al que el Planificador y el Supervisor de salud envían
mensajes. El valor del parámetro de configuración contact_host del Servidor de
administración de bases de datos (DAS) determina si la lista es local o global.

Autorización

Ninguna

Conexión necesaria

Ninguna. Sólo en ejecución local: este mandato no se puede utilizar con una
conexión remota.

Sintaxis del mandato


 DROP CONTACT nombre 

Parámetros del mandato


CONTACT nombre
Nombre del contacto que se descartará del sistema local.

184 Consulta de mandatos


DROP CONTACTGROUP

DROP CONTACTGROUP
Elimina un grupo de contactos de la lista de contactos definidos en el sistema local.
Un grupo de contactos contiene una lista de usuarios a los que el Planificador y el
Supervisor de salud envían mensajes. El valor del parámetro de configuración
contact_host del Servidor de administración de bases de datos (DAS) determina si
la lista es local o global.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 DROP CONTACTGROUP nombre 

Parámetros del mandato


CONTACTGROUP nombre
Nombre del grupo de contactos que se descartará del sistema local.

Capítulo 5. mandatos CLP 185


DROP DATABASE

DROP DATABASE
Suprime el contenido de la base de datos y todos los archivos de anotaciones
cronológicas para la base de datos, descataloga la base de datos y suprime el
subdirectorio de bases de datos.

Ámbito

Por omisión, este mandato afecta a todas las particiones de base de datos que se
listan en el archivo db2nodes.cfg.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL

Conexión necesaria

Instancia. No se necesita una conexión explícita. Si la base de datos está listada


como remota, se establece una conexión de instancia con el servidor de particiones
de base de datos remota durante el tiempo que dura el mandato.

Sintaxis del mandato


 DROP DATABASE alias-base-datos 
DB AT DBPARTITIONNUM

Parámetros del mandato


DATABASE alias-base-datos
Especifica el alias de la base de datos que se debe descartar. La base de
datos debe estar catalogada en el directorio de bases de datos del sistema.
AT DBPARTITIONNUM
Especifica que la base de datos debe suprimirse sólo en la partición de
base de datos que ha emitido el mandato DROP DATABASE. Este parámetro lo
utilizan los programas de utilidad suministrados con IBM InfoSphere
Warehouse, se puede utilizar en los entornos de bases de datos
particionadas y no está pensado para un uso generalizado. El uso
incorrecto de este parámetro puede causar incoherencias en el sistema, de
modo que sólo se deberá utilizar con precaución.

Ejemplos

El ejemplo siguiente suprime la base de datos a la que hace referencia el alias de


base de datos SAMPLE:
db2 drop database sample

Notas de uso

DROP DATABASE suprime todos los datos del usuario y los archivos de anotaciones
cronológicas, así como cualquier histórico de copia de seguridad/restauración
correspondiente a la base de datos. Si los archivos de anotaciones cronológicas se
necesitan para una recuperación en avance tras una operación de restauración, o se

186 Consulta de mandatos


DROP DATABASE

necesita el histórico de copia de seguridad para restaurar la base de datos, estos


archivos deben guardarse antes de emitir este mandato.

La base de datos no se debe estar utilizando; todos los usuarios deben estar
desconectados de la base de datos antes de que ésta se pueda descartar.

Para descartarse, una base de datos debe estar catalogada en el directorio de bases
de datos del sistema. Sólo se elimina del directorio de bases de datos del sistema el
alias de base de datos especificado. Si existen otros alias con el mismo nombre de
base de datos, sus entradas permanecerán. Si la base de datos que se está
descartando es la última entrada del directorio de bases de datos locales, dicho
directorio se suprimirá automáticamente.

Si se emite DROP DATABASE desde un cliente remoto (o desde una instancia diferente
en la misma máquina), se elimina el alias especificado del directorio de bases de
datos del sistema del cliente. Se elimina el nombre de base de datos
correspondiente del directorio de bases de datos del sistema del servidor.
Información relacionada

Capítulo 5. mandatos CLP 187


DROP DBPARTITIONNUM VERIFY

DROP DBPARTITIONNUM VERIFY


Verifica si existe una partición de base de datos en los grupos de particiones de
base de datos de cualquier base de datos y si se ha definido un supervisor de
sucesos en la partición de base de datos. Este mandato se debe utilizar antes de
descartar una partición de base de datos de un entorno de base de datos
particionada.

Ámbito

Este mandato sólo afecta a la partición de base de datos en la que se emite.

Autorización

SYSADM

Sintaxis del mandato


 DROP DBPARTITIONNUM VERIFY 

Parámetros del mandato

Ninguna

Notas de uso

Si se devuelve un mensaje que indica que la partición de base de datos no se está


utilizando, use el mandato STOP DATABASE MANAGER con DROP DBPARTITIONNUM para
eliminar la entrada de la partición de base de datos del archivo db2nodes.cfg, lo
que elimina la partición de base de datos del sistema de la base de datos.

Si se devuelve un mensaje, indicando que la partición de base de datos se está


utilizando, se deberán realizar las acciones siguientes:
1. Si la partición de base de datos contiene datos, redistribuya los datos para
eliminarlos de la partición de base de datos mediante REDISTRIBUTE DATABASE
PARTITION GROUP. Utilice la opción DROP DBPARTITIONNUM en el mandato
REDISTRIBUTE DATABASE PARTITION GROUP o en la sentencia ALTER DATABASE
PARTITION GROUP para eliminar la partición de base de datos de cualquier
grupo de particiones de base de datos para la base de datos. Esta acción debe
realizarse para cada base de datos que contiene la partición de base de datos en
un grupo de particiones de base de datos.
2. Descarte cualquier supervisor de sucesos que esté definido en la partición de
base de datos.
3. Vuelva a ejecutar DROP DBPARTITIONNUM VERIFY para asegurarse de que la base
de datos ya no se está utilizando.

188 Consulta de mandatos


DROP TOOLS CATALOG

DROP TOOLS CATALOG


Descarta las tablas del catálogo de herramientas de DB2 para el catálogo
especificado en la base de datos proporcionada.

Este mandato no es válido en IBM Data Server Client.

Aviso: Si descarta el catálogo de herramientas activo, ya no puede planificar tareas


y no se ejecutan las tareas planificadas. Para activar el planificador, debe activar un
catálogo de herramientas anterior o crear uno nuevo.

Ámbito

Este mandato afecta a la base de datos.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
El usuario también debe tener autorización DASADM para actualizar los
parámetros de configuración del Servidor de administración de DB2 (DAS).

Conexión necesaria

Este mandato establece temporalmente una conexión de base de datos durante el


proceso.

Sintaxis del mandato

 DROP TOOLS CATALOG nombre-catálogo IN DATABASE nombre-basedatos 


FORCE

Parámetros del mandato


CATALOG nombre-catálogo
Nombre que se debe utilizar para identificar exclusivamente el catálogo de
herramientas de DB2. Las tablas de catálogos se descartan de este
esquema.
DATABASE nombre-basedatos
Nombre que se ha de utilizar para conectarse a la base de datos local que
contiene las tablas de catálogos.
FORCE
La opción force se utiliza para forzar la detención del planificador del
servidor de administración de DB2. Si no se especifica, el catálogo de
herramientas no se descarta si el planificador no se puede detener.

Ejemplos
db2 drop tools catalog cc in database toolsdb
db2 drop tools catalog in database toolsdb force

Capítulo 5. mandatos CLP 189


DROP TOOLS CATALOG

Notas de uso
v El parámetro de configuración jdk_path se debe establecer en la configuración
del Servidor de administración de DB2 (DAS) en el nivel mínimo soportado del
SDK para Java.
v Este mandato inhabilitará el planificador en el DAS local y restablecerá los
parámetros de configuración del DAS relativos a la configuración de base de
datos de catálogo de herramientas de DB2.

190 Consulta de mandatos


ECHO

ECHO
Permite al usuario grabar series de caracteres en la salida estándar.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 ECHO 
serie-caracteres

Parámetros del mandato


serie-caracteres
Cualquier serie de caracteres.

Notas de uso

Si se utiliza un archivo de entrada como entrada estándar o se tienen que imprimir


comentarios sin que el shell de mandado los interprete, el mandato ECHO imprimirá
series de caracteres directamente en la salida estándar.

Se imprime una línea cada vez que se emite ECHO.

El mandato ECHO no se ve afectado por la opción verbosa (-v).

Capítulo 5. mandatos CLP 191


EDIT

EDIT
Inicia un editor especificado por el usuario con un mandato especificado para la
edición. Cuando el usuario finaliza la edición, guarda el contenido del editor y sale
del mismo, permite al usuario ejecutar el mandato en modalidad interactiva del
CLP.

Ámbito

Este mandato sólo se puede ejecutar en modalidad interactiva del CLP.


Específicamente, no se puede ejecutar desde la modalidad de mandatos del CLP o
la modalidad de proceso por lotes del CLP.

Autorización

Ninguna

Conexión necesaria
Ninguna

Sintaxis del mandato


 EDIT 
E EDITOR editor núm

Parámetros del mandato


EDITOR
Inicia el editor especificado para la edición. Si no se especifica este
parámetro, el editor que se utilizará se determinará en el orden siguiente:
1. el editor especificado por la variable de registro DB2_CLP_EDITOR
2. el editor especificado por la variable de entorno VISUAL
3. el editor especificado por la variable de entorno EDITOR
4. En sistemas operativos Windows, el editor Bloc de notas; en sistemas
operativos UNIX, el editor vi
núm Si núm es un valor positivo, inicia el editor con el mandato correspondiente
a núm. Si núm es un valor negativo, inicia el editor con el mandato
correspondiente a núm, contando hacia atrás desde el mandato más
reciente en el historial de mandatos. Cero no es un valor válido para núm.
Si no se especifica este parámetro, inicia el editor con el mandato que se ha
ejecutado más recientemente. (Esto equivale a especificar un valor de -1
para núm.)

Notas de uso
1. El editor especificado debe ser un editor válido contenido en la VÍA del sistema
operativo.
2. Puede visualizar una lista de los mandatos ejecutados más recientemente que
están disponibles para ser editados ejecutando el mandato HISTORY.
3. El mandato EDIT no se registrará nunca en el historial de mandatos. Sin
embargo, si selecciona ejecutar un mandato que se ha editado utilizando el
mandato EDIT, este mandato se registrará en el historial de mandatos.

192 Consulta de mandatos


EXPORT

EXPORT
Exporta datos de una base de datos a uno de varios formatos de archivo externos.
El usuario especifica los datos que se deben exportar proporcionando una
sentencia SELECT de SQL o proporcionando información jerárquica para tablas de
tipo.

Enlace rápido con “Modificadores de tipo de archivo para el programa de utilidad


de exportación” en la página 199.

Autorización

Una de las autorizaciones siguientes:


v Autorización DATAACCESS
v Privilegio CONTROL o SELECT en cada tabla o vista participante

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión. El acceso del programa de utilidad a servidores
de bases de datos Linux, UNIX o Windows desde clientes Linux, UNIX o Windows
debe ser una conexión directa a través del motor y no a través de un entorno de
pasarela o de bucle de retorno de DB2 Connect.

Sintaxis del mandato


 EXPORT TO nombrearchivo OF tipoarchivo 
,

LOBS TO  vía-lob

 
, ,

LOBFILE  nombrearchivo XML TO  vía-xml

 
,

XMLFILE  nombrearchivo MODIFIED BY  mod-tipoarchivo

 
XMLSAVESCHEMA ,

METHOD N (  nombre-columna )

 
MESSAGES archivo-mensajes

 sentencia-select 
XQUERY sentencia-xquery
HIERARCHY STARTING nombre-sub-tabla
lista-orden-transversal

 WHERE

Capítulo 5. mandatos CLP 193


EXPORT

lista-orden-transversal:

(  nombre-sub-tabla )

Parámetros del mandato


HIERARCHY lista-orden-transversal
Exporta una subjerarquía utilizando el orden transversal especificado.
Todas las subtablas deben listarse de modo PRE-ORDER. El primer nombre
de subtabla se utiliza como nombre de tabla de destino para la sentencia
SELECT.
HIERARCHY STARTING nombre-subtabla
Mediante el uso del orden transversal por omisión (orden OUTER para
archivos ASC o DEL o el orden almacenado en los archivos de datos
PC/IXF), exporta una subjerarquía empezando desde nombre-subtabla.
LOBFILE nombrearchivo
Especifica uno o más nombres de archivo base para los archivos LOB.
Cuando se ha agotado el espacio de nombres para el primer nombre, se
utiliza el segundo nombre y así sucesivamente. Esto activará
implícitamente el comportamiento de LOBSINFILE.
Cuando se crean archivos LOB durante una operación de exportación, los
nombres de archivo se construyen añadiendo el nombre base actual de esta
lista a la vía de acceso actual (de vía-lob) y a continuación, añadiendo un
número de secuencia de 3 dígitos de inicio y el identificador de tres
caracteres lob. Por ejemplo, si la vía de acceso de LOB actual es el
directorio /u/foo/lob/path/ y el nombre de archivo LOB actual es bar, los
archivos LOB creados serán /u/foo/lob/path/bar.001.lob,
/u/foo/lob/path/bar.002.lob y así sucesivamente. El número de secuencia
de 3 dígitos del nombre de archivo LOB aumentará a 4 dígitos después de
utilizarse 999, los 4 dígitos aumentarán a 5 dígitos después de utilizarse
9999, etc.
LOBS TO vía-lob
Especifica una o más vías de acceso a los directorios en los que deben
almacenarse los archivos LOB. Habrá por lo menos un archivo por vía de
acceso de LOB y cada archivo contendrá por lo menos un LOB. El número
máximo de vías de acceso que se puede especificar es 999. Esto activará
implícitamente el comportamiento de LOBSINFILE.
MESSAGES archivo-mensajes
Especifica el destino para los mensajes de aviso y error que se producen
durante una operación de exportación. Si el archivo ya existe, el programa
de utilidad de exportación añade la información. Si se omite
archivo-mensajes, los mensajes se graban en la salida estándar.
METHOD N nombre-columna
Especifica uno o más nombres de columna que se deben utilizar en el
archivo de salida. Si no se especifica este parámetro, se utilizan los
nombres de columna de la tabla. Este parámetro solo es válido para
archivos IXF, pero no es válido al exportar datos jerárquicos.

194 Consulta de mandatos


EXPORT

MODIFIED BY mod-tipoarchivo
Especifica opciones de modificador de tipo de archivo. Véase
“Modificadores de tipo de archivo para el programa de utilidad de
exportación” en la página 199.
OF tipoarchivo
Especifica el formato de los datos del archivo de salida:
v DEL (formato ASCII delimitado), utilizado por diversos programas del
gestor de bases de datos y gestores de archivos.
v IXF (Integration Exchange Format, versión PC) es un formato binario con
propietario.
sentencia-select
Especifica la sentencia SELECT o XQUERY que devolverá los datos que se
deben exportar. Si la sentencia provoca un error, se grabará un mensaje en
el archivo de mensajes (o en la salida estándar). Si el código de error es
uno de SQL0012W, SQL0347W, SQL0360W, SQL0437W o SQL1824W, la
operación de exportación continuará; de lo contrario, se detendrá.
Si la sentencia SELECT se especifica como SELECT * FROM nombre_tabla y
la tabla contiene columnas ocultas implícitamente, debe especificar
explícitamente si los datos para las columnas ocultas han de incluirse en la
operación de exportación. Utilice uno de los métodos siguientes para
indicar si han de incluirse los datos para las columnas ocultas:
v Utilice uno de los modificadores de tipo de archivo de columnas ocultas:
especifique implicitlyhiddeninclude cuando la exportación contenga
datos para las columnas ocultas o especifique implicitlyhiddenmissing
cuando la exportación no los contenga.
db2 export to t.del of del modified by implicitlyhiddeninclude
select * from t
v Utilice la variable de registro DB2_DMU_DEFAULT en el lado del cliente
para establecer el comportamiento por omisión que ha de aplicarse
cuando los programas de utilidad de movimiento de datos detecten
tablas con columnas ocultas implícitamente.
db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
db2 export to t.del of del select * from t
TO nombrearchivo
Especifica el nombre del archivo al que hay que exportar datos. Si no se
especifica la vía de acceso completa al archivo, el programa de utilidad de
exportación utilizará el directorio actual y la unidad por omisión como
destino.
Si se especifica el nombre de un archivo que ya existe, el programa de
utilidad de exportación grabará encima del contenido del archivo; no
añadirá la información.
XMLFILE nombrearchivo
Especifica uno o más nombres de archivo base para los archivos XML.
Cuando se ha agotado el espacio de nombres para el primer nombre, se
utiliza el segundo nombre y así sucesivamente.
Cuando se crean archivos XML durante una operación de exportación, los
nombres de archivo se construyen añadiendo el nombre base actual de esta
lista a la vía de acceso actual (de vía-xml), añadiendo un número de
secuencia de 3 dígitos y luego el identificador de tres caracteres xml. Por
ejemplo, si la vía de acceso de XML actual es el directorio

Capítulo 5. mandatos CLP 195


EXPORT

/u/foo/xml/path/ y el nombre de archivo XML actual es bar, los archivos


XML creados serán /u/foo/xml/path/bar.001.xml, /u/foo/xml/path/
bar.002.xml y así sucesivamente.
XML TO vía-xml
Especifica una o más vías de acceso a los directorios en los que deben
almacenarse los archivos XML. Habrá como mínimo un archivo por cada
vía de acceso de XML, y cada archivo contendrá como mínimo una
instancia de modelo de datos XQuery (XDM). Si se especifica más de una
vía de acceso, las instancias de XDM se distribuyen uniformemente entre
las vías de acceso.
XMLSAVESCHEMA
Especifica que hay que guardar información de esquema XML para todas
las columnas XML. Para cada documento XML exportado que se haya
validado con respecto a un esquema XML en el momento de insertarlo, se
almacenará el identificador SQL totalmente calificado de ese esquema en
forma de atributo (SCH) dentro del especificador de datos XML
correspondiente (XDS). Si el documento exportado no se ha validado con
respecto a un esquema XML, no se incluirá un atributo SCH en el
correspondiente XDS.
Las partes de esquema y nombre del identificador SQL se almacenan como
valores "OBJECTSCHEMA" y "OBJECTNAME" en la fila de la tabla de
catálogo SYSCAT.XSROBJECTS correspondiente al esquema XML.
La opción XMLSAVESCHEMA no es compatible con las secuencias XQuery que
no producen documentos XML bien formados.

Ejemplos

El siguiente ejemplo muestra cómo exportar información de la tabla STAFF de la


base de datos SAMPLE al archivo myfile.ixf. La salida estará en formato IXF.
Debe estar conectado a la base de datos SAMPLE antes de emitir el mandato. Las
definiciones de índice (si las hay) se almacenarán en el archivo de salida, salvo
cuando la conexión a la base de datos se realice mediante DB2 Connect.
db2 export to myfile.ixf of ixf messages msgs.txt select * from staff

El siguiente ejemplo muestra cómo exportar la información acerca de los


empleados del Departamento 20 de la tabla STAFF de la base de datos SAMPLE.
La salida estará en formato IXF e irá al archivo awards.ixf. Antes de emitir el
mandato, primero debe conectarse a la base de datos SAMPLE. Además, el nombre
de columna real que figura en la tabla es 'dept', en lugar de 'departamento'.
db2 export to awards.ixf of ixf messages msgs.txt select * from staff
where dept = 20

El ejemplo siguiente muestra cómo exportar los LOB a un archivo DEL:


db2 export to myfile.del of del lobs to mylobs/
lobfile lobs1, lobs2 modified by lobsinfile
select * from emp_photo

El ejemplo siguiente muestra cómo exportar los LOB a un archivo DEL,


especificando un segundo directorio para los archivos que no quepan en el primer
directorio:
db2 export to myfile.del of del
lobs to /db2exp1/, /db2exp2/ modified by lobsinfile
select * from emp_photo

196 Consulta de mandatos


EXPORT

El ejemplo siguiente muestra cómo exportar datos a un archivo DEL, utilizando


comillas simples como delimitador de serie, un punto y coma como delimitador de
columna y una coma como coma decimal. Se deberá utilizar el mismo convenio al
volver a importar los datos a la base de datos:
db2 export to myfile.del of del
modified by chardel’’ coldel; decpt,
select * from staff

Notas de uso
v Asegúrese de completar todas las operaciones de tabla y de liberar todos los
bloqueos antes de iniciar una operación de exportación. Esto puede realizarse
emitiendo un mandato COMMIT después de cerrar todos los cursores abiertos
WITH HOLD o emitiendo un mandato ROLLBACK.
v Se pueden utilizar alias de tabla en la sentencia SELECT.
v Los mensajes colocados en el archivo de mensajes incluyen la información
devuelta del servicio de recuperación de mensajes. Cada mensaje empieza en
una línea nueva.
v Se deberá utilizar la importación PC/IXF para mover datos entre bases de datos.
Si los datos de tipo carácter que contienen separadores de filas se exportan a un
archivo ASCII delimitado (DEL) y se procesan con un programa de transferencia
de texto, los campos que contengan separadores de filas se acortarán o se
ampliarán.
v El paso de copia de archivo no es necesario si se puede acceder a las bases de
datos fuente y destino desde el mismo cliente.
v Se puede utilizar DB2 Connect para exportar tablas en servidores DRDA como
DB2 para OS/390, DB2 para VM y VSE y DB2 para OS/400. Sólo se soporta la
exportación PC/IXF.
v Cuando se exporta al formato IXF, si los identificadores superan el tamaño
máximo al que da soporte el formato IXF, la exportación se realizará
correctamente pero el archivo de datos resultante sólo se podrá utilizar en una
operación de importación siguiente utilizando la modalidad CREATE. Se
devolverá SQL27984W.
v Cuando se exporta a un disquete en Windows, y si la tabla contiene más datos
de los que caben en un solo disquete, el sistema solicitará otro disquete y los
archivos PC/IXF de varias partes (también denominados archivos PC/IXF
multivolumen o archivos PC/IXF divididos lógicamente) se generarán y se
almacenarán en distintos disquetes. En cada archivo, con la extensión del último,
hay un REGISTRO DE CONTINUACIÓN DE DB2 CONTINUATION (registro
"AC" abreviado) que indica que los archivos están lógicamente divididos y
dónde encontrar el siguiente archivo. Luego los archivos se pueden transferir a
un sistema AIX para que los lean los programas de utilidad de importación y de
carga. El programa de utilidad de exportación no creará archivos PC/IXF de
múltiples componentes cuando se invoque desde un sistema AIX. Para ver
detalles sobre el uso, consulte el mandato IMPORT o el mandato LOAD.
v El programa de utilidad de exportación almacenará el atributo NOT NULL
WITH DEFAULT de la tabla en un archivo IXF si la sentencia SELECT
proporcionada está en el formato SELECT * FROM nombretabla.
v Cuando se exportan tablas con tipo, sólo se pueden expresar sentencias de
subselección especificando el nombre de tabla de destino y la cláusula WHERE. La
selección completa y la sentencia-select no se pueden especificar cuando se
exporta una jerarquía.
v Para formatos de archivos distintos de IXF, se recomienda especificar la lista de
orden transversal porque indica a DB2 cómo atravesar la jerarquía y qué

Capítulo 5. mandatos CLP 197


EXPORT

subtablas se deben exportar. Si no se especifica dicha lista, se exportan todas las


tablas de la jerarquía y el orden por omisión es el orden de OUTER. La
alternativa consiste en utilizar el orden por omisión, que es el orden
proporcionado por la función OUTER.
v Utilice el mismo orden transversal durante una operación de importación. El
programa de utilidad de carga no soporta la carga de jerarquías o de
subjerarquías.
v Al exportar datos de una tabla que tenga filas protegidas, las credenciales LBAC
retenidas por el ID de autorización de sesión podrían limitar las filas que se
exportan. Las filas a las que el ID de autorización de sesión no tiene acceso de
lectura no se exportarán. No se proporciona ningún código de error ni de aviso.
v Si las credenciales LBAC retenidas por el ID de autorización de sesión no
permiten leer una o más columnas protegidas incluidas en la exportación, la
exportación falla y se devuelve un error (SQLSTATE 42512).
v Al ejecutar programas de utilidad de movimiento de datos como export y
db2move, el compilador de consultas puede determinar que la consulta
subyacente se ejecutará contra una MQT con mayor eficacia que la tabla o tablas
base. En este caso, la consulta se ejecutará contra una MQT de renovación
diferida y el resultado de los programas de utilidad podría no representar de
forma precisa los datos de la tabla subyacente.
v Los paquetes de exportación se enlazan con el formato DATETIME ISO, por lo
tanto, todos los valores de fecha/hora/indicación de fecha y hora se convierten
al formato ISO cuando se convierte a una representación de serie. Puesto que los
paquetes de CLP se enlazan con el formato DATETIME LOC (formato específico del
entorno local), tal vez detecte un comportamiento incoherente entre CLP y la
exportación, si el formato CLP DATETIME es diferente de ISO. Por ejemplo, la
siguiente sentencia SELECT puede devolver resultados imprevistos:
db2 select col2 from tab1 where char(col2)=’05/10/2005’;
COL2
----------
05/10/2005
05/10/2005
05/10/2005
3 registro(s) seleccionado(s).

Pero un mandato de exportación con la misma cláusula select no realizará lo


siguiente:
db2 export to test.del of del select col2 from test
where char(col2)=’05/10/2005’;
Número de filas exportadas: 0

Ahora, si se sustituye el formato de fecha LOCALE por el formato ISO, se


producen los resultados previstos:
db2 export to test.del of del select col2 from test
where char(col2)=’2005-05-10’;
Número de filas exportadas: 3

198 Consulta de mandatos


EXPORT

Modificadores de tipo de archivo para el programa de utilidad de


exportación
Tabla 10. Modificadores de tipo de archivo válidos para el programa de utilidad de exportación: Todos los formatos
de archivo
Modificador Descripción
lobsinfile vía-lob especifica la vía de acceso a los archivos que contienen datos de LOB.

Cada vía de acceso contiene por lo menos un archivo que contiene por lo menos
un LOB al que apunta un Especificador de ubicación de LOB (LLS) en el archivo
de datos. El LLS es una representación de serie de la ubicación de un LOB en un
archivo almacenado en la vía de acceso del archivo LOB. El formato de un LLS es
filename.ext.nnn.mmm/, donde filename.ext es el nombre del archivo que contiene el
LOB, nnn es el desplazamiento en bytes del LOB dentro del archivo y mmm es la
longitud del LOB en bytes. Por ejemplo, si se almacena la serie
db2exp.001.123.456/ en el archivo de datos, el LOB está ubicado en el
desplazamiento 123 dentro del archivo db2exp.001 tiene una longitud de 456
bytes.

Si se especifica el modificador lobsinfile cuando se utiliza EXPORT, los datos de


LOB se encuentran en las ubicaciones especificadas por la cláusula LOBS TO. De lo
contrario, se envían datos LOB al directorio del archivo de datos. La cláusula LOBS
TO especifica una o más vías de acceso a los directorios en los que deben
almacenarse los archivos LOB. Habrá por lo menos un archivo por vía de acceso
de LOB y cada archivo contendrá por lo menos un LOB. Las opciones LOBS TO o
LOBFILE activarán implícitamente el comportamiento de LOBSINFILE.

Para indicar un LOB nulo, entre el tamaño como -1. Si el tamaño se especifica
como 0, se trata como un LOB de longitud 0. Para los LOB nulos de longitud -1,
se pasan por alto el desplazamiento y el nombre de archivo. Por ejemplo, el LLS
de un LOB nulo puede ser db2exp.001.7.-1/.
implicitlyhiddeninclude Este modificador se utiliza con una consulta SELECT * y especifica que han de
exportarse los datos de las columnas ocultas implícitamente, aunque esos datos
no estén incluidos en el resultado de la consulta SELECT *. Este modificador no
se puede utilizar con el modificador implicitlyhiddenmissing.

Si se utiliza este modificador y la consulta no es una consulta SELECT *, se


devuelve un error (SQLCODE SQL3526N).
implicitlyhiddenmissing Este modificador se utiliza con las consultas SELECT * y especifica que no han de
exportarse los datos de las columnas ocultas implícitamente. Este modificador no
se puede utilizar con el modificador implicitlyhiddeninclude.

Si se utiliza este modificador y la consulta no es una consulta SELECT *, se


devuelve un error (SQLCODE SQL3526N).
xmlinsepfiles Cada instancia XQuery Data Model (XDM) se graba en un archivo aparte. Por
omisión, se concatenan varios valores juntos en el mismo archivo.
lobsinsepfiles Cada valor LOB se graba en un archivo aparte. Por omisión, se concatenan varios
valores juntos en el mismo archivo.
xmlnodeclaration Las instancias XDM se graban sin un identificador de declaración de XML. Por
omisión, las instancias XDM se exportan con un identificador de declaración de
XML al principio que incluye un atributo de codificación.
xmlchar Las instancias XDM se graban en la página de códigos de caracteres. Observe que
la página de códigos de caracteres es el valor que se especifica mediante el
modificador de tipo de archivo codepage o la página de códigos de aplicación, si
no se ha especificado. Por omisión, las instancias de XDM se graban en Unicode.

Capítulo 5. mandatos CLP 199


EXPORT

Tabla 10. Modificadores de tipo de archivo válidos para el programa de utilidad de exportación: Todos los formatos
de archivo (continuación)
Modificador Descripción
xmlgraphic Si se especifica el modificador xmlgraphic con el mandato EXPORT, el documento
XML exportado se codificará con la página de códigos UTF-16
independientemente de la página de códigos de la aplicación o el modificador de
tipo de archivo codepage.

Tabla 11. Modificadores de tipo de archivo válidos para el programa de utilidad de exportación: Formato de archivo
DEL (ASCII delimitado)
Modificador Descripción
chardelx x es un delimitador de serie de un solo carácter. El valor por omisión son las comillas
dobles ("). El carácter especificado se utiliza en lugar de las comillas dobles para
delimitar una serie.2 Si desea especificar explícitamente las comillas dobles como
delimitador de serie de caracteres, debe especificarse de la manera siguiente:
modified by chardel""

También se pueden especificar las comillas simples (') como delimitador de serie de
caracteres del modo siguiente:
modified by chardel’’
codepage=x x es una serie de caracteres ASCII. El valor se interpreta como la página de códigos
de los datos del archivo de salida. Convierte datos de tipo carácter a esta página de
códigos desde la página de códigos de la aplicación durante la operación de
exportación.

Para DBCS (gráfico) puro, DBCS mixto y EUC, los delimitadores están restringidos al
rango de x00 a x3F, inclusive. El modificador codepage no se puede utilizar con el
modificador lobsinfile.
coldelx x es un delimitador de columna de un solo carácter. El valor por omisión es una
coma (,). Se utiliza el carácter especificado en lugar de una coma para indicar el final
de una columna.2

En el ejemplo siguiente, coldel; hace que el programa de utilidad de exportación


utilice el carácter de punto y coma (;) como un delimitador de columna para los
datos exportados:
db2 "export to temp of del modified by coldel;
select * from staff where dept = 20"
decplusblank Carácter de signo más. Hace que a los valores decimales positivos se les ponga un
espacio en blanco como prefijo en lugar de un signo más (+). La acción por omisión
es poner a los valores decimales positivos un signo más como prefijo.
decptx x es un sustituto de un solo carácter del punto como carácter de coma decimal. El
valor por omisión es un punto (.). Se utiliza el carácter especificado como carácter de
coma decimal.2
nochardel Los datos de columna no estarán rodeados por delimitadores de caracteres. No se
debe especificar esta opción si los datos se van a importar o cargar utilizando DB2. Se
proporciona para dar soporte a archivos de datos de proveedores que no tienen
delimitadores de caracteres. El uso incorrecto podría causar la pérdida o la corrupción
de los datos.

Esta opción no se puede especificar con chardelx o nodoubledel. Son opciones que se
excluyen mutuamente.
nodoubledel Suprime el reconocimiento de los delimitadores de caracteres dobles.2

200 Consulta de mandatos


EXPORT

Tabla 11. Modificadores de tipo de archivo válidos para el programa de utilidad de exportación: Formato de archivo
DEL (ASCII delimitado) (continuación)
Modificador Descripción
striplzeros Elimina los ceros iniciales de todas las columnas decimales exportadas.

Consideremos el ejemplo siguiente:


db2 create table decimalTable ( c1 decimal( 31, 2 ) )
db2 insert into decimalTable values ( 1.1 )

db2 export to data of del select * from decimalTable

db2 export to data of del modified by STRIPLZEROS


select * from decimalTable

En la primera operación de exportación, el contenido de los datos del archivo


exportado será +00000000000000000000000000001.10. En la segunda operación, que es
idéntica a la primera a excepción del modificador striplzeros, el contenido de los
datos del archivo exportado será +1.10.

Capítulo 5. mandatos CLP 201


EXPORT

Tabla 11. Modificadores de tipo de archivo válidos para el programa de utilidad de exportación: Formato de archivo
DEL (ASCII delimitado) (continuación)
Modificador Descripción
timestampformat="x" x es el formato de la indicación de fecha y hora en el archivo fuente.4 Los elementos
de indicación de fecha y hora son:
AAAA - Año (cuatro dígitos entre 0000 y 9999)
M - Mes (uno o dos dígitos entre 1 y 12)
MM - Mes (dos dígitos entre 01 y 12;
se excluye mutuamente con M y MMM)
MMM - Mes (abreviación de tres letras no sensible a mayúsculas
y minúsculas para el nombre del mes; se excluye
mutuamente con M y MM)
D - Día (uno o dos dígitos entre 1 y 31)
DD - Día (dos dígitos entre 01 y 31; se excluye mutuamente con D)
DDD - Día del año (tres dígitos entre 001 y 366;
se excluye mutuamente con otros elementos de día o mes)
H - Hora (uno o dos dígitos entre 0 y 12
para un sistema de 12 horas y entre
0 y 24 para un sistema de 24 horas)
HH - Hora (dos dígitos entre 00 y 12
para un sistema de 12 horas, y entre 00
y 24 para un sistema de 24 horas;
se excluye mutuamente con H)
M - Minuto (uno o dos dígitos entre 0 y 59)
MM - Minuto (dos dígitos entre 00 y 59;
se excluye mutuamente con M, minuto)
S - Segundo (uno o dos dígitos entre 0 y 59)
SS - Segundo (dos dígitos entre 00 y 59;
se excluye mutuamente con S)
SSSSS - Segundo del día después de medianoche (5
dígitos de 00000 y 86400; se excluye
mutuamente con otros elementos de hora)
U (de 1 a 12 veces)
- Segundos fraccionarios (el número de casos de U representa el
número de dígitos con cada dígito comprendido entre 0 y 9
TT - Indicador de meridiano (AM o PM)

A continuación se muestra un ejemplo de un formato de indicación de la hora:


"AAAA/MM/DD HH:MM:SS.UUUUUU"

El elemento MMM producirá los valores siguientes: 'Ene', 'Feb', 'Mar', 'Abr', 'May',
'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', y 'Dic'. 'Ene' es igual al mes 1, y 'Dic' es igual al
mes 12.

El ejemplo siguiente muestra un ejemplo de cómo exportar datos que contengan


formatos de indicación de fecha y hora definidos por el usuario desde una tabla
denominada 'schedule':
db2 export to delfile2 of del
modified by timestampformat="aaaa.mm.dd hh:mm tt"
select * from schedule

Tabla 12. Modificadores de tipo de archivo válidos para el programa de utilidad de exportación: Formato de archivo
IXF
Modificador Descripción
codepage=x x es una serie de caracteres ASCII. El valor se interpreta como la página de
códigos de los datos del archivo de salida. Convierte los datos de tipo carácter de
esta página de códigos a la página de códigos de la aplicación durante la
operación de exportación.

Para DBCS (gráfico) puro, DBCS mixto y EUC, los delimitadores están
restringidos al rango de x00 a x3F, inclusive.

202 Consulta de mandatos


EXPORT

Nota:
1. El programa de utilidad de exportación no emite ningún aviso si se intentan
utilizar tipos de archivo no soportados con la opción MODIFIED BY. Si se
intenta realizar dicha acción, la operación de exportación falla y se devuelve
un código de error.
2. En la sección Consideraciones sobre el delimitador para mover datos se muestran
las restricciones que se aplican a los caracteres que se pueden utilizar como
alteración temporal de los delimitadores.
3. El programa de utilidad de exportación graba normalmente los
v datos de fecha en formato AAAAMMDD
v datos char(fecha) en formato "AAAA-MM-DD"
v datos de hora en formato "HH.MM.SS"
v datos de indicación de fecha y hora en formato "AAAA-MM-DD-
HH.MM.SS.uuuuuu"
Los datos contenidos en cualquier columna de fecha y hora especificada en la
sentencia SELECT para la operación de exportación también tendrán estos
formatos.
4. Para formatos de indicación de la hora, hay que tener cuidado de evitar la
ambigüedad entre los descriptores de mes y de minuto, dado que ambos
utilizan la letra M. Un campo de mes debe estar junto a otros campos de
fecha. Un campo de minuto debe ser adyacente a otros campos de hora. He
aquí unos formatos ambiguos de indicación de fecha y hora:
"M" (puede ser mes o minuto)
"M:M" (¿Cuál es cada uno?)
"M:AAAA:M" (Ambos se interpretan como mes.)
"S:M:AAAA" (adyacente a un valor de hora y un valor de fecha)

En los casos ambiguos, el programa de utilidad informará con un mensaje de


error y la operación fallará.
He aquí unos formatos no ambiguos de indicación de fecha y hora:
"M:AAAA" (Mes)
"S:M" (Minuto)
"M:AAAA:S:M" (Mes....Minuto)
"M:H:AAAA:M:D" (Minuto....Mes)
5. Todas las instancias de XDM se graban en archivos XML aparte del archivo de
datos principal, incluso si no se ha especificado la cláusula XMLFILE ni XML TO.
Por omisión, los archivos XML se graban en la vía de acceso del archivo de
datos exportado. El nombre base por omisión para los archivos XML es el
nombre del archivo de datos exportado con la extensión ".xml" añadida.
6. Todas las instancias XDM se graban con una declaración de XML al principio
que incluye un atributo de codificación, a menos que se especifique el
modificador de tipo de archivo XMLNODECLARATION.
7. Por omisión, todas las instancias de XDM se graban en Unicode, a menos que
se especifique el modificador de tipo de archivo XMLCHAR o XMLGRAPHIC.
8. La vía de acceso por omisión para datos XML y datos LOB es la vía de acceso
del archivo de datos principal. El nombre base del archivo XML por omisión
es el archivo de datos principal. El nombre base del archivo LOB por omisión
es el archivo de datos principal. Por ejemplo, si el archivo de datos principal
es:
/mypath/myfile.del

Capítulo 5. mandatos CLP 203


EXPORT

, la vía de acceso por omisión para datos XML y datos LOB es:
/mypath"

el nombre base del archivo XML por omisión es:


myfile.del

y el nombre base del archivo LOB por omisión es:


myfile.del
Debe especificarse el modificador de tipo de archivo LOBSINFILE para poder
generar los archivos LOB.
9. El programa de utilidad de exportación añade un identificador numérico a
cada archivo LOB o archivo XML. El identificador comienza como un valor de
secuencia de 3 dígitos, rellenado con 0, que empieza en:
.001

Después del archivo LOB o archivo XML número 999, el identificador ya no


aparecerá con ceros de relleno (por ejemplo, el archivo LOG o archivo XML
número 1000 tendrá una extensión:
.1000

A continuación del identificador numérico hay un identificador de tipo de tres


caracteres que representa el tipo de datos, ya sea:
.lob

o
.xml

Por ejemplo, un archivo LOB generado tendría un nombre con formato:


myfile.del.001.lob

y un archivo XML generado tendría un nombre con formato:


myfile.del.001.xml
10. Es posible hacer que el programa de utilidad de exportación exporte las
instancias de XDM que no sean documentos con formato correcto
especificando una XQuery. No obstante, no podrá importar ni cargar estos
documentos exportados directamente a una columna XML, ya que las
columnas XML solamente pueden contener documentos completos.
Información relacionada

204 Consulta de mandatos


FORCE APPLICATION

FORCE APPLICATION
Fuerza a las aplicaciones o usuarios locales o remotos a salir del sistema para
permitir tareas de mantenimiento en un servidor.

Atención: Si se fuerza una operación que no se puede interrumpir (por ejemplo


RESTORE DATABASE), se deberá volver a ejecutar satisfactoriamente la operación para
que la base de datos quede disponible.

Ámbito

Este mandato afecta a todas las particiones de base de datos que se listan en el
archivo $HOME/sqllib/db2nodes.cfg.

En un entorno de base de datos particionada, este mandato no tiene que emitirse


desde la partición de base de datos coordinadora de la aplicación que se está
forzando. Puede emitirse desde cualquier servidor de partición de base de datos
existente en el entorno de base de datos particionada.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT

Conexión necesaria

Instancia. Para forzar a los usuarios a salir de un servidor remoto, primero es


necesario conectarse a dicho servidor. Si no existe ninguna conexión, este mandato
se ejecuta localmente.

Sintaxis del mandato


 FORCE APPLICATION ALL 
,

(  descriptor-contexto-aplicación )

 
MODE ASYNC

Parámetros del mandato


FORCE APPLICATION
ALL Se desconectarán todas las aplicaciones de la base de datos.
descriptor-contexto-aplicación
Especifica el agente que se debe terminar. Liste los valores
mediante el mandato LIST APPLICATIONS.
MODE ASYNC
El mandato no espera a que todos los usuarios especificados terminen para
volver; vuelve tan pronto como se ha emitido satisfactoriamente la función
o se ha descubierto un error (por ejemplo sintaxis no válida).

Capítulo 5. mandatos CLP 205


FORCE APPLICATION

Esta es la única modalidad que se soporta actualmente.

Ejemplos

El ejemplo siguiente fuerza a dos usuarios, con valores de descriptor-contexto-


aplicación igual a 41408 y 55458, a desconectarse de la base de datos:
db2 "force application ( 41408, 55458 )"

Notas de uso

El gestor de bases de datos permanece activo para que las operaciones del gestor
de bases de datos subsiguientes puedan manejarse sin necesidad de ejecutar
db2start.

Para conservar la integridad de la base de datos, solo se pueden interrumpir los


usuarios que están desocupados o que están ejecutando operaciones de base de
datos que se pueden interrumpir.

Los siguientes tipos de usuario y aplicaciones no se pueden forzar.


v usuarios que crean una base de datos
v aplicaciones del sistema
Para poder forzar a estos tipos de usuarios y aplicaciones de manera satisfactoria,
se debe desactivar la base de datos y/o reiniciar la instancia.

Después de haber emitido un FORCE APPLICATION, la base de datos seguirá


aceptando peticiones de conexión. Podrían ser necesarias operaciones de forzar
adicionales para forzar a salir completamente a todos los usuarios.
Información relacionada

206 Consulta de mandatos


GET ADMIN CONFIGURATION

GET ADMIN CONFIGURATION


Devuelve los valores de los parámetros de configuración individuales del Servidor
de administración de DB2 (DAS) en el nodo de administración del sistema. El DAS
es una herramienta administrativa especial que permite la administración remota
de servidores DB2.

Para obtener una lista de parámetros de configuración de DAS, vea la descripción


del mandato UPDATE ADMIN CONFIGURATION.

Importante: El Servidor de administración de DB2 (DAS) ha dejado de utilizarse


en la Versión 9.7 y puede que se elimine en un futuro release. No se da soporte al
DAS en los entornos DB2 pureScale. Utilice programas de software que utilicen el
protocolo de shell seguro para la administración remota. Para obtener más
información, consulte el apartado “ DB2 administration server (DAS) has been
deprecated” en .

Ámbito
Este mandato devuelve información acerca de los parámetros de configuración de
DAS en el nodo administrativo del sistema al que está conectado o que se
especifica en la opción FOR NODE.

Autorización

Ninguna

Conexión necesaria

Nodo. Para visualizar la configuración de DAS para un sistema remoto, conéctese


primero a ese sistema o utilice la opción FOR NODE para especificar el nodo
administrativo del sistema.

Sintaxis del mandato


 GET ADMIN CONFIGURATION 
CONFIG
CFG

 
FOR NODE nombre-nodo
USER nombreusuario USING contraseña

Parámetros del mandato


FOR NODE nombre-nodo
Entre el nombre del nodo administrativo para ver los parámetros de
configuración de DAS en el mismo.
USER nombreusuario USING contraseña
Si la conexión al nodo requiere un nombre de usuario y una contraseña,
entre esta información.

Ejemplos
El ejemplo siguiente es una salida de ejemplo de GET ADMIN CONFIGURATION:

Capítulo 5. mandatos CLP 207


GET ADMIN CONFIGURATION

Configuración servidor administración

DAS de tipo de autentificación (AUTHENTICATION) = SERVER_ENCRYPT

Nombre grupo autorización admin. DAS (DASADM_GROUP) = ADMINISTRATORS

Modalidad de Discovery de DAS (DISCOVER) = SEARCH


Nombre del sistema servidor DB2 (DB2SYSTEM) = swalkty

Vía instalación Java Development Kit DAS (JDK_PATH) = e:\sqllib\java\jdk

Página de códigos de DAS (DAS_CODEPAGE) = 0


Territorio de DAS (DAS_TERRITORY) = 0

Ubicación de lista de contactos (CONTACT_HOST) = hostA.ibm.ca


Ejecutar tareas caducadas (EXEC_EXP_TASK) = NO
Modalidad de planificador (SCHED_ENABLE) = ON
Servidor SMTP (SMTP_SERVER) = smtp1.ibm.ca
Base datos catálogo herramientas (TOOLSCAT_DB) = CCMD
Instancia base datos catálogo herram. (TOOLSCAT_INST) = DB2
Esquema base datos catálogo herram. (TOOLSCAT_SCHEMA) = TOOLSCAT
ID de usuario de planificador = db2admin

Notas de uso

Si se produce un error, la información devuelta no es válida. Si el archivo de


configuración no es válido, se devuelve un mensaje de error. El usuario debe
instalar otra vez el DAS para recuperarse.

Para establecer los parámetros de configuración en los valores por omisión


enviados con el DAS, utilice el mandato RESET ADMIN CONFIGURATION.

208 Consulta de mandatos


GET ALERT CONFIGURATION

GET ALERT CONFIGURATION


Devuelve los valores de configuración de alerta para los indicadores de salud
correspondientes a una instancia determinada.

Importante: Este mandato o API ha quedado en desuso y puede que se elimine en


un futuro release, ya que el supervisor de salud ha quedado en desuso en la
Versión 9.7. No recibe soporte en los entornos DB2 pureScale. Para obtener más
información, consulte el tema “El Supervisor de salud ha quedado en desuso” en
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/
com.ibm.db2.luw.wn.doc/doc/i0055045.html.

Autorización

Ninguna

Conexión necesaria

Instancia. No se necesita una conexión explícita.

Sintaxis del mandato


 GET ALERT CONFIGURATION FOR 
CONFIG
CFG

 DATABASE MANAGER 
DB MANAGER DEFAULT
DBM
DATABASES
CONTAINERS
TABLESPACES
DATABASE ON alias basedatos
TABLESPACE nombre
CONTAINER nombre FOR ID-espacio-tablas

 
,

USING  nombre indicador salud

Parámetros del mandato


DATABASE MANAGER
Recupera valores de alerta para el gestor de bases de datos.
DATABASES
Recupera valores de alerta para todas las bases de datos gestionadas por el
gestor de bases de datos. Estos son los valores que se aplican a todas las
bases de datos que no tienen valores personalizados. Los valores
personalizados se definen utilizando la cláusula DATABASE ON alias basedatos.
CONTAINERS
Recupera valores de alerta para todos los contenedores de espacios de
tablas gestionados por el gestor de bases de datos. Estos son los valores
que se aplican a todos los contenedores de espacios de tablas que no tienen
valores personalizados. Los valores personalizados se definen utilizando la
cláusula CONTAINER nombre ON alias basedatos.

Capítulo 5. mandatos CLP 209


GET ALERT CONFIGURATION

TABLESPACES
Recupera valores de alerta para todos los espacios de tablas gestionados
por el gestor de bases de datos. Estos son los valores que se aplican a
todos los espacios de tablas que no tienen valores personalizados. Los
valores personalizados se definen utilizando la cláusula TABLESPACE nombre
ON alias basedatos.
DEFAULT
Especifica que se deben recuperar los valores por omisión de instalación.
DATABASE ON alias basedatos
Recupera los valores de alerta para la base de datos especificada utilizando
la cláusula ON alias basedatos. Si esta base de datos no tiene valores
personalizados, se devolverán los valores para todas las bases de datos
para la instancia, lo que equivale a utilizar el parámetro DATABASES.
CONTAINER nombre FOR ID-espacio-tablas ON alias basedatos
Recupera los valores de alerta del contenedor del espacio de tablas
denominado nombre, para el espacio de tablas especificado utilizando la
cláusula FOR id-espaciotablas en la base de datos especificada utilizando la
cláusula ON alias basedatos. Si este contenedor de espacio de tablas no tiene
valores personalizados, se devolverán los valores para todos los
contenedores de espacios de tablas para la base de datos, lo que equivale a
utilizar el parámetro CONTAINERS.
TABLESPACE nombre ON alias basedatos
Recupera los valores de alerta para el espacio de tablas llamado nombre, en
la base de datos especificada utilizando la cláusula ON alias basedatos. Si este
espacio de tablas no tiene valores personalizados, se devolverán los valores
para todos los espacios de tablas para la base de datos, lo que equivale a
utilizar el parámetro TABLESPACES.
USING nombre indicador salud
Especifica el conjunto de indicadores de salud para los que se devolverá la
configuración de alerta. Los nombres de indicador de salud se componen
de un identificador de objeto de dos letras, seguido de un nombre que
describe lo que mide el indicador. Por ejemplo: db.sort_privmem_util. Ésta
es una cláusula opcional, lo que quiere decir que si no se utiliza, se
devolverán todos los indicadores de salud para el objeto o el tipo de objeto
especificado.

Ejemplos

La sección siguiente es una salida típica resultante de una petición de información


del gestor de bases de datos:
DB2 GET ALERT CFG FOR DBM

Configuración de alertas
Nombre de indicador = db2.db2_op_status
Valor por omisión = Sí
Tipo = Basado en el estado
Confidencialidad = 0
Fórmula = db2.db2_status;
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db2.sort_privmem_util


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 90
Alarma = 100

210 Consulta de mandatos


GET ALERT CONFIGURATION

Unidad = %
Confidencialidad = 0
Fórmula = ((db2.sort_heap_allocated/sheapthres)
*100);
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db2.mon_heap_util


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 85
Alarma = 95
Unidad = %
Confidencialidad = 0
Fórmula = ((db2.mon_heap_cur_size/
db2.mon_heap_max_size)*100);
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

La sección siguiente es una salida típica resultante de una petición de información


de configuración:
DB2 GET ALERT CFG FOR DATABASES

Configuración de alertas
Nombre de indicador = db.db_op_status
Valor por omisión = Sí
Tipo = Basado en el estado
Confidencialidad = 0
Fórmula = db.db_status;
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.sort_shrmem_util


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 70
Alarma = 85
Unidad = %
Confidencialidad = 0
Fórmula = ((db.sort_shrheap_allocated/sheapthres_shr)
*100);
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.spilled_sorts


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 30
Alarma = 50
Unidad = %
Confidencialidad = 0
Fórmula = ((delta(db.sort_overflows,10))/
(delta(db.total_sorts,10)+1)*100);
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.max_sort_shrmem_util


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 60
Alarma = 30
Unidad = %
Confidencialidad = 0
Fórmula = ((db.max_shr_sort_mem/
sheapthres_shr)*100);
Acciones = Inhabilitado

Capítulo 5. mandatos CLP 211


GET ALERT CONFIGURATION

Comprobación umbral o estado = Habilitado

Nombre de indicador = db.log_util


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 75
Alarma = 85
Unidad = %
Confidencialidad = 0
Fórmula = (db.total_log_used/
(db.total_log_used+db.total_log_available)
)*100;
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.log_fs_util


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 75
Alarma = 85
Unidad = %
Confidencialidad = 0
Fórmula = ((os.fs_used/os.fs_total)*100);
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.deadlock_rate


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 5
Alarma = 10
Unidad = Puntos muertos por hora
Confidencialidad = 0
Fórmula = delta(db.deadlocks);
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.locklist_util


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 75
Alarma = 85
Unidad = %
Confidencialidad = 0
Fórmula = (db.lock_list_in_use/(locklist*4096))
*100;
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.lock_escal_rate


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 5
Alarma = 10
Unidad = Escalamientos de bloqueos por hora
Confidencialidad = 0
Fórmula = delta(db.lock_escals);
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.apps_waiting_locks


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 50
Alarma = 70
Unidad = %
Confidencialidad = 0

212 Consulta de mandatos


GET ALERT CONFIGURATION

Fórmula = (db.locks_waiting/db.appls_cur_cons)*100;

Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.pkgcache_hitratio


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 80
Alarma = 70
Unidad = %
Confidencialidad = 0
Fórmula = (1-
(db.pkg_cache_inserts/db.pkg_cache_lookups)
)*100;
Acciones = Inhabilitado
Comprobación umbral o estado = Inhabilitado

Nombre de indicador = db.catcache_hitratio


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 80
Alarma = 70
Unidad = %
Confidencialidad = 0
Fórmula = (1-
(db.cat_cache_inserts/db.cat_cache_lookups)
)*100;
Acciones = Inhabilitado
Comprobación umbral o estado = Inhabilitado

Nombre de indicador = db.shrworkspace_hitratio


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 80
Alarma = 70
Unidad = %
Confidencialidad = 0
Fórmula = ((1-
(db.shr_workspace_section_inserts/
db.shr_workspace_section_lookups))
*100);
Acciones = Inhabilitado
Comprobación umbral o estado = Inhabilitado

Nombre de indicador = db.db_heap_util


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 85
Alarma = 95
Unidad = %
Confidencialidad = 0
Fórmula = ((db.db_heap_cur_size/
db.db_heap_max_size)*100);
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.tb_reorg_req


Valor por omisión = Sí
Tipo = Basado en el estado de la colección
Confidencialidad = 0
Acciones = Inhabilitado
Comprobación umbral o estado = Inhabilitado

Nombre de indicador = db.hadr_op_status


Valor por omisión = Sí
Tipo = Basado en el estado

Capítulo 5. mandatos CLP 213


GET ALERT CONFIGURATION

Confidencialidad = 0
Fórmula = db.hadr_connect_status;
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.hadr_delay


Valor por omisión = Sí
Tipo = Basado en un umbral
Aviso = 10
Alarma = 15
Unidad = Minutos
Confidencialidad = 0
Fórmula = (db.hadr_log_gap*var.refresh_rate/60)
DIV(delta(db.hadr_secondary_log_pos));
Acciones = Inhabilitado
Comprobación umbral o estado = Habilitado

Nombre de indicador = db.db_backup_req


Valor por omisión = Sí
Tipo = Basado en el estado
Confidencialidad = 0
Acciones = Inhabilitado
Comprobación umbral o estado = Inhabilitado

Nombre de indicador = db.fed_nicknames_op_status


Valor por omisión = Sí
Tipo = Basado en el estado de la colección
Confidencialidad = 0
Acciones = Inhabilitado
Comprobación umbral o estado = Inhabilitado

Nombre de indicador = db.fed_servers_op_status


Valor por omisión = Sí
Tipo = Basado en el estado de la colección
Confidencialidad = 0
Acciones = Inhabilitado
Comprobación umbral o estado = Inhabilitado

Nombre de indicador = db.tb_runstats_req


Valor por omisión = Sí
Tipo = Basado en el estado de la colección
Confidencialidad = 0
Acciones = Inhabilitado
Comprobación umbral o estado = Inhabilitado

214 Consulta de mandatos


GET CLI CONFIGURATION

GET CLI CONFIGURATION


Lista el contenido del archivo db2cli.ini. Este mandato puede listar el archivo
entero o una sección especificada.

El archivo db2cli.ini se utiliza como archivo de configuración de la interfaz de


nivel de llamada (CLI) de DB2. Contiene varias palabras clave y valores que se
pueden utilizar para modificar el comportamiento de la CLI y de las aplicaciones
que la utilizan. El archivo está dividido en secciones, cada una de las cuales
corresponde a un nombre de alias de base de datos.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 GET CLI CONFIGURATION 
CONFIG AT GLOBAL LEVEL
CFG

 
FOR SECTION nombre-sección

Parámetros del mandato


AT GLOBAL LEVEL
Visualiza los parámetros de configuración de CLI por omisión en el
directorio LDAP. Este parámetro sólo es válido en los sistemas operativos
Windows.
FOR SECTION nombre-sección
Nombre de la sección cuyas palabras clave deben listarse. Si no se
especifica, se listan todas las secciones.

Ejemplos

La salida de ejemplo siguiente representa el contenido de un archivo db2cli.ini


que tiene dos secciones:
[tstcli1x]
uid=idusuario
pwd=contraseña
autocommit=0
TableType="’TABLE’,’VIEW’,’SYSTEM TABLE’"

[tstcli2x]
SchemaList="’OWNER1’,’OWNER2’,CURRENT SQLID"

Notas de uso

El nombre de sección especificado en este mandato no es sensible a las mayúsculas


y minúsculas. Por ejemplo, si el nombre de sección del archivo db2cli.ini

Capítulo 5. mandatos CLP 215


GET CLI CONFIGURATION

(delimitado por corchetes) está en minúsculas y el nombre de sección especificado


en el mandato está en mayúsculas, se listará la sección correcta.

El valor de la palabra clave PWD (contraseña) no se lista nunca; en su lugar,


aparecen cinco asteriscos (*****).

Cuando se habilita el LDAP (Lightweight Directory Access Protocol), los


parámetros de configuración de CLI pueden establecerse a nivel de usuario,
además del nivel de máquina. La configuración de CLI a nivel de usuario se
mantiene en el directorio LDAP. Si la sección especificada existe a nivel de usuario,
se devuelve la configuración de CLI para dicha sección a nivel de usuario; de lo
contrario, se devuelve la configuración de CLI a nivel de máquina.

La configuración de CLI a nivel de usuario se mantiene en el directorio LDAP y se


almacena en la antememoria de la máquina local. Al leer la configuración de CLI a
nivel de usuario, DB2 lee siempre en la antememoria. La antememoria se renueva
cuando:
v El usuario actualiza la configuración de CLI.
v El usuario fuerza explícitamente una renovación de la configuración de CLI
mediante el mandato REFRESH LDAP.

En un entorno LDAP, los usuarios pueden configurar un conjunto de valores CLI


por omisión para una base de datos catalogada en el directorio LDAP. Cuando se
añade una base de datos catalogada LDAP como un Nombre de fuente de datos
(DSN) utilizando el programa de utilidad de configuración de CLI/ODBC, se
configurarán los valores CLI por omisión, si existen en el directorio LDAP, para
dicho DSN en la máquina local. Se debe especificar la cláusula AT GLOBAL LEVEL
para visualizar los valores por omisión de CLI.

216 Consulta de mandatos


GET CONNECTION STATE

GET CONNECTION STATE


Visualiza el estado de la conexión.

Los estados posibles son:


v Conectable y conectado.
v Conectable y no conectado.
v No conectable y conectado.
v Conectable implícitamente (si la conexión implícita se encuentra disponible).

Este mandato también devuelve información sobre:


v La modalidad de conexión de la base de datos (SHARE o EXCLUSIVE)
v El alias y el nombre de la base de datos con la que existe una conexión (si existe
alguna)
v El nombre de sistema principal y el nombre de servicio de la conexión si la
conexión utiliza TCP/IP

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 GET CONNECTION STATE 

Parámetros del mandato

Ninguna

Ejemplos

El ejemplo siguiente es una salida de ejemplo de GET CONNECTION STATE:


Estado de conexión con base de datos

Estado conexión = Conectable y conectado


Modalidad de conexión = SHARE
Alias base datos local = SAMPLE
Nombre de base de datos = SAMPLE
Nombre del sistema principal = montero
Nombre de servicio = 29384

Notas de uso

Este mandato no se aplica a conexiones de tipo 2.

Capítulo 5. mandatos CLP 217


GET CONTACTGROUP

GET CONTACTGROUP
Devuelve los contactos incluidos en un solo grupo de contactos definido en el
sistema local. Un contacto es un usuario al que el Planificador y el Supervisor de
salud envían mensajes.

Los grupos de contactos con nombre se crean con el mandato ADD CONTACTGROUP.

Autorización

Ninguna

Conexión necesaria

Ninguna. Sólo en ejecución local: este mandato no se puede utilizar con una
conexión remota.

Sintaxis del mandato


 GET CONTACTGROUP nombre 

Parámetros del mandato


CONTACTGROUP nombre
Nombre del grupo para el que desea recuperar los contactos.

Ejemplos

Soporte GET CONTACTGROUP


Descripción
-------------
Unidad de soporte broadloom Foo Widgets

Nombre Tipo
------------- --------------
joe contacto
soporte grupo contactos
joline contacto

218 Consulta de mandatos


GET CONTACTGROUPS

GET CONTACTGROUPS
Proporciona una lista de grupos de contactos, que pueden estar definidos
localmente en el sistema o en una lista global. Un grupo de contacto es una lista de
direcciones a los que los procesos de supervisión, tales como el Planificador y el
Supervisor de salud, pueden enviar mensajes.

El valor del parámetro de configuración contact_host del Servidor de


administración de bases de datos (DAS) determina si la lista es local o global. Los
grupos de contactos con nombre se crean con el mandato ADD CONTACTGROUP.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 GET CONTACTGROUPS 

Parámetros del mandato

Ninguna

Ejemplos

En el ejemplo siguiente, se emite el mandato GET CONTACTGROUPS. El resultado es el


siguiente:
Nombre Descripción
--------- --------------
soporte Unidad de soporte broadloom Foo Widgets
service Unidad de servicio y soporte Foo Widgets

Capítulo 5. mandatos CLP 219


GET CONTACTS

GET CONTACTS
Devuelve la lista de contactos definida en el sistema local. Los contactos son
usuarios a los que procesos de supervisión tales como el Planificador y el
Supervisor de salud envían notificaciones o mensajes.

Para crear un contacto, utilice el mandato ADD CONTACT.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 GET CONTACTS 

Parámetros del mandato

Ninguna

Ejemplos

GET CONTACTS
Nombre Tipo Dirección Long. pág. máx. Descripción
------- ------ ---------- --------------- ------------
joe e-mail [email protected] - -
joline e-mail joline@ - -
somewhereelse.com
john page [email protected] 50 Support 24x7

220 Consulta de mandatos


GET DATABASE CONFIGURATION

GET DATABASE CONFIGURATION


Devuelve los valores de entradas individuales de un archivo de configuración de
base de datos específico.

Ámbito

Este mandato sólo devuelve información para la partición de base de datos en la


que se ejecuta.

Autorización

Ninguna

Conexión necesaria

Instancia. No es necesaria una conexión explícita, pero se necesita una conexión


con la base de datos al utilizar la cláusula SHOW DETAIL. Si la base de datos está
listada como remota, se establece una conexión de instancia al nodo remoto
durante el tiempo que dura el mandato.

Sintaxis del mandato


 GET DATABASE CONFIGURATION 
DB CONFIG FOR alias-base-datos
CFG

 
SHOW DETAIL

Parámetros del mandato


FOR alias-basedatos
Especifica el alias de la base de datos cuya configuración debe visualizarse.
No es necesario que especifique el alias si ya existe una conexión con la
base de datos.
SHOW DETAIL
Visualiza información detallada que muestra el valor actual de los
parámetros de configuración de base de datos, así como el valor de los
parámetros la próxima vez que se active la base de datos. Esta opción
permite ver el resultado de cambios dinámicos en los parámetros de
configuración.
Es la cláusula por omisión cuando funciona en la interfaz CLPPlus. Si se
utiliza el procesador CLPPlus, no es necesario invocar SHOW DETAIL.
Si no se especifica la opción SHOW DETAIL, este mandato devuelve sólo el
valor almacenado en DISK que puede ser distinto del valor actual en la
memoria.

Ejemplos

Nota:
1. La salida en plataformas diferentes podría mostrar pequeñas variaciones que
reflejan los parámetros específicos de plataforma.

Capítulo 5. mandatos CLP 221


GET DATABASE CONFIGURATION

2. Los parámetros con palabras clave entre paréntesis pueden cambiarse con el
mandato UPDATE DATABASE CONFIGURATION.
3. Los campos que no contienen palabras clave los mantiene el gestor de bases de
datos y no se pueden actualizar.

El siguiente ejemplo es una salida de ejemplo tras haber ejecutado el mandato GET
DATABASE CONFIGURATION fuera de un entorno DB2 pureScale con un sistema
operativo UNIX:
Configuración de base de datos para una base de datos de ejemplo

Nivel de release de configuración de base de datos = 0x0f00


Nivel de release de base de datos = 0x0f00

Territorio de base de datos = US


Página de códigos de la base de datos = 1208
Conjunto de códigos de la base de datos = UTF-8
Código de país/región de base de datos = 1
Orden de clasificación de base de datos = IDENTITY
Orden de clasificación alternativo (ALT_COLLATE) =
Compatibilidad de número = OFF
Compatibilidad de Varchar2 = OFF
Compatibilidad de fecha = OFF
Tamaño de página de base de datos = 4096

Gestión consulta SQL dinámico (DYN_QUERY_MGMT) = DISABLE

Concentrador de sentencias (STMT_CONC) = OFF

Soporte de Discovery para esta base datos (DISCOVER_DB) = ENABLE

Restringir acceso = NO
Clase optimización consulta por omisión (DFT_QUERYOPT) = 5
Grado de paralelismo (DFT_DEGREE) = 1
Continuar en excepciones aritméticas (DFT_SQLMATHWARN) = NO
Tiempo de renovación por omisión (DFT_REFRESH_AGE) = 0
Tipos tabla manten. por omis. para opt (DFT_MTTB_TYPES) = SYSTEM
Número de valores frecuentes retenidos (NUM_FREQVALUES) = 10
Número de cantidades retenidas (NUM_QUANTILES) = 20

Mod. redondeo coma flotante decimal (DECFLT_ROUNDING) = ROUND_HALF_EVEN

Pendiente de copia de seguridad = NO

Todas las transacciones confirmadas grabadas en disco = YES


Recuperación pendiente = NO
Pendiente de restauración = NO

Asignación de archivos múltiples págs. habilitada = YES

Retención anotaciones para estado de recuperación = NO


Salida de usuario para estado anotación cronológica = NO

Memoria ajuste automático (SELF_TUNING_MEM) = OFF


Tamaño memoria comp. base datos (4KB) (DATABASE_MEMORY) = AUTOMATIC(40944)
Umbral memoria base de datos (DB_MEM_THRESH) = 10
Almac. máx. para lista de bloqueos (4KB) (LOCKLIST) = 4096
Porcent. de listas de bloqueo por aplicación (MAXLOCKS) = 10
Tamaño de la antememoria de paquetes (4KB) (PCKCACHESZ) = (MAXAPPLS*8)
Umbral pila clasif para clasif comp(4KB)(SHEAPTHRES_SHR)= 5000
Pila de lista de clasificación (4KB) (SORTHEAP) = 256

Pila de base de datos (4KB) (DBHEAP) = AUTOMATIC(1200)


Tamaño antememoria catálogo (4KB) (CATALOGCACHE_SZ) = (MAXAPPLS*5)
Tamaño almac. intermedio anotaciones (4KB) (LOGBUFSZ) = 256
Tamaño pila de progs. de utilidad (4KB) (UTIL_HEAP_SZ) = 5000
Tamaño agrupación de almac. int. (páginas) (BUFFPAGE) = 1000
Pila de sentencias de SQL (4KB) (STMTHEAP) = AUTOMATIC(8192)
Pila de aplicaciones por omisión (4KB) (APPLHEAPSZ) = AUTOMATIC(256)
Tamaño memoria de aplicación (4KB) (APPL_MEMORY) = AUTOMATIC(40000)
Tamaño de la pila de estadísticas (4KB) (STAT_HEAP_SZ) = AUTOMATIC(4384)

Intervalo (ms) comprobación puntos muertos (DLCHKTIME) = 10000


Tiempo de espera de bloqueo (seg) (LOCKTIMEOUT) = -1

Umbral de páginas cambiadas (CHNGPGS_THRESH) = 60


Número de limpiadores de página asínc. (NUM_IOCLEANERS) = AUTOMATIC(1)
Número de servidores de E/S (NUM_IOSERVERS) = AUTOMATIC(3)
Distintivo de clasificación del índice (INDEXSORT) = YES
Distintivo de detección secuencial (SEQDETECT) = YES
Tamaño captac. previa omisión (pág.) (DFT_PREFETCH_SZ) = AUTOMATIC

Rastrear páginas modificadas (TRACKMOD) = NO

Número por omisión de contenedores = 1


Tam. extens. espacio tablas omis. (pág.)(DFT_EXTENT_SZ) = 32

222 Consulta de mandatos


GET DATABASE CONFIGURATION

Número máx. de aplicaciones activas (MAXAPPLS) = AUTOMATIC(40)


Promedio de aplicaciones activas (AVG_APPLS) = AUTOMATIC(1)
Máx. de archivos de BD abiertos por aplic. (MAXFILOP) = 61440

Tamaño del archivo del reg. cronol. (4KB) (LOGFILSIZ) = 1000


Número de archivos de registro ppales. (LOGPRIMARY) = 3
Número de archivos de reg. secundarios (LOGSECOND) = 2
Vía acceso modificado archivos anot. cron. (NEWLOGPATH) =
Vía de acceso de archivos de anotaciones cronológicas =
/home/db2inst1/db2inst1/SAMPLE/NODE0000/LOGSTREAM0000/
Vía acceso anot. cron. desbordamiento (OVERFLOWLOGPATH) =
Vía acceso anot. cron. duplicada (MIRRORLOGPATH) =
Primer archivo activo de anotaciones cronológicas =
Anot. cron. de bloque en disco llenas (BLK_LOG_DSK_FUL) = NO
Bloquear operaciones no anot. cronol. (BLOCKNONLOGGED) = NO
Porcent. espacio anot. primar. máx. por trans.(MAX_LOG) = 0
Núm. arch. anot. cron. act. 1 UOW activa (NUM_LOG_SPAN) = 0

Número de confirmaciones de grupo (MINCOMMIT) = 1


Porcent arch anot reclamado antes pcomp soft (SOFTMAX) = 100

Rol de base de datos HADR = STANDARD


Nombre de sistema pral. local de HADR (HADR_LOCAL_HOST) =
Nombre de servicio local de HADR (HADR_LOCAL_SVC) =
Nombre sistema pral. remoto de HADR (HADR_REMOTE_HOST) =
Nombre de servicio remoto de HADR (HADR_REMOTE_SVC) =
Nombre instancia HADR serv. remoto (HADR_REMOTE_INST) =
Valor de tiempo de espera de HADR (HADR_TIMEOUT) = 120
Lista de destinos de HADR (HADR_TARGET_LIST) =
Modalidad sinc. grab. anot. cron. HADR (HADR_SYNCMODE) = NEARSYNC
Duración ventana similar HADR (seg.)(HADR_PEER_WINDOW) = 0
Lím. datos anot. cr. spool HADR (4KB)(HADR_SPOOL_LIMIT) = 0
Retardo HADR reprod. anot. cr.(seg.)(HADR_REPLAY_DELAY) = 0
Método archivado primera anot. cronol. (LOGARCHMETH1) = OFF
Compresión archivado para logarchmeth1 (LOGARCHCOMPR1) = OFF
Opciones para logarchmeth1 (LOGARCHOPT1) =
Método archivado segunda anot. cronol. (LOGARCHMETH2) = OFF
Compresión archivado para logarchmeth2 (LOGARCHCOMPR2) = OFF
Opciones para logarchmeth2 (LOGARCHOPT2) =
Vía archivado anot. cronol. anomalías (FAILARCHPATH) =
Núm. reintentos arch. anot. cron. error (NUMARCHRETRY) = 5
Retraso reint. arch. anot. cron.(segs) (ARCHRETRYDELAY) = 20
Opciones de proveedor (VENDOROPT) =

Reinicio automático habilitado (AUTORESTART) = ON


Tiempo recreación índ. y rehacer creación índ.(INDEXREC)= SYSTEM (RESTART)
Págs. anot. cron. durante creación índ. (LOGINDEXBUILD) = OFF
Número por omis. de sesiones loadrec (DFT_LOADREC_SES) = 1
Número de copias seguridad a retener (NUM_DB_BACKUPS) = 12
Retención historial de recup. (días) (REC_HIS_RETENTN) = 366
Supresión autom. objetos recuperación(AUTO_DEL_REC_OBJ) = OFF

Clase de gestión TSM (TSM_MGMTCLASS) =


Nombre de nodo TSM (TSM_NODENAME) =
Propietario TSM (TSM_OWNER) =
Contraseña TSM (TSM_PASSWORD) =

Mantenimiento automático (AUTO_MAINT) = ON


Copia segur. automática base datos (AUTO_DB_BACKUP) = OFF
Mantenimiento de tabla automático (AUTO_TBL_MAINT) = ON
Runstats automático (AUTO_RUNSTATS) = ON
Estadísticas sentencias automát.(AUTO_STMT_STATS) = ON
Estadíst. vista estat. automát.(AUTO_STATS_VIEWS) = OFF
Descr. automática estadísticas (AUTO_STATS_PROF) = OFF
Actualización automática perfiles (AUTO_PROF_UPD) = OFF
Reorganización automática (AUTO_REORG) = OFF

Revalidación automática (AUTO_REVAL) = DEFERRED


Confirmado actualmente (CUR_COMMIT) = ON
Salida CHAR con entrada DECIMAL (DEC_TO_CHAR_FMT) = NEW
Habilitar operaciones caract. XML (ENABLE_XMLCHAR) = YES
Intervalo recopilación WLM (minutos) (WLM_COLLECT_INT) = 0
Valores de recopilación del supervisor
Métricas de peticiones (MON_REQ_METRICS) = BASE
Métricas de actividades (MON_ACT_METRICS) = BASE
Métricas de objetos (MON_OBJ_METRICS) = BASE
Sucesos de unidad de trabajo (MON_UOW_DATA) = NONE
Sucesos unidad trab. con lista paq. (MON_UOW_PKGLIST) = OFF
Sucesos unidad trab. con lista ej. (MON_UOW_EXECLIST) = OFF
Sucesos de tiempo de espera bloqueo (MON_LOCKTIMEOUT) = NONE
Sucesos de punto muerto (MON_DEADLOCK) = WITHOUT_HIST
Sucesos de espera de bloqueo (MON_LOCKWAIT) = NONE
Umbral de suceso de espera de bloqueo (MON_LW_THRESH) = 5000000
Núm. de entradas de lista de paquetes (MON_PKGLIST_SZ) = 32
Nivel notificación de sucesos bloqueo (MON_LCK_MSG_LVL) = 1

Servidor SMTP (SMTP_SERVER) =


Distint. de compilación condicional SQL (SQL_CCFLAGS) =
Config. de datos reales de sección (SECTION_ACTUALS) = NONE
Procedimiento de conexión (CONNECT_PROC) =

Capítulo 5. mandatos CLP 223


GET DATABASE CONFIGURATION

Ajustar periodo SYSTEM_TIME temp. (SYSTIME_PERIOD_ADJ) = NO


Anotar cronológicamente sentencias DDL (LOG_DDL_STMTS) = NO
Información aplicación anot. cronol. (LOG_APPL_INFO) = NO
Captura datos omisión esquemas nuevos (DFT_SCHEMAS_DCC) = NO
La base de datos está en estado WRITE SUSPEND = NO

El ejemplo siguiente es una salida de ejemplo tras haber ejecutado el mandato GET
DATABASE CONFIGURATION en un entorno DB2 pureScale con un sistema operativo
Linux:
Configuración de base de datos para una base de datos de ejemplo

Nivel de release de configuración de base de datos = 0x0e00


Nivel release base de datos = 0x0e00

Territorio de base de datos = US


Página de códigos de la base de datos = 1208
Conjunto de códigos de la base de datos = UTF-8
Código de país/región de base de datos = 1
Orden de clasificación de base de datos = IDENTITY
Orden de clasificación alternativo (ALT_COLLATE) =
Compatibilidad de número = OFF
Compatibilidad de Varchar2 = OFF
Compatibilidad de fecha = OFF
Tamaño de página de base de datos = 4096

Concentrador de sentencias (STMT_CONC) = OFF

Soporte de Discovery para esta base datos (DISCOVER_DB) = ENABLE

Restringir acceso = NO
Clase optimización consulta por omisión (DFT_QUERYOPT) = 5
Grado de paralelismo (DFT_DEGREE) = 1
Continuar en excepciones aritméticas (DFT_SQLMATHWARN) = NO
Tiempo de renovación por omisión (DFT_REFRESH_AGE) = 0
Tipos tabla manten. por omis. para opt (DFT_MTTB_TYPES) = SYSTEM
Número de valores frecuentes retenidos (NUM_FREQVALUES) = 10
Número de cantidades retenidas (NUM_QUANTILES) = 20

Mod. redondeo coma flotante decimal (DECFLT_ROUNDING) = ROUND_HALF_EVEN

Pendiente de copia de seguridad = NO

Todas las transacciones confirmadas grabadas en disco = YES


Recuperación pendiente = NO
Pendiente de restauración = NO

Asignación de archivos múltiples págs. habilitada = YES

Retención anotaciones para estado de recuperación = NO


Salida de usuario para estado anotación cronológica = NO

Memoria ajuste automático (SELF_TUNING_MEM) = ON


Tamaño mem. compart. base datos (4KB) (DATABASE_MEMORY) = AUTOMATIC(60032)
Umbral memoria base de datos (DB_MEM_THRESH) = 10
Almacenam. máx. para lista de bloqueos (4KB) (LOCKLIST) = AUTOMATIC(6575)
Porcent. de listas de bloqueo por aplicación (MAXLOCKS) = AUTOMATIC(60)
Tamaño de la antememoria de paquetes (4KB) (PCKCACHESZ) = AUTOMATIC(1533)
Umbral pila clasif para clasif comp 4KB(SHEAPTHRES_SHR) = AUTOMATIC(21919)
Pila de lista de clasificación (4KB) (SORTHEAP) = AUTOMATIC(1095)

Pila de base de datos (4KB) (DBHEAP) = AUTOMATIC(2462)


Tam. antememoria catálogo (4KB) (CATALOGCACHE_SZ) = 300
Tamaño almac. intermedio anotaciones (4KB) (LOGBUFSZ) = 256
Tamaño pila programas utilidad (4KB) (UTIL_HEAP_SZ) = 52763
Tamaño agrupación de almac. int. (páginas) (BUFFPAGE) = 1000
Pila de sentencias de SQL (4KB) (STMTHEAP) = AUTOMATIC(4096)
Pila de aplicaciones por omisión (4KB) (APPLHEAPSZ) = AUTOMATIC(256)
Tamaño memoria de aplicación (4KB) (APPL_MEMORY) = AUTOMATIC(40000)
Tamaño de la pila de estadísticas (4KB) (STAT_HEAP_SZ) = AUTOMATIC(4384)

Intervalo (ms) comprobación puntos muertos (DLCHKTIME) = 10000


Tiempo de espera de bloqueo (seg) (LOCKTIMEOUT) = -1

Umbral de páginas cambiadas (CHNGPGS_THRESH) = 80


Número de limpiadores de página asínc. (NUM_IOCLEANERS) = AUTOMATIC(1)
Número de servidores E/S (NUM_IOSERVERS) = AUTOMATIC(4)
Distintivo de clasificación del índice (INDEXSORT) = YES

224 Consulta de mandatos


GET DATABASE CONFIGURATION

Distintivo de detección secuencial (SEQDETECT) = YES


Tamaño captac. previa omisión (pág.) (DFT_PREFETCH_SZ) = AUTOMATIC

Rastrear páginas modificadas (TRACKMOD) = NO

Número por omisión de contenedores = 1


Tam. extens. espacio tablas omis. (pág.)(DFT_EXTENT_SZ) = 32

Número máx. de aplicaciones activas (MAXAPPLS) = AUTOMATIC(40)


Promedio de aplicaciones activas (AVG_APPLS) = AUTOMATIC(1)
Máx. de archivos de BD abiertos por aplic. (MAXFILOP) = 61440

Tamaño de archivo anotaciones cron. (4KB) (LOGFILSIZ) = 1024


Núm. archivos anot. cronol. primarios (LOGPRIMARY) = 13
Núm. archivos anot. cronol. secundarios (LOGSECOND) = 4
Vía acceso modificado archivos anot. cron. (NEWLOGPATH) =
Vía de acceso de archivos de anotaciones cronológicas =
/home/db2inst1/db2inst1/SAMPLE/NODE0000/LOGSTREAM0000/
Vía acceso anot. cron. desbordamiento (OVERFLOWLOGPATH) =
Vía acceso anot. cron. duplicada (MIRRORLOGPATH) =
Primer archivo activo de anotaciones cronológicas =
Anot. cron. de bloque en disco llenas (BLK_LOG_DSK_FUL) = NO
Bloquear operaciones no anot. cronol. (BLOCKNONLOGGED) = NO
Porcent. espacio anot. primar. máx. por trans.(MAX_LOG) = 0
Núm. arch. anot. cron. act. 1 UOW activa (NUM_LOG_SPAN) = 0

Número de confirmaciones de grupo (MINCOMMIT) = 1


Porcent arch anot reclamado antes pcomp soft (SOFTMAX) = 520
Rol de base de datos HADR = STANDARD
Nombre de sistema pral. local de HADR (HADR_LOCAL_HOST) =
Nombre de servicio local de HADR (HADR_LOCAL_SVC) =
Nombre sistema pral. remoto de HADR (HADR_REMOTE_HOST) =
Nombre de servicio remoto de HADR (HADR_REMOTE_SVC) =
Nombre instancia HADR serv. remoto (HADR_REMOTE_INST) =
Valor de tiempo de espera de HADR (HADR_TIMEOUT) = 120
Modalidad sinc. grab. anot. cron. HADR (HADR_SYNCMODE) = NEARSYNC
Duración ventana similar HADR (seg.)(HADR_PEER_WINDOW) = 0
Lím. datos anot. cr. spool HADR (4KB)(HADR_SPOOL_LIMIT) = 0
Retardo HADR reprod. anot. cr.(seg.)(HADR_REPLAY_DELAY) = 0
Método archivado primera anot. cronol. (LOGARCHMETH1) = OFF
Compresión archivado para logarchmeth1 (LOGARCHCOMPR1) = OFF
Opciones para logarchmeth1 (LOGARCHOPT1) =
Método archivado segunda anot. cronol. (LOGARCHMETH2) = OFF
Compresión archivado para logarchmeth2 (LOGARCHCOMPR2) = OFF
Opciones para logarchmeth2 (LOGARCHOPT2) =
Vía archivado anot. cronol. anomalías (FAILARCHPATH) =
Núm. reintentos arch. anot. cron. error (NUMARCHRETRY) = 5
Retraso reint. arch. anot. cron.(segs) (ARCHRETRYDELAY) = 20
Opciones de proveedor (VENDOROPT) =

Reinicio automático habilitado (AUTORESTART) = ON


Tiempo recreación índ. y rehacer creación índ.(INDEXREC)= SYSTEM (RESTART)
Págs. anot. cron. durante creación índ. (LOGINDEXBUILD) = OFF
Número por omis. de sesiones loadrec (DFT_LOADREC_SES) = 1
Número de copias seguridad a retener (NUM_DB_BACKUPS) = 12
Retención historial de recup. (días) (REC_HIS_RETENTN) = 366
Supresión autom. objetos recuperación(AUTO_DEL_REC_OBJ) = OFF

Clase de gestión TSM (TSM_MGMTCLASS) =


Nombre de nodo TSM (TSM_NODENAME) =
Propietario TSM (TSM_OWNER) =
Contraseña TSM (TSM_PASSWORD) =

Mantenimiento automático (AUTO_MAINT) = ON


Copia segur. automática base datos (AUTO_DB_BACKUP) = OFF
Mantenimiento de tabla automático (AUTO_TBL_MAINT) = ON
Runstats automático (AUTO_RUNSTATS) = ON
Estadísticas sentencias automát.(AUTO_STMT_STATS) = ON
Descr. automática estadísticas (AUTO_STATS_PROF) = OFF
Actualización automática perfiles (AUTO_PROF_UPD) = OFF
Reorganización automática (AUTO_REORG) = OFF

Revalidación automática (AUTO_REVAL) = DEFERRED


Configuración de recurso CF:
Tamaño memoria base de datos CF (4KB)(CF_DB_MEM_SZ) = AUTOMATIC(127488)
Tamaño agrup. almac. interm. grupo (4KB)(CF_GBP_SZ) = AUTOMATIC(80896)
Tamaño memoria bloqueo global (4KB) (CF_LOCK_SZ) = AUTOMATIC(19200)
Tamaño área comunic. compartida (4KB) (CF_SCA_SZ) = AUTOMATIC(26368)

Capítulo 5. mandatos CLP 225


GET DATABASE CONFIGURATION

Destino actualiz. CF secundario (min) (CF_CATCHUP_TRGT) = AUTOMATIC(15)

Confirmado actualmente (CUR_COMMIT) = ON


Salida CHAR con entrada DECIMAL (DEC_TO_CHAR_FMT) = NEW
Habilitar operaciones caract. XML (ENABLE_XMLCHAR) = YES
Intervalo recopilación WLM (minutos) (WLM_COLLECT_INT) = 0
Valores de recopilación del supervisor
Métricas de peticiones (MON_REQ_METRICS) = BASE
Métricas de actividades (MON_ACT_METRICS) = BASE
Métricas de objetos (MON_OBJ_METRICS) = BASE
Sucesos de unidad de trabajo (MON_UOW_DATA) = NONE
Sucesos de tiempo de espera bloqueo (MON_LOCKTIMEOUT) = NONE
Sucesos de punto muerto (MON_DEADLOCK) = WITHOUT_HIST
Sucesos de espera de bloqueo (MON_LOCKWAIT) = NONE
Umbral de suceso de espera de bloqueo (MON_LW_THRESH) = 5000000
Núm. de entradas de lista de paquetes (MON_PKGLIST_SZ) = 32
Nivel notificación de sucesos bloqueo (MON_LCK_MSG_LVL) = 1

Servidor SMTP (SMTP_SERVER) =


Distint. de compilación condicional SQL (SQL_CCFLAGS) =
Config. de datos reales de sección (SECTION_ACTUALS) = NONE

La base de datos está en estado WRITE SUSPEND = NO

El ejemplo siguiente muestra la salida del mandato al especificar la opción SHOW


DETAIL en un entorno DB2 pureScale. El valor de la columna Valor retrasado es el
valor que se aplicará la próxima vez que se inicie la instancia.
Configuración de base de datos para una base de datos de ejemplo

Descripción Parámetro Valor actual Valor


retrasado
---------------------------------------------------------------------------------------------------------------
Nivel de release de configuración de base de datos = 0x0e00
Nivel release base de datos = 0x0e00

Territorio de base de datos = US


Página de códigos de la base de datos = 1208
Conjunto de códigos de la base de datos = UTF-8
Código de país/región de base de datos = 1
Orden de clasificación de base de datos = IDENTITY IDENTITY
Orden de clasificación alternativo (ALT_COLLATE) =
Compatibilidad de número = OFF
Compatibilidad de Varchar2 = OFF
Compatibilidad de fecha = OFF
Tamaño de página de base de datos = 4096 4096
Concentrador de sentencias (STMT_CONC) = OFF OFF

Soporte de Discovery para esta base datos (DISCOVER_DB) = ENABLE ENABLE

Restringir acceso = NO
Clase optimización consulta por omisión (DFT_QUERYOPT) = 5 5
Grado de paralelismo (DFT_DEGREE) = 1 1
Continuar en excepciones aritméticas (DFT_SQLMATHWARN) = NO NO
Tiempo de renovación por omisión (DFT_REFRESH_AGE) = 0 0
Tipos tabla manten. por omis. para opt (DFT_MTTB_TYPES) = SYSTEM SYSTEM
Número de valores frecuentes retenidos (NUM_FREQVALUES) = 10 10
Número de cuantiles retenidos (NUM_QUANTILES) = 20 20

Modal. redondeo coma flotante decimal (DECFLT_ROUNDING) = ROUND_HALF_EVEN ROUND_HALF_EVEN

Pendiente de copia de seguridad = NO

Todas las transacciones confirmadas grabadas en disco = YES


Recuperación pendiente = NO
Pendiente de restauración = NO

Asignación de archivos múltiples págs. habilitada = YES

Retención anotaciones para estado de recuperación = NO


Salida de usuario para estado anotación cronológica = NO

Memoria ajuste automático (SELF_TUNING_MEM) = ON (Activo) ON


Tamaño mem. compart. base datos (4KB) (DATABASE_MEMORY) = AUTOMATIC(345584) AUTOMATIC(345584)
Umbral memoria base de datos (DB_MEM_THRESH) = 10 10
Almacenam. máx. para lista de bloqueos (4KB) (LOCKLIST) = AUTOMATIC(6575) AUTOMATIC(6575)
Porcent. de listas de bloqueo por aplicación (MAXLOCKS) = AUTOMATIC(60) AUTOMATIC(62)
Tamaño de la antememoria de paquetes (4KB) (PCKCACHESZ) = AUTOMATIC(1533) AUTOMATIC(1533)
Umbral pila clasif para clasif comp(4KB)(SHEAPTHRES_SHR)= AUTOMATIC(21919) AUTOMATIC(21919)
Pila de lista de clasificación (4KB) (SORTHEAP) = AUTOMATIC(1095) AUTOMATIC(1095)

Pila de base de datos (4KB) (DBHEAP) = AUTOMATIC(2462) AUTOMATIC(2462)


Tam. antememoria catálogo (4KB) (CATALOGCACHE_SZ) = 300 300
Tamaño almac. intermedio anotaciones (4KB) (LOGBUFSZ) = 256 256
Tamaño pila programas utilidad (4KB) (UTIL_HEAP_SZ) = 52763 52763
Tamaño agrupación de almac. int. (páginas) (BUFFPAGE) = 1000 1000
Pila de sentencias de SQL (4KB) (STMTHEAP) = AUTOMATIC(6402) AUTOMATIC(4096)
Pila de aplicaciones por omisión (4KB) (APPLHEAPSZ) = AUTOMATIC(256) AUTOMATIC(256)
Tamaño memoria de aplicación (4KB) (APPL_MEMORY) = AUTOMATIC(40016) AUTOMATIC(40000)
Tamaño de la pila de estadísticas (4KB) (STAT_HEAP_SZ) = AUTOMATIC(4384) AUTOMATIC(4384)

Intervalo (ms) comprob. puntos muertos (DLCHKTIME) = 10000 10000


Tiempo de espera de bloqueo (seg) (LOCKTIMEOUT) = -1 -1

226 Consulta de mandatos


GET DATABASE CONFIGURATION

Umbral de páginas cambiadas (CHNGPGS_THRESH) = 80 80


Número de limpiadores de página asinc. (NUM_IOCLEANERS) = AUTOMATIC(3) AUTOMATIC(3)
Número de servidores E/S (NUM_IOSERVERS) = AUTOMATIC(6) AUTOMATIC(6)
Distintivo de clasificación del índice (INDEXSORT) = YES YES
Distintivo de detección secuencial (SEQDETECT) = YES YES
Tamaño captac. previa omisión (pág.) (DFT_PREFETCH_SZ) = AUTOMATIC AUTOMATIC

Rastrear páginas modificadas (TRACKMOD) = NO NO

Número por omisión de contenedores = 1 1


Tam. extens. espacio tablas omis. (pág.)(DFT_EXTENT_SZ) = 32 32

Número máx. de aplicaciones activas (MAXAPPLS) = AUTOMATIC(40) AUTOMATIC(40)


Promedio de aplicaciones activas (AVG_APPLS) = AUTOMATIC(1) AUTOMATIC(1)
Máx. de archivos de BD abiertos por aplic. (MAXFILOP) = 61440 61440

Tamaño de archivo anotaciones cron. (4KB) (LOGFILSIZ) = 1024 1024


Núm. archivos anot. cronol. primarios (LOGPRIMARY) = 13 13
Núm. archivos anot. cronol. secundarios (LOGSECOND) = 4 4
Vía acceso modificado archivos anot. cron. (NEWLOGPATH) =
Vía de acceso de archivos de anotaciones cronológicas = /home/db2inst1/db2inst1/SAMPLE/NODE0000/LOGSTREAM0000/ /home/db2inst1/db2inst1/SAMPLE/NODE0000/LOGSTREAM0000/
Vía acceso anot. cron. desbordamiento (OVERFLOWLOGPATH) =
Vía acceso anot. cron. duplicada (MIRRORLOGPATH) =
Primer archivo activo de anotaciones cronológicas =
Anot. cron. de bloque en disco llenas (BLK_LOG_DSK_FUL) = NO NO
Bloquear operaciones no anot. cronol. (BLOCKNONLOGGED) = NO NO
Porcent. espacio anot. primar. máx. por trans.(MAX_LOG) = 0 0
Núm. arch. anot. cron. act. 1 UOW activa (NUM_LOG_SPAN) = 0 0

Número aplic. para agrupar confirmaciones (MINCOMMIT) = 1 1


Porcent arch anot reclamado antes pcomp soft (SOFTMAX) = 520 520
Rol de base de datos HADR = STANDARD STANDARD
Nombre de sistema pral. local de HADR (HADR_LOCAL_HOST) =
Nombre de servicio local de HADR (HADR_LOCAL_SVC) =
Nombre sistema pral. remoto de HADR (HADR_REMOTE_HOST) =
Nombre de servicio remoto de HADR (HADR_REMOTE_SVC) =
Nombre instancia HADR serv. remoto (HADR_REMOTE_INST) =
Valor de tiempo de espera de HADR (HADR_TIMEOUT) = 120 120
Modalidad sinc. grab. anot. cron. HADR (HADR_SYNCMODE) = NEARSYNC NEARSYNC
Duración ventana similar HADR (seg.)(HADR_PEER_WINDOW) = 0 0
Lím. datos anot. cr. spool HADR (4KB)(HADR_SPOOL_LIMIT) = 0 0
Retardo HADR reprod. anot. cr.(seg.)(HADR_REPLAY_DELAY) = 0 0
Método archivado primera anot. cronol. (LOGARCHMETH1) = OFF OFF
Compresión archivado para logarchmeth1 (LOGARCHCOMPR1) = OFF OFF
Opciones para logarchmeth1 (LOGARCHOPT1) =
Método archivado segunda anot. cronol. (LOGARCHMETH2) = OFF OFF
Compresión archivado para logarchmeth2 (LOGARCHCOMPR2) = OFF OFF
Opciones para logarchmeth2 (LOGARCHOPT2) =
Vía archivado anot. cronol. anomalías (FAILARCHPATH) =
Núm. reintentos arch. anot. cron. error (NUMARCHRETRY) = 5 5
Retraso reint. arch. anot. cron.(segs) (ARCHRETRYDELAY) = 20 20
Opciones de proveedor (VENDOROPT) =

Reinicio automático habilitado (AUTORESTART) = ON ON


Tpo. recreación índ. y rehacer creación índ. (INDEXREC) = SYSTEM (RESTART) SYSTEM (RESTART)
Págs. anot. cron. durante creación índ. (LOGINDEXBUILD) = OFF OFF
Número por omis. de sesiones loadrec (DFT_LOADREC_SES) = 1 1
Número de copias seguridad a retener (NUM_DB_BACKUPS) = 12 12
Retención historial de recup. (días) (REC_HIS_RETENTN) = 366 366
Supr. autom. objetos recuperación (AUTO_DEL_REC_OBJ) = OFF OFF

Clase de gestión TSM (TSM_MGMTCLASS) =


Nombre de nodo TSM (TSM_NODENAME) =
Propietario TSM (TSM_OWNER) =
Contraseña TSM (TSM_PASSWORD) =

Mantenimiento automático (AUTO_MAINT) = ON ON


Copia segur. automática base datos (AUTO_DB_BACKUP) = OFF OFF
Mantenimiento de tabla automático (AUTO_TBL_MAINT) = ON ON
Runstats automático (AUTO_RUNSTATS) = ON ON
Estadísticas sentencias automát.(AUTO_STMT_STATS) = ON ON
Descr. automática estadísticas (AUTO_STATS_PROF) = OFF OFF
Actualización automática perfiles (AUTO_PROF_UPD) = OFF OFF
Reorganización automática (AUTO_REORG) = OFF OFF

Revalidación automática (AUTO_REVAL) = DEFERRED DEFERRED


Configuración de recurso CF:
Tamaño memoria base de datos CF (4KB)(CF_DB_MEM_SZ) = AUTOMATIC(114688) AUTOMATIC(114688)
Tamaño agrup. almac. interm. grupo (4KB)(CF_GBP_SZ) = AUTOMATIC(72704) AUTOMATIC(72704)
Tamaño memoria bloqueo global (4KB) (CF_LOCK_SZ) = AUTOMATIC(17408) AUTOMATIC(17408)
Tamaño área comunic. compartida (4KB) (CF_SCA_SZ) = AUTOMATIC(23552) AUTOMATIC(23552)

Destino actualiz. CF secundario (min) (CF_CATCHUP_TRGT) = AUTOMATIC(15) AUTOMATIC(15)

Confirmado actualmente (CUR_COMMIT) = ON ON


Salida CHAR con entrada DECIMAL (DEC_TO_CHAR_FMT) = NEW NEW
Habilitar operaciones caract. XML (ENABLE_XMLCHAR) = YES YES
Intervalo recopilación WLM (minutos) (WLM_COLLECT_INT) = 0 0

Valores de recopilación del supervisor


Métricas de peticiones (MON_REQ_METRICS) = BASE BASE
Métricas de actividades (MON_ACT_METRICS) = BASE BASE
Métricas de objetos (MON_OBJ_METRICS) = BASE BASE
Sucesos de unidad de trabajo (MON_UOW_DATA) = NONE NONE
Sucesos de tiempo de espera bloqueo (MON_LOCKTIMEOUT) = NONE NONE
Sucesos de punto muerto (MON_DEADLOCK) = WITHOUT_HIST WITHOUT_HIST
Sucesos de espera de bloqueo (MON_LOCKWAIT) = NONE NONE
Umbral de suceso de espera de bloqueo (MON_LW_THRESH) = 5000000 5000000

Núm. de entradas de lista de paquetes (MON_PKGLIST_SZ) = 32 32


Nivel notificación de sucesos bloqueo (MON_LCK_MSG_LVL) = 1 1

Servidor SMTP (SMTP_SERVER) =


Distint. de compilación condicional SQL (SQL_CCFLAGS) =

Capítulo 5. mandatos CLP 227


GET DATABASE CONFIGURATION

Config. de datos reales de sección (SECTION_ACTUALS) = NONE NONE

La base de datos está en estado WRITE SUSPEND = NO

El ejemplo siguiente es una salida de ejemplo tras haber ejecutado el mandato GET
DATABASE CONFIGURATION en un sistema operativo Windows:
Configuración base de datos para base de datos

Nivel de release de configuración de base de datos = 0x0d00


Nivel de release de base de datos = 0x0d00

Territorio de base de datos = US


Página de códigos de la base de datos = 1208
Conjunto de códigos de la base de datos = UTF-8
Código de país/región de base de datos = 1
Orden de clasificación de base de datos = IDENTITY
Orden de clasificación alternativo (ALT_COLLATE) =
Compatibilidad de número = OFF
Compatibilidad de Varchar2 = OFF
Compatibilidad de fecha = OFF

Tamaño de página de base de datos = 4096

Gestión consulta SQL dinámico (DYN_QUERY_MGMT) = DISABLE

Concentrador de sentencias (STMT_CONC) = OFF

Soporte de Discovery para esta base datos (DISCOVER_DB) = ENABLE

Restringir acceso = NO
Clase optimización consulta por omisión (DFT_QUERYOPT) = 5
Grado de paralelismo (DFT_DEGREE) = 1
Continuar en excepciones aritméticas (DFT_SQLMATHWARN) = NO
Tiempo de renovación por omisión (DFT_REFRESH_AGE) = 0
Tipos tabla manten. por omis. para opt (DFT_MTTB_TYPES) = SYSTEM
Número de valores frecuentes retenidos (NUM_FREQVALUES) = 10
Número de cantidades retenidas (NUM_QUANTILES) = 20

Mod. redondeo coma flotante decimal (DECFLT_ROUNDING) = ROUND_HALF_EVEN

Pendiente de copia de seguridad = NO

Todas las transacciones confirmadas grabadas en disco = YES


Recuperación pendiente = NO
Pendiente de restauración = NO

Asignación de archivos múltiples págs. habilitada = YES

Retención anotaciones para estado de recuperación = NO


Salida de usuario para estado anotación cronológica = NO

Memoria ajuste automático (SELF_TUNING_MEM) = ON


Tamaño memoria comp. base datos (4KB) (DATABASE_MEMORY) = AUTOMATIC(60464)
Umbral memoria base de datos (DB_MEM_THRESH) = 10
Almac. máx. para lista de bloqueos (4KB) (LOCKLIST) = AUTOMATIC(6200)
Porcent. de listas de bloqueo por aplicación (MAXLOCKS) = AUTOMATIC(60)
Tamaño de la antememoria de paquetes (4KB) (PCKCACHESZ) = AUTOMATIC(1533)
Umbral pila clasif para clasif comp(4KB)(SHEAPTHRES_SHR)= AUTOMATIC(6728)
Pila de lista de clasificación (4KB) (SORTHEAP) = AUTOMATIC(336)

Pila de base de datos (4KB) (DBHEAP) = AUTOMATIC(2283)


Tam. antememoria catálogo (4KB) (CATALOGCACHE_SZ) = 300
Tamaño almac. intermedio anotaciones (4KB) (LOGBUFSZ) = 256
Tamaño pila programas utilidad (4KB) (UTIL_HEAP_SZ) = 5115
Tamaño agrupación de almac. int. (páginas) (BUFFPAGE) = 1000
Pila de sentencias de SQL (4KB) (STMTHEAP) = AUTOMATIC(4096)
Pila de aplicaciones por omisión (4KB) (APPLHEAPSZ) = AUTOMATIC(256)

228 Consulta de mandatos


GET DATABASE CONFIGURATION

Tamaño memoria de aplicación (4KB) (APPL_MEMORY) = AUTOMATIC(40000)


Tamaño de la pila de estadísticas (4KB) (STAT_HEAP_SZ) = AUTOMATIC(4384)

Intervalo (ms) comprobación puntos muertos (DLCHKTIME) = 10000


Tiempo de espera de bloqueo (seg) (LOCKTIMEOUT) = -1

Umbral de páginas cambiadas (CHNGPGS_THRESH) = 80


Número limpiadores página asíncronos (NUM_IOCLEANERS) = AUTOMATIC(3)
Número de servidores de E/S (NUM_IOSERVERS) = AUTOMATIC(3)
Distintivo de clasificación del índice (INDEXSORT) = YES
Distintivo de detección secuencial (SEQDETECT) = YES
Tamaño captac. previa omisión (pág.) (DFT_PREFETCH_SZ) = AUTOMATIC

Rastrear páginas modificadas (TRACKMOD) = OFF

Número por omisión de contenedores = 1


Tam. extens. espacio tablas omis. (pág.)(DFT_EXTENT_SZ) = 32

Número máx. de aplicaciones activas (MAXAPPLS) = AUTOMATIC(40)


Promedio de aplicaciones activas (AVG_APPLS) = AUTOMATIC(1)
Máx. de archivos de BD abiertos por aplic. (MAXFILOP) = 61440

Tamaño de archivo anotaciones cron. (4KB) (LOGFILSIZ) = 1024


Núm. archivos anot. cronol. primarios (LOGPRIMARY) = 13
Núm. archivos anot. cronol. secundarios (LOGSECOND) = 4
Vía acceso modificado archivos anot. cron. (NEWLOGPATH) =
Vía de acceso a archivos de anotaciones cronológicas = D:\DB2\NODE0000\SQL00003\LOGSTREAM0000\
Vía acceso anot. cron. desbordamiento (OVERFLOWLOGPATH) =
Vía acceso anot. cron. duplicada (MIRRORLOGPATH) =
Primer archivo activo de anotaciones cronológicas =
Anot. cron. de bloque en disco llenas (BLK_LOG_DSK_FUL) = NO
Bloquear operaciones no anot. cronol. (BLOCKNONLOGGED) = NO
Porcent. espacio anot. primar. máx. por trans.(MAX_LOG) = 0
Núm. arch. anot. cron. act. 1 UOW activa (NUM_LOG_SPAN) = 0

Número de confirmaciones de grupo (MINCOMMIT) = 1


Porcent arch anot reclamado antes pcomp soft (SOFTMAX) = 520
Retención anot. para recuperación habilit. (LOGRETAIN) = OFF
Salida de usuario para anot. cron. habilitada(USEREXIT) = OFF

Rol de base de datos HADR = STANDARD


Nombre de sistema pral. local de HADR (HADR_LOCAL_HOST) =
Nombre de servicio local de HADR (HADR_LOCAL_SVC) =
Nombre sistema pral. remoto de HADR (HADR_REMOTE_HOST) =
Nombre de servicio remoto de HADR (HADR_REMOTE_SVC) =
Nombre instancia HADR serv. remoto (HADR_REMOTE_INST) =
Valor de tiempo de espera de HADR (HADR_TIMEOUT) = 120
Modalidad sinc. grab. anot. cron. HADR (HADR_SYNCMODE) = NEARSYNC
Duración ventana similar HADR (seg.)(HADR_PEER_WINDOW) = 0
Lím. datos anot. cr. spool HADR (4KB)(HADR_SPOOL_LIMIT) = 0
Retardo HADR reprod. anot. cr.(seg.)(HADR_REPLAY_DELAY) = 0
Método archivado primera anot. cronol. (LOGARCHMETH1) = OFF
Compresión archivado para logarchmeth1 (LOGARCHCOMPR1) = OFF
Opciones para logarchmeth1 (LOGARCHOPT1) =
Método archivado segunda anot. cronol. (LOGARCHMETH2) = OFF
Compresión archivado para logarchmeth2 (LOGARCHCOMPR2) = OFF
Opciones para logarchmeth2 (LOGARCHOPT2) =
Vía archivado anot. cronol. anomalías (FAILARCHPATH) =
Núm. reintentos arch. anot. cron. error (NUMARCHRETRY) = 5
Retraso reint. arch. anot. cron.(segs) (ARCHRETRYDELAY) = 20
Opciones de proveedor (VENDOROPT) =

Reinicio automático habilitado (AUTORESTART) = ON


Tiempo recreación índ. y rehacer creación índ.(INDEXREC)= SYSTEM (RESTART)
Págs. anot. cron. durante creación índ. (LOGINDEXBUILD) = OFF
Número por omis. de sesiones loadrec (DFT_LOADREC_SES) = 1
Número de copias seguridad a retener (NUM_DB_BACKUPS) = 12

Capítulo 5. mandatos CLP 229


GET DATABASE CONFIGURATION

Retención historial de recup. (días) (REC_HIS_RETENTN) = 366


Supresión autom. objetos recuperación(AUTO_DEL_REC_OBJ) = OFF

Clase de gestión TSM (TSM_MGMTCLASS) =


Nombre de nodo TSM (TSM_NODENAME) =
Propietario TSM (TSM_OWNER) =
Contraseña TSM (TSM_PASSWORD) =

Mantenimiento automático (AUTO_MAINT) = ON


Copia segur. automática base datos (AUTO_DB_BACKUP) = OFF
Mantenimiento de tabla automático (AUTO_TBL_MAINT) = ON
Runstats automático (AUTO_RUNSTATS) = ON
Estadísticas sentencias automát.(AUTO_STMT_STATS) = ON
Descr. automática estadísticas (AUTO_STATS_PROF) = OFF
Actualización automática perfiles (AUTO_PROF_UPD) = OFF
Reorganización automática (AUTO_REORG) = OFF

Revalidación automática (AUTO_REVAL) = DEFERRED


Confirmado actualmente (CUR_COMMIT) = ON
Salida CHAR con entrada DECIMAL (DEC_TO_CHAR_FMT) = NEW
Habilitar operaciones caract. XML (ENABLE_XMLCHAR) = YES
Intervalo recopilación WLM (WLM_COLLECT_INT) = 0
Valores de recopilación del supervisor
Métricas de peticiones (MON_REQ_MATRICS) = BASE
Métricas de actividades (MON_ACT_MATRICS) = BASE
Métricas de objetos (MON_OBJ_MATRICS) = BASE
Sucesos de unidad de trabajo (MON_UOW_DATA) = NONE
Sucesos de tiempo de espera bloqueo (MON_LOCKTIMEOUT) = NONE
Sucesos punto muerto (MON_DEADLOCK) = WITHOUT_HIST
Sucesos de espera de bloqueo (MON_LOCKWAIT) = NONE
Umbral de suceso de espera de bloqueo (MON_LW_THRESH) = 5000000

Servidor SMPT (SMTP_SERVER) =

El ejemplo siguiente muestra una parte de la salida del mandato al especificar la


opción SHOW DETAIL en un sistema operativo Windows. El valor de la columna
Valor retrasado es el valor que se aplicará la próxima vez que se inicie la
instancia.
Configuración base de datos para base de datos

Descripción Parámetro Valor actual Valor


retrasado
-----------------------------------------------------------------------------------------------
Nivel de release de configuración de base de datos = 0x0d00
Nivel de release de base de datos = 0x0d00

Territorio de base de datos = US


Página de códigos de la base de datos = 1208
Conjunto de códigos de la base de datos = utf-8
Código de país/región de base de datos = 1
Orden de clasificación de base de datos = IDENTITY IDENTITY
Orden de clasificación alternativo (ALT_COLLATE) =
Compatibilidad de número = OFF
Compatibilidad de Varchar2 = OFF
Compatibilidad de fecha = OFF
Tamaño de página de base de datos = 4096 4096

Gestión de consultas SQL dinámicas (DYN_QUERY_MGMT) = DISABLE DISABLE


Concentrador de sentencias (STMT_CONC) = OFF OFF

Soporte de Discovery para esta base datos (DISCOVER_DB) = ENABLE ENABLE

Restringir acceso = NO
Clase optimización consulta por omisión (DFT_QUERYOPT) = 5 5
Grado de paralelismo (DFT_DEGREE) = 1 1
Continuar en excepciones aritméticas (DFT_SQLMATHWARN) = NO NO

230 Consulta de mandatos


GET DATABASE CONFIGURATION

Edad de renovación por omisión (DFT_REFRESH_AGE) = 0 0


Tipos tabla manten. por omis. para opt (DFT_MTTB_TYPES) = SYSTEM SYSTEM
Número de valores frecuentes retenidos (NUM_FREQVALUES) = 10 10
Número de cuantiles retenidos (NUM_QUANTILES) = 20 20

Modal. redondeo coma flotante decimal (DECFLT_ROUNDING) = ROUND_HALF_EVEN ROUND_HALF_EVEN

Pendiente de copia de seguridad = NO

Todas las transacciones confirmadas grabadas en disco = No


Recuperación pendiente = NO
Pendiente de restauración = NO

Asignación de archivos múltiples págs. habilitada = YES

Retención anotaciones para estado de recuperación = NO


Salida de usuario para estado anotación cronológica = NO

Memoria de autoajuste (SELF_TUNING_MEM) = OFF OFF


Tamaño memoria comp. base datos (4KB) (DATABASE_MEMORY) = AUTOMATIC(282400) AUTOMATIC(282400)
Umbral memoria base de datos (DB_MEM_THRESH) = 10 10
Almac. máx. para lista de bloqueos (4KB) (LOCKLIST) = 4096 4096
Porcent. de listas de bloqueo por aplicación (MAXLOCKS) = 10 10
Tamaño de la antememoria de paquetes (4KB) (PCKCACHESZ) = (MAXAPPLS*8) (MAXAPPLS*8)
Umbral pila clasif para clasif comp(4KB)(SHEAPTHRES_SHR)= 5000 5000
Pila de lista de clasificación (4KB) (SORTHEAP) = 256 256

Pila de base de datos (4KB) (DBHEAP) = AUTOMATIC(1200) AUTOMATIC(1200)


Tamaño antememoria catálogo (4KB) (CATALOGCACHE_SZ) = (MAXAPPLS*5) (MAXAPPLS*5)
Tamaño almac. intermedio anotaciones (4KB) (LOGBUFSZ) = 256 256
Tamaño pila de progs. de utilidad (4KB) (UTIL_HEAP_SZ) = 5000 5000
Tamaño agrupación alm. int. (páginas) (BUFFPAGE) = 200 200
Pila de sentencias de SQL (4KB) (STMTHEAP) = AUTOMATIC(6402) AUTOMATIC(4096)
Pila de aplicaciones por omisión (4KB) (APPLHEAPSZ) = AUTOMATIC(256) AUTOMATIC(256)
Tamaño memoria de aplicación (4KB) (APPL_MEMORY) = AUTOMATIC(40016) AUTOMATIC(40000)
Tamaño de la pila de estadísticas (4KB) (STAT_HEAP_SZ) = AUTOMATIC(4384) AUTOMATIC(4384)

Intervalo (ms) comprob. puntos muertos (DLCHKTIME) = 10000 10000


Tiempo de espera de bloqueo (seg) (LOCKTIMEOUT) = -1 -1

Umbral de páginas cambiadas (CHNGPGS_THRESH) = 60 60


Número de limpiadores de página asinc. (NUM_IOCLEANERS) = AUTOMATIC(3) AUTOMATIC(3)
Número de servidores E/S (NUM_IOSERVERS) = AUTOMATIC(3) AUTOMATIC(3)
Distintivo de clasificación del índice (INDEXSORT) = YES YES
Distintivo de detección secuencial (SEQDETECT) = YES YES
Tamaño captac. previa omisión (pág.) (DFT_PREFETCH_SZ) = AUTOMATIC AUTOMATIC

Rastrear páginas modificadas (TRACKMOD) = NO NO

Número por omisión de contenedores = 1 1


Tam. extens. espacio tablas omis. (pág.)(DFT_EXTENT_SZ) = 32 32

Número máx. de aplicaciones activas (MAXAPPLS) = AUTOMATIC(40) AUTOMATIC(40)


Promedio de aplicaciones activas (AVG_APPLS) = AUTOMATIC(1) AUTOMATIC(1)
Máx. de archivos de BD abiertos por aplic. (MAXFILOP) = 61440 61440

Tamaño del archivo del reg. cronol. (4KB) (LOGFILSIZ) = 1000 1000
Número de archivos de registro ppales. (LOGPRIMARY) = 3 3
Número de archivos de reg. secundarios (LOGSECOND) = 2 2
Vía acceso modificado archivos anot. cron. (NEWLOGPATH) =
Vía de acceso a archivos de anotaciones cronológicas = D:\DB2\NODE0000 D:\DB2\NODE0000
\SQL00001\LOGSTREAM0000\ \SQL00001\LOGSTREAM0000\
Vía acceso anot. cron. desbordamiento (OVERFLOWLOGPATH) =
Vía acceso anot. cron. duplicada (MIRRORLOGPATH) =
Primer archivo activo de anotaciones cronológicas =
Anot. cron. de bloque en disco llenas (BLK_LOG_DSK_FUL) = NO NO
Porcent. espacio anot. primar. máx. por trans.(MAX_LOG) = 0 0

Capítulo 5. mandatos CLP 231


GET DATABASE CONFIGURATION

Núm. arch. anot. cron. act. 1 UOW activa (NUM_LOG_SPAN) = 0 0


Número aplic. para agrupar confirmaciones (MINCOMMIT) = 1 1
Porcent arch anot reclamado antes pcomp soft (SOFTMAX) = 100
Retención reg. cron. de recup. habilitada (LOGRETAIN) = OFF OFF
Salida usuario para reg. cron. habilitada (USEREXIT) = OFF OFF

Rol de base de datos HADR = STANDARD STANDARD


Nombre de sistema pral. local de HADR (HADR_LOCAL_HOST) =
Nombre de servicio local de HADR (HADR_LOCAL_SVC) =
Nombre sistema pral. remoto de HADR (HADR_REMOTE_HOST) =
Nombre de servicio remoto de HADR (HADR_REMOTE_SVC) =
Nombre instancia HADR serv. remoto (HADR_REMOTE_INST) =
Valor de tiempo de espera de HADR (HADR_TIMEOUT) = 120 120
Modalidad sinc. grab. anot. cron. HADR (HADR_SYNCMODE) = NEARSYNC NEARSYNC
Duración ventana similar HADR (seg.)(HADR_PEER_WINDOW) = 0 0
Lím. datos anot. cr. spool HADR (4KB)(HADR_SPOOL_LIMIT) = 0 0
Retardo HADR reprod. anot. cr.(seg.)(HADR_REPLAY_DELAY) = 0 0

Método archivado primera anot. cronol. (LOGARCHMETH1) = OFF OFF


Compresión archivado para logarchmeth1 (LOGARCHCOMPR1) = OFF OFF
Opciones para logarchmeth1 (LOGARCHOPT1) =
Método archivado segunda anot. cronol. (LOGARCHMETH2) = OFF OFF
Compresión archivado para logarchmeth2 (LOGARCHCOMPR2) = OFF OFF
Opciones para logarchmeth2 (LOGARCHOPT2) =
Vía archivado anot. cronol. anomalías (FAILARCHPATH) =
Núm. reintentos arch. anot. cron. error (NUMARCHRETRY) = 5 5
Retraso reint. arch. anot. cron.(segs) (ARCHRETRYDELAY) = 20 20
Opciones de proveedor (VENDOROPT) =
Reinicio automático habilitado (AUTORESTART) = ON ON
Tpo. recreación índ. y rehacer creación índ. (INDEXREC) = SYSTEM SYSTEM (RESTART)
Págs. anot. cron. durante creación índ. (LOGINDEXBUILD) = OFF OFF
Número por omis. de sesiones loadrec (DFT_LOADREC_SES) = 1 1
Número de copias seguridad a retener (NUM_DB_BACKUPS) = 12 12
Retención historial de recup. (días) (REC_HIS_RETENTN) = 366 366
Supr. autom. objetos recuperación (AUTO_DEL_REC_OBJ) = OFF OFF

Clase de gestión TSM (TSM_MGMTCLASS) =


Nombre de nodo TSM (TSM_NODENAME) =
Propietario TSM (TSM_OWNER) =
Contraseña TSM (TSM_PASSWORD) =

Mantenimiento automático (AUTO_MAINT) = ON ON


Copia segur. automática base datos (AUTO_DB_BACKUP) = OFF OFF
Mantenimiento de tabla automático (AUTO_TBL_MAINT) = ON ON
Runstats automático (AUTO_RUNSTATS) = ON ON
Estadísticas sentencias automát.(AUTO_STMT_STATS) = ON ON
Descr. automática estadísticas (AUTO_STATS_PROF) = OFF OFF
Actualización automática perfiles (AUTO_PROF_UPD) = OFF OFF
Reorganización automática (AUTO_REORG) = OFF OFF
Revalidación automática (AUTO_REVAL) = DEFERRED DEFERRED
Confirmado actualmente (CUR_COMMIT) = ON ON
Salida CHAR con entrada DECIMAL (DEC_TO_CHAR_FMT) = NEW NEW
Habilitar operaciones caract. XML (ENABLE_XMLCHAR) = YES YES
Intervalo de recopilación WLM (WLM_COLLECT_INT) = 0 0

Valores de recopilación del supervisor


Métricas de peticiones (MON_REQ_MATRICS) = BASE BASE
Métricas de actividades (MON_ACT_MATRICS) = BASE BASE
Métricas de objetos (MON_OBJ_MATRICS) = BASE BASE
Sucesos de unidad de trabajo (MON_UOW_DATA) = NONE NONE
Sucesos de tiempo de espera bloqueo (MON_LOCKTIMEOUT) = NONE NONE
Sucesos punto muerto MON_DEADLOCK) = WITHOUT_HIST WITHOUT_HIST
Sucesos de espera de bloqueo (MON_LOCKWAIT) = NONE NONE
Umbral de suceso de espera de bloqueo (MON_LW_THRESH) = 0 5000000
Servidor SMPT SMTP_SERVER) =

232 Consulta de mandatos


GET DATABASE CONFIGURATION

Notas de uso

Si el archivo de configuración de base de datos no es válido, la base de datos


deberá restaurarse de una versión de copia de seguridad.

Para establecer los parámetros de configuración de base de datos en los valores por
omisión del gestor de bases de datos, utilice el mandato RESET DATABASE
CONFIGURATION.

Para recuperar información de todas las particiones de base de datos, utilice la


vista administrativa SYSIBMADM.DBCFG.

El valor del parámetro de configuración devuelto al emitir el mandato GET


DATABASE CONFIGURATION puede variar ligeramente del valor del parámetro de
configuración asignado en DISK.

Capítulo 5. mandatos CLP 233


GET DATABASE MANAGER CONFIGURATION

GET DATABASE MANAGER CONFIGURATION


Devuelve los valores de entradas individuales del archivo de configuración del
gestor de bases de datos.

Autorización

Ninguna

Conexión necesaria

Ninguna o instancia. Para efectuar operaciones de configuración locales de gestor


de bases de datos no es necesaria una conexión de instancia, pero sí es necesaria
para realizar operaciones de configuración remotas de gestor de bases de datos.
Para visualizar la configuración del gestor de bases de datos para una instancia
remota, es necesario conectarse primero a dicha instancia. La cláusula SHOW DETAIL
requiere una conexión de instancia.

Sintaxis del mandato


 GET DATABASE MANAGER CONFIGURATION 
DB MANAGER CONFIG SHOW DETAIL
DBM CFG

Parámetros del mandato


SHOW DETAIL
Visualiza información detallada que muestra el valor actual de los
parámetros de configuración del gestor de bases de datos, así como el
valor de los parámetros la próxima vez que se inicie el gestor de bases de
datos. Esta opción permite ver el resultado de cambios dinámicos en los
parámetros de configuración.
Es la cláusula por omisión cuando funciona en la interfaz CLPPlus. Si se
utiliza el procesador CLPPlus, no es necesario invocar SHOW DETAIL.

Ejemplos

El tipo de nodo y la plataforma determinan qué parámetros de configuración se


listan.

El ejemplo siguiente es una salida de ejemplo tras haber ejecutado el mandato GET
DATABASE MANAGER CONFIGURATION en un sistema operativo Linux con una instancia
de DB2 pureScale:
Configuración del Gestor de bases de datos

Tipo de nodo = Enterprise Server Edition con clientes locales y remotos

Nivel de release configuración gestor bases de datos = 0x0e00

Velocidad CPU (miliseg./instrucción) (CPUSPEED) = 4.000000e-05


Ancho banda comunicaciones (MB/seg) (COMM_BANDWIDTH) = 1.000000e+02

Núm. máx. de bases de datos activas simultáneas (NUMDB) = 1


Soporte de Sist. federado de bases de datos (FEDERATED) = NO
Nombre de superv. del proces. transac. (TP_MON_NAME) =

Cuenta de retrotracción por omisión (DFT_ACCOUNT_STR) =

234 Consulta de mandatos


GET DATABASE MANAGER CONFIGURATION

Vía de instalación de Java Development Kit (JDK_PATH) = /home/db2inst1/sqllib/java/jdk64

Nivel captura errores diagnóstico (DIAGLEVEL) = 3


Nivel de notificación (NOTIFYLEVEL) = 3
Vía acceso directorio datos diagnóstico (DIAGPATH) = /home/hotel67/db2inst1/sqllib/db2dump/ $m
DIAGPATH de miembro actual resuelto = /home/hotel67/db2inst1/sqllib/db2dump/DIAG0000
Vía acceso dir. datos diagnóstico altern. (ALT_DIAGPATH) = /home/hotel67/db2inst1/sqllib/db2altdump/ $m
ALT_DIAGPATH de miembro actual resuelto = /home/hotel67/db2inst1/sqllib/db2altdump/DIAG0000
Tamaño anot. rotatorias db2diag y notif. (MB)(DIAGSIZE) = 0

Conmutadores supervisor base datos por omisión


Agrupación de almac. intermedios (DFT_MON_BUFPOOL) = OFF
Bloqueo (DFT_MON_LOCK) = OFF
Clasificación (DFT_MON_SORT) = OFF
Sentencia (DFT_MON_STMT) = OFF
Tabla (DFT_MON_TABLE) = OFF
Indicación de fecha y hora (DFT_MON_TIMESTAMP) = ON
Unidad de trabajo (DFT_MON_UOW) = OFF
Supervisar salud instancia y bases datos (HEALTH_MON) = OFF

Nombre de grupo SYSADM (SYSADM_GROUP) = DB2ADMIN


Nombre de grupo SYSCTRL (SYSCTRL_GROUP) =
Nombre de grupo SYSMAINT (SYSMAINT_GROUP) =
Nombre de grupo SYSMON (SYSMON_GROUP) =

Conector ID usuario-contraseña cliente (CLNT_PW_PLUGIN) =


Plugin de Kerberos de cliente (CLNT_KRB_PLUGIN) =
Conector de grupo (GROUP_PLUGIN) =
Conector GSS para autorización local (LOCAL_GSSPLUGIN) =
Modalidad de conector de servidor (SRV_PLUGIN_MODE) = UNFENCED
Lista servidor conectores GSS (SRVCON_GSSPLUGIN_LIST) =
Conector ID usuario-contraseña serv. (SRVCON_PW_PLUGIN) =
Autentificación de conexión de servidor (SRVCON_AUTH) = NOT_SPECIFIED
Gestor de clúster = TSA

Autentificación del Gestor de BD. (AUTHENTICATION) = SERVER


Autentificación alternativa (ALTERNATE_AUTH_ENC) = NOT_SPECIFIED
Catalogación permitida sin autorizac. (CATALOG_NOAUTH) = NO
Confiar todos los clientes (TRUST_ALLCLNTS) = YES
Autentificación cliente confiado (TRUST_CLNTAUTH) = CLIENT
Ajustar temp. autentificación federada (FED_NOAUTH) = NO

Vía de acceso de base de datos por omisión (DFTDBPATH) = /home/db2inst1

Tamaño pila supervisor base datos (4KB) (MON_HEAP_SZ) = AUTOMATIC(90)


Tamaño pila de Máq. Virtual Java (4KB) (JAVA_HEAP_SZ) = 2048
Tamaño almac. intermedio auditoría (4 KB)(AUDIT_BUF_SZ) = 0
Tam. mem. compartida instancia (4KB) (INSTANCE_MEMORY) = AUTOMATIC(1705741)
Memoria instancia reinicio ligero (%) (RSTRT_LIGHT_MEM) = AUTOMATIC(10)
Tamaño omis. almac. interm. copia seg.(4KB) (BACKBUFSZ) = 1024
Tamaño omis. almac. int. de restaurar (4KB) (RESTBUFSZ) = 1024

Tamaño de pila de agente (AGENT_STACK_SZ) = 1024


Clasificar umbral de pila (4KB) (SHEAPTHRES) = 0

Soporte antememoria de directorio (DIR_CACHE) = YES

Tamaño pila capa soporte aplicaciones (4KB) (ASLHEAPSZ) = 15


Tamaño máx (bytes) de bloque de E/S petic. (RQRIOBLK) = 32767
Tamaño de la pila de consultas (4KB) (QUERY_HEAP_SZ) = 1000

Impacto de prog. util. en carga trab. (UTIL_IMPACT_LIM) = 10

Prioridad de agentes (AGENTPRI) = SYSTEM


Tamaño de agrupación de agentes (NUM_POOLAGENTS) = AUTOMATIC(100)
Número inicial agentes en agrupación (NUM_INITAGENTS) = 0
Número máximo agentes coordinación (MAX_COORDAGENTS) = AUTOMATIC(200)
Número máx. de conexiones cliente (MAX_CONNECTIONS) = AUTOMATIC(MAX_COORDAGENTS)

Mantener proceso delimitado (KEEPFENCED) = YES

Capítulo 5. mandatos CLP 235


GET DATABASE MANAGER CONFIGURATION

Número de procesos delimitados agrupados (FENCED_POOL) = AUTOMATIC(MAX_COORDAGENTS)


Número inicial de procesos delimitados (NUM_INITFENCED) = 0

Tiempo recreación índ. y rehacer creación índ.(INDEXREC)= RESTART

Nombre de BD del gestor de transacciones (TM_DATABASE) = 1ST_CONN


Intervalo resinc. de transac. (seg) (RESYNC_INTERVAL) = 180

Nombre de SPM (SPM_NAME) =


Tamaño de anotaciones SPM (SPM_LOG_FILE_SZ) = 256
Límite agente resincronismo SPM (SPM_MAX_RESYNC) = 20
Vía de registro SPM (SPM_LOG_PATH) =

Nombre de servicio TCP/IP (SVCENAME) =


Modalidad de descubrimiento (DISCOVER) = SEARCH
Descubrir instancia servidor (DISCOVER_INST) = ENABLE

Archivo bd claves servidor SSL (SSL_SVR_KEYDB) =


Archivo ocultación servidor SSL (SSL_SVR_STASH) =
Etiqueta certificado servidor SSL (SSL_SVR_LABEL) =
Nombre de servicio SSL (SSL_SVCENAME) =
Especificaciones cifrado SSL (SSL_CIPHERSPECS) =
Versiones SSL (SSL_VERSIONS) =
Archivo bd claves cliente SSL (SSL_CLNT_KEYDB) =
Archivo ocultación cliente SSL (SSL_CLNT_STASH) =

Grado máximo de consulta paralelismo (MAX_QUERYDEGREE) = ANY


Habilitar paralelismo entre partic. (INTRA_PARALLEL) = NO

Máximo de TQ asíncronas por consulta (FEDERATED_ASYNC) = 0

Núm. alm. int. comunic. int. (4KB)(FCM_NUM_BUFFERS) = AUTOMATIC(4096)


Núm. de canales comunicaciones int. (FCM_NUM_CHANNELS) = AUTOMATIC(2048)
Tiempo transcurrido conexión nodo (seg) (CONN_ELAPSE) = 3
Núm. máx. reintentos conexión nodo (MAX_CONNRETRIES) = 3
Tpo. máx. diferencia entre nodos (min) (MAX_TIME_DIFF) = 1

Tiempo excedido db2start/db2stop (min) (START_STOP_TIME)= 10

Configuración del servidor CF:


Tamaño de memoria (4KB) (CF_MEM_SZ) = AUTOMATIC
Número de hebras de trabajo (CF_NUM_WORKERS) = AUTOMATIC
Número de conexiones (CF_NUM_CONNS) = AUTOMATIC
Nivel captura errores diagnóstico (CF_DIAGLEVEL) = 2
Vía acceso directorio datos diagnóstico (CF_DIAGPATH) = /home/hotel67/db2inst1/sqllib/db2dump/ $m
CF_DIAGPATH de miembro actual resuelto = /home/hotel67/db2inst1/sqllib/db2dump/DIAG0000/

El siguiente ejemplo de salida muestra la información visualizada cuando se


especifica la opción SHOW DETAIL. El valor que aparece en la columna Valor
retardado es el valor que estará en vigor la próxima vez que se inicie la instancia
del gestor de bases de datos.
Configuración del Gestor de bases de datos

Tipo de nodo = Enterprise Server Edition con clientes locales y remotos

Descripción Parámetro Valor actual Valor


retrasado
---------------------------------------------------------------------------------------------------------------
Nivel de release configuración gestor bases de datos = 0x0e00

Velocidad CPU (miliseg./instrucción) (CPUSPEED) = 4.000000e-05 4.000000e-05


Ancho banda comunicaciones (MB/seg) (COMM_BANDWIDTH) = 1.000000e+02 1.000000e+02

Núm. máx. de bases de datos activas simultáneas (NUMDB) = 1 1


Soporte Sistema federado de bases de datos (FEDERATED) = NO NO
Nombre de superv. del proces. transac. (TP_MON_NAME) =

Cuenta de retrotracción por omisión (DFT_ACCOUNT_STR) =

Vía de instalación de Java Development Kit (JDK_PATH) = /home/db2inst1/sqllib/java/jdk64 /home/db2inst1/sqllib/java/jdk64

Nivel captura errores diagnóstico (DIAGLEVEL) = 3 3


Nivel de notificación (NOTIFYLEVEL) = 3 3

236 Consulta de mandatos


GET DATABASE MANAGER CONFIGURATION

Vía acceso directorio datos diagnóstico (DIAGPATH) = /home/hotel67/db2inst1/sqllib/db2dump/ $m


DIAGPATH de miembro actual resuelto = /home/hotel67/db2inst1/sqllib/db2dump/DIAG0000
Vía acceso dir. datos diagnóstico altern. (ALT_DIAGPATH) = /home/hotel67/db2inst1/sqllib/db2altdump/ $m
ALT_DIAGPATH de miembro actual resuelto = /home/hotel67/db2inst1/sqllib/db2altdump/DIAG0000
Tamaño anot. rotatorias db2diag y notific. (MB) (DIAGSIZE) = 0 0

Conmutadores supervisor base datos por omisión


Agrupación de almac. intermedios (DFT_MON_BUFPOOL) = OFF OFF
Bloqueo (DFT_MON_LOCK) = OFF OFF
Clasificación (DFT_MON_SORT) = OFF OFF
Sentencia (DFT_MON_STMT) = OFF OFF
Tabla (DFT_MON_TABLE) = OFF OFF
Indicación de fecha y hora (DFT_MON_TIMESTAMP) = ON ON
Unidad de trabajo (DFT_MON_UOW) = OFF OFF
Supervisar salud instancia y bases datos (HEALTH_MON) = OFF OFF

Nombre de grupo SYSADM (SYSADM_GROUP) = DB2ADMIN DB2ADMIN


Nombre de grupo SYSCTRL (SYSCTRL_GROUP) =
Nombre de grupo SYSMAINT (SYSMAINT_GROUP) =
Nombre de grupo SYSMON (SYSMON_GROUP) =

Conector ID usuario-contraseña cliente (CLNT_PW_PLUGIN) =

Plugin de Kerberos de cliente (CLNT_KRB_PLUGIN) =

Conector de grupo (GROUP_PLUGIN) =

Conector GSS para autorización local (LOCAL_GSSPLUGIN) =

Modalidad de conector de servidor (SRV_PLUGIN_MODE) = UNFENCED UNFENCED

Lista servidor conectores GSS (SRVCON_GSSPLUGIN_LIST) =

Conector ID usuario-contraseña serv. (SRVCON_PW_PLUGIN) =

Autentificación de conexión de servidor (SRVCON_AUTH) = NOT_SPECIFIED NOT_SPECIFIED


Gestor de clúster = TSA TSA

Autentificación del Gestor de BD. (AUTHENTICATION) = SERVER SERVER


Autentificación alternativa (ALTERNATE_AUTH_ENC) = NOT_SPECIFIED NOT_SPECIFIED
Catalogación permitida sin autorizac. (CATALOG_NOAUTH) = NO NO
Confiar todos los clientes (TRUST_ALLCLNTS) = YES YES
Autentificación cliente confiado (TRUST_CLNTAUTH) = CLIENT CLIENT
Ajustar temp. autentificación federada (FED_NOAUTH) = NO NO

Vía de acceso de base de datos por omisión (DFTDBPATH) = /home/db2inst1 /home/db2inst1

Tamaño pila supervisor base datos (4KB) (MON_HEAP_SZ) = AUTOMATIC(90) AUTOMATIC(90)


Tamaño pila de Máq. Virtual Java (4KB) (JAVA_HEAP_SZ) = 2048 2048
Tamaño almac. intermedio auditoría (4 KB)(AUDIT_BUF_SZ) = 0
Tam. mem. compartida instancia (4KB) (INSTANCE_MEMORY) = AUTOMATIC(1705741) AUTOMATIC(1705741)
Memoria instancia reinicio ligero (%) (RSTRT_LIGHT_MEM) = AUTOMATIC(10) AUTOMATIC(10)
Tamaño de pila de agente (AGENT_STACK_SZ) = 1024 1024
Clasificar umbral de pila (4KB) (SHEAPTHRES) = 0 0

Soporte antememoria de directorio (DIR_CACHE) = YES YES

Tamaño pila capa soporte aplicaciones (4KB) (ASLHEAPSZ) = 15 15


Tamaño máx (bytes) de bloque de E/S petic. (RQRIOBLK) = 32767 32767
Impacto de prog. util. en carga trab. (UTIL_IMPACT_LIM) = 10 10

Prioridad de agentes (AGENTPRI) = SYSTEM SYSTEM


Tamaño de agrupación de agentes (NUM_POOLAGENTS) = AUTOMATIC(100) AUTOMATIC(100)
Número inicial agentes en agrupación (NUM_INITAGENTS) = 0 0
Número máximo agentes coordinación (MAX_COORDAGENTS) = AUTOMATIC(200) AUTOMATIC(200)
Número máx. de conexiones cliente (MAX_CONNECTIONS) = AUTOMATIC(MAX_COORDAGENTS) AUTOMATIC(MAX_COORDAGENTS)

Mantener proceso delimitado (KEEPFENCED) = YES YES


Número de procesos delimitados agrupados (FENCED_POOL) = AUTOMATIC(MAX_COORDAGENTS) AUTOMATIC(MAX_COORDAGENTS)
Número inicial de procesos delimitados (NUM_INITFENCED) = 0 0

Tiempo recreación índ. y rehacer creación índ.(INDEXREC)= RESTART RESTART

Nombre de BD del gestor de transacciones (TM_DATABASE) = 1ST_CONN 1ST_CONN


Intervalo resinc. de transac. (seg) (RESYNC_INTERVAL) = 180 180

Nombre de SPM (SPM_NAME) =


Tamaño de anotaciones SPM (SPM_LOG_FILE_SZ) = 256 256
Límite agente resincronismo SPM (SPM_MAX_RESYNC) = 20 20
Vía de registro SPM (SPM_LOG_PATH) =

Nombre de servicio TCP/IP (SVCENAME) =


Modalidad de descubrimiento (DISCOVER) = SEARCH SEARCH
Descubrir instancia servidor (DISCOVER_INST) = ENABLE ENABLE

Archivo bd claves servidor SSL (SSL_SVR_KEYDB) =


Archivo ocultación servidor SSL (SSL_SVR_STASH) =
Etiqueta certificado servidor SSL (SSL_SVR_LABEL) =
Nombre de servicio SSL (SSL_SVCENAME) =
Especificaciones cifrado SSL (SSL_CIPHERSPECS) =

Capítulo 5. mandatos CLP 237


GET DATABASE MANAGER CONFIGURATION

Versiones SSL (SSL_VERSIONS) =


Archivo bd claves cliente SSL (SSL_CLNT_KEYDB) =
Archivo ocultación cliente SSL (SSL_CLNT_STASH) =

Grado máximo de consulta paralelismo (MAX_QUERYDEGREE) = ANY ANY


Habilitar paralelismo entre partic. (INTRA_PARALLEL) = NO NO

Máximo de TQ asíncronas por consulta (FEDERATED_ASYNC) = 0 0

Núm. alm. int. comunic. int. (4KB)(FCM_NUM_BUFFERS) = AUTOMATIC(4096) AUTOMATIC(4096)


Núm. de canales comunicaciones int. (FCM_NUM_CHANNELS) = AUTOMATIC(2048) AUTOMATIC(2048)
Tiempo transcurrido conexión nodo (seg) (CONN_ELAPSE) = 3 3
Núm. máx. reintentos conexión nodo (MAX_CONNRETRIES) = 3 3
Tpo. máx. diferencia entre nodos (min) (MAX_TIME_DIFF) = 1 1

Tiempo excedido db2start/db2stop (min) (START_STOP_TIME)= 10 10

Configuración del servidor CF:


Tamaño de memoria (4KB) (CF_MEM_SZ) = AUTOMATIC(131072) AUTOMATIC(131072)
Número de hebras de trabajo (CF_NUM_WORKERS) = AUTOMATIC(1) AUTOMATIC(1)
Número de conexiones (CF_NUM_CONNS) = AUTOMATIC(19) AUTOMATIC(19)
Nivel captura errores diagnóstico (CF_DIAGLEVEL) = 2 2
Vía acceso directorio datos diagnóstico (CF_DIAGPATH) = /home/hotel67/db2inst1/sqllib/ $m
CF_DIAGPATH de miembro actual resuelto = /home/hotel67/db2inst1/sqllib/db2dump/DIAG0000/

El ejemplo siguiente es una salida de ejemplo tras haber ejecutado el mandato GET
DATABASE MANAGER CONFIGURATION en un sistema operativo Windows:
Configuración del Gestor de bases de datos

Tipo de nodo = Enterprise Server Edition con clientes locales y remotos

Nivel de release configuración gestor bases de datos = 0x0c00

Número máximo total de archivos abiertos (MAXTOTFILOP) = 16000


Velocidad CPU (miliseg./instrucción) (CPUSPEED) = 4.251098e-007
Ancho banda comunicaciones (MB/seg) (COMM_BANDWIDTH) = 1.000000e+002

Núm. máx. de bases de datos activas simultáneas (NUMDB) = 8


Soporte de Sist. federado de bases de datos (FEDERATED) = NO
Nombre de superv. del proces. transac. (TP_MON_NAME) =

Cuenta de retrotracción por omisión (DFT_ACCOUNT_STR) =

Vía de instalación de Java Development Kit (JDK_PATH) =

Nivel captura errores diagnóstico (DIAGLEVEL) = 3


Nivel de notificación (NOTIFYLEVEL) = 3
Vía de acceso al direc. de datos diagnóst. (DIAGPATH) =

Conmutadores supervisor base datos por omisión


Agrupación de almac. intermedios (DFT_MON_BUFPOOL) = OFF
Bloqueo (DFT_MON_LOCK) = OFF
Clasificación (DFT_MON_SORT) = OFF
Sentencia (DFT_MON_STMT) = OFF
Tabla (DFT_MON_TABLE) = OFF
Indicación de fecha y hora (DFT_MON_TIMESTAMP) = ON
Unidad de trabajo (DFT_MON_UOW) = OFF
Supervisar salud instancia y bases datos (HEALTH_MON) = ON

Nombre de grupo SYSADM (SYSADM_GROUP) =


Nombre de grupo SYSCTRL (SYSCTRL_GROUP) =
Nombre de grupo SYSMAINT (SYSMAINT_GROUP) =
Nombre de grupo SYSMON (SYSMON_GROUP) =

Conector ID usuario-contraseña cliente (CLNT_PW_PLUGIN) =


Plugin de Kerberos de cliente (CLNT_KRB_PLUGIN) = IBMkrb5
Conector de grupo (GROUP_PLUGIN) =
Conector GSS para autorización local (LOCAL_GSSPLUGIN) =
Modalidad de conector de servidor (SRV_PLUGIN_MODE) = UNFENCED
Lista servidor conectores GSS (SRVCON_GSSPLUGIN_LIST) =
Conector ID usuario-contraseña serv. (SRVCON_PW_PLUGIN) =
Autentificación de conexión de servidor (SRVCON_AUTH) = NOT_SPECIFIED

238 Consulta de mandatos


GET DATABASE MANAGER CONFIGURATION

Gestor de clústeres (CLUSTER_MGR) =

Autentificación del Gestor de BD. (AUTHENTICATION) = SERVER


Catalogación permitida sin autorizac. (CATALOG_NOAUTH) = NO
Confiar todos los clientes (TRUST_ALLCLNTS) = YES
Autentificación cliente confiado (TRUST_CLNTAUTH) = CLIENT
Ajustar temp. autentificación federada (FED_NOAUTH) = NO

Vía de acceso base de datos por omisión (DFTDBPATH) = C:

Tamaño de pila de supervisor de BD (4KB) (MON_HEAP_SZ) = AUTOMATIC


Tamaño pila de Máq. Virtual Java (4KB) (JAVA_HEAP_SZ) = 2048
Tamaño almac. intermedio auditoría (4 KB)(AUDIT_BUF_SZ) = 0
Tam. mem. compart. base datos (4KB) (INSTANCE_MEMORY) = AUTOMATIC
Tamaño omis. almac. interm. copia seg.(4KB) (BACKBUFSZ) = 1024
Tamaño omis. almac. int. de restaurar (4KB) (RESTBUFSZ) = 1024

Tamaño de pila de agente (AGENT_STACK_SZ) = 16


Min de memoria privada confirmada (4KB) (MIN_PRIV_MEM) = 32
Umbral de memoria privada (4KB) (PRIV_MEM_THRESH) = 20000

Clasificar umbral de pila (4KB) (SHEAPTHRES) = 0

Soporte antememoria de directorio (DIR_CACHE) = YES

Tamaño pila capa soporte aplicaciones (4KB) (ASLHEAPSZ) = 15


Tamaño máx (bytes) de bloque de E/S petic. (RQRIOBLK) = 32767
Tamaño de la pila de consultas (4KB) (QUERY_HEAP_SZ) = 1000

Impacto de prog. util. en carga trab. (UTIL_IMPACT_LIM) = 10

Prioridad de agentes (AGENTPRI) = SYSTEM


Tamaño agrupación de agentes (NUM_POOLAGENTS) = AUTOMATIC
Número inicial agentes en agrupación (NUM_INITAGENTS) = 0
Número máximo agentes coordinación (MAX_COORDAGENTS) = AUTOMATIC
Número máx. de conexiones cliente (MAX_CONNECTIONS) = AUTOMATIC

Mantener proceso delimitado (KEEPFENCED) = YES


Número de procesos delimitados agrupados (FENCED_POOL) = AUTOMATIC
Número inicial de procesos delimitados (NUM_INITFENCED) = 0

Tiempo recreación índ. y rehacer creación índ.(INDEXREC)= RESTART

Nombre de BD del gestor de transacciones (TM_DATABASE) = 1ST_CONN


Intervalo resinc. de transac. (seg) (RESYNC_INTERVAL) = 180

Nombre de SPM (SPM_NAME) = KEON14


Tamaño de anotaciones SPM (SPM_LOG_FILE_SZ) = 256
Límite agente resincronismo SPM (SPM_MAX_RESYNC) = 20
Vía de registro SPM (SPM_LOG_PATH) =

Nombre estación trabajo NetBIOS (NNAME) =

Nombre de servicio de TCP/IP (SVCENAME) = db2c_DB2


Modalidad de descubrimiento (DISCOVER) = SEARCH
Descubrir instancia servidor (DISCOVER_INST) = ENABLE

Grado máximo de consulta paralelismo (MAX_QUERYDEGREE) = ANY


Habilitar paralelismo entre partic. (INTRA_PARALLEL) = NO

Máximo de TQ asíncronas por consulta (FEDERATED_ASYNC) = 0

Nº de alm. int. comunicación int.(4KB)(FCM_NUM_BUFFERS) = AUTOMATIC


Nº de canales de comunicación int. (FCM_NUM_CHANNELS) = AUTOMATIC
Tiempo transcurrido conexión nodo (seg) (CONN_ELAPSE) = 10
Nº máx. de reintentos conexión nodo (MAX_CONNRETRIES) = 5

Capítulo 5. mandatos CLP 239


GET DATABASE MANAGER CONFIGURATION

Tpo. máx. diferencia entre nodos (min) (MAX_TIME_DIFF) = 60

Tpo. esp. exced. db2start/db2stop (min)(START_STOP_TIME)= 10

El siguiente ejemplo de salida muestra la información visualizada cuando se


especifica la opción SHOW DETAIL en un sistema operativo Windows. El valor que
aparece en la columna Valor retardado es el valor que estará en vigor la próxima
vez que se inicie la instancia del gestor de bases de datos.
db2 => get dbm config show detail

Configuración del Gestor de bases de datos

Tipo de nodo = Enterprise Server Edition con clientes locales y remotos

Descripción Parámetro Valor actual


Valor
retrasado
---------------------------------------------------------------------------------------------
Nivel de release configuración gestor bases de datos = 0x0c00

Número máximo total de archivos abiertos (MAXTOTFILOP) = 16000 16000


Velocidad CPU (miliseg./instrucción) (CPUSPEED) = 4.251098e-007 4.251098e-007
Ancho banda comunicaciones (MB/seg) (COMM_BANDWIDTH) = 1.000000e+002 1.000000e+002

Núm. máx. de bases datos activas simultáneamente(NUMDB) = 8 8


Soporte Sistema federado de bases de datos (FEDERATED) = NO NO
Nombre de superv. del proces. transac. (TP_MON_NAME) =

Cuenta de retrotracción por omisión (DFT_ACCOUNT_STR) =

Vía de instalación de Java Development Kit (JDK_PATH) =

Nivel de captura de error de diagnóstico (DIAGLEVEL) = 3 3


Nivel de notificación (NOTIFYLEVEL) = 3 3
Vía de acceso al direc. de datos diagnóst. (DIAGPATH) =

Conmutadores supervisor base datos por omisión


Agrupación de almac. intermedios (DFT_MON_BUFPOOL) = OFF OFF
Bloqueo (DFT_MON_LOCK) = OFF OFF
Clasificación (DFT_MON_SORT) = OFF OFF
Sentencia (DFT_MON_STMT) = OFF OFF
Tabla (DFT_MON_TABLE) = OFF OFF
Indicación de fecha y hora (DFT_MON_TIMESTAMP) = ON ON
Unidad de trabajo (DFT_MON_UOW) = OFF OFF
Supervisar salud instancia y bases datos (HEALTH_MON) = ON ON

Nombre de grupo SYSADM (SYSADM_GROUP) =


Nombre de grupo SYSCTRL (SYSCTRL_GROUP) =
Nombre de grupo SYSMAINT (SYSMAINT_GROUP) =
Nombre de grupo SYSMON (SYSMON_GROUP) =

Conector ID usuario-contraseña cliente (CLNT_PW_PLUGIN) =

Plugin de Kerberos de cliente (CLNT_KRB_PLUGIN) = IBMkrb5 IBMkrb5

Conector de grupo (GROUP_PLUGIN) =

Conector GSS para autorización local (LOCAL_GSSPLUGIN) =

Modalidad de conector de servidor (SRV_PLUGIN_MODE) = UNFENCED UNFENCED

Lista servidor conectores GSS (SRVCON_GSSPLUGIN_LIST) =

Conector ID usuario-contraseña serv. (SRVCON_PW_PLUGIN) =

Autentificación de conexión de servidor (SRVCON_AUTH) = NOT_SPECIFIED NOT_SPECIFIED


Gestor de clústeres (CLUSTER_MGR) =

240 Consulta de mandatos


GET DATABASE MANAGER CONFIGURATION

Autentificación del Gestor de BD. (AUTHENTICATION) = SERVER SERVER


Catalogación permitida sin autorizac. (CATALOG_NOAUTH) = NO NO
Confiar todos los clientes (TRUST_ALLCLNTS) = YES YES
Autentificación cliente confiado (TRUST_CLNTAUTH) = CLIENT CLIENT
Ajustar temp. autentificación federada (FED_NOAUTH) = NO NO

Vía de acceso base de datos por omisión (DFTDBPATH) = C: C:

Tamaño de pila de supervisor de BD (4KB) (MON_HEAP_SZ) = AUTOMATIC(66) AUTOMATIC(66)


Tamaño pila de Máq. Virtual Java (4KB) (JAVA_HEAP_SZ) = 2048 2048
Tamaño almac. intermedio auditoría (4KB) (AUDIT_BUF_SZ) = 0 0
Tam. mem. compart. base datos (4KB) (INSTANCE_MEMORY) = AUTOMATIC(73728) AUTOMATIC(73728)
Tamaño omis. almac. interm. copia seg. (4KB)(BACKBUFSZ) = 1024 1024
Tamaño omis. almac. int. de restaurar (4KB) (RESTBUFSZ) = 1024 1024

Tamaño de pila de agente (AGENT_STACK_SZ) = 16 16


Clasificar umbral de pila (4KB) (SHEAPTHRES) = 0 0

Soporte antememoria de directorio (DIR_CACHE) = YES YES

Tamaño pila capa soporte aplicaciones (4KB) (ASLHEAPSZ) = 15 15


Tamaño máx (bytes) de bloque de E/S petic. (RQRIOBLK) = 32767 32767
Tamaño de la pila de consultas (4KB) (QUERY_HEAP_SZ) = 1000 1000

Impacto de prog. util. en carga trab. (UTIL_IMPACT_LIM) = 10 10

Prioridad de agentes (AGENTPRI) = SYSTEM SYSTEM


Tamaño agrupación de agentes (NUM_POOLAGENTS) = AUTOMATIC(100) AUTOMATIC(100)
Número inicial agentes en agrupación (NUM_INITAGENTS) = 0 0
Número máximo agentes coordinación (MAX_COORDAGENTS) = AUTOMATIC(200) AUTOMATIC(200)
Número máx. de conexiones cliente (MAX_CONNECTIONS) = AUTOMATIC(MAX_ AUTOMATIC(MAX_
COORDAGENTS) COORDAGENTS)

Mantener proceso delimitado (KEEPFENCED) = YES YES


Número de procesos delimitados agrupados (FENCED_POOL) = AUTOMATIC(MAX_ AUTOMATIC(MAX_
COORDAGENTS) COORDAGENTS)
Número inicial de procesos delimitados (NUM_INITFENCED) = 0 0

Tiempo recreación índ. y rehacer creación índ.(INDEXREC)= RESTART RESTART

Nombre de BD del gestor de transacciones (TM_DATABASE) = 1ST_CONN 1ST_CONN


Intervalo resinc. de transac. (seg) (RESYNC_INTERVAL) = 180 180

Nombre de SPM (SPM_NAME) = KEON14 KEON14


Tamaño de registro SPM (SPM_LOG_FILE_SZ) = 256 256
Límite agente resincronismo SPM (SPM_MAX_RESYNC) = 20 20
Vía de registro SPM (SPM_LOG_PATH) =

Nombre estación trabajo NetBIOS (NNAME) =

Nombre de servicio TCP/IP (SVCENAME) = db2c_DB2 db2c_DB2


Modalidad de Discovery (DISCOVER) = SEARCH SEARCH
Descubrir instancia servidor (DISCOVER_INST) = ENABLE ENABLE

Grado máximo de consulta paralelismo (MAX_QUERYDEGREE) = ANY ANY


Habilitar paralelismo entre partic. (INTRA_PARALLEL) = NO NO

Nº máx. TQ asíncronas por consulta (FEDERATED_ASYNC) = 0 0

Nº de alm. int. comunicación int.(4KB)(FCM_NUM_BUFFERS) = AUTOMATIC(4096) AUTOMATIC(4096)


Nº de canales de comunicación int. (FCM_NUM_CHANNELS) = AUTOMATIC(2048) AUTOMATIC(2048)
Tiempo transcurrido conexión nodo (seg) (CONN_ELAPSE) = 10 10
Nº máx. de reintentos conexión nodo (MAX_CONNRETRIES) = 5 5
Tpo. máx. diferencia entre nodos (min) (MAX_TIME_DIFF) = 60 60

Tpo. esp. exced. db2start/db2stop (min)(START_STOP_TIME)= 10 10

Capítulo 5. mandatos CLP 241


GET DATABASE MANAGER CONFIGURATION

Notas de uso
v Si existe una conexión a una instancia remota o a una instancia local diferente,
se devuelven los parámetros de configuración del gestor de bases de datos para
el servidor conectado; de lo contrario, se devuelven los parámetros de
configuración locales del gestor de bases de datos.
v Si se produce un error, la información devuelta no es válida. Si el archivo de
configuración no es válido, se devuelve un mensaje de error. El usuario debe
descartar y volver a crear la instancia para la recuperación.
v Para establecer los parámetros de configuración en los valores por omisión que
se suministran con el gestor de bases de datos, utilice el mandato RESET
DATABASE MANAGER CONFIGURATION.
v Los valores AUTOMATIC indicados en GET DATABASE MANAGER CONFIGURATION SHOW
DETAIL para fcm_num_buffers y fcm_num_channels son los valores iniciales a la
hora de arranque de la instancia y no reflejan ningún aumento/reducción
automáticos que se puedan haberse producido durante la ejecución.
v Los parámetros de configuración max_connections, max_coordagents y
num_poolagents se establecen en AUTOMATIC.
v Los parámetros de configuración maxagents y maxcagents han quedado
obsoletos. El resultado son las siguientes funciones obsoletas:
– CLP y la API db2CfgSet darán soporte a actualizaciones de estos parámetros,
pero DB2 pasará por alto estas actualizaciones.
– CLP ya no mostrará estos parámetros de configuración de base de datos
cuando el cliente y el servidor estén en la base de código de DB2 v9.5. Si el
servidor es DB2 v9.5, los clientes de versiones anteriores verán el valor 0
como salida de estos parámetros. Si el cliente es DB2 v9.5, pero el servidor es
anterior a DB2 v9.5, estos parámetros se mostrarán con los valores asignados.
– La API db2CfgGet dará soporte a peticiones de SQLF_KTN_MAXAGENTS y
SQLF_KTN_MAXCAGENTS, pero devolverán 0 si el servidor es DB2 v9.5.
– El comportamiento de la API db2AutoConfig dependerá del valor de
db2VersionNumber que se pase a la API. Si la versión es DB2 v9.5 o posterior,
no se devolverá maxagents, pero sí se devolverá para las versiones anteriores
a ésta.
– El mandato de CLP AUTOCONFIGURE mostrará el valor de maxagents con
peticiones de un cliente de versiones anteriores (valor actual y recomendado
de 0). Para peticiones de cliente de la versión actual, maxagents se mostrará
con el valor adecuado.
– AUTOCONFIGURE ADMIN_CMD no devolverá información sobre maxagents
si el servidor es DB2 v9.5 y anterior.
– Las actualizaciones de maxagents o maxcagents mediante ADMIN_CMD
devolverán valores correctos pero no tendrán ningún efecto sobre el servidor
si este es DB2 v9.5 o posterior.
– Las consultas de parámetros de configuración del gestor de bases de datos
mediante la vista administrativa DBMCFG no devolverán filas
correspondientes a maxagents ni a maxcagents si el servidor es DB2 v9.5 o
anterior.
En un futuro release, es posible que estos parámetros de configuración se
eliminen por completo.

242 Consulta de mandatos


GET DATABASE MANAGER MONITOR SWITCHES

GET DATABASE MANAGER MONITOR SWITCHES


Visualiza el estado de los conmutadores de supervisor de sistema de bases de
datos que están activos actualmente. Los conmutadores de supervisor indican al
gestor de bases de datos que reúna información sobre la actividad de la base de
datos.

Cada aplicación que utiliza la interfaz de supervisor de sistema de base de datos


tiene su propio conjunto de conmutadores de supervisor. Un conmutador de
supervisión del sistema de base de datos está activado cuando cualquiera de las
aplicaciones de supervisión lo ha activado. Este mandato se utiliza para determinar
qué datos recopila actualmente el supervisor de sistema de base de datos. Es
posible que se recopilen más datos que los especificados en los conmutadores de
supervisión por omisión definidos en la configuración del gestor de bases de datos,
porque una aplicación tiene un conmutador activado en su vista.

Ámbito

Este mandato se invoca para el miembro actualmente enlazado y, por omisión, sólo
devuelve información para ese miembro. El miembro actualmente enlazado toma
como valor por omisión el sistema principal en el que se ejecuta el mandato. Si hay
varios miembros por sistema principal, el miembro actualmente enlazado es el
primer miembro enumerado en el archivo db2nodes.cfg de ese sistema principal.

Para ejecutar el mandato en un miembro que no es el miembro actualmente


enlazado, indique la opción AT MEMBER para ejecutar este mandato en un miembro
concreto o la opción GLOBAL para ejecutarlo en todos los miembros y recibir un
resultado agregado.

Para cambiar el miembro actualmente enlazado desde el que se ejecutarán los


mandatos posteriores, utilice el parámetro ATTACH_MEMBER del mandato SET CLIENT.
Debe ejecutar DETACH y luego ejecutar ATTACH otra vez sobre su aplicación para que
este valor de cliente entre en vigor.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON

Conexión necesaria

Instancia o base de datos:


v Si no existe ninguna conexión a una instancia ni ninguna conexión a una base de
datos, se creará una conexión de instancia por omisión.
v Si existe una conexión a una instancia y una conexión a una base de datos, se
utilizará la conexión a la instancia.

Para visualizar los valores de una instancia remota o de una instancia local
diferente, es necesario conectarse primero a dicha instancia.

Capítulo 5. mandatos CLP 243


GET DATABASE MANAGER MONITOR SWITCHES

Sintaxis del mandato


 GET DATABASE MANAGER MONITOR SWITCHES 
DB MANAGER AT MEMBER número-miembro
DBM GLOBAL

Parámetros del mandato


AT MEMBER número-miembro
Especifica el miembro para el que ha de visualizarse el estado de los
conmutadores de supervisor del gestor de bases de datos.
GLOBAL
Devuelve el estado de los conmutadores de supervisor del gestor de bases
de datos de todos los miembros.

Ejemplos

A continuación se muestra un ejemplo de salida de GET DATABASE MANAGER MONITOR


SWITCHES:
Información recopilada del supervisor del sistema DBM

Lista de conmutadores para el miembro número 1


Infor. activ. agrup. almac. int. (BUFFERPOOL) = ON 06-11-2003 10:11:01.738377
Información de bloqueo (LOCK) = OFF
Información de clasificación (SORT) = ON 06-11-2003 10:11:01.738400
Información de sentencia de SQL (STATEMENT) = OFF
Información actividades tabla (TABLE) = OFF
Tomar información indic. hora (TIMESTAMP) = ON 06-11-2003 10:11:01.738525
Información unidad de trabajo (UOW) = ON 06-11-2003 10:11:01.738353

Notas de uso

Los conmutadores de registro BUFFERPOOL, LOCK, SORT, STATEMENT, TABLE


y UOW están desactivados por omisión, pero se pueden activar utilizando el
mandato UPDATE MONITOR SWITCHES. Si cualquiera de estos conmutadores está
activado, este mandato muestra también la indicación de fecha y hora en la que se
ha activado el conmutador.

El conmutador de registro TIMESTAMP está activado por omisión, pero puede


desactivarse utilizando UPDATE MONITOR SWITCHES. Cuando este conmutador está
activado, el sistema emite llamadas de indicación de fecha y hora al recopilar
información para los elementos del supervisor de indicación de fecha y hora. He
aquí unos ejemplos de estos elementos:
v agent_sys_cpu_time
v agent_usr_cpu_time
v appl_con_time
v con_elapsed_time
v con_response_time
v conn_complete_time
v db_conn_time
v elapsed_exec_time
v gw_comm_error_time
v gw_con_time
v gw_exec_time

244 Consulta de mandatos


GET DATABASE MANAGER MONITOR SWITCHES

v host_response_time
v last_backup
v last_reset
v lock_wait_start_time
v network_time_bottom
v network_time_top
v prev_uow_stop_time
v rf_timestamp
v ss_sys_cpu_time
v ss_usr_cpu_time
v status_change_time
v stmt_elapsed_time
v stmt_start
v stmt_stop
v stmt_sys_cpu_time
v stmt_usr_cpu_time
v uow_elapsed_time
v uow_start_time
v uow_stop_time

Si el conmutador TIMESTAMP está desactivado, no se emiten llamadas del sistema


operativo de indicación de fecha y hora para determinar estos elementos, los cuales
contendrán un cero. Desactivar este conmutador se vuelve más importante a
medida que la utilización de la CPU se aproxima al 100%; cuando ocurre esto, el
tiempo de la CPU necesario para emitir indicaciones de fecha y hora aumenta
drásticamente.

Compatibilidades

Para mantener la compatibilidad con las versiones anteriores:


v DBPARTITIONNUM o NODE pueden sustituirse por MEMBER, salvo cuando la variable
de registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.

Capítulo 5. mandatos CLP 245


GET DESCRIPTION FOR HEALTH INDICATOR

GET DESCRIPTION FOR HEALTH INDICATOR


Devuelve una descripción para el indicador de salud especificado. Un Indicador de
salud mide la salud de un estado, capacidad o comportamiento determinado del
sistema de bases de datos. El estado define si el objeto o recurso de base de datos
está funcionando normalmente o no.

Autorización

Ninguna

Conexión necesaria

Instancia. Si no existe ninguna conexión de instancia, se creará una conexión de


instancia por omisión.

Para obtener una instantánea de una instancia remota, es necesario conectarse


primero a dicha instancia.

Sintaxis del mandato


 GET DESCRIPTION FOR HEALTH INDICATOR nombrecorto 

Parámetros del mandato


HEALTH INDICATOR nombrecorto
Nombre del indicador de salud para el que desea recuperar la descripción.
Los nombres de indicador de salud se componen de un identificador de
objeto de dos o tres letras, seguido de un nombre que describe lo que mide
el indicador. Por ejemplo:
db.sort_privmem_util

Ejemplos

El ejemplo siguiente es una salida de ejemplo del mandato GET DESCRIPTION FOR
HEALTH INDICATOR.
GET DESCRIPTION FOR HEALTH INDICATOR db2.sort_privmem_util

DESCRIPTION FOR db2.sort_privmem_util

La clasificación se considera correcta si hay suficiente espacio de pila en el


que realizar la clasificación y las clasificaciones no se desbordan innecesariamente.
Este indicador realiza un seguimiento del estado de la memoria de clasificación
privada. Si db2.sort_heap_allocated (elemento de datos de supervisor del
sistema) >= SHEAPTHRES (parámetro de configuración de DBM), es posible que las
clasificaciones no obtengan una pila de clasificación completa tal como define el
parámetro SORTHEAP y puede que se genere una alerta. El indicador se calcula
utilizando la fórmula:
(db2.sort_heap_allocated / SHEAPTHRES) * 100. El elemento supervisor de instantáneas
Clasificaciones Posteriores a un Umbral computa el número de clasificaciones que
han solicitado pilas después de que se haya superado el umbral de pila de
clasificación. El valor de este indicador, que aparece en Detalles adicionales,
indica el grado de gravedad del problema para este indicador de salud. El
elemento supervisor de instantáneas Máximo de memoria de clasificación privada
utilizada mantiene una marca de límite superior de clasificación privada
para la instancia. El valor de este indicador, que aparece en Información

246 Consulta de mandatos


GET DESCRIPTION FOR HEALTH INDICATOR

adicional, indica la cantidad máxima de memoria de clasificación privada que se


ha utilizado en cualquier momento desde que la instancia se recicló
por última vez. Este valor se puede utilizar para determinar más fácilmente
un valor apropiado para SHEAPTHRES.

Capítulo 5. mandatos CLP 247


GET HEALTH NOTIFICATION CONTACT LIST

GET HEALTH NOTIFICATION CONTACT LIST


Devuelve la lista de contactos y de grupos de contactos a los que se notifica acerca
del estado de una instancia. Una lista de contactos consta de las direcciones de
correo electrónico y las direcciones de Internet de buscapersonas de las personas
que han de recibir notificaciones cuando existan condiciones de salud que no son
normales para una instancia o para cualquiera de sus objetos de base de datos.

Autorización

Ninguna

Conexión necesaria

Instancia. No se necesita una conexión explícita.

Sintaxis del mandato


 GET HEALTH NOTIFICATION CONTACT LIST 
NOTIFICATION

Parámetros del mandato

Ninguna

Ejemplos

La emisión del mandato GET NOTIFICATION LIST da como resultado un informe


similar a la salida siguiente:
Nombre Tipo
------------------------------ -------------
Juan Pérez Contacto
Soporte Grupo contactos

248 Consulta de mandatos


GET HEALTH SNAPSHOT

GET HEALTH SNAPSHOT


Recupera la información de estado de salud para el gestor de bases de datos y sus
bases de datos. La información devuelta representa una instantánea del estado de
salud en el momento en que se ha emitido el mandato.

Importante: Este mandato o API ha quedado en desuso y puede que se elimine en


un futuro release, ya que el supervisor de salud ha quedado en desuso en la
Versión 9.7. No recibe soporte en los entornos DB2 pureScale. Para obtener más
información, consulte el tema “El Supervisor de salud ha quedado en desuso” en
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/
com.ibm.db2.luw.wn.doc/doc/i0055045.html.

Ámbito

Este mandato se invoca para el miembro actualmente enlazado y, por omisión, sólo
devuelve información para ese miembro. El miembro actualmente enlazado toma
como valor por omisión el sistema principal en el que se ejecuta el mandato. Si hay
varios miembros por sistema principal, el miembro actualmente enlazado es el
primer miembro enumerado en el archivo db2nodes.cfg de ese sistema principal.

Para ejecutar el mandato en un miembro que no es el miembro actualmente


enlazado, indique la opción AT MEMBER para ejecutar este mandato en un miembro
concreto o la opción GLOBAL para ejecutarlo en todos los miembros y recibir un
resultado agregado.

Para cambiar el miembro actualmente enlazado desde el que se ejecutarán los


mandatos posteriores, utilice el parámetro ATTACH_MEMBER del mandato SET CLIENT.
Debe ejecutar DETACH y luego ejecutar ATTACH otra vez sobre su aplicación para que
este valor de cliente entre en vigor.

Autorización

Ninguna

Conexión necesaria

Instancia. Si no existe ninguna conexión de instancia, se creará una conexión de


instancia por omisión.

Para obtener una instantánea de una instancia remota, es necesario conectarse


primero a dicha instancia.

Sintaxis del mandato


 GET HEALTH SNAPSHOT FOR DATABASE MANAGER 
DB MANAGER
DBM
ALL DATABASES
ALL ON alias basedatos
DATABASE
DB
TABLESPACES

Capítulo 5. mandatos CLP 249


GET HEALTH SNAPSHOT

 
AT MEMBER número-miembro SHOW DETAIL WITH FULL COLLECTION
GLOBAL

Parámetros del mandato


DATABASE MANAGER
Proporciona estadísticas de la instancia activa del gestor de bases de datos.
ALL DATABASES
Proporciona estados de salud para todas las bases de datos activas en la
partición de base de datos actual.
ALL ON alias-basedatos
Proporciona estados de salud e información acerca de todos los espacios de
tablas y las agrupaciones de almacenamientos intermedios para una base
de datos especificada.
DATABASE ON alias-basedatos
TABLESPACES ON alias-basedatos
Proporciona información acerca de los espacios de tablas para una
base de datos especificada.
AT MEMBER número-miembro
Devuelve resultados correspondientes al miembro especificado.
GLOBAL
Devuelve el estado del supervisor de salud para todos los miembros.
SHOW DETAIL
Especifica que la salida debe incluir los datos históricos para cada elemento
de datos de supervisor de salud en forma de {(Timestamp, Value,
Formula)}, donde los parámetros entre paréntesis (Timestamp, Value,
Formula) se repetirán para cada registro histórico que se devuelva. Por
ejemplo,
(03-19-2002 13:40:24.138865,50,((1-(4/8))*100)),
(03-19-2002 13:40:13.1386300,50,((1-(4/8))*100)),
(03-19-2002 13:40:03.1988858,0,((1-(3/3))*100))

Se devuelve el histórico de objetos de la colección correspondiente a todos


los objetos de la colección en estado ATTENTION o AUTOMATE FAILED.
La opción SHOW DETAIL también proporciona información de contexto
adicional que puede ser útil para comprender el valor y el estado de alerta
del Indicador de salud asociado. Por ejemplo, si se está utilizando el
Indicador de salud de utilización de almacenamiento de espacio de tablas
para determinar el grado de ocupación del espacio de tablas, SHOW DETAIL
también proporcionará la velocidad a la que crece el espacio de tablas.
WITH FULL COLLECTION
Especifica que se debe devolver información de la colección completa de
todos los indicadores de salud basados en el estado de la colección. Esta
opción tiene en cuenta los criterios de filtro de tamaño y nombre. Si un
usuario solicita una instantánea de buen funcionamiento con recopilación
completa, el informe mostrará todas las tablas que cumplan los criterios de
nombre y tamaño de la política. Esto puede utilizarse para validar qué
tablas se evaluarán en un ciclo de renovación dado. La salida que se
devuelve cuando se especifica esta opción corresponde a objetos de

250 Consulta de mandatos


GET HEALTH SNAPSHOT

colección en estado NORMAL, AUTOMATED, ATTENTION o


AUTOMATE FAILED. Esta opción se puede especificar junto con la opción
SHOW DETAIL.
Sin esta opción, solamente las tablas que se hayan evaluado para
reorganización automática y requieran intervención manual (es decir, la
reorganización manual o la automatización han fallado) se visualizarán en
un informe de obtención de instantánea de salud.

Ejemplos

La sección siguiente es una salida típica resultante de una petición de información


del gestor de bases de datos:
D:\>DB2 GET HEALTH SNAPSHOT FOR DBM

Instantánea de salud del gestor de bases de datos

Nombre de nodo =
Tipo nodo = Enterprise Server Edition
con clientes locales y remotos
Nombre instancia = DB2
Indicación de hora de la instantánea = 17/02/2004 12:39:44.818949

Número de miembros en instancia de DB2 = 1


Indicación hora iniciar gestor bases de datos = 17/02/2004 12:17:21.000119
Estado de alerta gravedad más alta instancia = Normal

Indicadores de salud:

Nombre de indicador = db2.db2_op_status


Valor = 0
Indicación fecha y hora de evaluación = 17/02/2004 12:37:23.393000
Estado de alerta = Normal

Nombre de indicador = db2.sort_privmem_util


Valor = 0
Unidad = %
Indicación fecha y hora de evaluación = 17/02/2004 12:37:23.393000
Estado de alerta = Normal

Nombre de indicador = db2.mon_heap_util


Valor = 6
Unidad = %
Indicación fecha y hora de evaluación = 17/02/2004 12:37:23.393000
Estado de alerta = Normal

Notas de uso

Cuando el mandato GET HEALTH SNAPSHOT devuelve una recomendación para


reorganizar los datos o el índice en una tabla particionada de datos, la
recomendación sólo es a nivel de tabla y no es específica de ninguna partición
individual de la tabla. A partir de DB2 Versión 9.7 Fixpack 1, los datos o los
índices particionados de una partición de datos específica se pueden reorganizar
utilizando el mandato REORG INDEXES/TABLE de la API db2Reorg. Para determinar
si sólo se tienen que reorganizar las particiones de datos específicas de una tabla
particionada, utilice el mandato REORGCHK para recuperar las estadísticas y las
recomendaciones de reorganización para las particiones de datos de la tabla
particionada de datos. Utilice el mandato REORG TABLE o REORG INDEXES ALL con la
cláusula ON DATA PARTITION para reorganizar los datos o los índices particionados
de una partición de datos específica.

Capítulo 5. mandatos CLP 251


GET HEALTH SNAPSHOT

Compatibilidades

Para mantener la compatibilidad con las versiones anteriores:


v DBPARTITIONNUM puede sustituirse por MEMBER, salvo cuando la variable de
registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.

252 Consulta de mandatos


GET INSTANCE

GET INSTANCE
Devuelve el valor de la variable de entorno DB2INSTANCE.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 GET INSTANCE 

Parámetros del mandato

Ninguna

Ejemplos

El ejemplo siguiente es una salida de ejemplo de GET INSTANCE:


La instancia del gestor de base de datos actual es: smith

Capítulo 5. mandatos CLP 253


GET MONITOR SWITCHES

GET MONITOR SWITCHES


Visualiza el estado de los conmutadores de supervisor de sistema de bases de
datos para la sesión actual. Los conmutadores de supervisor indican al gestor de
bases de datos que reúna información sobre la actividad de la base de datos.

Cada aplicación que utiliza la interfaz de supervisor de sistema de base de datos


tiene su propio conjunto de conmutadores de supervisor. Este mandato los
visualiza. Para visualizar los conmutadores de nivel de gestor de bases de datos,
utilice el mandato GET DBM MONITOR SWITCHES.

Ámbito

Este mandato se invoca para el miembro actualmente enlazado y, por omisión, sólo
devuelve información para ese miembro. El miembro actualmente enlazado toma
como valor por omisión el sistema principal en el que se ejecuta el mandato. Si hay
varios miembros por sistema principal, el miembro actualmente enlazado es el
primer miembro enumerado en el archivo db2nodes.cfg de ese sistema principal.

Para ejecutar el mandato en un miembro que no es el miembro actualmente


enlazado, indique la opción AT MEMBER para ejecutar este mandato en un miembro
concreto o la opción GLOBAL para ejecutarlo en todos los miembros y recibir un
resultado agregado.

Para cambiar el miembro actualmente enlazado desde el que se ejecutarán los


mandatos posteriores, utilice el parámetro ATTACH_MEMBER del mandato SET CLIENT.
Debe ejecutar DETACH y luego ejecutar ATTACH otra vez sobre su aplicación para que
este valor de cliente entre en vigor.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON

Conexión necesaria
Instancia. Si no existe ninguna conexión de instancia, se creará una conexión de
instancia por omisión.

Para visualizar los valores de una instancia remota o de una instancia local
diferente, es necesario conectarse primero a dicha instancia.

Sintaxis del mandato


 GET MONITOR SWITCHES 
AT MEMBER número-miembro
GLOBAL

254 Consulta de mandatos


GET MONITOR SWITCHES

Parámetros del mandato


AT MEMBER número-miembro
Especifica el miembro para el que ha de visualizarse el estado de los
conmutadores de supervisor.
GLOBAL
Devuelve el estado de los conmutadores de supervisor de todos los
miembros.

Ejemplos

A continuación se muestra un ejemplo de salida de GET MONITOR SWITCHES:


Conmutadores de registro del supervisor

Lista de conmutadores para el miembro número 1


Infor. activ. agrup. almac. int. (BUFFERPOOL) = ON 02-20-2003 16:04:30.070073
Información de bloqueo (LOCK) = OFF
Información de clasificación (SORT) = OFF
Información sentencia de SQL (STATEMENT) = ON 02-20-2003 16:04:30.070073
Información actividades tabla (TABLE) = OFF
Tomar información indic. hora (TIMESTAMP) = ON 02-20-2003 16:04:30.070073
Información unidad de trabajo (UOW) = ON 02-20-2003 16:04:30.070073

Notas de uso

El conmutador de registro TIMESTAMP está activado por omisión, pero puede


desactivarse utilizando UPDATE MONITOR SWITCHES. Cuando este conmutador está
activado, el sistema emite llamadas de indicación de fecha y hora al recopilar
información para los elementos del supervisor de indicación de fecha y hora.

El conmutador de registro TIMESTAMP está activado por omisión, pero puede


desactivarse utilizando UPDATE MONITOR SWITCHES. Si este conmutador está
desactivado, este mandato también muestra la indicación de fecha y hora en que se
ha desactivado el conmutador. Cuando este conmutador está activado, el sistema
emite llamadas de indicación de fecha y hora al recopilar información para los
elementos del supervisor de indicación de fecha y hora. He aquí unos ejemplos de
estos elementos:
v agent_sys_cpu_time
v agent_usr_cpu_time
v appl_con_time
v con_elapsed_time
v con_response_time
v conn_complete_time
v db_conn_time
v elapsed_exec_time
v gw_comm_error_time
v gw_con_time
v gw_exec_time
v host_response_time
v last_backup
v last_reset
v lock_wait_start_time
v network_time_bottom

Capítulo 5. mandatos CLP 255


GET MONITOR SWITCHES

v network_time_top
v prev_uow_stop_time
v rf_timestamp
v ss_sys_cpu_time
v ss_usr_cpu_time
v status_change_time
v stmt_elapsed_time
v stmt_start
v stmt_stop
v stmt_sys_cpu_time
v stmt_usr_cpu_time
v uow_elapsed_time
v uow_start_time
v uow_stop_time

Si el conmutador TIMESTAMP está desactivado, no se emiten llamadas del sistema


operativo de indicación de fecha y hora para determinar estos elementos, los cuales
contendrán un cero. Desactivar este conmutador se vuelve más importante a
medida que la utilización de la CPU se aproxima al 100%; cuando ocurre esto, el
tiempo de la CPU necesario para emitir indicaciones de fecha y hora aumenta
drásticamente.

Compatibilidades

Para mantener la compatibilidad con las versiones anteriores:


v DBPARTITIONNUM o NODE pueden sustituirse por MEMBER, salvo cuando la variable
de registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.

256 Consulta de mandatos


GET RECOMMENDATIONS FOR HEALTH INDICATOR

GET RECOMMENDATIONS FOR HEALTH INDICATOR


Devuelve las descripciones de las recomendaciones para mejorar la salud del
aspecto del sistema de bases de datos supervisado por el indicador de salud
especificado. Se pueden devolver recomendaciones para un indicador de salud que
se encuentre en un estado de alerta sobre un objeto específico o se puede consultar
el conjunto de recomendaciones completo para un determinado indicador de salud.

Importante: Este mandato o API ha quedado en desuso y puede que se elimine en


un futuro release, ya que el supervisor de salud ha quedado en desuso en la
Versión 9.7. No recibe soporte en los entornos DB2 pureScale. Para obtener más
información, consulte el tema “El Supervisor de salud ha quedado en desuso” en
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/
com.ibm.db2.luw.wn.doc/doc/i0055045.html.

Ámbito

Este mandato se invoca para el miembro actualmente enlazado y, por omisión, sólo
devuelve información para ese miembro. El miembro actualmente enlazado toma
como valor por omisión el sistema principal en el que se ejecuta el mandato. Si hay
varios miembros por sistema principal, el miembro actualmente enlazado es el
primer miembro enumerado en el archivo db2nodes.cfg de ese sistema principal.

Para ejecutar el mandato en un miembro que no es el miembro actualmente


enlazado, indique la opción AT MEMBER para ejecutar este mandato en un miembro
concreto o la opción GLOBAL para ejecutarlo en todos los miembros y recibir un
resultado agregado.

Para cambiar el miembro actualmente enlazado desde el que se ejecutarán los


mandatos posteriores, utilice el parámetro ATTACH_MEMBER del mandato SET CLIENT.
Debe ejecutar DETACH y luego ejecutar ATTACH otra vez sobre su aplicación para que
este valor de cliente entre en vigor.

En un entorno DB2 pureScale o de base de datos particionada, este mandato puede


invocarse desde cualquier miembro definido en el archivo db2nodes.cfg. Sólo actúa
sobre dicho miembro a menos que se especifique el parámetro GLOBAL.

Autorización

Ninguna

Conexión necesaria

Instancia. Si no existe ninguna conexión de instancia, se creará una conexión de


instancia por omisión. Para recuperar recomendaciones para una instancia remota,
es necesario conectarse primero a dicha instancia.

Sintaxis del mandato

 GET RECOMMENDATIONS FOR HEALTH INDICATOR nombre-indicador-salud 

 
FOR DBM
TABLESPACE nombre espacio tablas ON alias-basedatos
CONTAINER nombre contenedor FOR TABLESPACE nombre espacio tablas
DATABASE

Capítulo 5. mandatos CLP 257


GET RECOMMENDATIONS FOR HEALTH INDICATOR

 
AT MEMBER número-miembro
GLOBAL

Parámetros del mandato


HEALTH INDICATOR nombre-indicador-salud
Nombre del indicador de salud para el que desea recuperar las
recomendaciones. Los nombres de indicador de salud se componen de un
identificador de objeto de dos o tres letras, seguido de un nombre que
describe lo que mide el indicador.
DBM Devuelve recomendaciones para un indicador de salud del gestor de bases
de datos que haya entrado en un estado de alerta.
TABLESPACE nombre espacio tablas
Devuelve recomendaciones para un indicador de salud que haya entrado
en un estado de alerta en el espacio de tablas o en la base de datos que se
haya especificado.
CONTAINER nombre contenedor
Devuelve recomendaciones para un indicador de salud que haya entrado
en un estado de alerta en el contenedor especificado del espacio de tablas o
de la base de datos que se haya especificado.
DATABASE
Devuelve recomendaciones para un indicador de salud que haya entrado
en un estado de alerta en la base de datos que se haya especificado.
ON alias-base-datos
Especifica una base de datos.
AT MEMBER número-miembro
Especifica el número de miembro en que el indicador de salud ha entrado
en un estado de alerta. Si no se especifica un número de miembro y no se
especifica GLOBAL, el mandato devolverá información sobre el miembro
conectado actualmente.
GLOBAL
Recupera recomendaciones para el indicador de salud especificado entre
todos los miembros. En los casos en que las recomendaciones sean las
mismas en distintos miembros, estas recomendaciones se devolverán como
un solo conjunto de recomendaciones que resuelven el indicador de salud
en los miembros afectados.

Ejemplos
db2 get recommendations for health indicator db.db_heap_util
for database on sample

Problema:

Nombre de indicador = db.db_heap_util


Valor = 42
Indicación fecha y hora de evaluación = 11/25/2003 19:04:54
Estado de alerta = Alarma
Información adicional =

Recomendaciones:

Recomendación: Aumente el tamaño de la pila de base de datos


Rango: 1

Aumente el valor del parámetro de configuración de base de datos dbheap lo suficiente

258 Consulta de mandatos


GET RECOMMENDATIONS FOR HEALTH INDICATOR

para que la utilización alcance los niveles operativos normales. Para aumentar el
valor, establezca el nuevo valor de dbheap de manera que equivalga a
(pool_cur_size / (4096*U)) donde U es el índice de utilización necesario.
Por ejemplo, si el índice de utilización necesario es el 60% del
nivel de umbral de aviso, que ha establecido en 75%, entonces
U = 0.6 * 0.75 = 0.45 (o 45%).

Ejecute los siguientes mandatos en el servidor DB2:

CONNECT TO SAMPLE;
UPDATE DB CFG USING DBHEAP 149333;
CONNECT_RESET;
Recomendación: Averigüe el uso de memoria de la pila de base de datos
Rango: 2

Hay una pila de base de datos por cada base de datos y el gestor de bases de datos
la utiliza de parte de todas las aplicaciones que están conectadas a la base de
datos. El área de datos se amplía según las necesidades hasta el valor máximo
especificado por dbheap.

Para obtener más información sobre el almacenamiento dinámico de la base de datos,


consulte el Centro de información de DB2.

Averigüe la cantidad de memoria que se ha utilizado para la pila de base de datos


durante este tiempo para determinar el valor más apropiado para el parámetro de
configuración de pila de base de datos. El supervisor del sistema de base de datos
realiza un seguimiento de la cantidad más alta de memoria que se ha utilizado para
la pila de base de datos.

Notas de uso

El mandato GET RECOMMENDATIONS FOR HEALTH INDICATOR se puede utilizar de dos


modos distintos:
v Especifique sólo el indicador de salud para obtener una lista informativa de
todas las recomendaciones posibles. Si no se especifica ningún objeto, el
mandato revolverá un listado completo de todas las recomendaciones que se
pueden utilizar para resolver una alerta sobre el indicador de salud en cuestión.
v Especifique un objeto para resolver una alerta específica sobre dicho objeto. Si se
especifica un objeto (una base de datos o un espacio de tablas, por ejemplo), las
recomendaciones devueltas serán específicas de una alerta sobre el objeto
identificado. En tal caso, las recomendaciones serán más específicas y
contendrán más información sobre cómo resolver la alerta. Si el indicador de
salud identificado no se encuentra en estado de alerta sobre el objeto
especificado, no se devolverán recomendaciones.

Cuando el mandato GET RECOMMENDATIONS FOR HEALTH INDICATOR devuelve una


recomendación para reorganizar los datos o el índice en una tabla particionada de
datos, la recomendación sólo es a nivel de tabla y no es específica de ninguna
partición de datos individual de la tabla. A partir de DB2 Versión 9.7 Fixpack 1, los
datos o los índices particionados de una partición de datos específica se pueden
reorganizar utilizando el mandato REORG INDEXES/TABLE de la API db2Reorg. Para
determinar si sólo se tienen que reorganizar las particiones de datos específicas de
una tabla particionada, utilice el mandato REORGCHK para recuperar las estadísticas
y las recomendaciones de reorganización para las particiones de datos de la tabla
particionada de datos. Utilice el mandato REORG TABLE o REORG INDEXES ALL con la
cláusula ON DATA PARTITION para reorganizar los datos o los índices particionados
de una partición de datos específica.

Capítulo 5. mandatos CLP 259


GET ROUTINE

GET ROUTINE
Recupera un archivo SQL Archive (SAR) de rutina para una rutina de SQL
especificada.

Autorización

Privilegio EXECUTE para el procedimiento SYSFUN.GET_ROUTINE_SAR

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión.

Sintaxis del mandato


 GET ROUTINE INTO nombre_archivo FROM PROCEDURE 
SPECIFIC

 nombre_rutina 
HIDE BODY

Parámetros del mandato


INTO nombre_archivo
Denomina el archivo en el que se almacena SQL Archive (SAR) de rutina.
FROM
Indica el inicio de la especificación de la rutina que debe recuperarse.
SPECIFIC
El nombre de rutina especificado se proporciona como un nombre
específico.
PROCEDURE
La rutina es un procedimiento SQL.
nombre_rutina
Nombre del procedimiento. Si se ha especificado SPECIFIC, éste será el
nombre específico del procedimiento. Si el nombre no está calificado con
un nombre de esquema, se utiliza CURRENT SCHEMA como nombre de
esquema de la rutina. El nombre-rutina debe ser un procedimiento existente
que esté definido como procedimiento SQL.
HIDE BODY
Especifica que el cuerpo de la rutina debe sustituirse por un cuerpo vacío
cuando el texto de la rutina se extraiga de los catálogos.
Esto no afecta al código compilado; sólo afecta al texto.

Ejemplos
GET ROUTINE INTO procs/proc1.sar FROM PROCEDURE myappl.proc1;

Notas de uso

Si una operación GET ROUTINE o PUT ROUTINE (o el procedimiento correspondiente)


no se ejecuta satisfactoriamente, siempre devolverá un error (SQLSTATE 38000),
acompañado de un texto de diagnóstico que proporcionará información acerca de

260 Consulta de mandatos


GET ROUTINE

la causa de la anomalía. Por ejemplo, si el nombre de procedimiento proporcionado


a GET ROUTINE no identifica un procedimiento de SQL, se devolverá el texto de
diagnóstico "-204, 42704", donde "-204" es el SQLCODE y "42704" es el SQLSTATE,
que identifican la causa del problema. El SQLCODE y el SQLSTATE de este
ejemplo indican que el nombre de procedimiento proporcionado en el mandato GET
ROUTINE no está definido.

Capítulo 5. mandatos CLP 261


GET SNAPSHOT

GET SNAPSHOT
Reúne información de estado y formatea la salida para el usuario. La información
devuelta representa una instantánea del estado de operación del gestor de bases de
datos en el momento en que se ha emitido el mandato.

Ámbito

Este mandato se invoca para el miembro actualmente enlazado y, por omisión, sólo
devuelve información para ese miembro. El miembro actualmente enlazado toma
como valor por omisión el sistema principal en el que se ejecuta el mandato. Si hay
varios miembros por sistema principal, el miembro actualmente enlazado es el
primer miembro enumerado en el archivo db2nodes.cfg de ese sistema principal.

Para ejecutar el mandato en un miembro que no es el miembro actualmente


enlazado, indique la opción AT MEMBER para ejecutar este mandato en un miembro
concreto o la opción GLOBAL para ejecutarlo en todos los miembros y recibir un
resultado agregado.

Para cambiar el miembro actualmente enlazado desde el que se ejecutarán los


mandatos posteriores, utilice el parámetro ATTACH_MEMBER del mandato SET CLIENT.
Debe ejecutar DETACH y luego ejecutar ATTACH otra vez sobre su aplicación para que
este valor de cliente entre en vigor.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON

Conexión necesaria

Instancia. Si no existe ninguna conexión de instancia, se creará una conexión de


instancia por omisión.

Para obtener una instantánea de una instancia remota, es necesario conectarse


primero a dicha instancia.

Sintaxis del mandato


 GET SNAPSHOT FOR 

262 Consulta de mandatos


GET SNAPSHOT

 DATABASE MANAGER 
DB MANAGER
DBM
ALL DATABASES
DCS
ALL APPLICATIONS
DCS
ALL BUFFERPOOLS
APPLICATION APPLID id-apl
DCS AGENTID descriptor de contexto-apl
FCM FOR ALL MEMBERS
LOCKS FOR APPLICATION APPLID id-apl
AGENTID descriptor de contexto-apl
ALL REMOTE_DATABASES
ALL REMOTE_APPLICATIONS
DYNAMIC SQL ON alias-basedatos
WRITE TO FILE
ALL ON alias-basedatos
DATABASE
DCS DB
APPLICATIONS
DCS
TABLES
TABLESPACES
LOCKS
BUFFERPOOLS
REMOTE_DATABASES
REMOTE_APPLICATIONS

 
AT MEMBER número-miembro
GLOBAL

Los conmutadores del supervisor deben estar activados para recopilar algunas
estadísticas.

Parámetros del mandato


DATABASE MANAGER
Proporciona estadísticas de la instancia activa del gestor de bases de datos.
ALL DATABASES
Proporciona estadísticas generales para todas las bases de datos activas del
miembro actual.
ALL APPLICATIONS
Proporciona información acerca de todas las aplicaciones activas que están
conectadas a una base de datos en el miembro actual.
ALL BUFFERPOOLS
Proporciona información acerca de la actividad de las agrupaciones de
almacenamientos intermedios para todas las bases de datos activas.
APPLICATION APPLID id-apl
Sólo proporciona información acerca de la aplicación cuyo ID se ha
especificado. Para obtener un ID de aplicación específico, utilice el
mandato LIST APPLICATIONS.
APPLICATION AGENTID descriptor de contexto-apl
Sólo proporciona información acerca de la aplicación cuyo descriptor de
contexto de aplicación se ha especificado. El descriptor de contexto de
Capítulo 5. mandatos CLP 263
GET SNAPSHOT

aplicación es un número de 32 bits que identifica de forma exclusiva una


aplicación que se está ejecutando actualmente. Utilice el mandato LIST
APPLICATIONS para obtener un descriptor de contexto de aplicación
específico.
FCM FOR ALL MEMBERS
Proporciona estadísticas de Fast Communication Manager (FCM) entre el
miembro para el que se emitió el mandato GET SNAPSHOT y los otros
miembros del entorno de base de datos particionada o del entorno DB2
pureScale.
LOCKS FOR APPLICATION APPLID id-apl
Proporciona información acerca de todos los bloqueos mantenidos por la
aplicación especificada, identificada por el ID de aplicación.
LOCKS FOR APPLICATION AGENTID descriptor de contexto-apl
Proporciona información acerca de todos los bloqueos mantenidos por la
aplicación especificada, identificada por el descriptor de contexto de
aplicación.
ALL REMOTE_DATABASES
Proporciona estadísticas generales acerca de todas las bases de datos
remotas activas en el miembro actual.
ALL REMOTE_APPLICATIONS
Proporciona información sobre todas las aplicaciones remotas activas que
están conectadas al miembro actual.
ALL ON alias-basedatos
Proporciona estadísticas generales e información acerca de todas las
aplicaciones, tablas, espacios de tablas, agrupaciones de almacenamientos
intermedios y bloqueos para una base de datos especificada.
DATABASE ON alias-basedatos
Proporciona estadísticas generales para una base de datos especificada.
APPLICATIONS ON alias-basedatos
Proporciona información acerca de todas las aplicaciones conectadas a una
base de datos especificada.
TABLES ON alias-basedatos
Proporciona información acerca de las tablas de una base de datos
especificada. Esto sólo incluirá las tablas a las que se ha accedido desde
que se ha activado el conmutador de registro TABLE.
TABLESPACES ON alias-basedatos
Proporciona información acerca de los espacios de tablas para una base de
datos especificada.
LOCKS ON alias-basedatos
Proporciona información acerca de cada bloqueo mantenido por cada
aplicación conectada a una base de datos especificada.
BUFFERPOOLS ON alias-basedatos
Proporciona información acerca de la actividad de las agrupaciones de
almacenamientos intermedios para la base de datos especificada.
REMOTE_DATABASES ON alias-basedatos
Proporciona estadísticas generales sobre todas las bases de datos remotas
activas correspondientes a una base de datos específica.

264 Consulta de mandatos


GET SNAPSHOT

REMOTE_APPLICATIONS ON alias-basedatos
Proporciona información sobre las aplicaciones remotas correspondientes a
una base de datos específica.
DYNAMIC SQL ON alias-basedatos
Devuelve una imagen de un punto en el tiempo del contenido de la
antememoria de sentencia de SQL para la base de datos.
WRITE TO FILE
Especifica que los resultados de la instantánea deben almacenarse en un
archivo del servidor, además de devolverlos al cliente. Este mandato sólo
es válido a través de una conexión de base de datos. Entonces se pueden
consultar los datos de la instantánea mediante la función de tabla
SYSFUN.SQLCACHE_SNAPSHOT a través de la misma conexión en la
que se ha efectuado la llamada.
DCS En función de la cláusula que se especifique, esta palabra clave solicita
estadísticas acerca de:
v Una aplicación DCS específica que se ejecute actualmente en la pasarela
DB2 Connect
v Todas las aplicaciones DCS
v Todas las aplicaciones DCS actualmente conectadas a una base de datos
DCS específica
v Una base de datos DCS específica
v Todas las bases de datos DCS.
AT MEMBER número-miembro
Devuelve resultados correspondientes al miembro especificado.
GLOBAL Devuelve resultados de instantánea para todos los miembros.

Ejemplos
v Para solicitar información sobre las instantáneas del gestor de bases de datos,
emita:
get snapshot for database manager

A continuación se muestra una lista de salida de ejemplo del mandato anterior:


Instantánea de gestor de bases de datos

Nombre de nodo =
Tipo de nodo = Enterprise Server Edition con clientes locales y remotos
Nombre instancia = DB2
Número de miembros en instancia de DB2 = 1
Estado del gestor de bases de datos = Activo

Nombre del producto = DB2 v9.5.0.535


Nivel de servicio = s070101 (NT32)

Pila de clasificación privada asignada = 0


Marca límite superior pila clasif. privada = 0
Clasificaciones umbral posteriores = No recopiladas
Clasificaciones en área interconexión pedidas = 0
Clasificaciones en área interconexión aceptad. = 0

Indicación hora iniciar gestor bases de datos = 01/10/2007 15:18:36.241035


Indicación hora último restabl. =
Indicación hora de la instantánea = 01/10/2007 15:28:26.989789

Conexiones remotas al gestor de bases de datos = 3


Conex. remotas en ejecuc. en gestor base datos = 0

Capítulo 5. mandatos CLP 265


GET SNAPSHOT

Conexiones locales = 1
Conex. locales en ejecuc. en gestor base datos = 0
Bases de datos locales activas = 1

Marca límite superior de agentes registrados = 0


Agentes registrados = 8
Agentes desocupados = 0

Memoria privada confirmada (Bytes) = 8912896

Lista de conmutadores para el miembro número 0


Infor. activ. agrup. almac. int. (BUFFERPOOL) = OFF
Información de bloqueo (LOCK) = ON 01-10-2007 15:22:43.145437
Información de clasificación (SORT) = OFF
Información sentencia de SQL (STATEMENT) = OFF
Información actividades tabla (TABLE) = OFF
Tomar información indic. hora (TIMESTAMP) = ON 01/10/2007 15:18:36.241035
Información unidad de trabajo (UOW) = OFF

Agentes asignados de la agrupación = 3


Agentes creados desde agrupación vacía = 11
Agentes robados de otra aplicación = 0
Marca límite superior agentes coordinación = 9
Uniones hash tras superar umbral de pila = 0
Funciones OLAP tras superar umbral de pila = 0

Número total de conexiones de pasarela = 0


Número actual de conexiones de pasarela = 0
Conexiones pasarela esperando resp. sis. prin. = 0
Conexiones pasarela esperando petic. cliente = 0
Agentes robados agrupación conexión pasarela = 0

Información FCM de nodo corresponde a = 1


Almacenamientos intermedios FCM libres = 13425
Total de almacenamientos intermedios FCM = 13425
Marca límite inferior almac. inter. FCM libres = 13420
Número máximo almacenamientos intermedios FCM = 28640
Canales FCM libres = 8036
Total canales FCM = 8055
Marca límite inferior de canales FCM libres = 8036
Número máximo canales FCM = 28640
Número de nodos FCM = 3

Número Total almac. Total almac. Estado


nodos inter. enviados inter. recibidos conexión
----------- ------------------ ------------------ -----------------
1 1 1 Active
2 1 0 Active
10 1 0 Active

Información FCM de nodo corresponde a = 2


Almacenamientos intermedios FCM libres = 13425
Total de almacenamientos intermedios FCM = 13425
Marca límite inferior almac. inter. FCM libres = 13420
Número máximo almacenamientos intermedios FCM = 28640
Canales FCM libres = 8036
Total canales FCM = 8055
Marca límite inferior de canales FCM libres = 8036
Número máximo canales FCM = 28640
Número de nodos FCM = 3

Número Total almac. Total almac. Estado


nodos inter. enviados inter. recibidos conexión
----------- ------------------ ------------------ -----------------
1 0 1 Active
2 1 1 Active
10 0 0 Active

266 Consulta de mandatos


GET SNAPSHOT

Información FCM de nodo corresponde a = 10


Almacenamientos intermedios FCM libres = 13425
Total de almacenamientos intermedios FCM = 13425
Marca límite inferior almac. inter. FCM libres = 13420
Número máximo almacenamientos intermedios FCM = 28640
Canales FCM libres = 8036
Total canales FCM = 8055
Marca límite inferior de canales FCM libres = 8036
Número máximo canales FCM = 28640
Número de nodos FCM = 3

Número Total almac. Total almac. Estado


nodos inter. enviados inter. recibidos conexión
----------- ------------------ ------------------ -----------------
1 0 1 Active
2 0 0 Active
10 1 1 Active

Uso de memoria para gestor de base de datos:

Número de nodo = 0
Tipo de agrupación de memoria = Otra memoria
Tamaño actual (bytes) = 11534336
Marca de límite superior (bytes) = 11599872
Tamaño configurado (bytes) = 34275328

Número de nodo = 0
Tipo de agrupación de memoria = Pila de supervisor de base datos
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 327680

Número de nodo = 0
Tipo de agrupación de memoria = Pila FCMBP
Tamaño actual (bytes) = 655360
Marca de límite superior (bytes) = 655360
Tamaño configurado (bytes) = 851968
v Para solicitar información sobre las instantáneas de una aplicación con ID de
agente 29:
get snapshot for application agentid 29

A continuación se muestra una lista de salida de ejemplo del mandato anterior,


suponiendo que los conmutadores de supervisor de sentencia y bloqueo están
ON:
Instantánea de aplicación

Descriptor de contexto de aplicación = 29


Estado de la aplicación = En espera bloqueo
Hora de cambio de estado = No recopilada
Página de códigos de la aplicación = 819
Código de país/región de la aplicación = 1
Símbolo correlación DUOW = *LOCAL.jwr.070222182152
Nombre de la aplicación = db2bp
ID de aplicación = *LOCAL.jwr.070222182152
Número de secuencia = 00001
ID de usuario cliente de supervisor de TP =
Nombre est. trabajo cliente supervisor TP =
Nombre de aplicación cliente supervisor TP =
Serie contabilidad cliente supervisor TP =

Indicación hora inicio petición conexión = 22-02-2007 13:21:52.587168


Indicación hora finalización petic. conex. = 22-02-2007 13:21:53.291779
Tipo desocupación de la aplicación =

Capítulo 5. mandatos CLP 267


GET SNAPSHOT

ID de autorización de CONNECT = JWR


ID de inicio de sesión de cliente = jwr
NNAME de configuración del cliente = gilera
ID producto gestor base de datos cliente = SQL09050
ID de proceso de aplicación cliente = 843852
Plataforma de la aplicación cliente = AIX 64BIT
Protocolo de comunicaciones de cliente = Cliente local

Dirección de comunicaciones de entrada = *LOCAL.jwr

Nombre de base de datos = SAMPLE


Vía de acceso de base de datos = /home/jwr/jwr/NODE0000/SQL00001/
Alias de base de datos del cliente = SAMPLE
Alias de base de datos de entrada =
Indicación hora último restabl. =
Indicación hora de la instantánea = 02/22/2007 13:22:39.766300
Nivel de autorización otorgado =
Autorización de usuario:
Autorización DBADM
Autorización CREATETAB
Autorización BINDADD
Autorización CONNECT
Autorización CREATE_NOT_FENC
Autorización LOAD
Autorización IMPLICIT_SCHEMA
Autorización CREATE_EXT_RT
Autorización QUIESCE_CONN
Autorización de grupo:
Autorización SYSADM
Autorización CREATETAB
Autorización BINDADD
Autorización CONNECT
Autorización IMPLICIT_SCHEMA
Número de miembro coordinador = 0
Número de miembro actual = 0
Proceso agente coordinador o ID hebra = 1801
ID de carga de trabajo actual = 1
Agentes robados = 0
Agentes en espera de bloqueos = 1
Número máximo de agentes asociados = 1
Prioridad en que trabajan agentes aplic. = 0
Tipo de prioridad = Dinámico

Tiempo espera excedido de bloqueo (seg.) = -1


Bloqueos retenidos por la aplicación = 4
Esperas de bloqueos desde la conexión = 1
Tiempo aplicación espera bloqueos (ms) = 20268
Puntos muertos detectados = 0
Escalamientos de bloqueos = 0
Escalamientos de bloqueos de exclusividad = 0
Número tiempos excedidos desde conexión = 0
Tiempo total UOW espera bloqueos (ms) = No recopilado

Número total de clasificaciones = 0


Tiempo total de clasificación (ms) = No recopilado
Número total de desbordamientos clasif. = 0

Lecturas lógicas datos agrup. almac. int. = No recopiladas


Lecturas físicas datos agrup. almac. int. = No recopiladas
Lecturas lógicas datos temp. agr. alm. int. = No recopiladas
Lecturas físicas datos temp. agr. alm. int. = No recopiladas
Grabaciones de datos agrup. almac. int. = No recopiladas
Lecturas lógicas índice agrup. alm. int. = No recopiladas
Lecturas físicas índice agrup. alm. int. = No recopiladas
Lecturas lógic. índice temp. agr. alm. int. = No recopiladas
Lecturas físic. índice temp. agr. alm. int. = No recopiladas
Grabaciones índice agrupación almac. int. = No recopiladas

268 Consulta de mandatos


GET SNAPSHOT

Lecturas lógicas xda agrupación almac. int. = No recopiladas


Lecturas físicas xda agrupac. almac. int. = No recopiladas
Lecturas lógicas xda temp. agr. alm. int. = No recopiladas
Lecturas físicas xda temp. agr. alm. int. = No recopiladas
Grabaciones xda agrupación almac. interm. = No recopiladas
Tiempo total lect. agrup. alm. inter. (ms) = No recopilado
Tiempo total grab. agrup. alm. inter. (ms) = No recopilado
Tiempo de espera de captación previa (ms) = No recopilado
Páginas de captación previa no leídas = No recopiladas
Lecturas directas = No recopiladas
Grabaciones directas = No recopiladas
Peticiones de lectura directa = No recopiladas
Peticiones de grabación directa = No recopiladas
Tiempo transcurrido lect. directas (ms) = No recopilado
Tiempo transcurrido grab. directas (ms) = No recopilado

Núm. peticiones SQL desde últ. confirmación = 3


Sentencias de confirmación = 0
Sentencias de retrotracción = 0
Sentencias de SQL dinámico intentadas = 3
Sentencias de SQL estático intentadas = 0
Operaciones de sentencia fallidas = 0
Sentencias de SQL SELECT ejecutadas = 1
Sentencias Xquery ejecutadas = 0
Sentencias Update/Insert/Delete ejecutadas = 0
Sentencias DDL ejecutadas = 0
Uso memoria hist. sentencia inact. (bytes) = 0
Revinculaciones automáticas internas = 0
Filas internas suprimidas = 0
Filas internas insertadas = 0
Filas internas actualizadas = 0
Confirmaciones internas = 1
Retrotracciones internas = 0
Retrotracciones internas por punto muerto = 0
Vinculaciones/precompilaciones intentadas = 0
Filas suprimidas = 0
Filas insertadas = 0
Filas actualizadas = 0
Filas seleccionadas = 0
Filas leídas = 95
Filas grabadas = 0

Espacio anotaciones UOW utilizado (Bytes) = No recopilado


Indicación hora finalización UOW anterior = No recopilada
Tiempo transc. última UOW compl. (seg.ms) = No recopilado
Indicación hora inicio UOW = No recopilada
Indicación hora fin UOW = No recopilada
Estado finalización UOW = No recopilado

Cursores remotos abiertos = 0


Cursores remotos abiertos con bloqueo = 0
Peticiones bloqueo cursor remoto rechaz. = 0
Peticiones bloqueo cursor remoto acept. = 1
Cursores locales abiertos = 1
Cursores locales abiertos con bloqueo = 1
Tiempo total CPU usuario usado agente (s) = 0.019150
Tiempo total CPU sistema usado agente (s) = 0.001795
Tiempo transcurrido ejec. de sist. pral. = 0.012850

Búsquedas en antememoria de paquetes = 2


Inserciones en antememoria de paquetes = 1
Búsquedas sección aplicación = 3
Inserciones sección aplicación = 1
Búsquedas antememoria del catálogo = 11
Inserciones antememoria del catálogo = 8
Desbordamientos antememoria del catálogo = 0
Marca límite superior antememoria catálogo = 0

Capítulo 5. mandatos CLP 269


GET SNAPSHOT

Información de espacio de trabajo

Marca de límite superior compartida = 0


Desbordamientos compartidos totales = 0
Inserciones de sección compartidas totales = 0
Búsquedas de sección compartidas totales = 0
Marca de límite superior privada = 0
Desbordamientos privados totales = 0
Inserciones de sección privadas totales = 0
Búsquedas de sección privadas totales = 0

Operación más reciente = Captar


Nombre de cursor = SQLCUR201
Indic. hora inicio operación más reciente = 22-02-2007 13:22:19.497439
Indic. hora det. operac. más reciente =
Agentes asociados con la aplicación = 1
Número de uniones hash = 0
Número de bucles hash = 0
Número de desbordamientos de uniones hash = 0
Número de pequeños desbordam. uniones hash = 0
Número de funciones de OLAP = 0
Número desbordamientos funciones de OLAP = 0

Tipo de sentencia = Sentencia de SQL dinámico


Sentencia = Captar
Número de sección = 201
Creador de la aplicación = NULLID
Nombre del paquete = SQLC2G11
Símbolo de coherencia = AAAAANBX
ID de versión de paquete =
Nombre de cursor = SQLCUR201
Número de miembro de sentencia = 0
Indicación hora inicio sentencia = 02/22/2007 13:22:19.497439
Indicación hora detención sentencia =
Tiempo transc. última sent. compl. (seg.ms) = 0.000289
Tiempo de CPU de usuario de sentencia total = 0.002172
Tiempo de CPU de sistema de sentencia total = 0.001348
Estimación coste compilador SQL en timerons = 14
Estimación de cardinalidad compilador SQL = 57
Grado de paralelismo solicitado = 1
Número de agentes que trabaja en sentencia = 1
Número subagentes creados para sentencia = 1
Clasificaciones de sentencias = 0
Tiempo de clasificación total = 0
Desbordamientos de clasificación = 0
Filas leídas = 0
Filas grabadas = 0
Filas suprimidas = 0
Filas actualizadas = 0
Filas insertadas = 0
Filas captadas = 0
Lecturas lógicas datos agrup. almac. int. = No recopiladas
Lecturas físicas datos agrup. almac. int. = No recopiladas
Lecturas lógicas datos temp. agr. alm. int. = No recopiladas
Lecturas físicas datos temp. agr. alm. int. = No recopiladas
Lecturas lógicas índice agrup. alm. int. = No recopiladas
Lecturas lógicas índice agrup. alm. int. = No recopiladas
Lecturas lógic. índice temp. agr. alm. int. = No recopiladas
Lecturas físic. índice temp. agr. alm. int. = No recopiladas
Lecturas lógicas xda agrupación almac. int. = No recopiladas
Lecturas físicas xda agrupac. almac. int. = No recopiladas
Lecturas lógicas xda temp. agr. alm. int. = No recopiladas
Lecturas físicas xda temp. agr. alm. int. = No recopiladas
Cursor de bloqueo = YES
Texto sentencia de SQL dinámico:

270 Consulta de mandatos


GET SNAPSHOT

select * from org

ID de hebra/proceso de agente = 1801

Uso de memoria para aplicación:

Tipo de agrupación de memoria = Pila de aplicación


Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 1048576

ID de hebra/proceso de agente = 1801


Tiempo espera bloquear agente (segs.) = -1
Uso de memoria para agente:

Tipo de agrupación de memoria = Otra memoria


Tamaño actual (bytes) = 589824
Marca de límite superior (bytes) = 786432
Tamaño configurado (bytes) = 34359738368

ID de agente que retiene el bloqueo = 34


ID aplicación que retiene bloqueo = *LOCAL.jwr.070222182158
Nombre bloqueo = 0x0002000E000000000000000054
Atributos de bloqueo = 0x00000000
Distintivos de liberación = 0x00000001
Tipo de objeto del bloqueo = Table
Modalidad de bloqueo = Bloqueo exclusivo (X)
Modalidad de bloqueo solicitada = Bloqueo con compartimiento intención (IS)
Nombre espacio tablas que retiene bloqueo = USERSPACE1
Esquema de tabla que retiene bloqueo = JWR
Nombre de tabla que retiene bloqueo = ORG
Id partición datos de tabla con bloqueo = 0
Indicación hora inicio espera de bloqueo = 22-02-2007 13:22:19.497833
v Para solicitar información de instantáneas sobre todas las bases de datos:
get snapshot for all databases
A continuación se muestra una lista de salida de ejemplo del mandato anterior:
Instantánea de base de datos

Nombre de base de datos = SAMPLE


Vía de acceso de base de datos = C:\DB2\NODE0000\SQL00001\
Alias de base de datos de entrada =
Estado de base de datos = Activo
Número partición base datos catálogo = 0
Nombre nodo red catálogo =
Sist. oper. ejecut. en servidor bases datos= NT
Ubicación de la base de datos = Local
Indicación hora primera conex. bd. = 06/21/2007 14:46:49.771064
Indicación hora último restabl. =
Indicación de hora última copia seguridad =
Indicación hora de la instantánea = 06/21/2007 14:51:50.235993

Número de vías de almacenam. automático = 1


Vía acceso almacenamiento automático = C:
Número de nodo = 0

Marca de límite superior de conexiones = 6


Conexiones de aplicaciones = 4
Total conexiones secundarias = 4
Aplicaciones conectadas actualmente = 1
Aplicaciones actuales activas en gestor bd = 0
Agentes asociados con aplicaciones = 5
Núm máx. agentes asociados con aplicación = 6
Número máximo de agentes de coordinación = 6

Número de violaciones de umbral = 0

Capítulo 5. mandatos CLP 271


GET SNAPSHOT

Bloqueos retenidos actualmente = 0


Esperas de bloqueo = 0
Espera de base datos debida a bloqueo (ms) = No recopilado
Memoria lista bloqueos utilizada (bytes) = 2256
Puntos muertos detectados = 0
Escalamientos de bloqueos = 0
Escalamientos de bloqueos de exclusividad = 0
Agentes en espera de bloqueos actualmente = 0
Tiempos de espera de bloqueos = 0
Número de transacciones dudosas = 0

Pila clasificación privada total asignada = 0


Pila clasificac. compartida total asignada = 0
Marca lím. superior pila clasif. compartida= 0
Clasif. posteriores umbral (mem. compart.) = No recopiladas
Número total de clasificaciones = 0
Tiempo total de clasificación (ms) = No recopilado
Desbordamientos de clasificación = 0
Clasificaciones activas = 0

Lecturas lógicas datos agrup. almac. int. = No recopiladas


Lecturas físicas datos agrup. almac. int. = No recopiladas
Lecturas lógicas datos temp. agr. alm. int.= No recopiladas
Lecturas físicas datos temp. agr. alm. int.= No recopiladas
Lecturas página de datos agrup. asíncrona = No recopiladas
Grabaciones de datos agrup. almac. int. = No recopiladas
Grabaciones pág. datos agrup. asíncronas = No recopiladas
Lecturas lóg. índices agrup. almac. int. = No recopiladas
Lecturas fís. índices agrup. almac. int. = No recopiladas
Lecturas lógic. índice temp. agr. alm. int.= No recopiladas
Lecturas físic. índice temp. agr. alm. int.= No recopiladas
Lecturas página índ. agrupación asíncronas = No recopiladas
Grabaciones índice agrupación almac. int. = No recopiladas
Grabaciones índ. datos agrup. asíncronas = No recopiladas
Lecturas lógicas xda agrup. almac. int. = No recopiladas
Lecturas físicas xda agrup. almac. int. = No recopiladas
Lecturas lógicas xda temp. agr. alm. int. = No recopiladas
Lecturas físicas xda temp. agr. alm. int. = No recopiladas
Grabaciones xda agrupación almac. interm. = No recopiladas
Lecturas página xda agrupación asíncronas = No recopiladas
Grabaciones pág. xda agrupación asíncronas = No recopiladas
Tiempo total lect. agrup. alm. inter. (ms) = No recopilado
Tiempo total grab. agrup. alm. inter. (ms) = No recopilado
Tiempo total transcurrido lecturas asínc. = No recopilado
Tiempo total transcur. grabaciones asínc. = No recopilado
Peticiones lectura datos asíncronas = No recopiladas
Peticiones de lectura de índice asíncronas = No recopiladas
Peticiones de lectura xda asíncrona = No recopiladas
No se dispone de almac. interm. víctimas = No recopilado
Activadores de limpiadores de espacios LSN = No recopilados
Activadores limpiadores págs. modificadas = No recopilados
Activadores limpiadores umbral pág. modif. = No recopilados
Tiempo de espera de captación previa (ms) = No recopilado
Páginas de captación previa no leídas = No recopiladas
Lecturas directas = No recopiladas
Grabaciones directas = No recopiladas
Peticiones de lectura directa = No recopiladas
Peticiones de grabación directa = No recopiladas
Tiempo transcurrido lect. directas (ms) = No recopilado
Tiempo transcurrido grab. directas (ms) = No recopilado
Archivos base de datos cerrados = No recopilado
E/S vectorizadas = No recopiladas
Páginas de ES vectorizadas = No recopiladas
ES de bloque = No recopiladas
Páginas de ES de bloque = No recopiladas

Tiempo transcurrido ejec. de sist. pral. = No recopilado

272 Consulta de mandatos


GET SNAPSHOT

Sentencias de confirmación intentadas = 0


Sentencias de retrotracción intentadas = 0
Sentencias dinámicas intentadas = 6
Sentencias estáticas intentadas = 3
Operaciones de sentencia fallidas = 0
Sentencias de SQL SELECT ejecutadas = 0
Sentencias Xquery ejecutadas = 0
Sentencias Update/Insert/Delete ejecutadas = 0
Sentencias DDL ejecutadas = 0
Uso memoria hist. sentencia inact. (bytes) = 0

Revinculaciones automáticas internas = 0


Filas internas suprimidas = 0
Filas internas insertadas = 0
Filas internas actualizadas = 0
Confirmaciones internas = 6
Retrotracciones internas = 0
Retrotracciones internas por punto muerto = 0
Núm. bloques tabla MDC pendientes limpieza = 0

Filas suprimidas = 0
Filas insertadas = 0
Filas actualizadas = 0
Filas seleccionadas = 0
Filas leídas = 98
Vinculaciones/precompilaciones intentadas = 0

Espacio anot. disponible base datos (Bytes)= 20400000


Espacio anot. usado por base datos (Bytes) = 0
Espacio máximo anot. secund. usado (Bytes) = 0
Espacio máximo total anotac. usado (Bytes) = 0
Anotac. secundarias asignadas actualmente = 0
Páginas anotaciones cronológicas leídas = 0
Tiempo de lectura de anot. cron. (seg.ns) = 0.000000004
Páginas anotaciones cronológicas grabadas = 0
Tiempo de grabación anot. cron. (seg.ns) = 0.000000004
Número de ES de anot. cron. de grabación = 0
Número de ES de anot. cron. de lectura = 0
Número de ES de anot. cron. de pág. parcial= 0
Número de alm. int. de anot. cron. llenos = 0
Datos anot. cron. encontrados en alm. int. = 0
ID apl. con la transacción más antigua = 93
Reg. a rehacer para recuperación (bytes) = 0
Anot. cron. debido a páginas sucias (Bytes)= 0

Número de nodo = 0
Núm. arch. primer arch. activo anot. cron. = 0
Núm. arch. último arch. activo anot. cron. = 2
Núm. arch. de arch. actual de anot. cron. = 0
Núm. arch. de arch. anot. cron. archivado = No aplicable

Búsquedas en antememoria de paquetes = 6


Inserciones en antememoria de paquetes = 0
Desbordamientos de antememoria de paquetes = 0
Marca límite sup. antemem. paquete (bytes) = 196608
Búsquedas sección aplicación = 6
Inserciones sección aplicación = 0

Búsquedas antememoria del catálogo = 37


Inserciones antememoria del catálogo = 10
Desbordamientos antememoria del catálogo = 0
Marca límite superior antememoria catálogo = 65536
Tamaño estadísticas antememoria catálogo = 0

Información de espacio de trabajo

Capítulo 5. mandatos CLP 273


GET SNAPSHOT

Marca de límite superior compartida = 0


Desbordamientos compartidos asociados = 0
Inserciones de sección compartidas totales= 0
Búsquedas de sección compartidas totales = 0
Marca de límite superior privada = 0
Desbordamientos privados asociados = 0
Inserciones de sección privadas totales = 0
Búsquedas de sección privadas totales = 0

Número de uniones hash = 0


Número de bucles hash = 0
Número de desbordamientos de uniones hash = 0
Número de pequeños desbordam. uniones hash = 0
Uniones hash de umbral post (mem. comp.) = 0
Uniones hash activas = 0

Número de funciones de OLAP = 0


Número desbordamientos funciones de OLAP = 0
Funciones de OLAP activas = 0

Generación de estadísticas = No recopiladas


runstats síncrono = No recopilado
runstats asíncrono = No recopilado
Tiempo de generación de estadísticas total (ms)= No recopilado
Tiempo de runstats síncrono total (miliseg.) = No recopilado

Uso de memoria para base de datos:

Número de nodo = 0
Tipo de agrupación de memoria = Pila de copia seg./restauración/util
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 20512768

Número de nodo = 0
Tipo de agrupación de memoria = Pila de antememoria de paquete
Tamaño actual (bytes) = 196608
Marca de límite superior (bytes) = 196608
Tamaño configurado (bytes) = 402653184

Número de nodo = 0
Tipo de agrupación de memoria = Otra memoria
Tamaño actual (bytes) = 131072
Marca de límite superior (bytes) = 131072
Tamaño configurado (bytes) = 20971520

Número de nodo = 0
Tipo de agrupación de memoria = Pila de antememoria de catálogo
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 402653184

Número de nodo = 0
Tipo de agrupación de memoria = Pila agrupación almac. intermedio
ID secundario = 1
Tamaño actual (bytes) = 2424832
Marca de límite superior (bytes) = 2424832
Tamaño configurado (bytes) = 402653184

Número de nodo = 0
Tipo de agrupación de memoria = Pila agrupación almac. intermedio
ID secundario = Agrup. almac. int. 32k del sistema
Tamaño actual (bytes) = 851968
Marca de límite superior (bytes) = 851968
Tamaño configurado (bytes) = 402653184

274 Consulta de mandatos


GET SNAPSHOT

Número de nodo = 0
Tipo de agrupación de memoria = Pila agrupación almac. intermedio
ID secundario = Agrup. almac. int. 16k del sistema
Tamaño actual (bytes) = 589824
Marca de límite superior (bytes) = 589824
Tamaño configurado (bytes) = 402653184

Número de nodo = 0
Tipo de agrupación de memoria = Pila agrupación almac. intermedio
ID secundario = Agrup. almac. int. 8k del sistema
Tamaño actual (bytes) = 458752
Marca de límite superior (bytes) = 458752
Tamaño configurado (bytes) = 402653184

Número de nodo = 0
Tipo de agrupación de memoria = Pila agrupación almac. intermedio
ID secundario = Agrup. almac. int. 4k del sistema
Tamaño actual (bytes) = 393216
Marca de límite superior (bytes) = 393216
Tamaño configurado (bytes) = 402653184

Número de nodo = 0
Tipo de agrupación de memoria = Pila de clasificación compartida
Tamaño actual (bytes) = 0
Marca de límite superior (bytes) = 0
Tamaño configurado (bytes) = 20512768

Número de nodo = 0
Tipo de agrupación de memoria = Pila del gestor de bloqueos
Tamaño actual (bytes) = 327680
Marca de límite superior (bytes) = 327680
Tamaño configurado (bytes) = 393216

Número de nodo = 0
Tipo de agrupación de memoria = Pila de base de datos
Tamaño actual (bytes) = 10551296
Marca de límite superior (bytes) = 10551296
Tamaño configurado (bytes) = 12582912

Número de nodo = 0
Tipo de agrupación de memoria = Pila de aplicación
ID secundario = 97
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 1048576

Número de nodo = 0
Tipo de agrupación de memoria = Pila de aplicación
ID secundario = 96
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 1048576

Número de nodo = 0
Tipo de agrupación de memoria = Pila de aplicación
ID secundario = 95
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 1048576

Número de nodo = 0
Tipo de agrupación de memoria = Pila de aplicación
ID secundario = 94
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 1048576

Capítulo 5. mandatos CLP 275


GET SNAPSHOT

Número de nodo = 0
Tipo de agrupación de memoria = Pila de aplicación
ID secundario = 93
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 1048576

Número de nodo = 0
Tipo de agrupación de memoria = Pila compartida de aplicaciones
Tamaño actual (bytes) = 65536
Marca de límite superior (bytes) = 65536
Tamaño configurado (bytes) = 20512768
La autorización de usuario representa todas las autorizaciones y roles otorgados
al usuario, y la autorización de grupo representa todas las autorizaciones y roles
otorgados al grupo.
v Para solicitar información sobre las instantáneas de una aplicación específica
con un descriptor de contexto de aplicación 765 conectado a la base de datos
SAMPLE, emita:
get snapshot for application agentid 765
v Para solicitar información sobre las instantáneas de SQL dinámico de la base de
datos SAMPLE, emita:
get snapshot for dynamic sql on sample
v Para solicitar las estadísticas de Fast Communication Manager (FCM), emita el
mandato siguiente:
get snapshot for fcm for all dbpartitionnums
A continuación se muestra una lista de salida de ejemplo del mandato anterior:
Instantánea FCM

Información FCM de nodo corresponde a = 1


Almacenamientos intermedios FCM libres = 10740
Total de almacenamientos intermedios FCM = 10740
Marca límite inferior almac. inter. FCM libres = 10740
Número máximo almacenamientos intermedios FCM = 28640
Canales FCM libres = 6265
Total canales FCM = 6265
Marca límite inferior de canales FCM libres = 6265
Número máximo canales FCM = 28640
Indicación de hora de la instantánea = 02/17/2010 15:54:57.094901
Número de nodos FCM = 3

Número Total almac. Total almac. Estado


nodos inter. enviados inter. recibidos conexión
----------- ------------------ ------------------ -----------------
1 2 2 Active
2 1 1 Active
10 1 1 Active

Notas de uso
v Cuando la suspensión de grabación está activada (ON) para una base de datos,
no se pueden emitir las instantáneas para esa base de datos hasta que se
desactive (OFF) la suspensión de grabación. Cuando se emite una instantánea
para una base de datos en la que se ha activado la suspensión de la grabación,
se graba un analizador de diagnóstico en el archivo de anotaciones cronológicas
db2diag y se salta esta base de datos.
v Para obtener una instantánea de una instancia remota (o de una instancia local
diferente), es necesario conectarse primero a dicha instancia. Si se especifica un
alias de una base de datos que reside en una instancia diferente, se devuelve un
mensaje de error.

276 Consulta de mandatos


GET SNAPSHOT

v Para obtener algunas estadísticas, es necesario que los conmutadores del


supervisor del sistema de bases de datos estén activados. Si se ha desactivado el
conmutador de registro TIMESTAMP, los elementos relacionados con la
indicación de fecha y hora especificarán "No recopilados".
v No se devuelven datos tras una petición de información sobre la tabla si se
cumple cualquiera de las condiciones siguientes:
– El conmutador de registro TABLE está desactivado.
– No se ha accedido a ninguna tabla desde que se activó el conmutador.
– No se ha accedido a ninguna tabla desde que se emitió el último mandato
RESET MONITOR.
No obstante, si se está realizando REORG TABLE o se ha realizado durante este
período, se devuelve parte de la información aunque algunos campos no se
visualicen. Para una tabla particionada, se devuelve información acerca de cada
partición de datos reorganizada.
v Para obtener información sobre las instantáneas de todos los miembros (que es
diferente del resultado de agregación de todos los miembros), deberán utilizarse
las vistas administrativas de las instantáneas.
v En un entorno de base de datos particionada o en un entorno DB2 pureScale,
cuando se especifica el mandato con la opción GLOBAL, devuelve un valor para el
parámetro Marca de límite superior para conexiones que representa la marca
de límite superior mayor para las conexiones entre todos los miembros y no la
suma de las marcas de límite superior individuales de todos los miembros. Por
ejemplo:
– El miembro 1 tiene 5 aplicaciones conectadas actualmente y la marca de límite
superior para las conexiones es 5.
– El miembro 2 tiene 4 aplicaciones conectadas actualmente y la marca de límite
superior para las conexiones es 6.
En el ejemplo anterior, el valor de Marca de límite superior para conexiones
es 6 y el valor de Aplicaciones conectadas actualmente es 9.
v Si utiliza grupos de almacenamiento, el supervisor de instantáneas notifica
información sólo para el grupo de almacenamiento por omisión. Para ver
información sobre las vías de acceso de almacenamiento en los grupos de
almacenamiento, utilice la función de tabla ADMIN_GET_STORAGE_PATHS.

Compatibilidades

Para mantener la compatibilidad con las versiones anteriores:


v DBPARTITIONNUM o NODE pueden sustituirse por MEMBER, salvo cuando la variable
de registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.
v DBPARTITIONNUMS o NODES pueden sustituirse por MEMBERS, salvo cuando la
variable de registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.
v La nueva variable de registro de la Versión 9.5, DB2_SYSTEM_MONITOR_SETTINGS
afecta al comportamiento de la supervisión del uso de CPU en Linux. Si necesita
utilizar el método de lectura de uso de CPU que devuelve tiempos de uso de
CPU de usuario y del sistema en Linux, realice una de las acciones siguientes.

En Linux en RHEL4 y SLES9:


db2set DB2_SYSTEM_MONITOR_SETTINGS=DISABLE_CPU_USAGE:FALSE

En Linux en RHEL5 y SLES10:


db2set DB2_SYSTEM_MONITOR_SETTINGS=OLD_CPU_USAGE:TRUE

Capítulo 5. mandatos CLP 277


HELP

HELP
Permite al usuario invocar ayuda desde el Centro de información.

Este mandato no está disponible en sistemas operativos UNIX.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 HELP 

Ejemplos

El ejemplo siguiente muestra cómo utilizar el mandato HELP:


v db2 help
Este mandato abre el Centro de información de DB2, que contiene información
acerca de DB2 dividida en categorías, por ejemplo tareas, consulta, manuales,
etc. Es equivalente a invocar el mandato db2ic sin parámetros.

Notas de uso

El procesador de línea de mandatos no sabrá si el mandato se ejecuta


satisfactoriamente o no y no podrá informar sobre condiciones de error.

278 Consulta de mandatos


HISTORY

HISTORY
Muestra el historial de mandatos ejecutados en una sesión de modalidad
interactiva del CLP.

Ámbito

Este mandato sólo se puede ejecutar en modalidad interactiva del CLP.


Específicamente, no se puede ejecutar desde la modalidad de mandatos del CLP o
la modalidad de proceso por lotes del CLP.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 HISTORY 
H REVERSE núm
R

Parámetros del mandato


REVERSE | R
Visualiza el historial de mandatos en el orden inverso, con el mandato
ejecutado más recientemente listado en primer lugar. Si no se especifica
este parámetro, los mandatos se listan en orden cronológico, con el
mandato ejecutado más recientemente listado en último lugar.
núm Visualiza sólo los núm mandatos más recientes. Si no se especifica este
parámetro, se visualiza un máximo de 20 mandatos. Sin embargo, el
número de mandatos que se visualizan está también restringido por el
número de mandatos que se almacenan en el historial de mandatos.

Notas de uso
1. El valor de la variable de registro DB2_CLP_HISTSIZE especifica el número
máximo de mandatos que se almacenarán en el historial de mandatos. Esta
variable de registro se puede establecer en cualquier valor que esté entre 1 y
500, ambos inclusive. Si esta variable de registro no está establecido o si está
establecida en un valor que está fuera del rango válido, se almacena un
máximo de 20 mandatos en el historial de mandatos.
2. Debido a que el mandato HISTORY siempre se listará en el historial de
mandatos, el número máximo de mandatos mostrados será siempre uno más
que el máximo especificado por el usuario.
3. El historial de mandatos no es permanente a través de sesiones de modalidad
interactiva del CLP, lo que significa que el historial de mandatos no se guarda
al final de una sesión de modalidad interactiva.
4. Los historiales de mandatos de múltiples sesiones de modalidad interactiva del
CLP que se ejecutan al mismo tiempo son independientes uno del otro.

Capítulo 5. mandatos CLP 279


IMPORT

IMPORT
Inserta datos de un archivo externo con un formato de archivo soportado en una
tabla, una jerarquía, una vista o un apodo. LOAD es una alternativa más rápida,
pero el programa de utilidad de carga no da soporte a la carga de datos en el nivel
de la jerarquía.

Enlace rápido con “Modificadores de tipo de archivo para el programa de utilidad


de importación” en la página 298.

Autorización
v IMPORT con la opción INSERT requiere una de las autorizaciones siguientes:
– Autorización DATAACCESS
– Privilegio CONTROL en cada tabla, vista o apodo participante
– Privilegio INSERT y SELECT en cada tabla o vista participante
v IMPORT para una tabla existente con la opción INSERT_UPDATE requiere una de las
autorizaciones siguientes:
– Autorización DATAACCESS
– Privilegio CONTROL en cada tabla, vista o apodo participante
– Privilegio INSERT, SELECT, UPDATE y DELETE en cada tabla o vista
participante
v IMPORT para una tabla existente con la opción REPLACE o REPLACE_CREATE requiere
una de las autorizaciones siguientes:
– Autorización DATAACCESS
– Privilegio CONTROL sobre la tabla o vista
– Privilegio INSERT, SELECT y DELETE sobre la tabla o vista
v IMPORT para una nueva tabla con la opción CREATE o REPLACE_CREATE requiere
una de las autorizaciones siguientes:
– Autorización DBADM
– Autorización CREATETAB para la base de datos y privilegio USE para el
espacio de tablas, y también uno de los elementos siguientes:
- Autorización IMPLICIT_SCHEMA para la base de datos, si el nombre de
esquema implícito o explícito de la tabla no existe
- Privilegio CREATEIN sobre el esquema, si el nombre esquema de la tabla
hace referencia a un esquema existente.
v IMPORT para una jerarquía que no existe con la opción CREATE o REPLACE_CREATE
requiere una de las autorizaciones siguientes:
– Autorización DBADM
– Autorización CREATETAB para la base de datos y privilegio USE para el
espacio de tablas, y también uno de los elementos siguientes:
- Autorización IMPLICIT_SCHEMA sobre la base de datos, si no existe el
nombre de esquema de la tabla
- Privilegio CREATEIN sobre el esquema, si existe el esquema de la tabla
- Privilegio CONTROL en cada subtabla de la jerarquía, si se utiliza la
opción REPLACE_CREATE en la jerarquía entera
v IMPORT para una jerarquía existente con la opción REPLACE requiere una de las
autorizaciones siguientes:
– Autorización DATAACCESS
– Privilegio CONTROL en cada subtabla de la jerarquía

280 Consulta de mandatos


IMPORT

v Para importar datos a una tabla que tenga columnas protegidas, el ID de


autorización de sesión debe tener credenciales LBAC que permitan el acceso de
grabación a todas las columnas protegidas de la tabla. En caso contrario, la
importación falla y se devuelve un error (SQLSTATE 42512).
v Para importar datos a una tabla que tiene filas protegidas, el ID de autorización
de sesión debe tener credenciales LBAC que satisfagan estos criterios:
– Formar parte de la política de seguridad que protege la tabla
– Haber sido otorgadas al ID de autorización de sesión para acceso de
grabación
La etiqueta de la fila que se debe insertar, las credenciales LBAC del usuario, la
definición de política de seguridad y las normas de LBAC determinan la
etiqueta en la fila.
v Si se especifica la opción REPLACE o REPLACE_CREATE, el ID de autorización de la
sesión debe tener la autorización para descartar la tabla.
v Para importar datos en un apodo, el ID de autorización de sesión debe tener el
privilegio para acceder y utilizar una fuente de datos especificada en la
modalidad de paso a través.
v Si la tabla tiene el control de acceso a filas activado, IMPORT REPLACE en esa tabla
requerirá la capacidad de descartar la tabla. Concretamente, debe tener
CONTROL o DBADM en la tabla.

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión. El acceso del programa de utilidad a servidores
de bases de datos Linux, UNIX o Windows desde clientes Linux, UNIX o Windows
debe ser una conexión directa a través del motor y no a través de un entorno de
pasarela o de bucle de retorno de DB2 Connect.

Sintaxis del mandato

 IMPORT FROM nombrearchivo OF tipoarchivo 


, ,

LOBS FROM  vía-lob XML FROM  vía-xml

 

MODIFIED BY  mod-tipoarchivo

 
,

METHOD L (  inicio-col final-col )


,

NULL INDICATORS (  lista-indicadores-nula )


,

N (  nombre-columna )
,

P (  posición-columna )

 
XMLPARSE STRIP WHITESPACE
PRESERVE

Capítulo 5. mandatos CLP 281


IMPORT

ALLOW NO ACCESS
 
XMLVALIDATE USING XDS Parámetros de IGNORE y MAP ALLOW WRITE ACCESS
DEFAULT sqlid-esquema
SCHEMA sqlid-esquema
SCHEMALOCATION HINTS

 
COMMITCOUNT n RESTARTCOUNT n ROWCOUNT n WARNINGCOUNT n NOTIMEOUT
AUTOMATIC SKIPCOUNT

 
MESSAGES archivo-mensajes

 INSERT INTO nombre-tabla 


INSERT_UPDATE ,
REPLACE
REPLACE_CREATE (  insertar-columna )
descripción jerarquía
CREATE INTO nombre-tabla especs-espaciotablas
,

(  insertar-columna )
descripción jerarquía AS ROOT TABLE
UNDER nombre-sub-tabla

Parámetros de IGNORE y de MAP:


,

IGNORE (  sqlid-esquema )


,

MAP (  ( sqlid-esquema , sqlid-esquema ) )

descripción jerarquía:

ALL TABLES
lista-sub-tabla HIERARCHY STARTING nombre-sub-tabla
IN lista-orden-transversal

lista-subtablas:

(  nombre-sub-tabla )
,

(  insertar-columna )

lista-orden-transversal:

(  nombre-sub-tabla )

282 Consulta de mandatos


IMPORT

especs-espaciotablas:

IN nombre-espacio-tablas
INDEX IN nombre-espacio-tablas LONG IN nombre-espacio-tablas

Parámetros del mandato


ALL TABLES
Palabra clave implícita solo para jerarquía. Cuando se importa una
jerarquía, el valor por omisión es importar todas las tablas especificadas en
el orden transversal.
ALLOW NO ACCESS
Ejecuta la importación en modalidad fuera de línea. Antes de que se
inserten filas, se adquiere un bloqueo exclusivo (X) sobre la tabla de
destino. Esto evita que varias aplicaciones accedan simultáneamente a los
datos de la tabla. Este es el comportamiento por omisión de la importación.
ALLOW WRITE ACCESS
Ejecuta la importación en modalidad en línea. Cuando se inserta la primera
fila, se adquiere un bloqueo de intento exclusivo (IX) sobre la tabla de
destino. Esto permite que haya varios lectores y grabadores que accedan
simultáneamente a los datos de la tabla. La modalidad en línea no es
compatible con las opciones de importación REPLACE, CREATE o
REPLACE_CREATE. La modalidad en línea no se puede utilizar conjuntamente
con las inserciones en almacenamiento intermedio. La operación de
importación confirmará periódicamente datos insertados para evitar el
escalamiento en un bloqueo de tabla y para evitar el agotamiento del
espacio de anotación cronológica activa. Estas confirmaciones se realizarán
aunque no se haya utilizado la opción COMMITCOUNT. Durante cada
confirmación, la importación perderá su bloqueo de tabla IX e intentará
readquirirlo tras la confirmación. Este parámetro es necesario cuando se
importa a un apodo y hay que especificar COMMITCOUNT con un número
válido (AUTOMATIC no se considera una opción válida).
AS ROOT TABLE
Crea una o más subtablas como jerarquía de tablas autónoma.
COMMITCOUNT n | AUTOMATIC
Realiza una operación COMMIT tras la importación de cada n registros.
Cuando se especifica un número n, realiza una operación COMMIT tras la
importación de cada n registros. Cuando se utilizan inserciones
compuestas, se redondea al alza una frecuencia de confirmación
especificada por el usuario de n hasta el primer entero múltiplo del valor
de cuenta compuesto. Cuando se especifica AUTOMATIC, la importación
determina internamente cuándo se debe realizar una confirmación. El
programa de utilidad realizará una confirmación por uno de los dos
motivos siguientes:
v para evitar que se agote el espacio de anotación cronológica activa
v para evitar escalamientos de bloqueos del nivel de fila al nivel de tabla
Si se especifica la opción ALLOW WRITE ACCESS y no se especifica la opción
COMMITCOUNT, el programa de utilidad de importación realizará
confirmaciones como si se hubiera especificado COMMITCOUNT AUTOMATIC.

La capacidad de la operación de importación de evitar que se agote el


espacio de anotaciones cronológicas activas se ve afectada por la variable
de registro de DB2 DB2_FORCE_APP_ON_MAX_LOG:
Capítulo 5. mandatos CLP 283
IMPORT

v Si DB2_FORCE_APP_ON_MAX_LOG está establecido en FALSE y se especifica la


opción del mandato COMMITCOUNT AUTOMATIC, el programa de utilidad de
importación podrá evitar automáticamente que se agote el espacio de
anotaciones cronológicas activas.
v Si DB2_FORCE_APP_ON_MAX_LOG está establecido en FALSE y se especifica la
opción del mandato COMMITCOUNT n, el programa de utilidad de
importación intentará resolver la condición de anotaciones cronológicas
llenas si encuentra un mensaje SQL0964C (Anotaciones cronológicas
llenas) al insertar o actualizar un registro. Realizará una confirmación no
condicional y a continuación volverá a intentar insertar o actualizar el
registro. Si esto no resuelve el problema (por ejemplo, cuando el archivo
de anotaciones lleno se atribuyese a otra actividad de la base de datos),
el mandato IMPORT fallará, como cabe esperar, pero el número de filas
confirmadas podría no ser un múltiplo del valor COMMITCOUNT n. Para
evitar procesar las filas que ya estaban confirmadas al volver a intentar
la operación, utilice los parámetros del mandato RESTARTCOUNT o
SKIPCOUNT.
v Si DB2_FORCE_APP_ON_MAX_LOG está establecido en TRUE (que es el valor
por omisión), la operación de importación fallará si encuentra un
SQL0964C al insertar o actualizar un registro. Esto se puede producir
independientemente de si especifica COMMITCOUNT AUTOMATIC o
COMMITCOUNT n.
La aplicación se fuerza fuera de la base de datos y la unidad de trabajo
actual se retrotrae. Para evitar procesar las filas que ya estaban
confirmadas al volver a intentar la operación, utilice los parámetros del
mandato RESTARTCOUNT o SKIPCOUNT.
CREATE

Nota: El parámetro CREATE ha quedado obsoleto y se puede eliminar en un


futuro release. Para obtener información detallada, consulte “Las opciones
del mandato IMPORT, CREATE y REPLACE_CREATE están en desuso”.
Crea la definición de la tabla y el contenido de las filas en la página de
códigos de la base de datos. Si los datos se han exportado de una tabla,
subtabla o jerarquía de DB2 se crean índices. Si esta opción opera en una
jerarquía y los datos se han exportado desde DB2, también se creará una
jerarquía de tipos. Esta opción solo se puede utilizar con archivos IXF.
Este parámetro no es válido cuando se importa a un apodo.

Nota: Si los datos se han exportado desde una base de datos de sistema
principal MVS y contienen campos LONGVAR cuyas longitudes,
calculadas en el tamaño de página son superiores a 254, CREATE podría
fallar porque las filas son demasiado largas. Consulte “Volver a crear una
tabla importada” para obtener una lista de restricciones. En este caso, se
deberá crear manualmente la tabla y se deberá invocar IMPORT con INSERT
o, alternativamente, se deberá utilizar el mandato LOAD.
DEFAULT sqlid-esquema
Esta opción sólo se puede utilizar cuando se especifica el parámetro USING
XDS. El esquema especificado mediante la cláusula DEFAULT identifica un
esquema que hay que utilizar para la validación cuando el Especificador
de datos XML (XDS) de un documento XML importado no contiene un
atributo SCH que identifique un esquema XML.

284 Consulta de mandatos


IMPORT

La cláusula DEFAULT tiene prioridad sobre las cláusulas IGNORE y MAP. Si un


XDS satisface la cláusula DEFAULT, se omitirán las especificaciones IGNORE y
MAP.
FROM nombrearchivo
Especifica el archivo que contiene los datos que se deben importar. Si se
omite la vía de acceso, se utiliza el directorio de trabajo actual.
HIERARCHY
Especifica que deben importarse datos jerárquicos.
IGNORE sqlid-esquema
Esta opción sólo se puede utilizar cuando se especifica el parámetro USING
XDS. La cláusula IGNORE especifica una lista de uno o más esquemas que
hay que ignorar si están identificados mediante un atributo SCH. Si un
atributo SCH existe en el Especificador de datos XML para un documento
XML importado, y el esquema identificado por el atributo SCH se incluye
en la lista de esquemas que se deben ignorar, no se producirá ninguna
validación de esquemas para el documento XML importado.
Si se especifica un esquema en la cláusula IGNORE, tampoco puede estar
presente en el lado izquierdo de un par de esquemas en la cláusula MAP.
La cláusula IGNORE sólo se aplica al XDS. Un esquema que está
correlacionado por la cláusula MAP no se omitirá posteriormente si se ha
especificado en la cláusula IGNORE.
IN nombre-espacio-tablas
Identifica el espacio de tablas en el que se va a crear la tabla. El espacio de
tablas debe existir y debe ser un espacio de tablas REGULAR (normal). Si
no se especifica ningún otro espacio de tablas, todas las partes de tabla se
almacenan en este espacio de tablas. Si no se especifica esta cláusula, la
tabla se crea en un espacio de tablas creado por el ID de autorización. Si
no se encuentra ninguno, se coloca la tabla en el espacio de tablas por
omisión USERSPACE1. Si se ha descartado USERSPACE1, fallará la
creación de tabla.
INDEX IN nombre-espacio-tablas
Identifica el espacio de tablas donde se crearán todos los índices de la
tabla. Esta opción sólo está permitida cuando el espacio de tablas primario
que se ha especificado en la cláusula IN es un espacio de tablas DMS. El
espacio de tablas especificado debe existir y debe ser un espacio de tablas
REGULAR o LARGE DMS.

Nota: La especificación de qué espacio de tablas contendrá un índice solo


se puede utilizar al crear la tabla.
columna-inserción
Especifica el nombre de una columna de la tabla o la vista en la que deben
insertarse datos.
INSERT Añade los datos importados a la tabla sin cambiar los datos de tabla
existentes.
INSERT_UPDATE
Añade filas de datos importados a la tabla de destino o actualiza las filas
existentes (de la tabla de destino) con las claves primarias que coinciden.
INTO nombre_tabla
Especifica la tabla de base de datos a la que se deberán importar los datos.

Capítulo 5. mandatos CLP 285


IMPORT

Esta tabla no puede ser una tabla de sistema, una tabla temporal creada,
una tabla temporal declarada o una tabla de resumen.
Uno puede utilizar un alias para INSERT, INSERT_UPDATE, o REPLACE, excepto
en el caso de un servidor de nivel inferior, en que debe utilizar un nombre
de tabla totalmente calificado o no calificado. Un nombre de tabla
calificado tiene el formato esquema.nombretabla. El esquema es el nombre de
usuario bajo el que se ha creado la tabla.
Si la tabla de base de datos contiene columnas ocultas implícitamente, debe
especificar si en la operación de importación han de incluirse o no los
datos para las columnas ocultas. Utilice uno de los métodos siguientes para
indicar si han de incluirse los datos para las columnas ocultas:
v Utilice columna-inserción para especificar explícitamente las columnas en
las que han de insertarse datos.
db2 import from delfile1 of del
insert into table1 (c1, c2, c3,...)
v Utilice uno de los modificadores de tipo de archivo de columnas ocultas:
especifique implicitlyhiddeninclude cuando el archivo de entrada
contenga datos para las columnas ocultas o especifique
implicitlyhiddenmissing cuando el archivo de entrada no los contenga.
db2 import from delfile1 of del modified by implicitlyhiddeninclude
insert into table1
v Utilice la variable de registro DB2_DMU_DEFAULT en el lado del cliente
para establecer el comportamiento por omisión que ha de aplicarse
cuando los programas de utilidad de movimiento de datos detecten
tablas con columnas ocultas implícitamente.
db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
db2 import from delfile1 of del insert into table1
LOBS FROM vía-lob
Especifica una o más vías de acceso que almacenan archivos LOB. Los
nombres de los archivos de datos LOB se almacenan en el archivo de datos
principal (ASC, DEL o IXF), en la columna que se cargará en la columna
LOB. El número máximo de vías de acceso que se puede especificar es 999.
Esto activará implícitamente el comportamiento de LOBSINFILE.
Este parámetro no es válido cuando se importa a un apodo.
LONG IN nombre-espacio-tablas
Identifica el espacio de tablas en el que se almacenarán los valores de
todas las columnas largas (tipos de datos LONG VARCHAR, LONG
VARGRAPHIC, LOB o los tipos diferenciados con alguno de estos como
tipos de fuente). Esta opción sólo está permitida si el espacio de tablas
primarias especificado en la cláusula IN es un espacio de tablas DMS. El
espacio de tablas debe existir y debe ser un espacio de tablas LARGE DMS.
MAP sqlid-esquema
Esta opción sólo se puede utilizar cuando se especifica el parámetro USING
XDS. Utilice la cláusula MAP para especificar esquemas alternativas que
deben utilizarse en lugar de los especificados por el atributo SCH de un
especificador de datos XML (XDS) para cada documento XML importado.
La cláusula MAP especifica una lista de uno o más pares de esquemas,
donde cada par representa una correlación de un esquema con otro. El
primer esquema del par representa un esquema al que hace referencia un
atributo SCH de un XDS. El segundo esquema del par representa el
esquema que debe utilizarse para llevar a cabo la validación de esquemas.

286 Consulta de mandatos


IMPORT

Si un esquema está presente en el lado izquierdo de un par de esquemas


en la cláusula MAP, tampoco puede especificarse en la cláusula IGNORE.
Una vez aplicada una correlación de par de esquemas, el resultado es final.
La operación de correlación no es transitiva y, por lo tanto, el esquema
elegido no se aplicará ulteriormente a otra correlación de par de esquemas.
Un esquema no se puede correlacionar más de una vez, es decir, no puede
aparecer en la parte izquierda de más de un par.
MESSAGES archivo-mensajes
Especifica el destino de los mensajes de aviso y de error que se producen
durante una operación de importación. Si el archivo ya existe, el programa
de utilidad añade la información. Si no se especifica la vía de acceso
completa al archivo, el programa de utilidad utiliza como destino el
directorio actual y la unidad por omisión. Si se omite archivo-mensajes, los
mensajes se graban en la salida estándar.
METHOD
L Especifica los números de columna inicial y final de los que se
deben importar datos. Un número de columna es un
desplazamiento de bytes respecto al principio de una fila de datos.
Se numera empezando por 1.

Nota: Este método solo se puede utilizar con archivos ASC y es la


única opción válida para ese tipo de archivo.
N Especifica los nombres de las columnas del archivo de datos que se
deben importar. Las mayúsculas y minúsculas de estos nombres de
columna deben coincidir con las mayúsculas y minúsculas de los
nombres correspondientes en los catálogos del sistema. Cada
columna de tabla que no pueda contener nulos debe tener una
entrada correspondiente en la lista METHOD N. Por ejemplo, dados
los campos de datos F1, F2, F3, F4, F5 y F6 y las columnas de tabla
C1 INT, C2 INT NOT NULL, C3 INT NOT NULL y C4 INT, el
método N (F2, F1, F4, F3) es una petición válida, mientras que el
método N (F2, F1) no es válido.

Nota: Este método solo se puede utilizar con archivos IXF.


P Especifica los números de campo de los campos de datos de
entrada que se van a importar.

Nota: Este método solo se puede utilizar con archivos IXF o DEL y
es la única opción válida para el tipo de archivo DEL.
MODIFIED BY mod-tipoarchivo
Especifica opciones de modificador de tipo de archivo. Consulte
“Modificadores de tipo de archivo para el programa de utilidad de
importación” en la página 298.
NOTIMEOUT
Especifica que el programa de utilidad de importación no superará el
tiempo de espera mientras espere bloqueos. Esta opción sustituye al
parámetro de configuración de base de datos locktimeout. No se verá
afectada ninguna otra aplicación.
NULL INDICATORS lista-indicadores-nulo
Esta opción sólo se puede utilizar cuando se especifica el parámetro METHOD
L. Es decir, el archivo de entrada es un archivo ASC. Una lista de

Capítulo 5. mandatos CLP 287


IMPORT

indicadores nulos es una lista de enteros positivos separados por comas


que especifican el número de columna de cada campo de indicador nulo.
El número de columna es el desplazamiento de bytes del campo de
indicador nulo respecto al principio de una fila de datos. Debe haber una
entrada en la lista de indicadores nulos para cada campo de datos definido
en el parámetro METHOD L. Un número de columna de cero indica que el
campo de datos correspondiente siempre contiene datos.
Un valor de Y en la columna de indicador NULL especifica que los datos
de la columna son NULL. Cualquier carácter distinto de Y en la columna del
indicador NULL especifica que los datos de columna no son NULL y se
cargarán los datos de columna especificados por la opción METHOD L.
El carácter de indicador NULL se puede cambiar utilizando la opción
MODIFIED BY, con el modificador de tipo de archivo nullindchar.
OF tipoarchivo
Especifica el formato de los datos del archivo de entrada:
v ASC (formato ASCII no delimitado)
v DEL (formato ASCII delimitado) utilizado por diversos programas del
gestor de bases de datos y gestores de archivos.
v IXF (Integration Exchange Format, versión PC) es un formato binario
que utiliza exclusivamente DB2.
REPLACE
Suprime todos los datos existentes de la tabla truncando el objeto de datos
e inserta los datos importados. La definición de tabla y las definiciones de
índice no se modifican. Esta opción solo se puede utilizar si existe la tabla.
Si se utiliza esta opción al mover datos entre jerarquías, sólo se pueden
sustituir los datos de una jerarquía entera, no de subtablas individuales.
Este parámetro no es válido cuando se importa a un apodo.
Esta opción no respeta la cláusula NOT LOGGED INITIALLY (NLI) de la
sentencia CREATE TABLE, ni la cláusula ACTIVE NOT LOGGED
INITIALLY de la sentencia ALTER TABLE.
Esta opción no se puede utilizar para importar datos en tablas temporales
de período del sistema.
Si se realiza una importación con la opción REPLACE dentro de la misma
transacción que una sentencia CREATE TABLE o ALTER TABLE en la que
se invoque la cláusula NLI, la importación no respetará la cláusula NLI.
Todas las inserciones se anotarán.
Corrección 1
Suprima el contenido de la tabla con la sentencia DELETE y luego
invoque la importación con la sentencia INSERT
Corrección 2
Descarte la tabla y vuelva a crearla y, a continuación, invoque la
importación con la sentencia INSERT.
Esta limitación se aplica a DB2 Universal Database Versión 7 y DB2 UDB
Versión 8
REPLACE_CREATE

288 Consulta de mandatos


IMPORT

Nota: El parámetro REPLACE_CREATE se ha quedado obsoleto y se puede


eliminar en un futuro release. Para obtener información detallada, consulte
“Las opciones del mandato IMPORT, CREATE y REPLACE_CREATE, están
en desuso”.
Si la tabla existe, suprime todos los datos existentes de la tabla truncando
el objeto de datos e inserta los datos importados sin cambiar la definición
de tabla o las definiciones de índice.
Si la tabla no existe, crea las definiciones de tabla y de índice, así como el
contenido de filas, en la página de códigos de la base de datos. Consulte
Volver a crear una tabla importada para obtener una lista de restricciones.
Esta opción solo se puede utilizar con archivos IXF. Si se utiliza esta opción
al mover datos entre jerarquías, sólo se pueden sustituir los datos de una
jerarquía entera, no de subtablas individuales.
Este parámetro no es válido cuando se importa a un apodo.
RESTARTCOUNT n
Especifica que se debe iniciar una operación de importación en el registro n
+ 1. Los primeros n registros se saltan. Esta opción es funcionalmente
equivalente a SKIPCOUNT. RESTARTCOUNT y SKIPCOUNT se excluyen
mutuamente.
ROWCOUNT n
Especifica el número n de registros físicos del archivo que se deben
importar (insertar o actualizar). Permite a un usuario importar únicamente
n filas de un archivo, empezando por el registro determinado por las
opciones SKIPCOUNT o RESTARTCOUNT. Si no se especifican las opciones
SKIPCOUNT o RESTARTCOUNT, se importan las primeras n filas. Si se especifica
SKIPCOUNT m o RESTARTCOUNT m, se importan las filas m+1 a m+n. Cuando
se utilizan inserciones compuestas, se redondea al alza el número de filas
ROWCOUNT n hasta el primer múltiplo entero del valor de cuenta compuesto.
SKIPCOUNT n
Especifica que se debe iniciar una operación de importación en el registro n
+ 1. Los primeros n registros se saltan. Esta opción es funcionalmente
equivalente a RESTARTCOUNT. SKIPCOUNT y RESTARTCOUNT se excluyen
mutuamente.
STARTING nombre-sub-tabla
Palabra clave para jerarquía solamente, que solicita el orden por omisión,
empezando a partir de nombre-subtabla. Para los archivos PC/IXF, el orden
por omisión es el orden almacenado en el archivo de entrada. El orden por
omisión es el único orden válido para el formato de archivos PC/IXF.
lista-subtablas
Para tablas de tipo con la opción INSERT o INSERT_UPDATE, se utiliza una
lista de nombres de subtabla para indicar las subtablas en las que se
importarán los datos.
lista-orden-transversal
Para tablas de tipo con la opción INSERT, INSERT_UPDATE, o REPLACE, se
utiliza una lista de nombres de subtablas para indicar el orden transversal
de las subtablas de importación de la jerarquía.
UNDER nombre-sub-tabla
Especifica una tabla padre para crear una o más subtablas.
WARNINGCOUNT n
Detiene la operación de importación después de n avisos. Establezca este

Capítulo 5. mandatos CLP 289


IMPORT

parámetro si no se esperan avisos, pero se requiere que se verifique si se


están utilizando el archivo y la tabla correctos. Si el archivo de importación
o la tabla de destino se especifican de modo incorrecto, el programa de
utilidad de importación generará un aviso por cada fila que intente
importar, lo que hará que la importación falle. Si n es cero o no se
especifica esta opción, la operación de importación continuará
independientemente del número de avisos emitidos.
XML FROM vía-xml
Especifica una o más vías de acceso que contienen los archivos XML.
XMLPARSE
Especifica cómo se analizan los documentos XML. Si no se especifica esta
opción, el comportamiento de análisis de los documentos XML vendrá
determinado por el valor del registro especial CURRENT XMLPARSE
OPTION.
STRIP WHITESPACE
Especifica que hay que eliminar el espacio en blanco al analizar el
documento XML.
PRESERVE WHITESPACE
Especifica que no hay que eliminar el espacio en blanco al analizar
el documento XML.
XMLVALIDATE
Especifica que los documentos XML se validan con respecto a un esquema,
cuando sea pertinente.
USING XDS
Los documentos XML se validan con respecto al esquema XML
identificado por el especificador de datos XML (XDS) en el
documento de datos principal. Por omisión, si se invoca la opción
XMLVALIDATE con la cláusula USING XDS, el esquema que se utiliza
para realizar la validación estará determinado por el atributo SCH
del XDS. Si no existe un atributo SCH en el XDS, no se producirá
ningún esquema de validación a menos que la cláusula DEFAULT
especifique un esquema por omisión.
Las cláusulas DEFAULT, IGNORE y MAP se pueden utilizar para
modificar el comportamiento de determinación del esquema. Estas
tres cláusulas opcionales se aplican directamente a las
especificaciones del XDS, no entre ellas. Por ejemplo, si se
selecciona un esquema porque está especificado por la cláusula
DEFAULT, no se omitirá si también está especificado por la cláusula
IGNORE. Asimismo, si se selecciona un esquema como la primera
parte de un par en la cláusula MAP, no se volverá a correlacionar
si también se ha especificado en la segunda parte de otro par de
cláusulas MAP.
USING SCHEMA sqlid-esquema
Los documentos XML se validan con respecto al esquema XML que
tiene el identificador SQL especificado. En este caso, el atributo
SCH del especificador de datos XML (XDS) se ignorará para todas
las columnas XML.
USING SCHEMALOCATION HINTS
Los documentos XML se validan con respecto a los esquemas
identificados por las sugerencias de ubicación de esquemas XML
en los documentos XML fuente. Si no se encuentra un atributo

290 Consulta de mandatos


IMPORT

schemaLocation en el documento XML, no se producirá ninguna


validación. Cuando se especifica la cláusula USING SCHEMALOCATION
HINTS, el atributo SCH del Especificador de datos XML (XDS) se
omitirá para todas las columnas XML.

Vea los ejemplos de la opción XMLVALIDATE en la siguiente sección.

Ejemplos

Ejemplo 1

El ejemplo siguiente muestra cómo importar información de miarchivo.ixf a la


tabla STAFF:
db2 import from miarchivo.ixf of ixf messages msg.txt insert into staff

SQL3150N El registro H del archivo PC/IXF tiene el producto "DB2 01.00", fecha
"19970220" y hora "140848".

SQL3153N El registro T del archivo PC/IXF tiene el nombre "miarchivo",


calificador " " y fuente " ".

SQL3109N El programa de utilidad está iniciando la carga de datos del


archivo "miarchivo".

SQL3110N El programa de utilidad ha completado el proceso. Se han leído "58" filas


from the input file.

SQL3221W ...Empieza COMMIT WORK. Cuenta de registros de entrada = "58".

SQL3222W ...COMMIT de cualquier cambio de la base de datos ha resultado


satisfactorio.

SQL3149N Se han procesado "58" filas del archivo de entrada. Se han insertado "58"
filas satisfactoriamente en la tabla. Se han rechazado "0" filas.

Ejemplo 2 (Importación a una tabla con una columna de identidad)

TABLE1 tiene 4 columnas:


v C1 VARCHAR(30)
v C2 INT GENERATED BY DEFAULT AS IDENTITY
v C3 DECIMAL(7,2)
v C4 CHAR(1)

TABLE2 es igual que TABLE1, excepto que C2 es una columna de identidad que se
genera siempre (GENERATED ALWAYS).

Registros de datos en DATAFILE1 (formato DEL):


"Liszt"
"Hummel",,187.43, H
"Grieg",100, 66.34, G
"Satie",101, 818.23, I

Registros de datos en DATAFILE2 (formato DEL):


"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I

Capítulo 5. mandatos CLP 291


IMPORT

El mandato siguiente genera valores de identidad para las filas 1 y 2, dado que no
se proporcionan valores de identidad en DATAFILE1 para dichas filas. Sin embargo,
a la fila 3 se le ha asignado el valor de identidad proporcionado por el usuario 100
y a la fila 4 se le ha asignado el valor de identidad proporcionado por el usuario
101.
db2 import from datafile1.del of del replace into table1

Para importar DATAFILE1 en TABLE1 de modo que se generen valores de identidad


para todas las filas, emita uno de los mandatos siguientes:
db2 import from datafile1.del of del method P(1, 3, 4)
replace into table1 (c1, c3, c4)
db2 import from datafile1.del of del modified by identityignore
replace into table1

Para importar DATAFILE2 en TABLE1 de modo que se generen valores de identidad


para cada fila, emita uno de los mandatos siguientes:
db2 import from datafile2.del of del replace into table1 (c1, c3, c4)
db2 import from datafile2.del of del modified by identitymissing
replace into table1

Si se importa DATAFILE1 en TABLE2 sin utilizar ninguno de los modificadores de


tipo de archivo relacionados con la identidad, se insertarán las filas 1 y 2, pero se
rechazarán las filas 3 y 4 porque proporcionan sus propios valores no NULL y la
columna de identidad que se genera siempre (GENERATED ALWAYS).

Ejemplos de utilización de la cláusula XMLVALIDATE

Ejemplo 1 (XMLVALIDATE USING XDS)

Para la siguiente cláusula XMLVALIDATE:


XMLVALIDATE USING XDS
IGNORE (S1.SCHEMA_A)
MAP ((S1.SCHEMA_A, S2.SCHEMA_B))

La importación fallará debido a que la sintaxis no es válida, puesto que la cláusula


IGNORE de S1.SCHEMA_A estaría en conflicto con la cláusula MAP de
S1.SCHEMA_A con S2.SCHEMA_B.

Ejemplo 2 (XMLVALIDATE USING XDS)

Para la siguiente cláusula XMLVALIDATE:


XMLVALIDATE USING XDS
DEFAULT S8.SCHEMA_H
IGNORE (S9.SCHEMA_I, S10.SCHEMA_J)
MAP ((S1.SCHEMA_A, S2.SCHEMA_B), (S3.SCHEMA_C, S5.SCHEMA_E),
(S6.SCHEMA_F, S3.SCHEMA_C), (S4.SCHEMA_D, S7.SCHEMA_G))

Para una columna XML que contiene el siguiente XDS:


<XDS
FIL=’xmlfile.001.xml’ />

Se utiliza el esquema XML con el identificador SQL "S8.SCHEMA_H" para validar


el documento en el archivo "xmlfile.001.xml", porque se ha especificado que
"S8.SCHEMA_H" era el esquema por omisión que se debía utilizar.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.002.xml’ OFF=’10’ LEN=’500’ SCH=’S10.SCHEMA_J’ />

292 Consulta de mandatos


IMPORT

No se produce validación para el documento en el archivo "xmlfile.002.xml", pues


aunque el XDS especifica que "S10.SCHEMA_J" es el esquema que se debe usar,
ese esquema forma parte de la cláusula IGNORE. El contenido del documento se
encuentra en un desplazamiento igual a 10 bytes en el archivo (es decir, en el byte
número 11), y la longitud es de 500 bytes.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.003.xml’ SCH=’S6.SCHEMA_F’ />

Se utiliza el esquema XML con el identificador SQL "S3.SCHEMA_C" para validar


el documento en el archivo "xmlfile.003.xml". Esto es así porque la cláusula MAP
especifica que el esquema "S6.SCHEMA_F" debe correlacionarse con el esquema
"S3.SCHEMA_C". Tenga en cuenta que no se produce una correlación adicional,
por lo que la correlación del esquema "S3.SCHEMA_C" con el esquema
"S5.SCHEMA_E" no se aplica en este caso.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.004.xml’ SCH=’S11.SCHEMA_K’ />

Se utiliza el esquema XML con el identificador SQL "S11.SCHEMA_K" para validar


el documento en el archivo "xmlfile.004.xml". Observe que en este caso no se
aplica ninguna de las especificaciones DEFAULT, IGNORE o MAP.

Ejemplo 3 (XMLVALIDATE USING XDS)

Para la siguiente cláusula XMLVALIDATE:


XMLVALIDATE USING XDS
DEFAULT S1.SCHEMA_A
IGNORE (S1.SCHEMA_A)

Para una columna XML que contiene el siguiente XDS:


<XDS
FIL=’xmlfile.001.xml’ />

Se utiliza el esquema XML con el identificador SQL "S1.SCHEMA_A" para validar


el documento en el archivo "xmlfile.001.xml", porque se ha especificado que
"S1.SCHEMA_1" era el esquema por omisión que se debía utilizar.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.002.xml’ SCH=’S1.SCHEMA_A’ />

No se produce ninguna validación de esquema para el documento del archivo


"xmlfile.002", pues aunque XDS especifica "S1.SCHEMA_A" como el esquema que
se debe utilizar, dicho esquema forma parte de la cláusula IGNORE.

Ejemplo 4 (XMLVALIDATE USING XDS)

Para la siguiente cláusula XMLVALIDATE:


XMLVALIDATE USING XDS
DEFAULT S1.SCHEMA_A
MAP ((S1.SCHEMA_A, S2.SCHEMA_B), (S2.SCHEMA_B, S1.SCHEMA_A))

Para una columna XML que contiene el siguiente XDS:


<XDS
FIL=’xmlfile.001.xml’ />

Capítulo 5. mandatos CLP 293


IMPORT

Se utiliza el esquema XML con el identificador SQL "S1.SCHEMA_A" para validar


el documento en el archivo "xmlfile.001.xml", porque se ha especificado que
"S1.SCHEMA_1" era el esquema por omisión que se debía utilizar. Observe que ya
que se ha aplicado la cláusula DEFAULT, la cláusula MAP no se aplicará
posteriormente. Por lo tanto, la correlación del esquema "S1.SCHEMA_A" con el
esquema "S2.SCHEMA_B" no se aplica en este caso.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.002.xml’ SCH=’S1.SCHEMA_A’ />

Se utiliza el esquema XML con el identificador SQL "S2.SCHEMA_B" para validar


el documento en el archivo "xmlfile.002.xml". Esto es así porque la cláusula MAP
especifica que el esquema "S1.SCHEMA_A" debe correlacionarse con el esquema
"S2.SCHEMA_B". Tenga en cuenta que no se produce una correlación adicional,
por lo que la correlación del esquema "S2.SCHEMA_B" con el esquema
"S1.SCHEMA_A" no se aplica en este caso.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.003.xml’ SCH=’S2.SCHEMA_B’ />

Se utiliza el esquema XML con el identificador SQL "S1.SCHEMA_A" para validar


el documento en el archivo "xmlfile.003.xml". Esto es así porque la cláusula MAP
especifica que el esquema "S2.SCHEMA_B" debe correlacionarse con el esquema
"S1.SCHEMA_A". Tenga en cuenta que no se produce una correlación adicional,
por lo que la correlación del esquema "S1.SCHEMA_A" con el esquema
"S2.SCHEMA_B" no se aplica en este caso.

Ejemplo 5 (XMLVALIDATE USING SCHEMA)

Para la siguiente cláusula XMLVALIDATE:


XMLVALIDATE USING SCHEMA S2.SCHEMA_B

Para una columna XML que contiene el siguiente XDS:


<XDS
FIL=’xmlfile.001.xml’ />

El documento del archivo xmlfile.001.xml se valida utilizando el esquema XML


con el identificador de SQL "S2.SCHEMA_B".

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.002.xml’ SCH=’S1.SCHEMA_A’ />

El documento del archivo "xmlfile.002.xml" se valida mediante el esquema XML


con el identificador SQL "S2.SCHEMA_B". Observe que el atributo SCH se omite,
ya que la validación se realiza utilizando un esquema especificado por la cláusula
USING SCHEMA.

Ejemplo 6 (XMLVALIDATE USING SCHEMALOCATION HINTS)

Para una columna XML que contiene el siguiente XDS:


<XDS
FIL=’xmlfile.001.xml’ />

294 Consulta de mandatos


IMPORT

El esquema XML utilizado viene determinado por el atributo schemaLocation


presente en el contenido del documento, y no se produce validación si no hay uno
presente.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.002.xml’ SCH=’S1.SCHEMA_A’ />

El esquema XML utilizado viene determinado por el atributo schemaLocation


presente en el contenido del documento, y no se produce validación si no hay uno
presente. Observe que el atributo SCH se omite, ya que la validación se realiza
utilizando SCHEMALOCATION HINTS.

Notas de uso

Asegúrese de completar todas las operaciones de tabla y de liberar todos los


bloqueos antes de iniciar una operación de importación. Esto puede realizarse
emitiendo un mandato COMMIT después de cerrar todos los cursores abiertos
WITH HOLD o emitiendo un mandato ROLLBACK.

El programa de utilidad de importación añade filas a la tabla de destino utilizando


la sentencia INSERT de SQL. El programa de utilidad emite una sentencia INSERT
para cada fila de datos del archivo de entrada. Si falla una sentencia INSERT, se
produce una de dos acciones:
v Si es probable que las sentencias INSERT subsiguientes puedan ser satisfactorias,
se graba un mensaje de aviso en el archivo de mensajes y el proceso continúa.
v Si es probable que las sentencias INSERT subsiguientes fallen y existen
posibilidades de que se dañe la base de datos, se graba un mensaje de error en
el archivo de mensajes y el proceso se detiene.

El programa de utilidad realiza una operación COMMIT automática después de


que se supriman las filas antiguas durante una operación REPLACE o
REPLACE_CREATE. Por consiguiente, si el sistema falla o la aplicación interrumpe el
gestor de bases de datos después de que se trunque el objeto de tabla, se perderán
todos los datos anteriores. Antes de utilizar estas opciones, asegúrese de que los
datos anteriores ya no son necesarios.

Si la anotación cronológica se llena durante una operación CREATE, REPLACE, o


REPLACE_CREATE, el programa de utilidad realiza una operación COMMIT
automática en los registros insertados. Si el sistema falla o la aplicación interrumpe
el gestor de bases de datos después de un COMMIT automático, permanece en la
base de datos una tabla con datos parciales. Utilice la opción REPLACE o
REPLACE_CREATE para volver a ejecutar toda la operación de importación, o bien
utilice INSERT con el parámetro RESTARTCOUNT establecido en el número de filas
importadas satisfactoriamente.

Las actualizaciones del mandato IMPORT siempre se confirmarán al final de una


tarea IMPORT. El mandato IMPORT también puede llevar a cabo confirmaciones
automáticas durante su ejecución para reducir el tamaño de la lista de bloqueos y
el espacio de anotaciones cronológicas activas. El mandato IMPORT se retrotraerá
si las anotaciones cronológicas activas se llenan durante el proceso de IMPORT.
v Por omisión, las operaciones COMMIT automáticas no se realizan para la opción
INSERT o INSERT_UPDATE. No obstante, se realizan si el parámetro COMMITCOUNT es
distinto de cero.
v La importación fuera de línea no realiza operaciones COMMIT automáticas si se
da alguna de las condiciones siguientes:

Capítulo 5. mandatos CLP 295


IMPORT

– El destino es una vista, no una tabla


– Se utilizan inserciones compuestas
– Se utilizan inserciones en almacenamiento intermedio
v Por omisión, la importación en línea realiza operaciones COMMIT automáticas
para liberar tanto el espacio de anotación cronológica activa como la lista de
bloqueos. No se realizan operaciones COMMIT automáticas, únicamente si se
especifica un valor de cero para COMMITCOUNT.

Siempre que el programa de utilidad de importación realiza un COMMIT, se


graban dos mensajes en el archivo de mensajes: uno indica el número de registros
que se deben confirmar y el otro se graba después de una operación COMMIT
satisfactoria. Cuando reinicie la operación de importación después de una
anomalía, especifique el número de registros que se deben saltar, según se
determine en el último COMMIT satisfactorio.

El programa de utilidad de importación acepta datos de entrada con problemas de


incompatibilidad menores (por ejemplo, se pueden importar datos de tipo carácter
utilizando relleno o truncamiento y se pueden importar datos numéricos con un
tipo de datos numéricos diferente), pero no se aceptan datos con problemas de
incompatibilidad más importantes.

No se puede utilizar REPLACE o REPLACE_CREATE con una tabla de objetos si esta


tiene otros dependientes distintos de ella misma o con una vista de objeto si la
tabla base tiene dependientes (incluida ella misma). Para sustituir una tabla o una
vista de este tipo, realice lo siguiente:
1. Descarte todas las claves foráneas en las que la tabla es padre.
2. Ejecute el programa de utilidad de importación.
3. Modifique la tabla para volver a crear las claves foráneas.

Si se produce un error al volver a crear las claves foráneas, modifique los datos
para mantener la integridad referencial.

Las restricciones de referencia y las definiciones de claves foráneas no se conservan


al volver a crear tablas a partir de archivos PC/IX. (Las definiciones de claves
primarias se conservan si se han exportado anteriormente los datos utilizando
SELECT *.)

La importación a una base de datos remota requiere suficiente espacio de disco en


el servidor para una copia del archivo de datos de entrada, para el archivo de
mensajes de salida y para el aumento potencial de tamaño de la base de datos.

Si se ejecuta una operación de importación en una base de datos remota, y el


archivo de mensajes de salida es muy grande (más de 60 KB), puede que el
archivo de mensajes devuelto al usuario en el cliente no incluya mensajes que se
hayan producido durante la operación de importación. Los primeros y los últimos
30 KB de información de mensajes siempre se retienen.

La importación de archivos PC/IXF a una base de datos remota es mucho más


rápida si el archivo PC/IXF está en una unidad de disco duro en lugar de estar en
disquetes.

Antes de poder importar datos en los formatos de archivo ASC o DEL, debe existir
la tabla o la jerarquía de base de datos; no obstante si la tabla no existe, las
opciones IMPORT CREATE o IMPORT REPLACE_CREATE crean la tabla al importar datos

296 Consulta de mandatos


IMPORT

desde un archivo PC/IXF. Para las tablas de tipo, IMPORT CREATE puede crear
también la jerarquía de tipos y la jerarquía de tablas.

La importación PC/IXF deberá utilizarse para mover datos (incluidos datos


jerárquicos) entre bases de datos. Si los datos de tipo carácter que contienen
separadores de filas se exportan a un archivo ASCII delimitado (DEL) y se
procesan con un programa de transferencia de texto, los campos que contengan
separadores de filas se acortarán o se ampliarán. El paso de copia de archivo no es
necesario si se puede acceder a las bases de datos fuente y destino desde el mismo
cliente.

Se supone que los datos de los archivos ASC y DEL están en la página de códigos
de la aplicación cliente que realiza la importación. Se recomiendan los archivos
PC/IXF, que permiten diferentes páginas de códigos, al importar datos de páginas
de códigos diferentes. Si el archivo PC/IXF y el programa de utilidad de
importación están en la misma página de códigos, el proceso se produce como
para una aplicación normal. Si las dos páginas son diferentes y se especifica la
opción FORCEIN, el programa de utilidad de importación presupone que los datos
del archivo PC/IXF tienen la misma página de códigos que la aplicación que
realiza la importación. Esto se produce incluso si existe una tabla de conversión
para las dos páginas de códigos. Si las dos son diferentes, no se especifica la
opción FORCEIN y hay una tabla de conversión, todos los datos del archivo PC/IXF
se convertirán de la página de códigos del archivo a la página de códigos de la
aplicación. Si las dos son diferentes, no se especifica la opción FORCEIN y no hay
ninguna tabla de conversión, la operación de importación fallará. Esto se aplica
únicamente a archivos PC/IXF en clientes de DB2 en el sistema operativo AIX.

Para objetos de tabla en una página de 8 KG que estén cerca del límite de 1012
columnas, la importación de archivos de datos PC/IXF podría hacer que DB2
devuelva un error porque se ha excedido el tamaño máximo de una sentencia de
SQL. Esta situación sólo se puede producir si las columnas son de tipo CHAR,
VARCHAR o CLOB. La restricción no se aplica a la importación de los archivos
DEL o ASC. Si se están utilizando archivos PC/IXF para crear una nueva tabla,
una alternativa consiste en utilizar db2look para volcar la sentencia DDL que creó
la tabla y, a continuación, emitir esa sentencia a través del CLP.

Se puede utilizar DB2 Connect para importar datos en servidores DRDA como DB2
para OS/390, DB2 para VM y VSE y DB2 para OS/400. Sólo está soportada la
importación PC/IXF (opción INSERT). El parámetro RESTARTCOUNT también está
soportado, pero no así el parámetro COMMITCOUNT.

Cuando utilice la opción CREATE con tablas de tipos, cree cada subtabla definida en
el archivo PC/IXF; las definiciones de subtabla no se pueden modificar. Cuando
utilice opciones distintas de CREATE con tablas de tipo, la lista de orden transversal
permite especificar el orden transversal; por lo tanto, la lista de orden transversal
debe coincidir con la utilizada durante la operación de exportación. Para el
formato de archivo PC/IXF, solo es necesario especificar el nombre de subtabla de
destino y utilizar el orden transversal almacenado en el archivo.

El programa de utilidad de importación se puede utilizar para recuperar una tabla


exportada anteriormente a un archivo PC/IXF. La tabla vuelve al estado en el que
estaba al exportarse.

Los datos no se pueden importar a una tabla de sistema, una tabla temporal
creada, una tabla temporal declarada o una tabla de resumen.

Capítulo 5. mandatos CLP 297


IMPORT

No se pueden crear vistas mediante el programa de utilidad de importación.

La importación de un archivo PC/IX con varias partes cuyas partes individuales se


copian desde un sistema Windows hasta un sistema AIX está soportada. Sólo debe
especificarse el nombre del primer archivo en el mandato IMPORT. Por ejemplo,
IMPORT FROM data.ixf OF IXF INSERT INTO TABLE1. El archivo data.002, etc. debe
estar disponible en el mismo directorio que data.ixf.

En el sistema operativo Windows:


v No se soporta la importación de archivos PC/IXF subdivididos de forma lógica.
v No se soporta la importación de archivos PC/IXF con un formato incorrecto.

En las etiquetas de seguridad, cuando están en formato interno, puede haber


caracteres de nueva línea. Si importa el archivo utilizando el formato de archivo
DEL, los caracteres de nueva línea se podrían malinterpretar como delimitadores.
Si surge este problema, utilice la prioridad por omisión más antigua para los
delimitadores especificando el modificador de tipo de archivo delprioritychar en
el mandato IMPORT.

Si la tabla de base de datos contiene columnas ocultas implícitamente, debe


especificar si en la operación de importación han de incluirse o no los datos para
las columnas ocultas.

Consideraciones federadas

Cuando se utiliza el mandato IMPORT y los parámetros de mandato INSERT, UPDATE


o INSERT_UPDATE, debe asegurarse de que tiene privilegio CONGROL en el apodo
participante. Debe asegurarse de que el apodo que desea utiliza cuando realiza una
operación de importación ya exista. Hay varias restricciones que debería tener en
cuenta tal y como se muestra en la sección de parámetros del mandato IMPORT.

Algunas fuentes de datos, como ODBC, no dan soporte a la importación a apodos.

Modificadores de tipo de archivo para el programa de utilidad de


importación
Tabla 13. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Todos los formatos
de archivo
Modificador Descripción
compound=x x es un número entre 1 y 100 inclusive. Utiliza SQL compuesto no atómico para
insertar los datos y se intentarán cada vez x sentencias.

Si se especifica este modificador y la anotación cronológica de transacciones no es


suficientemente grande, la operación de importación fallará. La anotación
cronológica de transacciones debe ser suficientemente grande para dar cabida al
número de filas especificadas por COMMITCOUNT, o el número de filas del archivo
de datos si no se especifica COMMITCOUNT. Por lo tanto, se recomienda especificar la
opción COMMITCOUNT para evitar el desbordamiento de la anotación cronológica de
transacciones.

Este modificador es incompatible con la modalidad INSERT_UPDATE, las tablas


jerárquicas y los siguientes modificadores: usedefaults, identitymissing,
identityignore, generatedmissing y generatedignore.

298 Consulta de mandatos


IMPORT

Tabla 13. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Todos los formatos
de archivo (continuación)
Modificador Descripción
generatedignore Este modificador informa al programa de utilidad que los datos para todas las
columnas generadas existen en el archivo de datos pero que se deberán ignorar.
Esto hace que el programa de utilidad genere todos los valores para las columnas
generadas. Este modificador no se puede utilizar con el modificador
generatedmissing.
generatedmissing Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada no contiene datos para las columnas generadas (ni siquiera
ningún NULL) y, por consiguiente, generará un valor para cada fila. Este
modificador no se puede utilizar con el modificador generatedignore.
identityignore Este modificador informa al programa de utilidad que los datos para la columna
de identidad existen en el archivo de datos pero que se deberán ignorar. Esto
hace que el programa de utilidad genere todos los valores de identidad. El
comportamiento será el mismo para las columnas de identidad GENERATED
ALWAYS y GENERATED BY DEFAULT. Esto significa que, para las columnas
GENERATED ALWAYS, no se rechazará ninguna fila. Este modificador no se
puede utilizar con el modificador identitymissing.
identitymissing Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada no contiene datos para la columna de identidad (ni siquiera
ningún NULL) y, por consiguiente, generará un valor para cada fila. El
comportamiento será el mismo para las columnas de identidad GENERATED
ALWAYS y GENERATED BY DEFAULT. Este modificador no se puede utilizar
con el modificador identityignore.
implicitlyhiddeninclude Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada contiene datos para las columnas ocultas implícitamente y
que estos datos se importarán. Este modificador no se puede utilizar con el
modificador implicitlyhiddenmissing. Consulte la sección Nota: para obtener
información acerca de la prioridad cuando se utilizan varios modificadores.
implicitlyhiddenmissing Si se especifica este modificador, el programa de utilidad da por supuesto que el
archivo de datos de entrada no contiene datos para las columnas ocultas
implícitamente y el programa de utilidad generará valores para esas columnas
ocultas. Este modificador no se puede utilizar con el modificador
implicitlyhiddeninclude. Consulte la sección Nota: para obtener información
acerca de la prioridad cuando se utilizan varios modificadores.

Capítulo 5. mandatos CLP 299


IMPORT

Tabla 13. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Todos los formatos
de archivo (continuación)
Modificador Descripción
lobsinfile vía-lob especifica la vía de acceso a los archivos que contienen datos de LOB.

Cada vía de acceso contiene por lo menos un archivo que contiene por lo menos
un LOB al que apunta un Especificador de ubicación de LOB (LLS) en el archivo
de datos. El LLS es una representación de serie de la ubicación de un LOB en un
archivo almacenado en la vía de acceso del archivo LOB. El formato de un LLS es
filename.ext.nnn.mmm/, donde filename.ext es el nombre del archivo que contiene
el LOB, nnn es el desplazamiento en bytes del LOB dentro del archivo y mmm es la
longitud del LOB en bytes. Por ejemplo, si se almacena la serie
db2exp.001.123.456/ en el archivo de datos, el LOB está ubicado en el
desplazamiento 123 dentro del archivo db2exp.001 tiene una longitud de 456
bytes.

La cláusula LOBS FROM especifica dónde están situados los archivos LOB cuando
se utiliza el modificador “lobsinfile”. La cláusula LOBS FROM activará
implícitamente el comportamiento de LOBSINFILE. La cláusula LOBS FROM lleva al
programa de utilidad IMPORT la lista de vías de acceso para buscar los archivos
LOB durante la importación de los datos.

Para indicar un LOB nulo, entre el tamaño como -1. Si el tamaño se especifica
como 0, se trata como un LOB de longitud 0. Para los LOB nulos de longitud -1,
se pasan por alto el desplazamiento y el nombre de archivo. Por ejemplo, el LLS
de un LOB nulo puede ser db2exp.001.7.-1/.
no_type_id Sólo es válido cuando se está realizando la importación a una sola subtabla. El
uso típico consiste en exportar datos de una tabla normal y luego invocar una
operación de importación (utilizando este modificador) para convertir los datos
en una sola subtabla.
nodefaults Si no se especifica explícitamente una columna fuente para una columna de tabla
de destino y la columna de tabla no puede contener nulos, no se cargan los
valores por omisión. Sin esta opción, si no se especifica explícitamente una
columna fuente para una de las columnas de tabla de destino, se produce una de
las siguientes acciones:
v Si se puede especificar un valor por omisión para una columna, se carga el
valor por omisión
v Si la columna puede contener nulos y no se puede especificar un valor por
omisión para dicha columna, se carga un NULL
v Si la columna no puede contener nulos y no se puede especificar un valor por
omisión, se devuelve un error y el programa de utilidad deja de procesarse.
norowwarnings Suprime todos los avisos sobre filas rechazadas.
periodignore Este modificador informa al programa de utilidad de importación que existen
datos para las columnas de período en el archivo de datos pero que estos se
deberán ignorar. Cuando se especifica este modificador, el programa de utilidad
genera todos los valores de columna de período. Este modificador no se puede
utilizar con el modificador periodmissing.
periodmissing Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada no contiene datos para las columnas de período. Cuando se
especifica este modificador, el programa de utilidad genera todos los valores de
columna de período. Este modificador no se puede utilizar con el modificador
periodignore.

300 Consulta de mandatos


IMPORT

Tabla 13. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Todos los formatos
de archivo (continuación)
Modificador Descripción
rowchangetimestampignore Este modificador informa al programa de utilidad que los datos de la columna de
indicación de fecha y hora de cambio de fila existen en el archivo de datos, pero
deben omitirse. Esto hace que el programa de utilidad genere toda la columna
ROW CHANGE TIMESTAMP (indicación de fecha y hora de cambio de fila). El
comportamiento será el mismo tanto para las columnas GENERATED ALWAYS
como para GENERATED BY DEFAULT. Esto significa que, para las columnas
GENERATED ALWAYS, no se rechazará ninguna fila. Este modificador no se
puede utilizar con el modificador rowchangetimestampmissing:
rowchangetimestampmissing Si se especifica este modificador, el programa de utilidad presupone que el
archivo de datos de entrada no contiene ningún dato para la columna de
indicación de fecha y hora de cambio de fila (ni siquiera ningún NULL) y por lo
tanto, generará un valor para cada fila. El comportamiento será el mismo tanto
para las columnas GENERATED ALWAYS como para GENERATED BY
DEFAULT. Este modificador no se puede utilizar con el modificador
rowchangetimestampignore.
seclabelchar Indica que las etiquetas de seguridad en el archivo fuente de entrada están en
formato de serie para los valores de etiqueta de seguridad en lugar de en el
formato numérico codificado por omisión. IMPORT convierte cada etiqueta de
seguridad al formato interno al cargarse. Si una serie no tiene el formato
adecuado, la fila no se carga y se devuelve un aviso (SQLSTATE 01H53). Si la
serie no representa una etiqueta de seguridad válida que forma parte de la
política de seguridad que protege la tabla, la fila no se carga y se devuelve un
aviso (SQLSTATE 01H53, SQLCODE SQL3243W)).

Este modificador no puede especificarse si se especifica el modificador


seclabelname, de lo contrario la importación falla y se devuelve un error
(SQLCODE SQL3525N).
seclabelname Indica que las etiquetas de seguridad en el archivo fuente de entrada están
indicadas por su nombre en lugar de en el formato numérico codificado por
omisión. IMPORT convertirá el nombre a la etiqueta de seguridad adecuada, si
existe. Si no existe ninguna etiqueta de seguridad con el nombre indicado para la
política de seguridad que protege la tabla, la fila no se carga y se devuelve un
aviso (SQLSTATE 01H53, SQLCODE SQL3244W).

Este modificador no puede especificarse si se especifica el modificador


seclabelchar, de lo contrario la importación falla y se devuelve un error
(SQLCODE SQL3525N).
Nota: Si el tipo de archivo es ASC, los espacios a continuación del nombre de la
etiqueta de seguridad se interpretarán como parte del nombre. Para evitarlo
utilice el modificador de tipo de archivo striptblanks para asegurarse de que se
eliminan los espacios.
transactionidignore Este modificador informa al programa de utilidad de importación que existen
datos para la columna TRANSACTION START ID en el archivo de datos pero
que estos se deberán ignorar. Cuando se especifica este modificador, el programa
de utilidad genera el valor para la columna de TRANSACTION START ID. Este
modificador no se puede utilizar con el modificador transactionidmissing.
transactionidmissing Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada no contiene datos para las columnas TRANSACTION START
ID. Cuando se especifica este modificador, el programa de utilidad genera el valor
para la columna de TRANSACTION START ID. Este modificador no se puede
utilizar con el modificador transactionidignore.

Capítulo 5. mandatos CLP 301


IMPORT

Tabla 13. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Todos los formatos
de archivo (continuación)
Modificador Descripción
usedefaults Si se ha especificado una columna fuente para una columna de tabla de destino,
pero dicha columna fuente no contiene datos para una o más instancias de fila, se
cargan los valores por omisión. He aquí unos ejemplos de datos que faltan:
v Para archivos DEL: se especifican dos delimitadores de columna adyacentes
(",,") o dos delimitadores de columnas adyacentes separados por un número
arbitrario de espacios (", ,") para un valor de columna.
v Para archivos DEL/ASC: una fila que no tiene suficientes columnas o que no es
suficientemente larga para la especificación original.
Nota: Para archivos ASC, los valores de columna NULL no se considera que
falten de modo explícito y no se sustituirán los valores de columna NULL por
valores por omisión. Los valores de columna NULL se representan mediante
todos los caracteres de espacio para columnas numéricas, de fecha, hora e
indicación de fecha y hora o utilizando NULL INDICATOR para una columna
de cualquier tipo para indicar que la columna es NULL.
Sin esta opción, si la columna fuente no contiene datos para una instancia de fila,
se produce una de las acciones siguientes:
v Para archivos DEL/ASC: Si la columna puede contener nulos, se carga un
NULL. Si la columna no puede contener nulos, el programa de utilidad rechaza
la fila.

Tabla 14. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formatos de archivo
ASCII (ASC/DEL)
Modificador Descripción
codepage=x x es una serie de caracteres ASCII. El valor se interpreta como la página de códigos de
los datos del archivo de entrada. Convierte los datos de tipo carácter de esta página de
códigos a la página de códigos de la aplicación durante la operación de importación.

Se aplican las siguientes normas:


v Para DBCS (gráfico) puro, DBCS mixto y EUC, los delimitadores están restringidos
al rango de x00 a x3F, inclusive.
v nullindchar debe especificar símbolos incluidos en el conjunto ASCII estándar entre
los elementos de código x20 t x7F, inclusive. Esto hace referencia a símbolos y
elementos de código ASCII.
Nota:
1. El modificador codepage no se puede utilizar con el modificador lobsinfile.
2. Si se produce expansión de datos cuando la página de códigos se convierte de la
página de códigos de la aplicación a la página de códigos de la base de datos, los
datos podrían truncarse y se puede producir una pérdida de datos.

302 Consulta de mandatos


IMPORT

Tabla 14. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formatos de archivo
ASCII (ASC/DEL) (continuación)
Modificador Descripción
dateformat="x" x es el formato de la fecha en el archivo fuente.2 Los elementos de fecha válidos son:
AAAA - Año (cuatro dígitos entre 0000 y 9999)
M - Mes (uno o dos dígitos entre 1 y 12)
MM - Mes (dos dígitos entre 01 y 12;
se excluye mutuamente con M)
D - Día (uno o dos dígitos entre 1 y 31)
DD - Día (dos dígitos entre 01 y 31;
se excluye mutuamente con D)
DDD - Día del año (tres dígitos entre
001 y 366; se excluye mutuamente
con otros elementos de día o mes)

Se asigna un valor por omisión de 1 para cada elemento que no se haya especificado.
He aquí unos ejemplos de formatos de fecha:
"D-M-AAAA"
"MM.DD.AAAA"
"AAAADDD"
implieddecimal La ubicación de una coma decimal implícita la determina la definición de columna; ya
no se supone que está al final del valor. Por ejemplo, el valor 12345 se carga en una
columna DECIMAL(8,2) como 123,45, no como 12345,00.
timeformat="x" x es el formato de la hora en el archivo fuente.2 Los elementos de hora válidos son:
H - Hora (uno o dos dígitos entre 0 y 12
para un sistema de 12 horas y entre 0 y 24
para un sistema de 24 horas)
HH - Hora (dos dígitos entre 00 y 12
para un sistema de 12 horas, y entre 00 y 24
para un sistema de 24 horas; se excluye mutuamente
con H)
M - Minuto (uno o dos dígitos entre
0 y 59)
MM - Minuto (dos dígitos entre 00 y 59;
se excluye mutuamente con M)
S - Segundo (uno o dos dígitos entre
0 y 59)
SS - Segundo (dos dígitos entre 00 y 59;
se excluye mutuamente con S)
SSSSS - Segundo del día después de medianoche (5
dígitos de 00000 y 86400; se excluye
mutuamente con otros elementos de hora)
TT - Indicador de meridiano (AM o PM)

Se asigna un valor por omisión de 0 para cada elemento que no se haya especificado.
He aquí unos ejemplos de formatos de hora:
"HH:MM:SS"
"HH.MM TT"
"SSSSS"

Capítulo 5. mandatos CLP 303


IMPORT

Tabla 14. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formatos de archivo
ASCII (ASC/DEL) (continuación)
Modificador Descripción
timestampformat="x" x es el formato de la indicación de fecha y hora en el archivo fuente.2 Los elementos
válidos de la indicación de fecha y hora son:
AAAA - Año (cuatro dígitos entre 0000 y 9999)
M - Mes (uno o dos dígitos entre 1 y 12)
MM - Mes (dos dígitos entre 01 y 12;
se excluye mutuamente con M y MMM)
MMM - Mes (abreviación de tres letras no sensible a mayúsculas
y minúsculas para el nombre del mes; se excluye
mutuamente con M y MM)
D - Día (uno o dos dígitos entre 1 y 31)
DD - Día (dos dígitos entre 01 y 31; se excluye mutuamente con D)
DDD - Día del año (tres dígitos entre 001 y 366;
se excluye mutuamente con otros elementos de día o mes)
H - Hora (uno o dos dígitos entre 0 y 12
para un sistema de 12 horas y entre
0 y 24 para un sistema de 24 horas)
HH - Hora (dos dígitos entre 00 y 12
para un sistema de 12 horas, y entre 00
y 24 para un sistema de 24 horas;
se excluye mutuamente con H)
M - Minuto (uno o dos dígitos entre 0 y 59)
MM - Minuto (dos dígitos entre 00 y 59;
se excluye mutuamente con M, minuto)
S - Segundo (uno o dos dígitos entre 0 y 59)
SS - Segundo (dos dígitos entre 00 y 59;
se excluye mutuamente con S)
SSSSS - Segundo del día después de medianoche (5
dígitos de 00000 y 86400; se excluye
mutuamente con otros elementos de hora)
U (de 1 a 12 veces)
- Segundos fraccionarios (el número de casos de U representa el
número de dígitos con cada dígito comprendido entre 0 y 9
TT - Indicador de meridiano (AM o PM)

Se asigna un valor por omisión de 1 para los elementos AAAA, M, MM, D, DD o


DDD no especificados. Se asigna un valor por omisión de 'Jan' a un elemento MMM
no especificado. Se asigna un valor por omisión de 0 para todos los demás elementos
no especificados. A continuación se muestra un ejemplo de un formato de indicación
de la hora:
"AAAA/MM/DD HH:MM:SS.UUUUUU"

Los valores válidos para el elemento MMM incluyen: 'ene', 'feb', 'mar', 'abr', 'may',
'jun', 'jul', 'ago', 'sep', 'oct', 'nov' y 'dic'. Estos valores son sensibles a las
mayúsculas y minúsculas.

El ejemplo siguiente ilustra cómo importar datos que contienen formatos de fecha y
hora definidos por el usuario a una tabla llamada schedule:
db2 import from delfile2 of del
modified by timestampformat="aaaa.mm.dd hh:mm tt"
insert into schedule

304 Consulta de mandatos


IMPORT

Tabla 14. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formatos de archivo
ASCII (ASC/DEL) (continuación)
Modificador Descripción
usegraphiccodepage Si se proporciona usegraphiccodepage, se supone que los datos importados a campos
de datos de objeto gráfico o de gran objeto de caracteres de doble byte (DBCLOB) se
encuentran en la página de códigos gráfica. Se supone que el resto de los datos estarán
en la página de códigos de caracteres. La página de códigos gráfica está asociada con
la página de códigos de caracteres. IMPORT determina la página de códigos de
caracteres mediante el modificador codepage, si se especifica, o mediante la página de
códigos de la aplicación si no se especifica el modificador codepage.

Este modificador debe utilizarse junto con el archivo de datos delimitado generado por
la recuperación de descarte de tabla sólo si la tabla que se recupera tiene datos
gráficos.

Restricciones

El modificador usegraphiccodepage NO DEBE especificarse con archivos DEL creados


por el programa de utilidad EXPORT, ya que estos archivos contienen datos codificados
en una sola página de códigos. También ignorarán el modificador usegraphiccodepage
los grandes objetos de caracteres de doble byte (DBCLOB) en los archivos.
xmlchar Especifica que los documentos XML se codifican con la página de códigos de
caracteres.

Esta opción es útil para procesar documentos XML que estén codificados con la página
de códigos de caracteres especificada pero que no contengan una declaración de
codificación.

Para cada documento, si existe un identificador de declaración y contiene un atributo


de codificación, la codificación debe coincidir con la página de códigos de caracteres,
de lo contrario se rechazará la fila que contiene el documento. Observe que la página
de códigos de caracteres es el valor que se especifica mediante el modificador de tipo
de archivo codepage o la página de códigos de aplicación, si no se ha especificado. Por
omisión, los documentos están codificados en Unicode o bien contienen un
identificador de declaración con un atributo de codificación.
xmlgraphic Especifica que los documentos XML se codifican con la página de códigos de gráficos
especificada.

Esta opción es útil para procesar documentos XML que estén codificados con una
página de códigos de gráficos específica, pero que no contengan una declaración de
codificación.

Para cada documento, si existe un identificador de declaración y contiene un atributo


de codificación, la codificación debe coincidir con la página de códigos de gráficos, de
lo contrario se rechazará la fila que contiene el documento. Tenga en cuenta que la
página de códigos de gráficos es el componente gráfico del valor especificado por el
modificador de tipo de archivo codepage o el componente gráfico de la página de
códigos de la aplicación, si no se ha especificado. Por omisión, los documentos están
codificados en Unicode o bien contienen un identificador de declaración con un
atributo de codificación.
Nota: Si se especifica el modificador xmlgraphic con el mandato IMPORT, el documento
XML que se va a importar debe codificarse en la página de códigos UTF-16. De lo
contrario, el documento XML se puede rechazar con un error de análisis, o se puede
importar a la tabla dañando los datos.

Capítulo 5. mandatos CLP 305


IMPORT

Tabla 15. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formato de archivo
ASC (ASCII no delimitado)
Modificador Descripción
nochecklengths Si se especifica nochecklengths, se intenta importar cada fila, incluso si los datos
fuente tienen una definición de columna que excede el tamaño de la columna de
tabla de destino. Dichas filas pueden importarse satisfactoriamente si la
conversión de página de códigos hace que los datos fuente se acorten; por
ejemplo, datos EUC de 4 bytes en la fuente pueden acortarse a datos DBCS de 2
bytes en el destino y necesitar la mitad del espacio. Esta opción es especialmente
útil si se sabe que los datos fuente cabrán en todos los casos, a pesar de las
discrepancias de las definiciones de columna.
nullindchar=x x es un carácter individual. Cambia el carácter que indica un valor NULL a x. El
valor por omisión de x es Y.3

Este modificador es sensible a las mayúsculas y minúsculas para archivos de


datos EBCDIC, excepto cuando el carácter es una letra inglesa. Por ejemplo, si se
especifica que el carácter indicador de nulo sea la letra N, se reconoce también n
como un indicador de nulo.
reclen=x x es un entero con un valor máximo de 32 767. Se leen x caracteres para cada fila
y no se utiliza un carácter de nueva línea para indicar el final de la fila.
striptblanks Trunca los espacios en blanco de cola al cargar datos en un campo de longitud
variable. Si no se especifica esta opción, se conservan los espacios en blanco.

En el ejemplo siguiente, striptblanks hace que el programa de utilidad de


importación trunque los espacios en blanco de cola:
db2 import from miarchivo.asc of asc
modified by striptblanks
method l (1 10, 12 15) messages msgs.txt
insert into staff

Esta opción no se puede especificar junto con striptnulls. Son opciones que se
excluyen mutuamente. Esta opción sustituye a la opción t obsoleta, que se
soporta únicamente por compatibilidad con niveles anteriores.
striptnulls Trunca los NULL de cola (caracteres 0x00) al cargar datos en un campo de
longitud variable. Si no se especifica esta opción, se conservan los NULL.

Esta opción no se puede especificar junto con striptblanks. Son opciones que se
excluyen mutuamente. Esta opción sustituye a la opción padwithzero obsoleta,
que sólo se soporta por compatibilidad con niveles anteriores.

Tabla 16. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formato de archivo
DEL (ASCII delimitado)
Modificador Descripción
chardelx x es un delimitador de serie de un solo carácter. El valor por omisión son las
comillas dobles ("). El carácter especificado se utiliza en lugar de las comillas para
encerrar una serie de caracteres.34 Si desea especificar explícitamente las comillas
como delimitador de serie de caracteres, debe especificarse de la manera
siguiente:
modified by chardel""

También se pueden especificar las comillas simples (') como delimitador de serie
de caracteres. En el ejemplo siguiente, chardel’’ hace que el programa de
utilidad de importación interprete cualquier comilla simple (') que encuentre
como un delimitador de serie de caracteres:
db2 "import from myfile.del of del
modified by chardel’’
method p (1, 4) insert into staff (id, years)"

306 Consulta de mandatos


IMPORT

Tabla 16. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formato de archivo
DEL (ASCII delimitado) (continuación)
Modificador Descripción
coldelx x es un delimitador de columna de un solo carácter. El valor por omisión es una
coma (,). En lugar de una coma, se utiliza el carácter especificado para indicar el
final de una columna.34

En el ejemplo siguiente, coldel; hace que el programa de utilidad de importación


interprete cualquier signo de punto y coma (;) que encuentre como un
delimitador de columna:
db2 import from miarchivo.del of del
modified by coldel;
messages msgs.txt insert into staff
decplusblank Carácter de signo más. Hace que a los valores decimales positivos se les ponga
un espacio en blanco como prefijo en lugar de un signo más (+). La acción por
omisión es poner a los valores decimales positivos un signo más como prefijo.
decptx x es un sustituto de un solo carácter del punto como carácter de coma decimal. El
valor por omisión es un punto (.). En lugar de un punto, se utilizará el carácter
especificado como carácter de coma decimal.34

En el ejemplo siguiente, decpt; hace que el programa de utilidad de importación


interprete cualquier punto y coma (;) que encuentre como una coma decimal:
db2 "import from myfile.del of del
modified by chardel’’
decpt; messages msgs.txt insert into staff"
delprioritychar La prioridad por omisión actual para los delimitadores es: delimitador de
registro, delimitador de carácter, delimitador de columna. Este modificador
protege a las aplicaciones existentes que dependen de la prioridad más antigua
invirtiendo las prioridades de los delimitadores del modo siguiente: delimitador
de carácter, delimitador de registro, delimitador de columna. Sintaxis:
db2 import ... modified by delprioritychar ...

Por ejemplo, dado el archivo de datos DEL siguiente:


"Smith, Joshua",4000,34.98<delimitador de fila>
"Vincent,<delimitador de fila>, is a manager", ...
... 4005,44.37<delimitador de fila>

Si se especifica el modificador delprioritychar, sólo habrá dos filas en este


archivo de datos. El segundo <delimitador de fila> se interpretará como parte de
la primera columna de datos de la segunda fila, mientras que el primero y tercero
<delimitadores de fila> se interpretarán como delimitadores de registro reales. Si
no se especifica este modificador, habrá tres filas en este archivo de datos, cada
una de las cuales estará delimitada por un <delimitador de fila>.
keepblanks Conserva los blancos iniciales y de cola en cada campo de tipo CHAR,
VARCHAR, LONG VARCHAR o CLOB. Sin esta opción, se eliminan todos los
espacios en blanco iniciales y de cola que no están incluidos entre los
delimitadores de caracteres y se inserta un NULL en la tabla para todos los
campos en blanco.

Capítulo 5. mandatos CLP 307


IMPORT

Tabla 16. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formato de archivo
DEL (ASCII delimitado) (continuación)
Modificador Descripción
nochardel El programa de utilidad de importación asumirá que todos los bytes encontrados
entre los delimitadores de columna forman parte de los datos de la columna. Los
delimitadores de carácter se analizarán como parte de los datos de la columna.
Esta opción no debe especificarse si los datos se han exportado utilizando DB2 (a
menos que se haya especificado nochardel en el momento de la exportación). Se
proporciona para dar soporte a archivos de datos de proveedores que no tienen
delimitadores de caracteres. El uso incorrecto podría causar la pérdida o la
corrupción de los datos.

Esta opción no se puede especificar con chardelx, delprioritychar o


nodoubledel. Son opciones que se excluyen mutuamente.
nodoubledel Suprime el reconocimiento de los delimitadores de caracteres dobles.

Tabla 17. Modificadores de tipo de archivo válidos para el programa de utilidad de importación: Formato de archivo
IXF
Modificador Descripción
forcein Indica al programa de utilidad que acepte datos a pesar de las discrepancias de
página de códigos y que suprima la conversión entre páginas de códigos.

Se comprueban los campos de destino de longitud fija para verificar que son
suficientemente grandes para los datos. Si se especifica nochecklengths, no se
realiza ninguna comprobación y se efectúa un intento de importación de cada fila.
indexixf Indica al programa de utilidad que descarte todos los índices definidos
actualmente en la tabla existente y que cree otros nuevos a partir de las
definiciones de índice del archivo PC/IXF. Esta opción sólo se puede utilizar
cuando se está sustituyendo el contenido de una tabla. No se puede utilizar con
una vista o cuando se especifica una columna-inserción.
indexschema=esquema Utiliza el esquema especificado para el nombre de índice durante la creación de
índices. Si no se especifica esquema (pero la palabra clave indexschema sí se
especifica), se utiliza el ID de usuario de conexión. Si no se especifica la palabra
clave, se utiliza el esquema del archivo IXF.
nochecklengths Si se especifica nochecklengths, se intenta importar cada fila, incluso si los datos
fuente tienen una definición de columna que excede el tamaño de la columna de
tabla de destino. Dichas filas pueden importarse satisfactoriamente si la
conversión de página de códigos hace que los datos fuente se acorten; por
ejemplo, datos EUC de 4 bytes en la fuente pueden acortarse a datos DBCS de 2
bytes en el destino y necesitar la mitad del espacio. Esta opción es especialmente
útil si se sabe que los datos fuente cabrán en todos los casos, a pesar de las
discrepancias de las definiciones de columna.
forcecreate Especifica que la tabla debe crearse con una posible información limitada o con
ausencia de información después de devolver SQL3311N durante una operación
de importación.

Tabla 18. Comportamiento de IMPORT al utilizar codepage y usegraphiccodepage


codepage=N usegraphiccodepage Comportamiento de IMPORT
Ausente Ausente Se supone que todos los datos del archivo están en la
página de códigos de la aplicación.

308 Consulta de mandatos


IMPORT

Tabla 18. Comportamiento de IMPORT al utilizar codepage y usegraphiccodepage (continuación)


codepage=N usegraphiccodepage Comportamiento de IMPORT
Presente Ausente Se supone que todos los datos del archivo están en la
página de códigos N.

Aviso: Los datos gráficos se corromperán cuando se


importen a la base de datos si N es una página de
códigos de un solo byte.
Ausente Presente Se supone que los datos de caracteres del archivo están
en la página de códigos de la aplicación. Se supone que
los datos gráficos están en la página de códigos de los
datos gráficos de aplicación.

Si la página de códigos de la aplicación es de un solo


byte, se supone que todos los datos están en la página
de códigos de la aplicación.

Aviso: Si la página de códigos de la aplicación es de un


solo byte, los datos gráficos se corromperán cuando se
importen a la base de datos, aunque esta contenga
columnas gráficas.
Presente Presente Se supone que los datos de caracteres están en la página
de códigos N. Se supone que los datos gráficos están en
la página de códigos gráfica de N.

Si N es una página de códigos de un solo byte o de


doble byte, se supone que todos los datos están en la
página de códigos N.

Aviso: Los datos gráficos se corromperán cuando se


importen a la base de datos si N es una página de
códigos de un solo byte.

Nota:
1. El programa de utilidad de importación no emite ningún aviso si se intentan
utilizar tipos de archivo no soportados con la opción MODIFIED BY. Si se realiza
dicho intento, la operación de importación fallará y se devolverá un código de
error.
2. Es obligatorio escribir la serie de formato de fecha entre comillas dobles. Los
separadores de campo no pueden contener ninguno de los caracteres
siguientes: a-z, A-Z y 0-9. El separador de campo no debe ser igual que el
delimitador de carácter o de campo en el formato de archivo DEL. Un
separador de campo es opcional si las posiciones inicial y final de un
elemento no son ambiguas. La ambigüedad puede existir si (en función del
modificador) se usan elementos tales como D, H, M o S, debido a la longitud
variable de las entradas.
Para formatos de indicación de la hora, hay que tener cuidado de evitar la
ambigüedad entre los descriptores de mes y de minuto, dado que ambos
utilizan la letra M. Un campo de mes debe estar junto a otros campos de
fecha. Un campo de minuto debe ser adyacente a otros campos de hora. He
aquí unos formatos ambiguos de indicación de fecha y hora:
"M" (puede ser mes o minuto)
"M:M" (¿Cuál es cada uno?)
"M:AAAA:M" (Ambos se interpretan como mes.)
"S:M:AAAA" (adyacente a un valor de hora y un valor de fecha)

Capítulo 5. mandatos CLP 309


IMPORT

En los casos ambiguos, el programa de utilidad informará con un mensaje de


error y la operación fallará.
He aquí unos formatos no ambiguos de indicación de fecha y hora:
"M:AAAA" (Mes)
"S:M" (Minuto)
"M:AAAA:S:M" (Mes....Minuto)
"M:H:AAAA:M:D" (Minuto....Mes)
Algunos caracteres, como las comillas dobles y las barras inclinadas
invertidas, deben ir precedidos de un carácter de escape (por ejemplo, \).
3. Los valores de tipo carácter proporcionados para los modificadores chardel,
coldel o decpt deben especificarse en la página de códigos de los datos fuente.
Se puede especificar el elemento de código de carácter (en lugar del símbolo
de carácter), utilizando la sintaxis xJJ o 0xJJ, donde JJ es la representación
hexadecimal del elemento de código. Por ejemplo, para especificar el carácter
# como delimitador de columna, utilice una de las sentencias siguientes:
... modified by coldel# ...
... modified by coldel0x23 ...
... modified by coldelX23 ...
4. En la sección Consideraciones sobre el delimitador para mover datos se muestran
las restricciones que se aplican a los caracteres que se pueden utilizar como
alteración temporal de los delimitadores.
5. Los siguientes modificadores de tipo de archivo no están permitidos cuando
se importa a un apodo:
v indexixf
v indexschema
v dldelfiletype
v nodefaults
v usedefaults
v no_type_idfiletype
v generatedignore
v generatedmissing
v identityignore
v identitymissing
v lobsinfile
6. La modalidad CREATE no está soportada para las columnas XML.
7. Todos los datos XML deben residir en archivos XML aparte del archivo de
datos principal. Debe existir un XDS (Especificador de datos XML) (o un valor
NULL) para cada columna XML en el archivo de datos principal.
8. Se supone que los documentos de XML están en formato Unicode o que
contienen un identificador de declaración que incluye un atributo de
codificación, a menos que se especifique el modificador de tipo de archivo
XMLCHAR o XMLGRAPHIC.
9. Las filas que contienen documentos que no tengan formato correcto se
rechazarán.
10. Si se especifica la opción XMLVALIDATE, los documentos que se validan
satisfactoriamente se anotarán con respecto a su esquema coincidente con la
información de esquema a medida que se inserten. Las filas que contengan
documentos que no consigan validarse ante el esquema coincidente serán
rechazadas. Para realizar la validación satisfactoriamente, los privilegios del
usuario que invoca la importación deben incluir al menos uno de los
siguientes:

310 Consulta de mandatos


IMPORT

v Autorización DBADM
v Privilegio USAGE sobre el esquema XML a utilizar en la validación
11. Cuando varios modificadores tengan especificados los sufijos ignore, include,
missing y override, éstos se aplicarán en el orden en el que se listan. En la
sentencia siguiente, los datos para las columnas ocultas implícitamente que no
son columnas de identidad se incluyen en los datos de entrada. Sin embargo,
los datos para todas las columnas de identidad, con independencia del estado
oculto de éstas, no se incluyen.
db2 import from delfile1 of del modified by
implicitlyhiddeninclude identitymissing insert into table1

No obstante, el cambio del orden de los modificadores de tipo de archivo en


la sentencia siguiente significa que han de incluirse los datos para todas las
columnas ocultas implícitamente (incluidas las columnas de identidad ocultas)
en los datos de entrada. Y los datos para las columnas de identidad no ocultas
implícitamente no se incluyen.
db2 import from delfile1 of del modified by
identitymissing implicitlyhiddeninclude insert into table1

Si la variable de registro DB2_DMU_DEFAULT se establece en


IMPLICITLYHIDDENINCLUDE, entonces:
db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
db2 import from delfile1 of del modified by identitymissing insert into table1

es equivalente a:
db2 import from delfile1 of del modified by
implicitlyhiddeninclude identitymissing insert into table1
Información relacionada

Capítulo 5. mandatos CLP 311


INGEST

INGEST
Datos de Ingest desde un archivo de entrada o conexión en una tabla DB2.

Autorización

Los privilegios que tiene el ID de autorización utilizado para conectarse a la base


de datos deben incluir:
v Como mínimo, una de las autorizaciones siguientes:
– Autorización DATAACCESS
– Privilegio CONTROL sobre la tabla de destino
– Privilegio SELECT e INSERT sobre la tabla de destino si el mandato INGEST
especifica la sentencia INSERT (incluido como parte de una sentencia
MERGE)
– Privilegio SELECT y UPDATE sobre la tabla de destino si el mandato INGEST
especifica la sentencia UPDATE (incluido como parte de una sentencia
MERGE)
– Privilegio SELECT y DELETE sobre la tabla de destino si el mandato INGEST
especifica la sentencia DELETE (incluido como parte de una sentencia
MERGE)
–Privilegio INSERT, SELECT y DELETE sobre la tabla de destino si el
mandato INGEST especifica la cláusula REPLACE
v Privilegio SELECT sobre las vistas de catálogos siguientes:
– SYSCAT.COLUMNS
– SYSCAT.DATATYPES
– SYSCAT.INDEXES
– SYSCAT.INDEXCOLUSE
– SYSCAT.SECURITYPOLICIES (si la tabla de destino tiene una columna de
etiqueta de seguridad)
– SYSCAT.TABDEP
– SYSCAT.TABLES
– SYSCAT.VIEWS

Nota: Los usuarios tienen estos privilegios por omisión, a menos que la base de
datos se haya creado con la cláusula RESTRICTIVE.
v Privilegio EXECUTE para los siguientes procedimientos:
– SYSPROC.DB_PARTITIONS (solamente cuando el servidor no es un servidor
de DB2 pureScale)
– SYSPROC.DB2_GET_INSTANCE_INFO (solamente cuando el servidor es un
servidor de DB2 pureScale)
– SYSPROC.MON_GET_CONNECTION (V9.7 y posteriores) o
SYSIBMADM.APPLICATIONS (V9.5)
v Si una tabla de destino tiene activadores, el ID de autorización debe tener
suficientes privilegios para ejecutar las operaciones que especifiquen los
activadores.
v Para insertar o actualizar una tabla que tenga columnas protegidas, el ID de
autorización debe tener credenciales LBAC que permitan el acceso de grabación
a todas las columnas protegidas en la tabla. De lo contrario, el mandato no se
ejecutará y se devolverá un error.

312 Consulta de mandatos


INGEST

v Si una sentencia UPDATE o MERGE requiere leer una columna protegida, el ID


de autorización debe tener credenciales LBAC que permitan acceso de lectura a
la columna. De lo contrario, el mandato no se ejecutará y se devolverá un error.
v Para realizar una inserción o una actualización en una tabla que tenga filas
protegidas, el ID de autorización debe tener una credencial LBAC que cumpla
estos criterios:
– La credencial LBAC forma parte de la política de seguridad que protege la
tabla.
– Si la política de seguridad se ha definido como RESTRICT NOT
AUTHORIZED WRITE SECURITY LABEL, entonces debe otorgarse la
credencial LBAC al ID de autorización para tener acceso de grabación
La etiqueta de seguridad de la fila que se va a insertar, las credenciales LBAC
del ID de autorización, la definición de política de seguridad y las normas de
LBAC determinan si se puede llevar a cabo una operación de inserción o
actualización en la tabla con filas protegidas.
v Si el mandato INGEST especifica la opción RESTART NEW (valor por omisión) o
RESTART CONTINUE, privilegios SELECT, INSERT, UPDATE y DELETE sobre la
tabla de rearranque.
v Si el mandato INGEST especifica la opción RESTART TERMINATE, privilegios
SELECT y DELETE sobre la tabla de rearranque.
v Si el mandato INGEST especifica la opción EXCEPTION TABLE, privilegio INSERT
sobre la tabla de excepciones.

Además, la sentencia de SQL en el mandato INGEST está sujeta a los mismos


controles de acceso preciso (FGAC) que si el usuario que ejecuta el programa de
utilidad ingest accediese a la tabla fuera del programa de utilidad ingest.

El usuario que ejecute el CLP debe tener los siguientes permisos de archivo:
v Acceso de lectura al archivo de control
v Si el mandato INGEST especifica la opción MESSAGES:
– Acceso de grabación al directorio que contiene el archivo de mensajes
– Acceso de grabación al archivo si el archivo de mensajes ya existe
v Si el mandato INGEST especifica la opción DUMPFILE:
– Acceso de grabación al directorio que contiene el archivo de vuelco
– Acceso de grabación al archivo de vuelco si éste ya existe

Conexión necesaria

Base de datos

Sintaxis del mandato


 INGEST cláusula-from cláusula-format opciones 
DATA

 sentencia-SQL 

cláusula-from:

Capítulo 5. mandatos CLP 313


INGEST

FROM FILE  nombre-archivo


,

PIPE  nombre-conexión

cláusula-format:

FORMAT definición-formato

options:


opciones-manejo-errores MESSAGES nombre-archivo


NEW
ID-trabajo
RESTART OFF
CONTINUE ID-trabajo
TERMINATE

opciones-manejo-errores:


DUMPFILE nombre-archivo EXCEPTION TABLE nombre-tabla
BADFILE


WARNINGCOUNT n

sentencia-SQL:

sentencia-DELETE
sentencia-INSERT
sentencia-MERGE
sentencia-REPLACE
sentencia-UPDATE

definición-formato:

DELIMITED 
BY carácter INPUT CODEPAGE entero
POSITIONAL
RECORDLEN longitud


IMPLICITLYHIDDENINCLUDE lista-campos
IMPLICITLYHIDDENMISSING

314 Consulta de mandatos


INGEST

lista-campos:

(  definición-campo )

definición-campo:

$nombre-campo 
POSITION ( inicio )
: fin

 tipo-campo
DEFAULTIF = carácter
( posición )

tipo-campo:

CHARACTER
CHAR ( longitud ) FOR BIT DATA NOTRIM OPTIONALLY ENCLOSED BY carácter
LTRIM
RTRIM
TRIM
DECIMAL
DEC 5,0 PACKED
ZONED
(  precisión ) EXTERNAL
, escala ( longitud ) RADIX POINT carácter
INTEGER
INT BIG ENDIAN
SMALLINT LITTLE
BIGINT EXTERNAL
( longitud ) RADIX POINT carácter
(34)
DECFLOAT
(16) BIG ENDIAN
LITTLE
EXTERNAL
( longitud ) RADIX POINT carácter
(53)
FLOAT
( entero ) BIG ENDIAN
REAL LITTLE
PRECISION EXTERNAL
DOUBLE ( longitud ) RADIX POINT carácter
DATE
serie ENCLOSED BY carácter
TIME
serie ENCLOSED BY carácter
TIMESTAMP
( prec ) serie ENCLOSED BY carácter
DB2SECURITYLABEL
( longitud ) NAME
STRING

sentencia-DELETE:

DELETE FROM nombre-tabla 


nombre-vista
apodo

 WHERE condición-búsqueda
cláusula-período WITH RR
RS
CS
UR

Capítulo 5. mandatos CLP 315


INGEST

cláusula-período:

FOR PORTION OF BUSINESS_TIME FROM valor1 TO valor2

sentencia-INSERT:

INSERT INTO nombre-tabla 


nombre-vista ,
apodo
(  nombre-columna )

 VALUES (  expresión )
NULL
DEFAULT

sentencia-MERGE:

MERGE INTO nombre-tabla ON condición-búsqueda 


nombre-vista

  WHEN condición-coincidente THEN operación-modificación 

ELSE IGNORE

WITH RR
RS
CS
UR

condición-coincidente:

MATCHED
NOT AND condición-búsqueda

operación-modificación:

UPDATE SET cláusula-asignación


cláusula-período
DELETE
cláusula-período
operación-insertar

316 Consulta de mandatos


INGEST

cláusula-período:

FOR PORTION OF BUSINESS_TIME FROM valor1 TO valor2

cláusula-asignación:

 nombre-columna = expresión
DEFAULT
NULL
, ,

(  nombre-columna ) = (  expresión )
DEFAULT
NULL

operación-insertar:

INSERT VALUES (  expresión )


, DEFAULT
NULL
(  nombre-columna )

sentencia-REPLACE:

REPLACE INTO nombre-tabla 


nombre-vista ,
apodo
(  nombre-columna )

 VALUES (  expresión )
NULL
DEFAULT

sentencia-UPDATE:

UPDATE nombre-tabla 
nombre-vista
apodo

 SET cláusula-asignación 
cláusula-período

Capítulo 5. mandatos CLP 317


INGEST


WHERE condición-búsqueda WITH RR
RS
CS
UR

cláusula-asignación:

 nombre-columna = expresión
NULL
DEFAULT
, ,

(  nombre-columna ) = (  expresión )
NULL
DEFAULT

expresión:

operador

 invocación-función
+ (expresión)
- constante
nombre-columna
$nombre-campo
expresión-case
especificación-conversión

operador:

CONCAT
/
*
+
-

función-invocación:

nombre-función (  )
argumento

Argumento:

expresión
expresión-fila
DEFAULT

318 Consulta de mandatos


INGEST

expresión-case:

ELSE NULL
CASE cláusula-when-buscada END
cláusula-when-simple ELSE expresión-resultado

cláusula-searched-when:

 WHEN condición-búsqueda THEN expresión-resultado


NULL

cláusula-when-simple:

expresión  WHEN expresión THEN expresión-resultado


NULL

especificación-cast:

CAST ( expresión AS tipo-datos )


NULL

condición-búsqueda:

predicado 
NOT AND predicado
OR NOT

predicado:

predicado-básico
predicado-NULL

predicado-básico:

expresión = expresión
<>
<
>
<=
>=

predicado-NULL:

expresión IS NULL
NOT

Capítulo 5. mandatos CLP 319


INGEST

Parámetros del mandato


FROM
Especifica el origen de los datos de entrada. El programa de utilidad ingest
siempre lee los datos de entrada del cliente.
FILE nombre-archivo
Especifica que los datos deben leerse de los archivos especificados.
Para la sintaxis de los nombres de archivo, consulte “Nombres de
conexiones y archivos” en la página 344.
PIPE nombre-conexión
Especifica que los datos deben leerse de las conexiones
especificadas. Para la sintaxis de los nombres de conexiones,
consulte “Nombres de conexiones y archivos” en la página 344.
FORMAT definición-formato
Los datos están en el formato que establece la definición del formato
especificada. La sintaxis de una definición de formato se proporciona en la
sección "definición-formato" descrita anteriormente.
DUMPFILE o BADFILE nombre-archivo
Especifica que las filas que han rechazado los formateadores deben
grabarse en el archivo especificado. Los formateadores rechazan filas
debido a los tipos de errores siguientes:
v Números que no son válidos o están fuera del rango (según el tipo de
campo)
v Fechas, horas e indicaciones de fecha y hora que no se ajustan al
formato especificado
v Otros errores que detecte el formateador
Si se especifica una vía de acceso relativa, será relativa al directorio actual
y a la unidad por omisión. En plataformas Linux y UNIX, si el archivo no
existe, el programa de utilidad ingest creará el archivo con distintivos de
permisos especificados mediante el valor de umask del usuario. El
programa de utilidad ingest utiliza el valor de umask que estaba en vigor
en el momento en que se inició el proceso de fondo del CLP de DB2
(db2bp), que suele ser con la primera conexión. Si el archivo ya existe, el
programa de utilidad ingest adjuntará los registros al final del archivo.
El programa de utilidad ingest graba cada registro con el mismo formato
que con el que aparece en la entrada. Esto significa que, después de
corregir los errores, puede volver a ejecutar el mandato INGEST utilizando
el archivo de vuelco como entrada. Sin embargo, es posible que el
programa de utilidad ingest no grabe los registros en el mismo orden de
aparición en varios archivos de entrada o en un cada archivo de entrada. Si
desea que el archivo de vuelco contenga los registros en el mismo orden de
aparición en cada archivo de entrada, establezca el parámetro de
configuración núm_formateadores en 1. En este caso:
v Si la operación es INSERT o REPLACE, los registros de los diferentes
archivos de entrada todavía pueden aparecer desordenados, pero todos
los registros de un archivo de entrada aparecen en el mismo orden que
tenían en ese archivo.
v Si la operación es UPDATE, DELETE, o MERGE, todos los registros tienen el
mismo orden que tenían en los diferentes archivos de entrada y en cada
archivo de entrada en particular.
Si se produce un error al abrir o grabar en el archivo, el programa de
utilidad ingest emite un mensaje de error, que incluye la fuente de entrada

320 Consulta de mandatos


INGEST

y el número de línea, y termina el mandato. En este caso, el registro no se


guarda en ningún sitio. (Si la entrada procede de un archivo, el usuario
puede obtener el registro de entrada original del archivo.)
Se garantiza que el archivo de vuelco estará completo sólo si el mandato
INGEST se completa con normalidad en una única ejecución. Si el mandato
INGEST no se ejecuta correctamente pero sí al reiniciarlo, pueden faltar
registros en la combinación de archivos de vuelco de los dos mandatos
poco puede haber registros duplicados.
Si no se especifica este parámetro, el programa de utilidad ingest emitirá
un mensaje de error por cada fila rechazada, pero no guardará la fila en
ningún lugar.

Nota: Si especifica este parámetro y hay registros de entrada rechazados


que contienen datos sensibles, dichos registros aparecen en el archivo de
vuelco. Debe proteger el archivo de accesos no autorizados según
convenga.
EXCEPTION TABLE nombre-tabla
Especifica que las filas que inserta el programa de utilidad ingest y que
DB2 rechaza con determinados valores de SQLSTATE deben grabarse en la
tabla especificada. DB2 puede rechazar filas debido a los tipos de errores
siguientes. Tenga en cuenta que cada uno de estos errores indica datos
incorrectos en el archivo de entrada:
v Para datos de tipo carácter, se ha producido un truncamiento por la
derecha; por ejemplo, un valor de actualización o de inserción es una
serie demasiado larga para la columna, o un valor de fecha y hora no se
puede asignar a una variable del lenguaje principal porque es
demasiado pequeño.
v Se ha detectado un valor nulo o la ausencia de un parámetro de
indicador. Por ejemplo, el valor nulo no puede asignarse a una variable
del lenguaje principal porque no se ha especificado ninguna variable de
indicador.
v Un valor numérico está fuera de rango.
v Se ha detectado un formato de fecha y hora no válido, es decir, se ha
especificado un valor o una representación de serie no válido.
v El valor de carácter para una especificación CAST o una función escalar
de conversión no es válido.
v Un carácter no se encuentra en el conjunto de caracteres codificado.
v El valor de clave de particionamiento de datos no es válido.
v Una fila resultante no cumple los permisos de fila.
v Un valor de inserción o actualización es nulo, pero la columna no puede
contener valores nulos.
v El valor de inserción o actualización de FOREIGN KEY no equivale a
ningún valor de la clave principal de la tabla padre.
v Se ha producido una violación de la restricción impuesta por un índice
único o una restricción de unicidad.
v La fila resultante de INSERT o de UPDATE no cumple la definición de
restricción de comprobación.
v El valor no puede convertirse en una etiqueta de seguridad válida para
la política de seguridad que protege la tabla.
v A este ID de autorización no se le permite realizar la operación sobre la
tabla protegida.

Capítulo 5. mandatos CLP 321


INGEST

v El elemento de componente no se ha definido en el componente de


etiqueta de seguridad.
v El nombre de etiqueta de seguridad especificado no se puede encontrar
para la política de seguridad especificada.
v El tipo de datos, la longitud o el valor del argumento para la rutina no
es correcto.
La tabla especificada debe definirse según se describe en el tema “Tablas
de excepciones” de la sección de enlaces relacionados. También se aplican
las restricciones enumeradas en dicha sección y en el mensaje SQL3604N,
con la siguiente excepción:
v Si la tabla de destino contiene una columna DB2SECURITYLABEL, la
columna de tabla de excepción correspondiente a la columna
DB2SECURITYLABEL debe ser del tipo VARCHAR con una longitud de
al menos 128. (El tipo LONG VARCHAR también se permite, pero está
en desuso.)
El programa de utilidad ingest utiliza la tabla de excepciones sólo cuando
la operación es INSERT o REPLACE. Si la operación es UPDATE, MERGE o DELETE,
el programa de utilidad ingest ignora esta cláusula y no devuelve ningún
error ni aviso.
Si se produce un error al insertar en la tabla, el programa de utilidad
ingest emite un mensaje de error, que incluye la fuente de entrada y el
número de línea, y continúa. En este caso, el registro no se guarda en
ningún sitio. (Si la entrada procede de un archivo, el usuario puede
obtener el registro de entrada original del archivo.)
Si el nombre de la tabla no está totalmente calificado, el programa de
utilidad ingest utilizará el valor de CURRENT SCHEMA para el nombre de
esquema. Si no se especifica el parámetro EXCEPTION TABLE, el
programa de utilidad ingest emite un mensaje de error para cada fila
rechazada pero no guarda la fila en ningún lugar.
WARNINGCOUNT n
Especifica que el mandato INGEST debe detenerse después de que se emitan
n mensajes de aviso y error. Este parámetro sólo cubre determinados tipos
de errores. Para obtener más información, consulte el apartado Categorías
de errores. El número es el total de todas las fuentes de entrada. Si se
alcanza este límite en plena transacción, la transacción se retrotrae. Sin
embargo, las filas que se han confirmado en la tabla de destino antes de
que se alcanzara este límite permanecerán en la tabla. Si el número es 0, el
mandato INGEST continua sin tener en cuenta el número de avisos y
errores. El rango es de 0 a 2.147.483.647 (entero con signo de 32 bits como
máximo). El valor por omisión es 0.
MESSAGES nombre-archivo
Especifica el archivo que debe recibir mensajes de error, de aviso e
informativos.
Si se especifica una vía de acceso relativa, será relativa al directorio actual
y a la unidad por omisión. En plataformas Linux y UNIX, si el archivo no
existe, el programa de utilidad ingest creará el archivo con distintivos de
permisos especificados mediante el valor de umask del usuario. El
programa de utilidad ingest utiliza el valor de umask que estaba en vigor
en el momento en que se inició el proceso de fondo del CLP de DB2
(db2bp), que suele ser con la primera conexión. Si el archivo ya existe, el

322 Consulta de mandatos


INGEST

programa de utilidad ingest adjuntará los registros al final del archivo. Si


no se especifica este parámetro, el programa de utilidad ingest graba los
mensajes en una salida estándar.
Aunque se especifique este parámetro, el programa de utilidad ingest
graba los mensajes en una salida estándar en los casos siguientes:
v Errores de sintaxis
v Un archivo de entrada no se encuentra o no es legible
v No se encuentra una tabla de destino o de excepciones
v No se puede abrir el archivo de vuelco o el archivo de mensajes
v Otros errores detectados al inicio
Además, los mensajes de resumen que se emiten al final (que muestran el
número de filas leídas, insertadas, etc., y el total de avisos y errores)
siempre se graban en la salida estándar.
Si se produce un error al abrir o grabar en el archivo de mensajes, el
programa de utilidad ingest emite un mensaje de error y termina el
mandato.
Para ver ejemplos de mensajes del mandato INGEST, consulte el apartado
“Mensajes del mandato INGEST” en la página 343.
RESTART NEW ID-trabajo
Especifica que, si el mandato INGEST falla antes de completarse, puede
reiniciarse desde el punto de la última confirmación si se especifica la
opción RESTART CONTINUE en un mandato INGEST posterior. El ID-trabajo es
una serie de hasta 128 bytes que identifica de forma exclusiva el mandato
INGEST. Este ID-trabajo debe ser exclusivo en todos los mandatos INGEST en
la base de datos actual que especifican la opción RESTART y que todavía no
se han completado. (Puede tratarse de mandatos que todavía están en
ejecución o que han fallado antes de completarse.) Una vez que se
completa el mandato INGEST, puede reutilizar el ID-trabajo en el parámetro
RESTART de un mandato INGEST posterior. Si se omite el ID-trabajo, el
programa de utilidad ingest generará uno. Esta opción es el valor por
omisión.
Antes de utilizar esta opción, deberá haber creado la tabla de anotaciones
cronológicas de reinicio. Para obtener más información, consulte el
apartado "Reinicio de un mandato INGEST que ha fallado" en la sección de
enlaces relacionados, a continuación.
RESTART OFF
Especifica que no se debe guardar información de reinicio. Si el mandato
INGEST falla antes de completarse, no se puede reiniciarse utilizando la
opción RESTART CONTINUE. Si desea volver a ejecutar el mandato hasta que
se complete, debe restaurar la tabla de destino para que adquiera su estado
anterior antes de ejecutar el mandato INGEST y volver a ejecutar el mandato
INGEST con los mismos datos de entrada.
RESTART CONTINUE ID-trabajo
Especifica que el programa de utilidad ingest debe reiniciar un mandato
INGEST anterior en el que se ha especificado la opción RESTART NEW y que
ha fallado antes de completarse. El ID-trabajo especificado en esta opción
debe coincidir con el ID-trabajo especificado en el mandato INGEST anterior.
Este mandato reiniciado también es reiniciable. Una vez que el mandato
reiniciado se complete, podrá reutilizar el ID-trabajo en el parámetro
RESTART NEW de un mandato INGEST posterior. Para obtener más

Capítulo 5. mandatos CLP 323


INGEST

información, consulte el apartado “Reinicio de un mandato INGEST que ha


fallado” en la sección de enlaces relacionados, a continuación.
RESTART TERMINATE ID-trabajo
Especifica que el programa de utilidad ingest debe borrar la información
de reinicio de un mandato INGEST anterior en el que se ha especificado la
opción RESTART NEW y que ha fallado antes de completarse. La serie
especificada en esta opción debe coincidir con la serie especificada en el
mandato INGEST anterior.
Esta opción está indicada para casos en los que un mandato INGEST
reiniciable anterior ha fallado y no tiene previsto reanudar el trabajo. Una
vez que especifica esta opción, el mandato INGEST que anteriormente ha
fallado no puede reiniciarse ya. Sin embargo, puede reutilizar la serie del
parámetro RESTART NEW de un mandato INGEST posterior.

Nota: A diferencia del parámetro TERMINATE del mandato LOAD, los datos
que el mandato INGEST original ha confirmado antes de fallar siguen en la
tabla de destino. Para obtener más información, consulte el apartado
referente a la terminación de un mandato INGEST que ha fallado“” en la
sección de enlaces relacionados, a continuación.
DELIMITED BY carácter
Especifica que cada registros de entrada es una secuencia de campos de
texto delimitados por el carácter especificado. El delimitador puede ser
cualquier carácter de un solo byte, excepto los valores siguientes:
v Un carácter nulo (X'00')
v Un espacio en blanco (X'20')
v Un retorno de carro o un salto de línea (X'0D' o X'0A')
v Un punto (X'2E'), sin tener en cuenta lo que se especifique en la cláusula
RADIX POINT
v Un separador decimal (se especifica mediante la cláusula RADIX POINT;
el valor por omisión es el punto, .)
v Un delimitador de serie (se especifica mediante la cláusula ENCLOSED
BY; el valor por omisión son las comillas dobles, ")
Si la página de códigos de los datos de entrada es DBCS o EUC, el carácter
debe estar en el rango de X'01' a X'3F', ambos inclusive. Tenga en cuenta
que esto excluye la barra vertical (| o X'7C'). Si la página de códigos de los
datos de entrada no es de un solo byte, el carácter debe estar en el rango
de X'01' a X'7F', ambos inclusive. Si la página de códigos de entrada es de
un solo byte, el carácter puede estar en el rango de X'01' a X'FF'.
El valor por omisión es una coma (,).
POSITIONAL
Especifica que cada registro de entrada es una secuencia de campos de
texto y/o binarios que se identifican mediante su posición en el registro de
entrada. La posición de cada campo se determina mediante la cláusula
POSITION en la definición del campo.
RECORDLEN longitud
Especifica que la entrada es para registros de longitud fija y que cada
registro tiene la longitud especificada en bytes. Se supone que los
caracteres de retorno de carro o de salto de línea (X'0D' o X'0A') del
registro forman parte de los datos. Tenga en cuenta que la longitud de
registro que algunos editores muestran no incluyen estos caracteres, por lo

324 Consulta de mandatos


INGEST

que puede ser necesario sumar 1 o 2 a la longitud de registro mostrada por


el editor. Si la entrada contiene datos binarios, este parámetro es necesario.
El rango es de 1 a 32.767. Si RECORDLEN especifica una longitud inferior a la
suma de las longitudes de los campos especificadas en cada definición de
campo, el programa de utilidad ingest emitirá un mensaje de error y
finalizará. Si RECORDLEN especifica una longitud mayor que la posición final
máxima del campo, el programa de utilidad ingest pasa por alto los bytes
más allá del final del campo que tiene la posición final máxima. Si el
último registro es demasiado corto, el programa de utilidad ingest emite
un mensaje de error y rechaza el registro.
Si se omite este parámetro, el programa de utilidad ingest reconoce los dos
caracteres siguientes como delimitadores del registro (fila),
independientemente de la plataforma:
v Salto de línea (X'0A')
v Uno o varios retornos de carro seguidos de un salto de línea (X'0D0A')
INPUT CODEPAGE entero
Especifica la página de códigos de los datos de entrada. El programa de
utilidad ingest da soporte a las páginas de códigos que se indican en el
tema “Páginas de códigos y códigos de territorio soportados” de la sección
Enlaces relacionados, a excepción de los valores siguientes:
v 1200 (UTF-16)
v Las páginas de códigos enumeradas como páginas de códigos del
sistema principal
El valor por omisión es la página de códigos de la aplicación DB2.
Si los datos de entrada no están en la página de códigos especificada
mediante este parámetro, el programa de utilidad ingest no emite un error.
Sin embargo, si el programa de utilidad ingest o DB2 necesita convertir los
datos de entrada en otra página de códigos, puede que el programa de
utilidad convierta algunos caracteres en el carácter sustituto (Unicode
U+001A) o en otros caracteres que no tenía previsto utilizar. Para obtener
más información, consulte el tema “Consideraciones sobre páginas de
códigos para el programa de utilidad ingest”.
IMPLICITLYHIDDENINCLUDE
Especifica que las columnas ocultas implícitamente han de incluirse en la
lista de columnas por omisión. Si también se especifica la variable de
registro DB2_DMU_DEFAULT en el lado del cliente, tiene prioridad esta
palabra clave. Esta palabra clave sólo está permitida para las sentencias
INSERT en las que no existe ninguna lista de columnas a continuación del
nombre de tabla. Si la sentencia de SQL no es una sentencia INSERT o
existe una lista de columnas tras el nombre de tabla, se devolverá un error
(SQLCODE -2918).
IMPLICITLYHIDDENMISSING
Especifica que las columnas ocultas implícitamente han de omitirse de la
lista de columnas por omisión. Si también se especifica la variable de
registro DB2_DMU_DEFAULT en el lado del cliente, tiene prioridad esta
palabra clave. Esta palabra clave sólo está permitida para las sentencias
INSERT en las que no existe ninguna lista de columnas a continuación del
nombre de tabla. Si la sentencia de SQL no es una sentencia INSERT o
existe una lista de columnas tras el nombre de tabla, se devolverá un error
(SQLCODE -2918).

Capítulo 5. mandatos CLP 325


INGEST

lista-campos
Especifica la lista de definiciones de campos. Si se omite la lista, toma el
valor por omisión que se describe en el apartado Lista de definiciones de
campos por omisión.
$nombre-campo
Los nombres de campos pueden tener de 2 a 129 bytes de longitud
(incluido el signo de dólar) y siguen las mismas normas que los
identificadores de SQL. También puede especificar nombres de campos
delimitados si especifica un signo de dólar seguido de un nombre de
delimitador; por ejemplo, $"Mi nombre de campo".
Si la sentencia de SQL especifica un nombre de columna o nombre de tabla
que empieza por un signo de dólar, especifique el nombre de columna o
nombre de tabla como un identificador delimitado. Por ejemplo, el
programa de utilidad ingest interpreta los siguientes identificadores como
se indica:
Tabla 19. El significado de los identificadores de nombres de campos
Identificador Significado
$name campo "$NAME"
$NAME campo "$NAME"
$"My Name" campo "$My Name"
"$name" column "$name" (en minúsculas)
"$NAME" columna "$NAME" (en mayúsculas)
"$My Name" columna "$My Name"

Si especifica el mandato INGEST en la línea de mandatos del sistema en


UNIX, para evitar que los nombres de campo se vean como variables de
entorno, debe especificar el mandato entre comillas simples. Para obtener
más información, consulte el apartado “Utilización de INGEST en la línea
de mandatos del sistema (UNIX)” en la página 341.
POSITION (inicio:fin)
Esta cláusula sólo es válida cuando el formato es POSITIONAL. Especifica
la posición inicial y, opcionalmente, la posición final del campo dentro del
registro. Las unidades son bytes. El primer byte del registro está en la
posición 1. Si se especifica la posición final, debe ser mayor o igual que la
posición inicial.
Las posiciones especificadas en los diferentes campos pueden solaparse.
Por ejemplo, si el nombre completo de un estado de EE. UU. está en las
posiciones 1 a 10, puede definir los dos campos siguientes:
v $state_full_name POSITION(1:10)
v $state_abbreviation POSITION(1:2)
Si hay datos fuera de las posiciones de campo especificadas, el programa
de utilidad ingest los ignora. Por ejemplo, si la lista de definición de
campos especifica dos campos en POSITION(1:10) y POSITION(21:30), el
programa de utilidad ingest ignora los datos en las posiciones 11:20 y
cualquier dato más allá de la posición 30 hasta el final del registro.
Si se omite la cláusula POSITION, se supone que la posición es el siguiente
byte después del campo anterior, o la posición 1 si se trata del primer
campo. Si se omite la posición final, el programa de utilidad utiliza un

326 Consulta de mandatos


INGEST

valor por omisión o emite un error, como se describe en el apartado


“Reglas y valores por omisión para las longitudes de campo” en la página
347.
tipo-campo
Especifica el tipo de datos del campo.
CHARACTER (longitud)
Datos de carácter. La página de códigos se especifica mediante el
parámetro INPUT CODEPAGE. El valor por omisión es la página de códigos de
la aplicación.
Para obtener información sobre la longitud por omisión, consulte la sección
“Reglas y valores por omisión para las longitudes de campo” en la página
347.
NOTRIM, LTRIM, RTRIM, TRIM
Especifica que los espacios en blanco iniciales (LTRIM), los espacios
en blanco finales (RTRIM) o tanto los espacios en blanco iniciales
como los finales (TRIM) del campo que no incluya el delimitador
de serie no forman parte de la serie. Cuando el formato es
DELIMITED, el valor por omisión es TRIM. Cuando el formato es
POSITIONAL, el valor por omisión es NOTRIM. Si se especifica
este parámetro en cualquier campo de tipo carácter, debe tener el
mismo valor en todos los demás campos de tipo carácter.
OPTIONALLY ENCLOSED BY carácter
Esta cláusula sólo es válida cuando el formato es DELIMITED. La
serie puede estar encerrada entre el carácter especificado. Las
restricciones son las mismas que para el delimitador de campo.
Además, el carácter no puede ser el mismo que el delimitador de
campo o el separador decimal. Si este parámetro se especifica en
algún campo de carácter, fecha, hora o indicación de fecha y hora,
deberá tener el mismo valor en todos los demás campos de
carácter, fecha, hora o indicación de fecha y hora.
El programa de utilidad utiliza el siguiente algoritmo para
determinar si el valor empieza con el delimitador:
v Si se especifica la opción TRIM o LTRIM (o valores por omisión),
el programa de utilidad prueba el primer carácter del campo
después de recortar los blancos iniciales.
v Si se especifica la opción RTRIM o NOTRIM, el programa de
utilidad prueba el primer carácter del campo. (En otras palabras,
cuando se especifica RTRIM o NOTRIM, el programa de utilidad
no salta los blancos iniciales para localizar el delimitador de
serie.)
Con la excepción de los delimitadores de registro, el programa de
utilidad considera que todos los caracteres entre los caracteres
delimitadores forman parte de la serie. Si la serie contiene el
carácter delimitador, debe doblarse dentro de la serie. Por ejemplo,
si la serie es don’t know y el carácter de delimitación que es una
comilla simple, especifique ’don’’t know’. Si la serie no termina
con un carácter delimitador, el programa de utilidad considera que
el delimitador de apertura forma parte de la serie.
El programa de utilidad emite el aviso SQL3114W en las
condiciones siguientes:

Capítulo 5. mandatos CLP 327


INGEST

v Se ha especificado TRIM o RTRIM (o los valores por omisión) y


hay caracteres adicionales que no son espacios en blanco entre el
delimitador de cierre y el siguiente delimitador de campo (o
final del registro).
v Se ha especificado NOTRIM o LTRIM y hay caracteres
adicionales (incluidos los espacios en blanco) entre el
delimitador de cierre y el siguiente delimitador de campo (o
final del registro).
Cuando no se especifica este parámetro, el valor por omisión es
OPTIONALLY ENCLOSED BY ’"’. En tal caso, si el valor no empieza
con comillas, el programa de utilidad considera que cualquier
carácter (distinto del delimitador de campo) que rodea la serie
forma parte de ella.
FOR BIT DATA
Especifica que el campo contiene datos de bits y que el programa
de utilidad ingest no debe convertirlos de la página de códigos de
los datos de entrada a la página de códigos de aplicación del
programa de utilidad ingest. Si este campo se utiliza para asignar
una columna que especifica FOR BIT DATA, se recomienda
encarecidamente que en la definición del campo también se
especifique FOR BIT DATA. De lo contrario, el valor asignado a la
columna será impredecible, debido a la forma en que el programa
de utilidad ingest optimiza a veces la conversión de la página de
códigos.
INTEGER/SMALLINT/BIGINT EXTERNAL (longitud)
Una serie de caracteres de hasta longitud bytes que representa un número.
La serie puede ser un entero, un decimal o una constante de coma flotante.
Si la serie especifica un valor decimal o de coma flotante, el programa de
utilidad ingest lo convierte al tipo de entero especificado truncando la
parte fraccional. Si la serie no es un número válido o si el número está
fuera del rango, el programa de utilidad ingest emite un mensaje de error
y rechaza el registro. Para obtener más información, consulte el apartado
“Manipulación de datos numéricos no válidos” en la página 354.
Si se especifica EXTERNAL en un campo de entero, debe especificarse en
todos los demás campos de entero, valor decimal flotante y valor flotante.
Para obtener información sobre la longitud por omisión, consulte la sección
“Reglas y valores por omisión para las longitudes de campo” en la página
347.
DECIMAL (precisión, escala) EXTERNAL (longitud)
Una serie de caracteres de hasta longitud bytes que representa un número
decimal. La serie puede ser un entero, un decimal o una constante de coma
flotante. El programa de utilidad ingest lo convierte a un valor decimal con
la precisión y la escala especificadas. Si la serie especifica un valor decimal
con una escala mayor que la escala especificada en el tipo de campo, el
programa de utilidad ingest trunca la parte fraccional del valor sin emitir
ningún aviso ni error. Si la serie especifica un valor decimal con una escala
inferior a la especificada en el tipo de campo, el programa de utilidad
ingest rellena la parte fraccional del valor con ceros. Si la serie no es un
número válido o si el número está fuera de rango (distinto del de la escala)
el programa de utilidad ingest emite un mensaje de error y rechaza el
registro. Para obtener más información, consulte el apartado
“Manipulación de datos numéricos no válidos” en la página 354.

328 Consulta de mandatos


INGEST

La precisión puede ir de 1 a 31. La escala puede ir de 0 a la precisión. El


valor por omisión es (5,0). Para obtener más información sobre la longitud
por omisión, consulte la sección “Reglas y valores por omisión para las
longitudes de campo” en la página 347.
Si se especifica EXTERNAL en un campo decimal, debe especificarse en
todos los demás campos decimales.
DECFLOAT (16|34) EXTERNAL (longitud)
Una serie de caracteres de hasta longitud bytes que representa un número
de coma flotante decimal. La serie puede ser un entero, un decimal o una
constante de coma flotante, o un valor especial de coma flotante decimal.
El programa de utilidad ingest lo convierte a un valor de coma flotante
decimal de la precisión especificada. Si la serie no es un número válido, un
valor especial de coma flotante decimal o si el número está fuera del
rango, el programa de utilidad ingest emite un mensaje de error y rechaza
el registro. Para obtener más información, consulte el apartado
“Manipulación de datos numéricos no válidos” en la página 354. La
precisión puede ser 16 o 34 (valor por omisión).
Para obtener más información sobre la longitud por omisión, consulte la
sección “Reglas y valores por omisión para las longitudes de campo” en la
página 347.
Si se especifica EXTERNAL en un campo decimal flotante, debe
especificarse en todos los demás campos de entero, valor decimal flotante y
valor flotante.
FLOAT(entero) EXTERNAL(longitud)
Una serie de caracteres de hasta longitud bytes que representa un número
de coma flotante. La serie puede ser un entero, un decimal o una constante
de coma flotante. Si la serie no es un número válido o si el número está
fuera del rango, el programa de utilidad ingest emite un mensaje de error
y rechaza el registro. Para obtener más información, consulte el apartado
“Manipulación de datos numéricos no válidos” en la página 354.
El valor del entero debe estar en el rango 1-53. Los valores 1 a 24 indican
precisión simple, mientras que los valores 25 a 53 indican precisión doble.
El valor por omisión es 53. También puede especificar:
REAL Para coma flotante de precisión simple.
DOUBLE, DOUBLE PRECISION o FLOAT
Para especificar coma flotante de precisión doble.
Si se especifica EXTERNAL en un campo flotante, debe especificarse en
todos los demás campos de entero, valor decimal flotante y valor flotante.
Para obtener información sobre la longitud por omisión, consulte la sección
“Reglas y valores por omisión para las longitudes de campo” en la página
347.
RADIX POINT carácter
El carácter que debe utilizarse como separador decimal. Las restricciones
son las mismas que las del delimitador de campo. Además, el carácter no
puede ser el mismo que el delimitador de campo o el delimitador de serie.
Si este parámetro se especifica en un campo de entero, decimal, decimal
flotante o flotante, debe tener el mismo valor en todos los demás campos
de entero, decimal, decimal flotante y flotante. El valor por omisión es un
punto (.).

Capítulo 5. mandatos CLP 329


INGEST

INTEGER, SMALLINT o BIGINT


Entero del tipo especificado en formato binario. Estos tipos sólo pueden
especificarse cuando el formato es POSITIONAL y se especifica el
parámetro RECORDLEN. También puede especificarse lo siguiente:
BIG | LITTLE ENDIAN
Especifica si el entero está en formato big endian (el byte más
significativo en la dirección inferior) o en formato little endian (el
byte menos significativo en la dirección inferior). Esta opción se
aplica a los tipos entero, flotante y decimal flotante, pero no al tipo
decimal. El valor por omisión es el formato por omisión en la
plataforma de hardware en la que se ejecuta el programa de
utilidad ingest.
DECIMAL (precisión, escala) PACKED | ZONED
Un número decimal de la precisión y escala especificadas en formato
empaquetado o con zona. Estos tipos sólo pueden especificarse cuando el
formato es POSITIONAL y se especifica el parámetro RECORDLEN. La
precisión puede ir de 1 a 31. La escala puede ir de 0 a la precisión. El valor
por omisión es (5,0). El valor PACKED/ZONED debe ser el mismo en
todos los demás campos decimales. El valor por omisión es PACKED.
DECFLOAT(16|34)
Un número de coma flotante decimal de la precisión especificada en
formato binario. La precisión puede ser 16 o 34 (valor por omisión). Este
tipo puede especificarse únicamente cuando el formato es POSITIONAL y
se especifica el parámetro RECORDLEN.
FLOAT(entero)
Un número de coma flotante de precisión doble o simple del tamaño
especificado en formato binario (formato de coma flotante IEEE). El valor
del entero debe estar en el rango 1-53. Los valores 1 a 24 indican precisión
simple, mientras que los valores 25 a 53 indican precisión doble. El valor
por omisión es 53. Estos tipos sólo pueden especificarse cuando el formato
es POSITIONAL y se especifica el parámetro RECORDLEN. También puede
especificar:
REAL Para coma flotante de precisión simple.
DOUBLE, DOUBLE PRECISION o FLOAT
Para especificar coma flotante de precisión doble.
DATE, TIME, TIMESTAMP
Fecha, hora o indicación de fecha y hora especificada como una serie. Si la
base de datos tiene el parámetro de configuración de base de datos
date_compat establecido en ON, DATE equivale a TIMESTAMP(0).
Para obtener información sobre la longitud por omisión, consulte la sección
“Reglas y valores por omisión para las longitudes de campo” en la página
347.
precisión
Especifica la precisión de una indicación de fecha y hora. El rango
es de 0 a 12. El valor por omisión es 6. Si los datos de entrada
especifican una indicación de fecha y hora con una precisión
mayor que la precisión especificada en el tipo de campo, el
programa de utilidad ingest trunca la parte fraccional de la
indicación de fecha y hora sin emitir ningún aviso ni error
(siempre que la indicación de fecha y hora tenga el formato
especificado en la serie de formato). Si los datos de entrada

330 Consulta de mandatos


INGEST

especifican una indicación de fecha y hora con una precisión


inferior que la precisión especificada en el tipo de campo, el
programa de utilidad ingest rellena la parte fraccional de la
indicación de fecha y hora con ceros.
serie Especifica el formato del valor de fecha, hora o indicación de fecha
y hora. Los elementos de la serie de formato son los que admiten
actualmente los mandatos IMPORT y LOAD. Para obtener más
información, consulte las descripciones de los modificadores de
tipo de archivo dateformat, timeformat y timestampformat en el
tema “Mandato IMPORT”.
Si el formato es POSITIONAL y la serie es mayor que la longitud
especificada mediante el parámetro POSITION, el programa de
utilidad ingest emite un error. Por ejemplo, si la serie es
'aaaa-mm-dd' (10 bytes) pero la posición es 1:6, el programa de
utilidad ingest emite un error.
El valor de fecha, hora o indicación de fecha y hora en los datos de
entrada debe coincidir con el formato, si bien puede omitir
subcampos a la derecha. Por ejemplo, si el formato de indicación
de fecha y hora es "aaaa/mm/dd hh:mm:ss.uuu", las siguientes
indicaciones de fecha y hora son válidas:
2010/06/03 12:34
2010/06/03 12:34:56
2010/06/03 12:34:56.1
2010/06/03 12:34:56.12
2010/06/03 12:34:56.123

Sin embargo, "2010/06/03 12:34:56.1234" no es válido. Cuando se


omiten subcampos, se toma el valor por omisión que se describe
en las descripciones de los modificadores de tipo de archivo
dateformat, timeformat y timestampformat en el tema “Mandato
IMPORT”.
Existe una excepción a la descripción anterior de omisión de
subcampos: cuando el formato es POSITIONAL y el campo es el
último campo del registro y el registro finaliza antes que la
posición final del campo, el programa de utilidad emite un aviso y
utiliza NULL como valor.
Si el valor de fecha, hora o indicación de fecha y hora no tiene el
formato especificado (uno distinto de los subcampos que faltan a la
derecha), el programa de utilidad ingest emite un mensaje de error
y rechaza la fila.
También se aplican las siguientes normas:
v Si se especifica este parámetro en un campo DATE, también
debe especificarse y tener el mismo valor en todos los demás
campos DATE. Si la base de datos tiene el parámetro de
configuración de base de datos date_compat activado, el tipo de
campo DATE equivale a TIMESTAMP(0), también debe
especificarse y debe tener el mismo valor en todos los demás
campos TIMESTAMP.
v Si se especifica en un campo TIME, también debe especificarse y
tener el mismo valor en todos los demás campos TIME.
v Si se especifica en un campo TIMESTAMP, también debe
especificarse y tener el mismo valor en todos los demás campos
TIMESTAMP. Si la base de datos tiene el parámetro de

Capítulo 5. mandatos CLP 331


INGEST

configuración de base de datos date_compat activado, el tipo de


campo DATE equivale a TIMESTAMP(0), también debe
especificarse y debe tener el mismo valor en todos los demás
campos DATE.
v
Si no se especifica la serie de formato, el programa de utilidad
ingest reconoce os diversos formatos, como se muestra en el
apartado Tabla 20.
Tabla 20. Valores por omisión para DATE, TIME y TIMESTAMP
Tipo de campo Formato por omisión
DATE v Si el parámetro de configuración de base
de datos date_compat está establecido en
OFF, entonces:
– 'aaaammdd' (sólo formato delimitado)
– 'aaaa-mm-dd'
– 'mm/dd/aaaa'
– 'dd.mm.aaaa'
Nota: En todos los formatos excepto el
primero, el mes y el día también pueden
especificarse como un único dígito; por
ejemplo: 'aaaa-m-d'.
v Si el parámetro de configuración de base
de datos date_compat está establecido en
ON, se toma el valor por omisión
TIMESTAMP(0).
TIME v 'hh.mm.ss'
v 'hh:mm tt'
v 'hh:mm:ss'
TIMESTAMP 'aaaa-mm-dd-hh.mm.ss.uuuuuuuuuuuu' o
'aaaa-mm-dd hh:mm:ss.uuuuuuuuuuuu'
v 'aaaa-mm-dd-hh.mm.ss.uuuuuuuuuuuu'
v 'aaaa-mm-dd hh:mm:ss.uuuuuuuuuuuu'
v 'aaaa-mm-dd'
v 'mm/dd/aaaa'
v 'dd.mm.aaaa'
v 'aaammdd' (sólo formato delimitado)
Nota: En todos los formatos excepto el
primero, el mes y el día también pueden
especificarse como un solo dígito; por
ejemplo: 'aaaa-m-d-hh.mm.ss.uuuuuuuuuuuu''.

OPTIONALLY ENCLOSED BY carácter


Esta cláusula sólo es válida cuando el formato es DELIMITED. La
serie puede estar encerrada entre el carácter especificado. Las
restricciones son las mismas que para el delimitador de campo.
Además, el carácter no puede ser el mismo que el delimitador de
campo o el separador decimal. Si este parámetro se especifica en
algún campo de carácter, fecha, hora o indicación de fecha y hora,
deberá tener el mismo valor en todos los demás campos de
carácter, fecha, hora o indicación de fecha y hora.

332 Consulta de mandatos


INGEST

El programa de utilidad utiliza el siguiente algoritmo para


determinar si el valor empieza con el delimitador:
v Si se especifica la opción TRIM o LTRIM (o valores por omisión),
el programa de utilidad prueba el primer carácter del campo
después de recortar los blancos iniciales.
v Si se especifica la opción RTRIM o NOTRIM, el programa de
utilidad prueba el primer carácter del campo. (En otras palabras,
cuando se especifica RTRIM o NOTRIM, el programa de utilidad
no salta los blancos iniciales para localizar el delimitador de
serie.)
Con la excepción de los delimitadores de registro, el programa de
utilidad considera que todos los caracteres entre los caracteres
delimitadores forman parte de la serie. Si la serie contiene el
carácter delimitador, debe doblarse dentro de la serie. Por ejemplo,
si la serie es don’t know y el carácter de delimitación que es una
comilla simple, especifique ’don’’t know’. Si la serie no termina
con un carácter delimitador, el programa de utilidad considera que
el delimitador de apertura forma parte de la serie.
El programa de utilidad emite el aviso SQL3114W en las
condiciones siguientes:
v Se ha especificado TRIM o RTRIM (o los valores por omisión) y
hay caracteres adicionales que no son espacios en blanco entre el
delimitador de cierre y el siguiente delimitador de campo (o
final del registro).
v Se ha especificado NOTRIM o LTRIM y hay caracteres
adicionales (incluidos los espacios en blanco) entre el
delimitador de cierre y el siguiente delimitador de campo (o
final del registro).
Cuando no se especifica este parámetro, el valor por omisión es
OPTIONALLY ENCLOSED BY ’"’. En tal caso, si el valor no empieza
con comillas, el programa de utilidad considera que cualquier
carácter (distinto del delimitador de campo) que rodea la serie
forma parte de ella.
DB2SECURITYLABEL (longitud)
Especifica una etiqueta de seguridad de DB2. Si no se especifica NAME ni
STRING y el formato es POSITIONAL, el formato por omisión es el
formato numérico codificado; en cualquier otro caso, se devuelve un error.
Para obtener información sobre la longitud por omisión, consulte la sección
“Reglas y valores por omisión para las longitudes de campo” en la página
347.
NAME
La etiqueta de seguridad de DB2 se especifica por su nombre. Si el
formato es DELIMITED, debe especificarse NAME o STRING. Si
este parámetro se especifica en algún campo
DB2SECURITYLABEL, debe tener el mismo valor en todos los
campos DB2SECURITYLABEL. Si no existe ninguna etiqueta de
seguridad con el nombre indicado para la política de seguridad
que protege la tabla, la fila no se carga y se devuelve un aviso.
STRING
La etiqueta de seguridad de DB2 se especifica en formato de serie.
Si el formato es DELIMITED, debe especificarse NAME o STRING.

Capítulo 5. mandatos CLP 333


INGEST

Si este parámetro se especifica en algún campo


DB2SECURITYLABEL, debe tener el mismo valor en todos los
campos DB2SECURITYLABEL. Si una serie no tiene el formato
adecuado, la fila no se carga y se devuelve un aviso. Si la serie no
representa una etiqueta de seguridad válida que forme parte de la
política de seguridad que protege la tabla, la fila no se carga y se
devuelve un aviso.
El valor por omisión es el formato numérico codificado, y sólo se
permite cuando el formato es POSITIONAL.
DEFAULTIF (posición) = carácter
La posición es opcional y se puede especificar únicamente si el formato es
POSITIONAL. Si se especifica la posición, el programa de utilidad lee el
carácter del registro de entrada antes de aplicar la opción de ajuste por
omisión o especificada. La posición no tiene que estar en el campo. Si se
omite la posición, el programa de utilidad en primer lugar aplica la opción
de ajuste por omisión o especificada y después lee el primer carácter del
campo. En cualquier caso, si el carácter leído del registro de entrada
coincide con el especificado, el programa de utilidad considera el valor del
campo como el valor por omisión de la columna de tabla a la que se ha
asignado el campo.
El parámetro DEFAULTIF tiene las restricciones siguientes:
v Cuando se omite la posición, debe haber al menos un espacio entre
DEFAULTIF y el signo igual. De lo contrario, se producirá un error de
sintaxis.
v El carácter DEFAULTIF puede ser cualquier carácter de un solo byte, a
excepción de los valores siguientes:
– Un carácter nulo (X'00')
– Un retorno de carro o un salto de línea (X'0D' o X'0A')
Si la página de códigos de los datos de entrada es DBCS o EUC, el
carácter debe estar en el rango de X'01' a X'3F', ambos inclusive. Si la
página de códigos de los datos de entrada no es de un solo byte, el
carácter debe estar en el rango de X'01' a X'7F', ambos inclusive. Si la
página de códigos de entrada es de un solo byte, el carácter puede estar
en el rango de X'01' a X'FF'.
v El campo debe asignarse a una sola columna y no puede formar parte
de una expresión que se haya asignado a esa columna. Por ejemplo,
considere el siguiente mandato INGEST:
INGEST FROM FILE ...
UPDATE my_table
SET (c1, c2, c3, c4, c5) =
($field1, $field2, $field2, $field3, $field4+$field5)
WHERE $field3 = 1;

Sólo $field1 puede especificar DEFAULTIF. $field2 no puede, porque se ha


asignado a varias columnas. $field3 no puede, porque también se utiliza
en un predicado. $field4 y $field5 no pueden, porque se utilizan en una
expresión.
v El valor por omisión de la columna de tabla debe ser una constante o
NULL. No puede ser un registro especial.

334 Consulta de mandatos


INGEST

Nota: Si una columna puede contener nulos (es decir, no se especifica


NOT NULL en la definición de la columna) y no se especifica la cláusula
WITH DEFAULT en la definición de la columna, la columna todavía tendrá
el valor por omisión NULL.
v Si el tipo de columna de la tabla difiere del tipo de campo, el programa
de utilidad ingest convierte el valor por omisión en el tipo de campo
aplicando las mismas reglas utilizadas para convertir los datos de
entrada en el tipo de campo. Por ejemplo, si la columna de tabla se
define como FLOAT WITH DEFAULT 3.7 y el campo se define como
INTEGER DEFAULTIF=..., el programa de utilidad ingest utiliza el valor
por omisión 3. De forma similar, si la longitud del valor por omisión de
la columna de tabla es mayor que la longitud del campo, el programa de
utilidad trunca el valor por omisión a la longitud del campo.
Si se infringen estas restricciones, el programa de utilidad ingest emite un
error y el mandato INGEST finaliza.

Ejemplos

Ejemplos básicos de ingest

En el ejemplo siguiente se insertan datos de un archivo de texto delimitado:


INGEST FROM FILE my_file.txt
FORMAT DELIMITED
INSERT INTO my_table;

En el ejemplo siguiente se insertan datos de un archivo de texto delimitado con los


campos separados por comas (el valor por omisión). Los campos del archivo
corresponden a columnas de la tabla.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Ejemplo de alteración temporal de delimitadores

En el ejemplo siguiente se insertan datos como en el ejemplo anterior, pero los


campos se separan mediante una barra vertical.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED by ’|’
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Ejemplo de omisión de la definición de campo y la lista VALUES

En el ejemplo siguiente, la tabla se define como sigue:

Capítulo 5. mandatos CLP 335


INGEST

CREATE TABLE my_table (


c1 VARCHAR(32),
c2 INTEGER GENERATED BY DEFAULT AS IDENTITY,
c3 INTEGER GENERATED ALWAYS AS (c2 + 1),
);

El usuario emite el siguiente mandato INGEST:


INGEST FROM FILE my_file.txt
FORMAT DELIMITED
INSERT INTO mytable;
v La lista de definiciones de campos por omisión será:
(
$C1 CHARACTER(32),
$C2 INTEGER EXTERNAL,
$C3 INTEGER EXTERNAL
)
v La lista VALUES por omisión en la sentencia INSERT es:
VALUES($C1, $C2, DEFAULT)

Tenga en cuenta que el tercer valor es DEFAULT, porque la columna que


corresponde al campo $C3 está definida como GENERATED ALWAYS. El cuarto
valor se omite y no tiene ningún campo.

Ejemplo de campos adicionales utilizados para calcular valores


de columnas

El ejemplo siguiente es el mismo que el ejemplo de alteración temporal de


delimitadores, pero sólo los dos primeros campos corresponden a las dos primeras
columnas de la tabla (PROD_ID y DESCRIPTION), mientras que el valor de la
tercera columna de la tabla (TOTAL_PRICE) se calcula a partir de los tres campos
restantes.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED BY ’|’
(
$prod_ID CHAR(8),
$description CHAR(32),
$price DECIMAL(5,2) EXTERNAL,
$sales_tax DECIMAL(4,2) EXTERNAL,
$shipping DECIMAL(3,2) EXTERNAL
)
INSERT INTO my_table(prod_ID, description, total_price)
VALUES($prod_id, $description, $price + $sales_tax + $shipping);

Ejemplo de campos de relleno

En el ejemplo siguiente se insertan datos de un archivo de texto delimitado con los


campos separados por comas (el valor por omisión). Los campos del archivo
corresponden a las columnas de la tabla, salvo que hay campos adicionales entre
los campos de las columnas 2 y 3 y las columnas 3 y 4.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$field1 INTEGER,
$field2 CHAR(8),
$filler1 CHAR,
$field3 CHAR(32),
$filler2 CHAR,
$field4 DATE
)
INSERT INTO my_table VALUES($field1, $field2, $field3, $field4);

336 Consulta de mandatos


INGEST

Ejemplos de modificadores de formato

En el ejemplo siguiente se insertan datos de un archivo de texto delimitado con la


página de códigos 850. Los campos de fecha están en formato americano y los
campos de carácter están contenidos entre signos de igual.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
INPUT CODEPAGE 850
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32) ENCLOSED BY ’=’
)
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Ejemplo de posición

En el ejemplo siguiente se insertan datos de un archivo con campos en las


posiciones especificadas. Los campos del archivo corresponden a columnas de la
tabla.
INGEST FROM FILE my_file.txt
FORMAT POSITIONAL
(
$field1 POSITION(1:8) INTEGER EXTERNAL,
$field2 POSITION(10:19) DATE ’yyyy-mm-dd’,
$field3 POSITION(25:34) CHAR(10)
)
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Ejemplos de DEFAULTIF

Este ejemplo es similar al ejemplo anterior, con la excepción de que si el segundo


campo empieza por un espacio en blanco, el programa de utilidad ingest inserta el
valor por omisión:
INGEST FROM FILE my_file.txt
FORMAT POSITIONAL
(
$field1 POSITION(1:8) INTEGER EXTERNAL,
$field2 POSITION(10:19) DATE ’yyyy-mm-dd’ DEFAULTIF = ’ ’,
$field3 POSITION(25:34) CHAR(10)
)
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Este ejemplo es el mismo que el ejemplo anterior, con la excepción de que el


indicador por omisión se encuentra en la columna posterior a las columnas de
datos:
INGEST FROM FILE my_file.txt
FORMAT POSITIONAL
(
$field1 POSITION(1:8) INTEGER EXTERNAL,
$field2 POSITION(10:19) DATE ’yyyy-mm-dd’ DEFAULTIF(35) = ’ ’,
$field3 POSITION(25:34) CHAR(10)
)
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Capítulo 5. mandatos CLP 337


INGEST

Ejemplo de varias fuentes de entrada

En este ejemplo se insertan datos de tres archivos de texto delimitados:


INGEST FROM FILE my_file.txt, my_file2.txt, my_file3.txt
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Área de conexión de memoria ejemplo

En este ejemplo se insertan datos de una conexión:


INGEST FROM PIPE my_pipe
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Ejemplo de opciones

En este ejemplo se insertan datos de un archivo de texto delimitado con los


campos separados por comas (el valor por omisión). Los campos del archivo
corresponden a columnas de la tabla. El mandato especifica que las filas cuya
grabación ha rechazado DB2 (por ejemplo, debido a violaciones de las
restricciones) deben grabarse en la tabla EXCP_TABLE, las filas rechazadas debido
a otros errores deben descartarse y los mensajes deben grabarse en el archivo
messages.txt.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
EXCEPTION TABLE excp_table
MESSAGES messages.txt
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Ejemplo de reinicio

En este ejemplo se emite un mandato INGEST (que por omisión es reiniciable) con
un ID de trabajo ingest especificado:
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
RESTART NEW ’ingestcommand001’
INSERT INTO my_table
VALUES($field1, $field2, $field3);

338 Consulta de mandatos


INGEST

Si el mandato termina antes de completarse, puede reiniciarlo con el mandato


siguiente:
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
RESTART CONTINUE ’ingestcommand001’
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Ejemplo de reinicio de terminación

Este ejemplo emite el mismo mandato INGEST que el "Ejemplo de reinicio" anterior:
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
RESTART NEW ’ingestcommand001’
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Si el mandato termina antes de completarse y no tiene previsto reiniciarlo, puede


borrar los registros de reinicio con el mandato siguiente.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
RESTART TERMINATE ’ingestcommand001’
INSERT INTO my_table
VALUES($field1, $field2, $field3);

Después de emitir este mandato, ya no podrá reiniciar el mandato INGEST con el ID


de trabajo "ingestcommand001", pero podrá volver a utilizar esa serie en el
parámetro RESTART NEW de un nuevo mandato INGEST.

Ejemplo de reordenación de columnas

En este ejemplo se insertan datos de un archivo de texto delimitado con los


campos separados por comas. La tabla tiene tres columnas y los campos de los
datos de entrada están en orden inverso a las columnas de la tabla.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$field1 INTEGER EXTERNAL,
$field2 DATE ’mm/dd/yyyy’,
$field3 CHAR(32)
)
INSERT INTO my_table
VALUES($field3, $field2, $field1);

Capítulo 5. mandatos CLP 339


INGEST

Ejemplos básicos de UPDATE, MERGE y DELETE

En los ejemplos siguientes se actualizan las filas de la tabla cuya clave primaria
coincide con los campos correspondientes del archivo de entrada.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$key1 INTEGER EXTERNAL,
$key2 INTEGER EXTERNAL,
$data1 CHAR(8),
$data2 CHAR(32),
$data3 DECIMAL(5,2) EXTERNAL
)
UPDATE my_table
SET (data1, data2, data3) = ($data1, $data2, $data3)
WHERE (key1 = $key1) AND (key2 = $key2);

o
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$key1 INTEGER EXTERNAL,
$key2 INTEGER EXTERNAL,
$data1 CHAR(8),
$data2 CHAR(32),
$data3 DECIMAL(5,2) EXTERNAL
)
UPDATE my_table
SET data1 = $data1, data2 = $data2, data3 = $data3
WHERE (key1 = $key1) AND (key2 = $key2);

En este ejemplo se fusionan datos del archivo de entrada en la tabla de destino.


Para las filas de entrada cuyo campo de clave primaria coincide con una fila de la
tabla, se actualiza dicha fila de la tabla con la fila de entrada. Para las demás filas
de entrada, se añade la fila a la tabla.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$key1 INTEGER EXTERNAL,
$key2 INTEGER EXTERNAL,
$data1 CHAR(8),
$data2 CHAR(32),
$data3 DECIMAL(5,2) EXTERNAL
)
MERGE INTO my_table
ON (key1 = $key1) AND (key2 = $key2)
WHEN MATCHED THEN
UPDATE SET (data1, data2, data3) = ($data1, $data2, $data3)
WHEN NOT MATCHED THEN
INSERT VALUES($key1, $key2, $data1, $data2, $data3);

En este ejemplo se suprimen las filas de la tabla cuya clave primaria coincide con
los campos de clave primaria correspondientes del archivo de entrada.
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$key1 INTEGER EXTERNAL,
$key2 INTEGER EXTERNAL
)
DELETE FROM my_table
WHERE (key1 = $key1) AND (key2 = $key2);

340 Consulta de mandatos


INGEST

Ejemplos de SQL complejo

Considere el ejemplo siguiente, en el que hay una tabla con las columnas KEY,
DATA y ACTION. El mandato siguiente actualiza la columna DATA de las filas de
la tabla cuya columna de clave primaria (KEY) coincide con el campo
correspondiente del archivo de entrada y cuya columna ACTION es 'U':
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$key_fld INTEGER EXTERNAL,
$data_fld INTEGER EXTERNAL
)
UPDATE my_table
SET data = $data_fld
WHERE (key = $key_fld) AND (action = ’U’);

El ejemplo siguiente es el mismo que el ejemplo anterior, con la excepción de que


si las claves coinciden y la columna ACTION es 'D', se suprime la fila de la tabla:
INGEST FROM FILE my_file.txt
FORMAT DELIMITED
(
$key_fld INTEGER EXTERNAL,
$data_fld INTEGER EXTERNAL
)
MERGE INTO my_table
ON (keyl = $key_fld)
WHEN MATCHED AND (action = ’U’) THEN
UPDATE SET data = $data_fld
WHEN MATCHED AND (action = ’D’) THEN
DELETE;

Notas de uso

Utilización de INGEST en la línea de mandatos del sistema


(UNIX)

Si especifica el mandato INGEST en la línea de mandatos del sistema en un shell de


mandatos de UNIX, debe especificar los nombres de campo entre comillas simples
o especificar un carácter de escape (barra inclinada invertida) delante del carácter $
por el que empieza el nombre de archivo. De lo contrario, el shell de mandatos
interpreta los nombres de campo como variables de entorno y los sustituye por el
valor de la variable de entorno correspondiente.

Por ejemplo, supongamos que la variable de entorno $field1 tiene el valor abc, la
variable de entorno $field2 no tiene valor y especifica el mandato siguiente en el
shell de mandatos de UNIX:
db2 INGEST ... FORMAT DELIMITED ($field1 INTEGER, $field2 CHAR) ...

El CLP de DB2 ve el siguiente mandato, que no es válido:


INGEST ... FORMAT DELIMITED (abc INTEGER, CHAR) ...

Puede evitar esto mediante la utilización de comillas simples, tal como se indica a
continuación:
db2 ’INGEST ... FORMAT DELIMITED ($field1 INTEGER, $field2 CHAR) ...’

Si el mandato INGEST contiene comillas simples, puede especificar todo el mandato


entre comillas dobles " y utilizar caracteres de escape \ delante del carácter $ por
el que empiezan los nombres de campo. Por ejemplo:

Capítulo 5. mandatos CLP 341


INGEST

db2 "INGEST ... FORMAT DELIMITED BY X’7C’ (\$field1 ...) ..."

La forma más sencilla de evitar todos los problemas mencionados consiste en


incluir el mandato en un archivo y especificar la opción -f en el mandato de DB2.

Categorías de los errores

Con el fin de determinar cómo maneja los errores el programa de utilidad ingest,
podemos agrupar los errores en las siguientes categorías:
1. Errores de inicio
Estos errores incluyen:
v Errores de sintaxis
v Un archivo de entrada no se encuentra o no es legible
v No se encuentra la tabla de destino o de excepciones
v No se puede abrir el archivo de vuelco o el archivo de mensajes
v No hay suficiente memoria
v Otros errores detectados al inicio
Cuando el programa de utilidad detecta alguno de estos errores, emite un
mensaje de error y se cierra sin ingerir datos.
2. Errores de datos
Estos errores incluyen:
v Errores en los datos de entrada que son detectados por el formateador;
por ejemplo:
– Números que no son válidos o están fuera del rango (según el tipo de
campo)
– Algunas fechas, horas e indicaciones de fecha y hora que no se
ajustan al formato especificado
– Otros errores que detecten los formateadores
v Errores de sentencias de SQL. Se enumeran en la descripción del
parámetro EXCEPTION TABLE en el mandato INGEST. Los más habituales
son:
– Datos demasiado largos, fuera de rango o formato incorrecto (no
detectado por el formateador)
– Violaciones de restricciones en la tabla de destino, incluidas las
restricciones de no nulos, de unicidad, referenciales o de
comprobación
– Violaciones de rango en la tabla de destino
Cuando el programa de utilidad detecta alguno de estos errores, emite un
mensaje de aviso o de error y continúa. En el caso de los errores del
formateador, el programa de utilidad también graba el registro en el
archivo de vuelco (si se especifica). En el caso de los errores de SQL, el
programa de utilidad también inserta la fila en la tabla de excepciones (si
se especifica). Para que el programa de utilidad finalice después de un
cierto número de estos errores, utilice el parámetro WARNINGCOUNT.
3. Errores recuperables
Estos son errores que podrían desaparecer si el programa de utilidad se
vuelve a conectar (si resulta necesario), espera un momento e intenta la
operación de nuevo. Cuando el programa de utilidad detecta alguno de
estos errores y el parámetro de configuración retry_count o
reconnect_count es mayor que 0, el programa de utilidad intenta

342 Consulta de mandatos


INGEST

recuperarse del error. Si retry_count y reconnect_count son 0, o el


programa de utilidad no puede recuperarse, el programa de utilidad
considera estos errores como errores de terminación.
4. Errores de terminación
Son todos los demás errores que no pertenecen a los tres tipos anteriores.
Cuando el programa de utilidad detecta alguno de estos errores, emite un
mensaje de error y se cierra. Los datos que se hayan confirmado
permanecen en la tabla de destino. Puede reiniciar el mandato a partir del
último punto de confirmación.

Mensajes del mandato INGEST

Si el programa de utilidad lee al menos un registro de la fuente de entrada, el


programa de utilidad emite un resumen del número de filas leídas, insertadas y
rechazadas (de forma parecida a los programas de utilidad de importación y carga)
y un mensaje de finalización correcta. Por ejemplo:
INGEST FROM FILE my_table.del FORMAT DELIMITED
($field1 INTEGER EXTERNAL, $field2 CHAR(32))
INSERT INTO my_table VALUES($field1, $field2)
Número de filas leídas = 6
Número de filas insertadas = 6
Número de filas rechazadas = 0
SQL2980I El programa de utilidad Ingest ha finalizado satisfactoriamente en la fecha y hora "11/02/2011 12:34:56.123456".

El significado de los mensajes “Número de filas...” es el siguiente:


Número de filas leídas
Número de registros que el programa de utilidad lee en la fuente de
entrada.
Número de filas insertadas (actualizadas, suprimidas, fusionadas)
Número de filas afectadas por la ejecución de la sentencia de SQL con la
tabla de destino y confirmadas en la base de datos. El mensaje indica
“insertadas”, “actualizadas”, “suprimidas” o “fusionadas” en función de la
sentencia de SQL.
Número de filas rechazadas
El número de filas rechazadas (por el programa de utilidad o por DB2).

Si sólo hay un aviso o error y el error se debe a que no se ha podido procesar


ningún registro de entrada, el mandato emite sólo ese mensaje de error y no
muestra el resumen de filas leídas, rechazadas, etc. Por ejemplo:
INGEST FROM FILE bad_file.del FORMAT DELIMITED
($field1 INTEGER EXTERNAL, $field2 CHAR)
INSERT INTO my_table VALUES($field1, $field2)

SQL2036N La vía de acceso para el archivo o dispositivo "bad_file.del" no es válida.

Una vez que el mandato INGEST empieza a leer registros, si se detectan una o
varias condiciones de aviso o error, el mandato emite mensajes, junto con el
resumen de filas leídas, saltadas, etc., y un resumen del número de avisos y
errores. Observe este ejemplo, en el que se intentan insertar dos claves duplicadas:
INGEST FROM FILE my_table1.del, my_table2.del FORMAT DELIMITED
( $field1 integer external, $field2 char(32) )
INSERT INTO my_table VALUES($field1, $field2)

SQL2905I Se ha producido el siguiente error mientras se emitía la sentencia de SQL "INSERT" en


la tabla "ALVEYWD.MY_TABLE" utilizando datos de la línea "6" del archivo de entrada "my_table1.del".

SQL0803N Uno o varios valores de la sentencia INSERT, la sentencia UPDATE o la actualización de


clave foránea producida por una sentencia DELETE no son válidos porque la clave primaria, la
restricción exclusiva o el índice exclusivo identificado por "1" impide que la tabla "ALVEYWD.MY_TABLE"

Capítulo 5. mandatos CLP 343


INGEST

tenga valores duplicados para la clave de índice. SQLSTATE=23505

SQL2905I Se ha producido el siguiente error mientras se emitía la sentencia de SQL


"INSERT" en la tabla "ALVEYWD.MY_TABLE" utilizando datos de la línea "9" del archivo
de entrada "my_table2.del".

SQL0803N Uno o varios valores de la sentencia INSERT, la sentencia UPDATE o la


actualización de clave foránea producida por una sentencia DELETE no son válidos
porque la clave primaria, la restricción exclusiva o el índice exclusivo identificado
por "1" impide que la tabla "ALVEYWD.MY_TABLE" tenga valores duplicados para la clave
de índice. SQLSTATE=23505

Número de filas leídas = 6


Número de filas insertadas = 4
Número de filas rechazadas = 2
Número de filas confirmadas = 4

SQL2902I El programa de utilidad Ingest ha finalizado satisfactoriamente


en la fecha y hora "11/02/2011 12:34:56.123456".
Número de errores: 2. Número de avisos: 0.

Si se especifica el parámetro MESSAGES, la mayoría de los mensajes se graba en


dicho archivo, excepto si se especifica en la descripción de ese parámetro.

Nombres de conexiones y archivos

Las metavariables nombre-archivo y nombre-conexión especifican un nombre de


archivo o conexión que sigue la sintaxis del sistema operativo. Los nombres de
archivo o conexión especificados en el mandato INGEST que contengan caracteres
que no sean los siguientes deben especificarse entre comillas simples:
v Alfanuméricos
v Carácter de subrayado (_)
v Guión (-)
v Barra inclinada (/) o barra inclinada invertida (\)
v Punto (.)

Las comillas deben englobar todo el nombre. Por ejemplo, si un nombre de archivo
contiene el signo igual (=), especifique:
’dir1/dir2/my=file’

en lugar de
dir1/dir2/’my=file’

Series y caracteres

La serie de metavariables especifica cualquier constante de serie de caracteres, lo


que incluye:
v Una secuencia de caracteres que empieza y termina con un delimitador de serie
que es un apóstrofo (').
v Una constante hexadecimal: X seguido de una secuencia de caracteres
hexadecimales que empieza y termina por un apóstrofo.
v Constante de tipo serie Unicode: U& seguido de una secuencia de caracteres que
empieza y termina por un apóstrofo y que está seguida opcionalmente de la
cláusula UESCAPE.
v Una constante de tipo serie gráfica: G o N seguido de una secuencia de
caracteres de doble byte que empieza y termina por un apóstrofo.
v Una constante de tipo serie gráfica hexadecimal: GX seguido de una secuencia
de caracteres hexadecimales que empieza y termina por un apóstrofo.

344 Consulta de mandatos


INGEST

v Una constante de tipo serie gráfica UCS-2: UX seguido de una secuencia de


caracteres hexadecimales que empieza y termina por un apóstrofo.

La metavariable de carácter especifica una constante de tipo serie de caracteres


que tiene una longitud de un byte. Ejemplos de esto son ’A’ y X’30’.

Si la serie contiene el carácter delimitador, debe doblarse dentro de la serie. Por


ejemplo, si la serie es "don’t know" y el carácter de delimitación que es una
comilla simple, especifique ’don’’t know’. Ejemplos de esto son ’Esto es una
serie’, X’303132’ y U&’caracteres Unicode’.

Lista de definiciones de campos por omisión

Cuando se dan todas las circunstancias siguientes, puede omitir la lista de


definiciones de campos:
v El formato está delimitado.
v La sentencia de SQL es INSERT.
v La cláusula VALUES se omite de la sentencia INSERT.

La lista de definiciones de campos adopta por omisión los valores siguientes:


v Si una lista de columnas sucede al nombre de tabla en la sentencia INSERT, hay
un campo por cada columna de la lista.
v Si la sentencia INSERT omite la lista de columnas y no existe ninguna columna
oculta implícitamente, entonces existe un campo para cada columna en la tabla.
v Si la sentencia INSERT omite la lista de columnas y existen columnas ocultas
implícitamente, entonces debe especificar explícitamente si las columnas ocultas
implícitamente han de incluirse o no. Utilice la variable de registro
DB2_DMU_DEFAULT o las palabras clave IMPLICITLYHIDDENINCLUDE o
IMPLICITLYHIDDENMISSING para especificar si han de incluirse las columnas
ocultas implícitamente.
v Cada campo tiene el mismo nombre que la columna correspondiente de la tabla,
con un signo de dólar $ como prefijo.
v Cada campo tiene el mismo tipo y longitud de datos (o precisión y escala) que
la columna correspondiente de la tabla. Los campos numéricos (entero, decimal,
etc.) tienen por omisión el formato EXTERNAL. Los campos
DB2SECURITYLABEL tienen por omisión el formato STRING.

En la Tabla 21 en la página 346 se muestran los valores por omisión que tienen las
listas de campos, columnas y valores por cada combinación posible de omisión o
inclusión de dichas listas.

Capítulo 5. mandatos CLP 345


INGEST

Tabla 21. Combinaciones posibles cuando se especifica o se omite la lista de definiciones


de campos
¿Se ha
especificado ¿Se ha
la lista de especificado la ¿Se ha especificado
definiciones lista de la cláusula
de campos? columnas? VALUES? Valores por omisión
no no no La lista de campos y la lista de
columnas toman por omisión todas
las columnas. La lista de valores
toma por omisión la lista de campos.
Nota: Si la tabla contiene columnas
ocultas implícitamente, debe
especificar explícitamente si las
columnas ocultas implícitamente han
de incluirse o no utilizando la
variable de registro
DB2_DMU_DEFAULT o las palabras
clave
IMPLICITLYHIDDENINCLUDE o
IMPLICITLYHIDDENMISSING.
no no sí No permitido
no sí no Las listas de campos y valores
toman como valor por omisión la
lista de columnas especificada.
no sí sí No permitido
sí no no La lista de columnas toma por
omisión todas las columnas.

La lista de valores toma como valor


por omisión la lista de campos
especificada por el usuario.
Notas:
1. El número de campos debe ser
igual al número de columnas. De
lo contrario, se producirá un
error.
2. Si la tabla contiene columnas
ocultas implícitamente, debe
especificar explícitamente si las
columnas ocultas implícitamente
han de incluirse o no utilizando
la variable de registro
DB2_DMU_DEFAULT o las
palabras clave
IMPLICITLYHIDDENINCLUDE
o
IMPLICITLYHIDDENMISSING.

346 Consulta de mandatos


INGEST

Tabla 21. Combinaciones posibles cuando se especifica o se omite la lista de definiciones


de campos (continuación)
¿Se ha
especificado ¿Se ha
la lista de especificado la ¿Se ha especificado
definiciones lista de la cláusula
de campos? columnas? VALUES? Valores por omisión
sí no sí La lista de columnas toma por
omisión todas las columnas.
Nota: Si la tabla contiene columnas
ocultas implícitamente, debe
especificar explícitamente si las
columnas ocultas implícitamente han
de incluirse o no utilizando la
variable de registro
DB2_DMU_DEFAULT o las palabras
clave
IMPLICITLYHIDDENINCLUDE o
IMPLICITLYHIDDENMISSING.
sí sí no La lista de valores toma como valor
por omisión la lista de campos
especificada por el usuario.
Nota: El número de campos debe
ser el mismo que el número de
columnas. De lo contrario, se
producirá un error.
sí sí sí No hay valores por omisión

Reglas y valores por omisión para las longitudes de campo

Las longitudes de campo especificadas en los tipos de campo están en bytes y


deben estar entre 1 y 32.767, ambos inclusive.

En las tablas siguientes se muestra la longitud de un campo bajo todas las


combinaciones de formato de datos de entrada, tipo de campo y si se ha
especificado la longitud y la posición de finalización. El valor de celda la longitud
especificada significa que la longitud del campo se ha especificado de forma
explícita; por ejemplo, la longitud que puede tener "INTEGER EXTERNAL". No
tiene la misma precisión que algunos tipos numéricos. El valor de célula n/a
significa que no se aplica o no se permite.
Tabla 22. Longitudes de campos para el formato DELIMITED.

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de
la tabla.
El tipo de campo omite la El tipo de campo especifica
longitud (o formato de fecha la longitud (o formato de
Tipo de campo y hora) 1 fecha y hora) 1
CHARACTER 2552 la longitud especificada
2
SMALLINT , INTEGER, 255 la longitud especificada
BIGINT EXTERNAL
DECIMAL(p,s) EXTERNAL 2552 la longitud especificada
(el valor por omisión para
(p,s) es (5,0))

Capítulo 5. mandatos CLP 347


INGEST

Tabla 22. Longitudes de campos para el formato DELIMITED (continuación).

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de
la tabla.
El tipo de campo omite la El tipo de campo especifica
longitud (o formato de fecha la longitud (o formato de
Tipo de campo y hora) 1 fecha y hora) 1
DECFLOAT(16 o 34) 2552 la longitud especificada
EXTERNAL
REAL EXTERNAL 2552 la longitud especificada
2
FLOAT o DOUBLE 255 la longitud especificada
EXTERNAL
DATE v date_compat desactivado: v date_compat desactivado:
longitud del formato por longitud del formato por
omisión de longitud omisión de longitud
máxima para una fecha máxima para una fecha
(10) (10)
v date_compat activado: v date_compat activado:
longitud del formato por longitud del formato por
omisión de longitud omisión de longitud
máxima para una máxima para una
indicación de fecha y hora indicación de fecha y hora
(32) (32)
TIME longitud de formato por longitud de formato por
omisión de longitud máxima omisión de longitud máxima
(8) (8)
TIMESTAMP(p) longitud de formato por longitud de formato por
(el valor por omisión para p omisión de longitud máxima omisión de longitud máxima
es 6) (32) (32)
DB2SECURITYLABEL con el 2552 la longitud especificada
modificador NAME
DB2SECURITYLABEL con el 2552 la longitud especificada
modificador STRING
1
En el formato delimitado, la longitud de campo significa la longitud en la que el
programa de utilidad trunca los datos de campo si se supera esa longitud. El truncamiento
se produce tras aplicar la opción de ajuste. Si el truncamiento provoca una pérdida de
caracteres que no están en blanco, el programa de utilidad emitirá un aviso.
2
En el formato delimitado, los campos de caracteres y numéricos que se especifican en
ASCII y que omiten la longitud tienen una longitud por omisión de 255 bytes. Si precisa
una longitud superior, especifique una longitud explícita en el tipo de campo.

348 Consulta de mandatos


INGEST

Tabla 23. Longitudes de campos para el formato POSITIONAL.

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de la tabla.
El tipo de campo El tipo de campo
El tipo de campo El tipo de campo omite la longitud (o especifica la
omite la longitud (o especifica la formato de longitud (o formato
formato de longitud (o formato fecha/hora), de fecha/hora) y
fecha/hora), de fecha/hora), POSITION POSITION
POSITION omite la POSITION omite la especifica la especifica la
Tipo de campo posición de final posición de final posición de final posición de final
CHARACTER n/a3 la longitud (fin - inicio + 1) la longitud
especificada especificada menor
y (fin - inicio + 1) 7
SMALLINT (binario) 2 n/a4 Si (fin -inicio +1) es n/a4
2, 4 u 8, úselo. De lo
contrario, se
utilizará la longitud
de tipo binario. Si
hay algún conflicto,
se emitirá un aviso.5
INTEGER (binario) 4 n/a4 Si (fin - inicio + 1) es n/a4
2, 4 u 8, úselo. De lo
contrario, se
utilizará la longitud
de tipo binario. Si
hay algún conflicto,
se emitirá un aviso.5
BIGINT (binario) 8 n/a4 Si (fin - inicio + 1) es n/a4
2, 4 u 8, úselo. De lo
contrario, se
utilizará la longitud
de tipo binario. Si
hay algún conflicto,
se emitirá un aviso.5
SMALLINT, INTEGER, n/a3 la longitud (fin - inicio + 1), que la longitud
BIGINT EXTERNAL especificada, que debe ser <= 50 especificada menor
debe ser <= 50 y (fin - inicio + 1) 7
DECIMAL(p,s) PACKED (p+2)/2 n/a4 Utilice (p+2)/2. Si n/a4
(el valor por omisión hay conflictos con la
para (p,s) es (5,0)) posición de fin, se
emitirá un aviso.5
DECIMAL(p,s) ZONED p n/a4 Sea preciso. Si hay n/a4
(el valor por omisión algún conflicto con
para (p,s) es (5,0)) la posición de fin se
emitirá un aviso.5
DECIMAL(p,s) n/a3 la longitud (fin - inicio + 1) la longitud
EXTERNAL (el valor por especificada especificada menor
omisión para (p,s) es y (fin - inicio + 1) 7
(5,0))
DECFLOAT(16) (binario) 8 n/a4 Utilice 8. Si hay n/a4
algún conflicto con
la posición de fin se
emitirá un aviso.5

Capítulo 5. mandatos CLP 349


INGEST

Tabla 23. Longitudes de campos para el formato POSITIONAL (continuación).

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de la tabla.
El tipo de campo El tipo de campo
El tipo de campo El tipo de campo omite la longitud (o especifica la
omite la longitud (o especifica la formato de longitud (o formato
formato de longitud (o formato fecha/hora), de fecha/hora) y
fecha/hora), de fecha/hora), POSITION POSITION
POSITION omite la POSITION omite la especifica la especifica la
Tipo de campo posición de final posición de final posición de final posición de final
DECFLOAT(34) (binario) 16 n/a4 Utilice 16. Si hay n/a4
algún conflicto con
la posición de fin se
emitirá un aviso.5
DECFLOAT(16 o 34) n/a3 la longitud (fin - inicio + 1) la longitud
EXTERNAL especificada especificada menor
y (fin - inicio + 1) 7
REAL (binario) 4 n/a4 Utilice 4. Si hay n/a4
algún conflicto con
la posición de fin se
emitirá un aviso.5
REAL EXTERNAL n/a3 la longitud (fin - inicio + 1) la longitud
especificada especificada menor
y (fin - inicio + 1) 7
FLOAT o DOUBLE 8 n/a4 Utilice 8. Si hay n/a4
(binario) algún conflicto con
la posición de fin se
emitirá un aviso.5
FLOAT o DOUBLE n/a3 la longitud (fin - inicio + 1) la longitud
EXTERNAL especificada especificada menor
y (fin - inicio + 1) 7
DATE v date_compat longitud de serie de v date_compat Si (fin - inicio + 1) es
desactivado: formato, que debe desactivado: (fin - mayor o igual que
longitud del formato ser >= 1 inicio + 1), que la longitud de la
por omisión de debe ser >= 8 y serie de formato,
longitud máxima <= 10 utilice ese valor. En
para una fecha (10) caso contrario, (fin -
v date_compat
inicio + 1) debe ser
v date_compat activado: (fin -
mayor o igual que
activado: longitud inicio + 1), que
la longitud del valor
del formato por debe ser >= 19 y
más corto que se
omisión de longitud <= 32
corresponda con la
máxima para una
serie de formato.6
TIMESTAMP(0) (19)
TIME longitud de formato longitud de serie de (fin - inicio + 1), que Si (fin - inicio + 1) es
por omisión de formato, que debe debe ser >= 4 y <= mayor o igual que
longitud máxima (8) ser >= 1 8 la longitud de la
serie de formato,
utilice ese valor. En
caso contrario, (fin -
inicio + 1) debe ser
mayor o igual que
la longitud del valor
más corto que se
corresponda con la
serie de formato.6

350 Consulta de mandatos


INGEST

Tabla 23. Longitudes de campos para el formato POSITIONAL (continuación).

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de la tabla.
El tipo de campo El tipo de campo
El tipo de campo El tipo de campo omite la longitud (o especifica la
omite la longitud (o especifica la formato de longitud (o formato
formato de longitud (o formato fecha/hora), de fecha/hora) y
fecha/hora), de fecha/hora), POSITION POSITION
POSITION omite la POSITION omite la especifica la especifica la
Tipo de campo posición de final posición de final posición de final posición de final
TIMESTAMP(p) longitud del formato longitud de serie de (fin - inicio + 1), que Si (fin - inicio + 1) es
(el valor por omisión por omisión (Si p = 0, formato, que debe debe ser >= 19 y <= mayor o igual que
para p es 6) entonces 19. De lo ser >= 1 32 la longitud de la
contrario, 20 + p.) serie de formato,
utilice ese valor. En
caso contrario, (fin -
inicio + 1) debe ser
mayor o igual que
la longitud del valor
más corto que se
corresponda con la
serie de formato.6
DB2SECURITYLABEL n/a3 la longitud (fin-inicio+1) la longitud
(binario) especificada especificada menor
y (fin - inicio + 1) 7
DB2SECURITYLABEL n/a3 la longitud (fin-inicio+1) la longitud
con el modificador especificada especificada menor
NAME y (fin - inicio + 1) 7
DB2SECURITYLABEL n/a3 la longitud (fin-inicio+1) la longitud
con el modificador especificada especificada menor
STRING y (fin - inicio + 1) 7
3
Estos casos (omisión de formato posicional, longitud y posición final) no están permitidos porque el programa de
utilidad no puede determinar la longitud supuesta del campo y no hay ningún valor por omisión adecuado.
4
Estos casos (formato posicional, campo binario numérico, longitud especificada y posición final omitida) no están
permitidos porque con los tipos numéricos binarios, la longitud está implícita en el tipo binario y la sintaxis no
permite que se especifique una longitud de campo explícita en bytes.
5
Los diversos programas de utilidad gestionan los conflictos entre el tipo binario numérico especificado y la
longitud especificada en el parámetro POSITION tal como se muestra en la Tabla 24 en la página 352.
6
Los diversos programas de utilidad gestionan los conflictos entre la longitud de serie de formato de fecha/hora y
la longitud especificada en el parámetro POSITION tal como se muestra en la Tabla 25 en la página 352.
7
Es estos casos (se ha especificado la longitud y la posición final pero entran en conflicto), el programa de utilidad
ingest emite un aviso y utiliza la longitud especificada menor y el valor de (fin - inicio + 1).

Capítulo 5. mandatos CLP 351


INGEST

Tabla 24. Conflictos entre tipo binario numérico y longitud especificada.

La fila inferior de esta tabla es una celda distribuida que contiene notas a pie de página de
la tabla.
Tipo de campo Carga1 Ingest
SMALLINT, INTEGER, Si (fin - inicio + 1) es 2, 4 u 8, Si (fin - inicio + 1) es 2, 4 u 8,
BIGINT se utiliza esa longitud sin se utiliza esa longitud y se
avisos ni errores. De lo emite un aviso. De lo
contrario, se emite un aviso y contrario, se utilizará la
se utiliza el valor NULL o se longitud del tipo binario y se
rechaza la fila. emitirá un aviso.
DECIMAL Se emite el error SQL3123W Se utilizará la longitud del
y se rechaza la fila. tipo binario y se emitirá un
aviso.
REAL,FLOAT, DECFLOAT Se utilizará la longitud de Se utilizará la longitud del
tipo binario. No se emitirá tipo binario y se emitirá un
ningún aviso ni error. aviso.
1
La importación no soporta tipos numéricos binarios (MODIFIED BY binarynumerics).

Tabla 25. Conflictos entre longitud de serie de formato de fecha/hora y longitud especificada
Conflicto Importar/Cargar Ingest
(fin - inicio + 1) es mayor o Utilice (fin - inicio + 1). No Utilice (fin - inicio + 1). No
igual que la longitud de la hay avisos ni errores. hay avisos ni errores.
serie de formato.
(fin - inicio + 1) es menor que Se emite un error. Se emite un error.
la longitud de la serie de
formato.

Cómo el programa de utilidad ingest determina las longitudes de


los campos

El algoritmo para determinar la longitud de campo es el siguiente:


1. Se determina la longitud del campo tal como aparece en los datos de entrada:
v Si el formato es DELIMITED:
– Se aplica la opción de ajuste especificada o por omisión. (Para campos
CHAR, el valor por omisión es TRIM. Para todos los demás tipos de
campos no binarios, el programa de utilidad ingest siempre ajusta los
espacios en blanco iniciales y finales.)
– Si no se especifica ENCLOSED BY, la longitud de los datos será el número de
bytes restantes en el campo.
– Si se especifica ENCLOSED BY, la longitud de los datos será el número de
bytes entre los delimitadores de la serie (después de convertir los
delimitadores dobles de dentro de la serie en delimitadores simples).
v Si el formato es POSITIONAL:
– Se aplica la opción de ajuste especificada o por omisión. (Para campos
CHAR, el valor por omisión es NOTRIM. Para todos los demás tipos de
campos no binarios, el programa de utilidad ingest siempre ajusta los
espacios en blanco iniciales y finales.)
2. Si la longitud determinada en el paso 1 es mayor que la longitud de campo
indicada en el apartado “Reglas y valores por omisión para las longitudes de
campo” en la página 347:

352 Consulta de mandatos


INGEST

v Para campos distintos de DATE, TIME o TIMESTAMP, se truncan los datos a


la longitud del campo. Si se truncan caracteres que no son espacios en
blanco, se emite un aviso.
v Para campos DATE, TIME y TIMESTAMP, se emite un error.
3. Si la sentencia de SQL establece una columna en el valor del campo y la
columna es demasiado larga o está fuera de rango, DB2 emite un mensaje de
error y rechaza la fila.

Nota: Esto sólo puede suceder en una sentencia INSERT, UPDATE o MERGE.
En las tablas siguientes se muestran algunos ejemplos. En estas tablas, la tilde
(~) implica un espacio en blanco.
Tabla 26. FORMAT DELIMITED BY '|'
Definición de campo Campo de entrada Valor de campo final
CHAR TRIM |~ABC~| ABC
CHAR NOTRIM |~ABC~| ~ABC~
CHAR OPTIONALLY |~"ABC"~| ABC
ENCLOSED BY '"'
CHAR OPTIONALLY |~"~ABC~"~| ~ABC~
ENCLOSED BY '"'
CHAR NOTRIM |"~ABC~"| ~ABC~
OPTIONALLY ENCLOSED
BY '"'
CHAR NOTRIM |~"ABC"~| ~"ABC"~
OPTIONALLY ENCLOSED
BY '"'
CHAR(1) TRIM |~ABC~| A (y aviso porque los
caracteres que no son blancos
se han ajustado)
CHAR(1) NOTRIM |~ABC~| ~ (y aviso porque los
caracteres que no son blancos
se han ajustado)
CHAR(1) OPTIONALLY |~ABC~| A (y aviso porque los
ENCLOSED BY '"' caracteres que no son blancos
se han ajustado)
CHAR(6) TRIM |~ABC~| ABC
CHAR(6) NOTRIM |~ABC~| ~ABC~
CHAR(6) OPTIONALLY |~"ABC"~| ABC
ENCLOSED BY '"'
CHAR(6) OPTIONALLY |~"~ABC~"~| ~ABC~
ENCLOSED BY '"
INTEGER EXTERNAL |~12345~| 12345
INTEGER EXTERNAL(3) |~12345~| 123 (y aviso porque los
caracteres que no son blancos
se han ajustado)
INTEGER EXTERNAL(9) |~12345~| 12345

Tabla 27. FORMAT POSITIONAL


Definición de campo Campo de entrada Valor de campo final
POSITION(1:5) CHAR TRIM ~ABC~ ABC

Capítulo 5. mandatos CLP 353


INGEST

Tabla 27. FORMAT POSITIONAL (continuación)


Definición de campo Campo de entrada Valor de campo final
POSITION(1:5) CHAR ~ABC~ ~ABC~
NOTRIM
POSITION(1:5) CHAR(3) ABC A (y aviso porque la posición
TRIM final entra en conflicto con la
longitud)
POSITION(1:5) CHAR(5) ~ABC~ ~ABC~
NOTRIM
POSITION(1:5) CHAR(5) ~ABC~ ABC
TRIM
POSITION(1:5) CHAR(7) ~ABC~ ~ABC~ (y aviso porque la
NOTRIM posición final entra en
conflicto con la longitud)
POSITION(1:7) INTEGER ~12345~ 12345
EXTERNAL
POSITION(1:7) INTEGER 123 123 (y aviso porque la
EXTERNAL(3) posición final entra en
conflicto con la longitud)
POSITION(1:7) INTEGER ~12345~ 12345 (y aviso porque la
EXTERNAL(9) posición final entra en
conflicto con la longitud)

Manipulación de datos numéricos no válidos

En general, cuando los datos numéricos se especifican como serie de caracteres y


los datos no se pueden convertir en números o están fuera de rango para el tipo
de campo, el programa de utilidad ingest rechaza el registro y emite un error. Se
trata de un comportamiento distinto al de los programas de utilidad de
importación y carga, que manejan estos errores como se indica a continuación:
v Para todos los tipos numéricos, si los datos no se pueden convertir al tipo de la
columna (por ejemplo, "ABC" en un campo de enteros):
– Si la columna puede contener nulos, los programas de utilidad de
importación y carga sustituyen el valor por NULL y emiten un aviso.
– Si la columna no puede contener nulos, los programas de utilidad de
importación y carga rechazan el registro y emiten un error.
v Para todos los tipos numéricos excepto DECIMAL, si los datos están fuera de
rango:
– Si la columna puede contener nulos, los programas de utilidad de
importación y carga sustituyen el valor por NULL y emiten un aviso.
– Si la columna no puede contener nulos, los programas de utilidad de
importación y carga rechazan el registro y emiten un error.
v Para los campos DECIMAL, si los datos están fuera de rango, los programas de
utilidad de importación y carga rechazan el registro y emiten un error.

Notas acerca de la cláusula FORMAT


v La prioridad para los delimitadores es la misma que para el programa de
utilidad de carga: registro, carácter, campo. Los programas de utilidad de
importación y carga también admiten el modificador de tipo de archivo
delprioritychar, que cambia la prioridad por carácter, registro, campo, pero el
programa de utilidad ingest no lo admite.

354 Consulta de mandatos


INGEST

v Cuando se especifican modificadores en un campo, deben especificarse en todos


los campos que tengan un tipo similar. Por ejemplo, si un campo decimal
especifica RADIX POINT, debe especificarse el mismo carácter RADIX POINT en
todos los demás campos de tipo INTEGER, DECIMAL, DECLFOAT y FLOAT.
v Para los campos de tipo carácter, las diversas opciones TRIM especifican si el
programa de utilidad ingest elimina los espacios en blanco iniciales o finales.
Para todos los demás tipos de campos no binarios (por ejemplo, INTEGER
EXTERNAL), el programa de utilidad ingest siempre ajusta los espacios en
blanco iniciales y finales.
v Si el formato es DELIMITED o si el formato es POSITIONAL y se omite el
parámetro RECORDLEN:
– Si un registro contiene menos campos que los definidos en el formato, el
programa de utilidad ingest considera los campos que faltan como NULL.
– Si un registro contiene campos adicionales, el programa de utilidad ingest los
pasa por alto.
v Si el formato es POSITIONAL:
– Si se especifica el parámetro RECORDLEN y el último registro es demasiado
corto, el programa de utilidad ingest emite un mensaje de error y rechaza el
registro.
– Si hay datos fuera de las posiciones de campo especificadas, el programa de
utilidad ingest los ignora. Por ejemplo, si el campo especifica dos campos en
POSITION(1:10) y POSITION(21:30), el programa de utilidad ingest pasa por
alto los datos de las posiciones 11:20 y cualquier dato más allá de la posición
30 hasta el final del registro.

Sentencias de SQL en el mandato INGEST


v El programa de utilidad ingest admite los valores siguientes en la cláusula
PERIOD:
– Constantes
– registros especiales

Nota: Solamente los registros especiales siguientes afectan la ejecución de la


sentencia de SQL en el mandato INGEST:
- CURRENT SCHEMA
- CURRENT TEMPORAL SYSTEM_TIME
- CURRENT TEMPORAL BUSINESS_TIME
– Funciones escalares cuyos argumentos sean operandos admitidos (aunque no
pueden utilizarse invocaciones de funciones anidadas y funciones definidas
por el usuario).
– Especificaciones CAST, en las que el operando de conversión de tipo de datos
sea un operando admitido que utilice operadores y operandos aritméticos.
– Expresiones que utilizan operadores y operandos aritméticos.
También puede especificar un nombre de campo, que el programa de utilidad
convierte en un marcador de parámetro.
v Existen algunas otras consideraciones para la ingestión en una tabla temporal:
– Si se establece el registro especial CURRENT TEMPORAL SYSTEM_TIME, no
se puede realizar una operación de ingestión en una tabla temporal de
período del sistema ni en una tabla bitemporal.
– Si se establece el registro especial CURRENT TEMPORAL BUSINESS_TIME,
se puede realizar una operación de ingestión en una tabla temporal de tiempo

Capítulo 5. mandatos CLP 355


INGEST

empresarial ni en una tabla bitemporal (deben tenerse en cuenta las demás


restricciones de las tablas temporales de tiempo del sistema).
– No se puede utilizar la operación REPLACE o DELETE en una tabla temporal
de período del sistema ni en una tabla bitemporal.
– El programa de utilidad ingest no puede insertar valores para el período
SYSTEM_TIME en una tabla temporal de período del sistema.
v Se presupone que las series de las sentencias de SQL están en la página de
códigos de la aplicación.
v Los nombres de columnas que empiezan por un signo de dólar ($) deben
especificarse como identificadores delimitados de SQL (entre comillas dobles)
para poder distinguirlos de los nombres de campo.
v En la mayoría de los casos, después de convertir los nombres de campo en
marcadores de parámetro y de vincular valores para los campos, el programa de
utilidad ingest pasa estas sentencias tal cual a DB2. Por tanto, están sujetas a las
mismas restricciones. Por ejemplo:
– Los campos se vinculan según su tipo. Por tanto, sólo pueden utilizarse
cuando se permite un valor del tipo especificado. Por ejemplo, los campos de
tipo DB2SECURITYLABEL sólo pueden utilizarse cuando se permite una
etiqueta de seguridad.
– Si la sentencia INSERT omite la lista de columnas pero especifica la lista
VALUES, la lista VALUES debe contener un elemento para cada columna. Si
la tabla contiene columnas ocultas implícitamente, entonces debe especificar
explícitamente si han de incluirse o no las columnas ocultas implícitamente.
Utilice la variable de registro DB2_DMU_DEFAULT o las palabras clave
IMPLICITLYHIDDENINCLUDE o IMPLICITLYHIDDENMISSING para
especificar si han de incluirse las columnas ocultas implícitamente.
v El programa de utilidad ingest emite un error y finaliza el mandato INGEST si se
da cualquier de las condiciones siguientes:
– Si la sentencia de SQL especificada en el mandato no hace referencia a ningún
campo.
– La sentencia de SQL es DELETE o UPDATE y no tiene ninguna cláusula
WHERE, o la cláusula WHERE no hace referencia a ningún campo.
– La sentencia de SQL es MERGE y la cláusula ON no hace referencia a ningún
campo.
v El nivel de aislamiento por omisión es la estabilidad de cursor (CS). Esto puede
alterarse temporalmente mediante la especificación de la cláusula WITH en la
sentencia de SQL (excepto en INSERT), o mediante el establecimiento de la
palabra clave IsolationLevel de CLI en el archivo indicado en la variable de
entorno DB2CLIINIPATH (el valor por omisión es sqllib/cfg/db2cli.ini). Sin
embargo, el establecimiento de la palabra clave IsolationLevel afecta a todas las
aplicaciones de CLI.
La sentencia MERGE
El mandato INGEST emite una sentencia MERGE una vez para cada registro
de datos de entrada, tratando el registro como una tabla de una sola fila
(que equivale al parámetro USING referencia-tabla en la sentencia MERGE de
SQL). Ocasionalmente se pueden producir diferentes resultados que la
sentencia MERGE SQL equivalente. Consideremos el ejemplo siguiente:
v La tabla SOURCE_TABLE contiene dos filas:
(1, ’source data 1’)
(2, ’source data 2’)

356 Consulta de mandatos


INGEST

v El archivo de entrada source_table.del contiene los dos mismos


registros que en SOURCE_TABLE.
v La tabla TARGET_TABLE contiene una fila:
(NULL, ’target data 1’)
La sentencia MERGE SQL es:
MERGE INTO target_table
USING (SELECT * FROM source_table) source_table
ON target_table.c1 <> source_table.c1
WHEN NOT MATCHED THEN
INSERT VALUES(source_table.c1, source_table.c2);

El mandato INGEST (que utiliza la sentencia MERGE equivalente) es:


INGEST FROM FILE source_table.del
FORMAT DELIMITED
(
$c1 INTEGER EXTERNAL,
$c2 CHAR(32)
)
MERGE INTO target_table
ON c1 <> $c1
WHEN NOT MATCHED THEN
INSERT VALUES($c1, $c2);

Siguiendo la sentencia MERGE SQL, TARGET_TABLE contiene las filas


siguientes:
(NULL, ’target data 1’)
(1, ’source data 1’)
(2, ’source data 2’)

Siguiendo el mandato INGEST, TARGET_TABLE contiene las filas


siguientes:
(NULL, ’target data 1’)
(1, ’source data 1’)
El motivo por el cual el mandato INGEST genera menos filas es que una vez
que el mandato INGEST procesa el primer registro de datos de entrada, la
tabla de destino contiene las dos filas que se mostraban anteriormente. A
partir de este punto, la cláusula ON tiene una fila coincidente, que
significa que la sentencia INSERT de la cláusula WHEN NOT MATCHED
no se vuelve a procesar.
Fíjese que este ejemplo no ofrece un uso común de la sentencia MERGE.
Cuando la sentencia MERGE tiene el formato más común de actualizar o
insertar filas en base a las claves coincidentes, la sentencia MERGE SQL y
el mandato INGEST generarán los mismos resultados.
La sentencia REPLACE
REPLACE es básicamente lo mismo que INSERT, con la diferencia de que
el programa de utilidad ingest emite la sentencia DELETE para suprimir
todas las filas de la tabla antes de comenzar las inserciones. Si la tabla es
grande, la operación DELETE podría tardar bastante tiempo y ocupar una
cantidad significativa de espacio de anotaciones cronológicas.
Conversión del tipo de datos
Para cada campo que el programa de utilidad ingiere, hay dos puntos en
los que se puede producir una conversión de datos:

Capítulo 5. mandatos CLP 357


INGEST

v Cuando los datos de entrada están en formato de carácter (incluidos los


números especificados en ASCII), el programa de utilidad convierte los
datos de tipo carácter al tipo del campo.
v Si el tipo de un campo es distinto de su correspondiente tipo de
columna, DB2 convierte el valor de campo desde el tipo de campo hasta
el tipo de columna.
En ambos casos, el programa de utilidad ingest y DB2 utilizan las normas
que se describen en el tema “Asignaciones y comparaciones”.
Ocasionalmente se pueden producir resultados diferentes a los de la
conversión directamente del tipo de carácter al tipo de columna.
Consideremos el ejemplo siguiente:
v El archivo de entrada especifica la serie '9.99E6143', que es un número
DECFLOAT(34) válido pero está fuera del rango de DECFLOAT(16).
v El tipo de campo es DECFLOAT(34).
v El tipo de columna es DECFLOAT(16).
En este ejemplo, el programa de utilidad ingest convierte el valor del
campo de carácter a DECFLOAT(34). A continuación, DB2 convierte
DECFLOAT(34) en DECFLOAT(16). Ello da como resultado un aviso y
produce un valor DECFLOAT infinito en la columna DECFLOAT(16).
Conversión de un campo en un tipo de datos SQL
Antes de emitir la sentencia de SQL que especifica en el mandato INGEST,
el programa de utilidad ingest convierte los nombres de campo en
marcadores de parámetros y, a continuación, emite la sentencia de SQL
dinámicamente. Para determinar los tipos de datos de los marcadores de
parámetros, DB2 utiliza las normas que se describen en el tema
“Determinación de los tipos de datos de las expresiones sin tipo”. Como
sucede con el SQL dinámico, si el tipo de datos de un campo no es obvio
por el contexto en el que se utiliza, podría obtener un error, en cuyo caso
deberá realizar una de las acciones siguientes:
v Establezca la variable de registro DB2_DEFERRED_PREPARE_SEMANTICS en
YES.
v Utilice una especificación CAST para convertir el nombre de campo en
un tipo de datos SQL.
Por ejemplo, considere el siguiente mandato INGEST:
INGEST FROM FILE my_file.txt
FORMAT DELIMITED ( $date_fld DATE )
INSERT INTO my_table(int_col) VALUES(day($date_fld));

Si ha establecido la variable de registro DB2_DEFERRED_PREPARE_SEMANTICS


en NO (el valor por omisión), cuando el programa de utilidad ingest intente
emitir la sentencia, puede que devuelva un error porque DB2 no puede
determinar qué versión de la función DAY debe utilizarse. (Esto es cierto
aunque haya definido el campo como DATE y el programa de utilidad
ingest lo vincule como DATE.)
Puede solucionar el problema convirtiendo los nombres de campo en sus
correspondientes tipos de campo, por ejemplo:
INSERT INTO my_table(int_col) VALUES( day(CAST($date_fld AS DATE)) );

358 Consulta de mandatos


INGEST

En la mayoría de los casos, también puede solucionar el problema


mediante el establecimiento de la variable del registro
DB2_DEFERRED_PREPARE_SEMANTICS=YES. Sin embargo, esto no
siempre funciona.
Como ejemplo adicional, considere el siguiente mandato INGEST:
INGEST FROM FILE my_file.txt
FORMAT DELIMITED ( $field1 DECIMAL(5,2) )
INSERT INTO my_table(dec_col) VALUES($field1 + 1);

Puesto que $field1 se añade a un entero, DB2 asigna el tipo INTEGER al


campo. Para que DB2 asigne el tipo DECIMAL(5,2), debe cambiar la
sentencia de SQL por:
INSERT INTO my_table(dec_col) VALUES(CAST($field1 AS DECIMAL(5,2)) + 1);

o
INSERT INTO my_table(dec_col) VALUES($field1 + 001.00);

Capítulo 5. mandatos CLP 359


INITIALIZE TAPE

INITIALIZE TAPE
Inicializa cintas para las operaciones de copia de seguridad y restauración en los
dispositivos de cinta de modalidad continua. Este mandato sólo está soportado en
los sistemas operativos Windows.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT

Conexión necesaria

Ninguna

Sintaxis del mandato


 INITIALIZE TAPE 
ON dispositivo USING tamaño-bloque

Parámetros del mandato


ON dispositivo
Especifica un nombre de dispositivo de cinta válido. El valor por omisión
es \\.\TAPE0.
USING tamaño-bloque
Especifica el tamaño de bloque para el dispositivo, en bytes. El dispositivo
se inicializa para utilizar el tamaño de bloque especificado, si el valor está
dentro del rango soportado de tamaños de bloque para el dispositivo.
El tamaño de almacenamiento intermedio especificado para el mandato
BACKUP DATABASE y para RESTORE DATABASE debe ser divisible por el tamaño
de bloque especificado aquí.
Si no se especifica un valor para este parámetro, el dispositivo se inicializa
para utilizar el tamaño de bloque por omisión. Si se especifica un valor de
cero, el dispositivo se inicializa para utilizar un tamaño de bloque de
longitud variable; si el dispositivo no soporta la modalidad de bloque de
longitud variable, se devuelve un error.
Al hacer copia de seguridad en cinta, el uso del tamaño de bloque variable
no está soportado actualmente. Si debe usar esta opción, asegúrese de que
tiene implantados procedimientos bien probados que le permitan hacer una
recuperación satisfactoria, utilizando imágenes de copia de seguridad que
se crearon con un tamaño de bloque variable.
Al utilizar un tamaño de bloque variable, debe especificar un tamaño de
almacenamiento intermedio de copia de seguridad que sea menor o igual
que el límite máximo de los dispositivos de cinta que esté utilizando. Para
optimizar el rendimiento, el tamaño del almacenamiento intermedio debe
ser igual al límite de tamaño de bloque máximo del dispositivo que se
utilice.

360 Consulta de mandatos


INSPECT

INSPECT
Inspecciona la integridad arquitectónica de la base de datos, comprobando si hay
coherencia de páginas en las páginas de la base de datos. El mandato INSPECT
comprueba que las estructuras de los objetos de tabla y las estructuras de los
espacios de tablas sean válidas. La validación de objetos cruzados hace que se deba
comprobar la coherencia de los datos del índice.

Ámbito

En un entorno de base de datos de una sola partición, el ámbito es esa partición de


base de datos solamente. En un entorno de base de datos particionada, es la
colección de todas las particiones lógicas definidas en db2nodes.cfg. Para tablas
particionadas, las opciones CHECK DATABASE y CHECK TABLESPACE incluyen
particiones de datos individuales o índices no particionados. La opción CHECK
TABLE también está disponible para una tabla particionada, no obstante comprobará
todas las particiones de datos e índices de una tabla, en lugar de comprobar una
sola partición de datos o índice.

Autorización

Para INSPECT CHECK, una de las autorizaciones siguientes:


v SYSADM
v DBADM
v SYSCTRL
v SYSMAINT
v Privilegio CONTROL si es una sola tabla.

Conexión necesaria

Base de datos

Sintaxis del mandato


 INSPECT Cláusula Comprobación 
Cláusula Estimación de compresión de filas

LIMIT ERROR TO DEFAULT


 
FOR ERROR STATE ALL LIMIT ERROR TO n Cláusula Nivel
ALL

 RESULTS nombre-archivo 
KEEP

 
Cláusula En partición de base de datos

Cláusula Comprobación:

CHECK 

Capítulo 5. mandatos CLP 361


INSPECT

 DATABASE
BEGIN TBSPACEID n
OBJECTID n
TABLESPACE NAME nombre-espacio-tablas
TBSPACEID n BEGIN OBJECTID n
TABLE NAME nombre-tabla
SCHEMA nombre-esquema
TBSPACEID n OBJECTID n

Cláusula Estimación de compresión de filas:

ROWCOMPESTIMATE-TABLE NAME nombre-tabla


SCHEMA nombre-esquema
TBSPACEID n OBJECTID n

Cláusula Nivel:

EXTENTMAP NORMAL DATA NORMAL BLOCKMAP NORMAL



EXTENTMAP NONE DATA NONE BLOCKMAP NONE
LOW LOW LOW

INDEX NORMAL LONG NORMAL LOB NORMAL


 
INDEX NONE LONG NONE LOB NONE
LOW LOW LOW

XML NORMAL
 Cláusula Comprobación de objetos cruzados
XML NONE
LOW

Cláusula Comprobación de objetos cruzados:

INDEXDATA

Cláusula En partición de base de datos:

ON Cláusula Lista de particiones de base de datos


ALL DBPARTITIONNUMS
EXCEPT Cláusula Lista de particiones de base de datos

Cláusula Lista de particiones de base de datos:

DBPARTITIONNUM 
DBPARTITIONNUMS

 (  partición-bd-número1 )
TO partición-bd-número2

362 Consulta de mandatos


INSPECT

Parámetros del mandato


CHECK
Especifica el proceso de comprobación.
DATABASE
Especifica toda la base de datos.
BEGIN TBSPACEID n
Especifica que comience el proceso del espacio de tablas con el número de
ID de espacio de tablas dado.
OBJECTID n
Especifica que comience el proceso de la tabla con el número de ID
de espacio de tablas dado.
TABLESPACE
NAME nombre-espacio-tablas
Especifica un solo espacio de tablas con el nombre de espacio de
tablas dado.
TBSPACEID n
Especifica un solo espacio de tablas con el número de ID de
espacio de tablas dado.
BEGIN OBJECTID n
Especifica que comience el proceso de la tabla con el número de ID
de objeto dado.
TABLE
NAME nombre-tabla
Especifica la tabla con el nombre de tabla dado.
SCHEMA nombre-esquema
Especifica el nombre de esquema para el nombre de tabla
especificado para una operación de una sola tabla.
TBSPACEID n OBJECTID n
Especifica la tabla con el número de ID de espacio de tablas y el
número de ID de objeto dados.
ROWCOMPESTIMATE
Calcula la efectividad de la compresión de filas para una tabla. También
puede especificar qué en particiones de la base de datos debe realizarse
esta operación.
Esta operación conservará el archivo de salida RESULTS
independientemente de si se ha especificado la opción KEEP.
Esta herramienta es capaz de tomar una muestra de los datos de la tabla y
crear un diccionario a partir de ella. Este diccionario puede utilizarse
entonces para probar la compresión frente a los registros contenidos en la
muestra. A partir de esta compresión de prueba, se recopilan datos, a partir
de los cuáles se realizan los siguientes cálculos:
v Porcentaje de bytes guardados de la compresión
v Porcentaje de páginas guardadas de la compresión
v Tamaño del diccionario en compresión
v Tamaño del diccionario en expansión
INSPECT insertará el diccionario creado para reunir estos cálculos de
compresión si se establece el atributo COMPRESS YES para esta tabla, y si

Capítulo 5. mandatos CLP 363


INSPECT

no existe ya un diccionario para esta tabla. INSPECT intentará insertar el


diccionario concurrente a otras aplicaciones que accedan a la tabla. La
inserción del diccionario requiere un bloqueo Alteración de tabla exclusivo
y un bloqueo Propósito sobre tabla exclusivo. INSPECT solamente insertará
un diccionario en las tablas que dan soporte a la compresión de filas de
datos. Para las tablas particionadas se crea un diccionario aparte y se
inserta en cada partición.
Al realizar un muestreo de los datos de fila de tabla y crear un diccionario
de compresión para una tabla, el mandato INSPECT solamente da soporte a
los datos de fila de tabla del objeto de tabla. Si la tabla contiene columnas
XML, no se realiza el muestreo de los datos ni se crea un diccionario de
compresión para los datos XML del objeto de almacenamiento XML de la
tabla. Utilice en su lugar la función de tabla.
La opción ROWCOMPESTIMATE no ofrece un cálculo de la compresión del
índice. Utilice en su lugar la función de tabla.
RESULTS
Especifica el archivo de salida de resultados. El archivo se grabará en la vía
de acceso del directorio de datos de diagnóstico. Si el proceso de
comprobación no encuentra ningún error, este archivo de salida de
resultados se borrará al final de la operación INSPECT. Si el proceso de
comprobación encuentra errores, este archivo de salida de resultados no se
borrará al final de la operación INSPECT.
KEEP Especifica mantener siempre el archivo de salida de resultados.
nombre-archivo
Especifica el nombre del archivo de salida de resultados. El archivo
se creará en la vía de acceso del directorio de datos de diagnóstico.
ALL DBPARTITIONNUMS
Especifica que la operación ha de realizarse en todas las particiones de
base de datos especificadas en el archivo db2nodes.cfg. Es el valor por
omisión si no se especifica una cláusula de partición de base de datos.
EXCEPT
Especifica que la operación ha de realizarse en todas las particiones de
base de datos especificadas en el archivo db2nodes.cfg, excepto en las
especificadas en la lista de particiones de base de datos.
ON DBPARTITIONNUM | ON DBPARTITIONNUMS
Realiza la operación en un conjunto de particiones de base de datos.
part-bd-núm1
Especifica un número de partición de base de datos en la lista de
particiones de base de datos.
número2-partición-bd
Especifica el segundo número de partición de base de datos, de
manera que todas las particiones de base de datos desde
partición-bd-núm-1 hasta partición-bd-núm-2 inclusive se incluyen en
la lista de particiones de base de datos.
FOR ERROR STATE ALL
Para un objeto de tabla con un estado interno que ya indique el estado del
error, la comprobación sólo informará de este estado y no explorará el
objeto. Especificar esta opción tendrá la exploración de proceso a través del
objeto aunque el estado interno ya liste el estado del error.

364 Consulta de mandatos


INSPECT

Cuando se utiliza con la opción INDEXDATA, siempre que el objeto de índice


o de datos esté en estado erróneo, no se realizará la comprobación en línea
de la coherencia de los datos de índice.
LIMIT ERROR TO n
Número de páginas erróneas para un objeto a las que el informe está
limitado. Cuando se alcanza este límite del número de páginas erróneas
para un objeto, el proceso no continuará la comprobación del resto del
objeto.
Cuando se utiliza con la opción INDEXDATA, n representa el número de
errores a los que se limita el informe durante la comprobación de la
coherencia de los datos de índice.
LIMIT ERROR TO DEFAULT
Número de páginas por omisión al que limitar los informes de errores
correspondientes a un objeto. Este valor es el tamaño de extensión del
objeto. Este parámetro es el valor por omisión.
Cuando se utiliza con la opción INDEXDATA, DEFAULT representa el número
de errores por omisión a los que se limita el informe durante la
comprobación de la coherencia de los datos de índice.
LIMIT ERROR TO ALL
No hay límite al número de páginas erróneas informadas.
Cuando se utiliza con la opción INDEXDATA, ALL representa ningún límite en
el número de errores informados durante la comprobación en línea de la
coherencia de los datos de índice.
EXTENTMAP
NORMAL
Especifica que el nivel de proceso es normal para la correlación de
extensión. Valor por omisión.
NONE
Especifica que el nivel de proceso es ninguno para la correlación
de extensión.
LOW Especifica que el nivel de proceso es bajo para la correlación de
extensión.
DATA
NORMAL
Especifica que el nivel de proceso es normal para el objeto de
datos. Valor por omisión.
NONE
Especifica que el nivel de proceso es ninguno para el objeto de
datos.
LOW Especifica que el nivel de proceso es bajo para el objeto de datos.
BLOCKMAP
NORMAL
Especifica que el nivel de proceso es normal para el objeto de
correlación de bloques. Valor por omisión.
NONE
Especifica que el nivel de proceso es ninguno para el objeto de
correlación de bloques.

Capítulo 5. mandatos CLP 365


INSPECT

LOW Especifica que el nivel de proceso es bajo para el objeto de


correlación de bloques.
INDEX
NORMAL
Especifica que el nivel de proceso es normal para el objeto de
índice. Valor por omisión.
NONE
Especifica que el nivel de proceso es ninguno para el objeto de
índice.
LOW Especifica que el nivel de proceso es bajo para el objeto de índice.
LONG
NORMAL
Especifica que el nivel de proceso es normal para el objeto largo.
Valor por omisión.
NONE
Especifica que el nivel de proceso es ninguno para el objeto largo.
LOW Especifica que el nivel de proceso es bajo para el objeto largo.
LOB
NORMAL
Especifica que el nivel de proceso es normal para el objeto LOB.
Valor por omisión.
NONE
Especifica que el nivel de proceso es ninguno para el objeto LOB.
LOW Especifica que el nivel de proceso es bajo para el objeto LOB.
XML
NORMAL
Especifica que el nivel de proceso es normal para el objeto de
columna XML. Valor por omisión. Se comprobará la existencia de
incoherencias en páginas del objeto XML. No se inspeccionarán los
datos de XML.
NONE
Especifica que el nivel de proceso es ninguno para el objeto de
columna XML. No se inspeccionará el objeto XML en absoluto.
LOW Especifica que el nivel de proceso es bajo para el objeto de
columna XML. Se comprobará la existencia de algunas
incoherencias en páginas del objeto XML. No se inspeccionarán los
datos de XML.
INDEXDATA
Se especifica para poder realizar una comprobación de la coherencia de los
datos del índice. Por omisión, la comprobación INDEXDATA no se realiza.

Ejemplos
v Para realizar una comprobación de coherencia de datos del índice que permita
acceso de lectura y grabación sobre todos los objetos, incluso el objeto
inspeccionado en este momento, emita el siguiente mandato:
inspect check table name fea3 indexdata results keep fea3high.out

366 Consulta de mandatos


INSPECT

v Para realizar una comprobación de coherencia de datos del índice que permita
acceso de lectura y grabación a todos los objetos, incluso al objeto inspeccionado
en estos momentos, ejecute:
INSPECT CHECK TABLE NAME car SCHEMA vps INDEXDATA RESULTS KEEP table1.out
v Para calcular la cantidad de espacio de almacenamiento que se ahorrará si se
comprimen los datos de una tabla denominada EMPLOYEE, ejecute:
INSPECT ROWCOMPESTIMATE TABLE NAME car SCHEMA vps RESULTS table2.out

Notas de uso
1. Para las operaciones CHECK en objetos de tabla, puede especificarse el nivel de
proceso para los objetos. El valor por omisión es el nivel NORMAL, especificando
NONE para un objeto que lo excluye. Si se especifica LOW, se creará un
subconjunto de comprobaciones que se efectúan para NORMAL.
2. Se puede especificar la opción CHECK DATABASE para empezar desde un espacio
de tablas específico o desde una tabla específica, indicando el valor de ID para
identificar el espacio de tablas o la tabla.
3. Se puede especificar la opción CHECK TABLESPACE para empezar desde una
tabla específica, indicando el valor de ID para identificar la tabla.
4. El proceso de espacios de tablas sólo afectará a los objetos que residan en el
espacio de tablas. La excepción es cuando se utiliza la opción INDEXDATA.
INDEXDATA comprobará la coherencia de los datos de índice siempre que el
objeto de índice resida en el espacio de tablas. Esto significa:
v Si el objeto de datos reside en un espacio de tablas diferente del espacio de
tablas especificado para inspeccionar donde reside el objeto de índice,
puede seguir beneficiándose de la comprobación INDEXDATA.
v Para una tabla particionada, cada índice puede residir en un espacio de
tablas diferente. Sólo los índices que residen en el espacio de tablas
especificado se beneficiarán de la comprobación de los datos de índice. Si
desea inspeccionar todos los índices para una tabla, utilice las opciones
CHECK TABLE o CHECK DATABASE.
5. El proceso de inspección en línea accederá a objetos de base de datos
utilizando la lectura no confirmada a nivel de aislamiento. El proceso
COMMIT se realizará durante el proceso INSPECT. Es aconsejable finalizar la
unidad de trabajo emitiendo COMMIT o ROLLBACK antes de invocar
INSPECT.
6. El proceso de comprobación de inspección en línea grabará los resultados de
datos de inspección no formateados en el archivo de resultados indicado. El
archivo se grabará en la vía de acceso del directorio de datos de diagnóstico.
Si el proceso de comprobación no encuentra ningún error, este archivo de
salida de resultados se borrará al final de la operación INSPECT. Si el proceso
de comprobación encuentra errores, este archivo de salida de resultados no se
borrará al final de la operación INSPECT. Después de completar el proceso de
comprobación, para ver los detalles de inspección, los datos del resultado de
la inspección se tendrán que formatear con el programa de utilidad db2inspf.
El archivo de resultados tendrá la extensión de archivo del número de
partición de base de datos.
7. En un entorno de base de datos particionada, cada partición de base de datos
generará su propio archivo de salida de resultados con la extensión
correspondiente a su número de partición de base de datos. La ubicación de
salida para el archivo de salida de resultados será la vía de acceso de
directorio de datos de diagnóstico del gestor de bases de datos. Si se

Capítulo 5. mandatos CLP 367


INSPECT

especifica el nombre de un archivo que ya existe, la operación no se procesará


y el archivo se tendrá que eliminar antes de poder especificar ese nombre de
archivo.
8. El proceso de inspección en línea normal accederá a objetos de base de datos
utilizando la lectura no confirmada a nivel de aislamiento. La inserción de un
diccionario de compresión en la tabla intentará adquirir bloqueos de
grabación. Consulte la opción ROWCOMPESTIMATE para obtener detalles sobre el
bloqueo de inserción de diccionarios. El proceso de confirmación se realizará
durante el proceso de inspección. Es aconsejable finalizar la unidad de trabajo
emitiendo COMMIT o ROLLBACK antes de iniciar la operación de inspección.
9. La opción INDEXDATA sólo examina la incoherencia lógica entre el índice y los
datos. Por lo tanto, se recomienda ejecutar primero la comprobación INDEX y
DATA por separado, para descartar cualquier corrupción física, antes de ejecutar
la comprobación INDEXDATA.
10. El mandato INSPECT, si se especifica con el parámetro INDEXDATA, realiza una
comprobación de coherencia de datos de índice mientras permite el acceso de
lectura y grabación sobre todos los objetos y tablas, incluso el que se está
inspeccionando en ese momento. La opción INSPECT INDEXDATA incluye las
siguientes inspecciones:
v la existencia de la fila de datos para una determinada entrada de índice.
v una clave para la verificación del valor de los datos.
Cuando se especifica la opción INDEXDATA:
v Por omisión, sólo se utilizarán los valores de las opciones de cláusula del
nivel especificadas explícitamente. Para cualquier opción de cláusula de
nivel que no se especifique de forma explícita, se sobregrabarán los niveles
por omisión y pasan de NORMAL a NONE. Por ejemplo, cuando INDEXDATA es la
única opción de cláusula de nivel especificada, por omisión, sólo se
realizará la comprobación de los datos de índice.
11. La opción BLOCKMAP devuelve información que indica si el espacio de tablas ha
reclamado un bloqueo para su uso después de realizar una reorganización
destinada a reclamar los bloques de tablas de clúster multidimensional (MDC)
o a insertar los bloques de tablas de clúster de tiempo (ITC) que estaban
vacíos.

368 Consulta de mandatos


LIST ACTIVE DATABASES

LIST ACTIVE DATABASES


Visualiza un subconjunto de la información listada por el mandato GET SNAPSHOT
FOR ALL DATABASES. Una base de datos activa está disponible para que se conecte y
la utilice cualquier aplicación.

Para cada base de datos activa, este mandato visualiza la información siguiente:
v Nombre de base de datos
v Número de aplicaciones actualmente conectadas a la base de datos
v Vía de acceso de base de datos.

Ámbito

Este mandato se invoca para el miembro actualmente enlazado y, por omisión, sólo
devuelve información para ese miembro. El miembro actualmente enlazado toma
como valor por omisión el sistema principal en el que se ejecuta el mandato. Si hay
varios miembros por sistema principal, el miembro actualmente enlazado es el
primer miembro enumerado en el archivo db2nodes.cfg de ese sistema principal.

Para ejecutar el mandato en un miembro que no es el miembro actualmente


enlazado, indique la opción AT MEMBER para ejecutar este mandato en un miembro
concreto o la opción GLOBAL para ejecutarlo en todos los miembros y recibir un
resultado agregado.

Para cambiar el miembro actualmente enlazado desde el que se ejecutarán los


mandatos posteriores, utilice el parámetro ATTACH_MEMBER del mandato SET CLIENT.
Debe ejecutar DETACH y luego ejecutar ATTACH otra vez sobre su aplicación para que
este valor de cliente entre en vigor.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON

Sintaxis del mandato


 LIST ACTIVE DATABASES 
AT MEMBER número-miembro
GLOBAL

Parámetros del mandato


AT MEMBER número-miembro
Especifica el miembro para el que ha de visualizarse la lista de bases de
datos activas.
GLOBAL
Devuelve una lista de bases de datos activas para todos los miembros en
un entorno de base de datos particionada o en un entorno DB2 pureScale.

Capítulo 5. mandatos CLP 369


LIST ACTIVE DATABASES

Ejemplos

El ejemplo siguiente es una salida de ejemplo del mandato LIST ACTIVE DATABASES:
Bases de datos activas

Nombre de base de datos = TEST


Aplicaciones conectadas actualmente = 0
Vía de acceso de base de datos = /home/smith/smith/NODE0000/SQL00002/

Nombre de base de datos = SAMPLE


Aplicaciones conectadas actualmente = 1
Vía de acceso de base de datos = /home/smith/smith/NODE0000/SQL00001/

Compatibilidades

Para mantener la compatibilidad con las versiones anteriores:


v DBPARTITIONNUM o NODE pueden sustituirse por MEMBER, salvo cuando la variable
de registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.

370 Consulta de mandatos


LIST APPLICATIONS

LIST APPLICATIONS
Visualiza en la salida estándar el nombre de programa de aplicación, el ID de
autorización (nombre de usuario), el descriptor de contexto de aplicación, el ID de
aplicación y el nombre de base de datos de toda las aplicaciones de base de datos
activas. Este mandato también puede visualizar opcionalmente el número de
secuencia, el estado, la hora de cambio de estado y la vía de acceso de base de
datos de una aplicación.

Ámbito

Este mandato se invoca para el miembro actualmente enlazado y, por omisión, sólo
devuelve información para ese miembro. El miembro actualmente enlazado toma
como valor por omisión el sistema principal en el que se ejecuta el mandato. Si hay
varios miembros por sistema principal, el miembro actualmente enlazado es el
primer miembro enumerado en el archivo db2nodes.cfg de ese sistema principal.

Para ejecutar el mandato en un miembro que no es el miembro actualmente


enlazado, indique la opción AT MEMBER para ejecutar este mandato en un miembro
concreto o la opción GLOBAL para ejecutarlo en todos los miembros y recibir un
resultado agregado.

Para cambiar el miembro actualmente enlazado desde el que se ejecutarán los


mandatos posteriores, utilice el parámetro ATTACH_MEMBER del mandato SET CLIENT.
Debe ejecutar DETACH y luego ejecutar ATTACH otra vez sobre su aplicación para que
este valor de cliente entre en vigor.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON

Conexión necesaria

Instancia. Para listar las aplicaciones para una instancia remota, es necesario
conectarse primero a dicha instancia.

Sintaxis del mandato


 LIST APPLICATIONS 
FOR DATABASE alias-base-datos
DB

 
AT MEMBER número-miembro SHOW DETAIL
GLOBAL

Parámetros del mandato


FOR DATABASE alias-basedatos
Se debe visualizar información para cada aplicación que esté conectada con
la base de datos especificada. No se visualiza información de nombre de

Capítulo 5. mandatos CLP 371


LIST APPLICATIONS

base de datos. Si no se especifica esta opción, el mandato visualiza la


información para cada aplicación que esté actualmente conectada con
cualquier base de datos del miembro al que está actualmente conectado el
usuario.
La información de aplicación por omisión consta de lo siguiente:
v ID de autorización
v Nombre de la aplicación
v Descriptor de contexto de aplicación
v ID de aplicación
v Nombre de base de datos
v Número de agentes
AT MEMBER número-miembro
Especifica el miembro del que deben visualizarse las aplicaciones activas.
GLOBAL Devuelve una lista de aplicaciones activas para todos los miembros en un
entorno de base de datos particionada o en un entorno DB2 pureScale.
SHOW DETAIL
Parte de la información de salida adicional incluirá:
v ID de autorización CONNECT
v Número de secuencia
v Número de miembro de coordinación
v PID o hebra de coordinador
v Status
v Hora de cambio de estado
v Nodo
v Vía de acceso de base de datos

Si se especifica esta opción, se recomienda que la salida se redirija a un archivo y


que el informe se vea con la ayuda de un editor. Puede que las líneas de salida se
acomoden cuando se visualizan en la pantalla.

Ejemplos

Para listar información detallada sobre aplicaciones conectadas a la base de datos


SAMPLE, emita:
list applications for database sample show detail

Notas de uso

El administrador de bases de datos puede utilizar la salida de este mandato como


ayuda para la determinación de problemas. Además, esta información es necesaria
si el administrador de bases de datos desea utilizar los mandatos GET SNAPSHOT o
FORCE APPLICATION en una aplicación.

Para listar las aplicaciones de una instancia remota (o de una instancia local
diferente), es necesario conectarse primero a dicha instancia. Si se especifica FOR
DATABASE cuando existe una conexión y la base de datos reside en una instancia
que difiere de la conexión actual, el mandato fallará.

LIST APPLICATIONS sólo muestra las aplicaciones de usuario mientras que LIST
APPLICATIONS SHOW DETAIL muestra todas las aplicaciones incluyendo las

372 Consulta de mandatos


LIST APPLICATIONS

aplicaciones del sistema. Los supervisores de sucesos son ejemplos de aplicaciones


del sistema. Por lo general, las aplicaciones del sistema aparecen en la salida de la
instantánea con nombres de aplicaciones que empiezan por "db2" (por ejemplo,
db2stmm, db2taskd).

Compatibilidades

Para mantener la compatibilidad con las versiones anteriores:


v DBPARTITIONNUM o NODE pueden sustituirse por MEMBER, salvo cuando la variable
de registro DB2_ENFORCE_MEMBER_SYNTAX se establece en ON.

Capítulo 5. mandatos CLP 373


LIST COMMAND OPTIONS

LIST COMMAND OPTIONS


Lista los valores actuales de las variables de entorno: DB2BQTIME, DB2DQTRY,
DB2RQTIME, DB2IQTIME, DB2OPTIONS.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 LIST COMMAND OPTIONS 

Parámetros del mandato

Ninguna

Ejemplos

A continuación se muestra un ejemplo de salida de LIST COMMAND OPTIONS:


Valores de opciones de procesador de línea de mandatos

Tiempo espera proceso fondo (segundos) (DB2BQTIME) = 1


Núm. reintentos de conexión en fondo (DB2BQTRY) = 60
Tiempo de espera (seg.) en cola peticiones (DB2RQTIME) = 5
Tiempo de espera (seg.) en cola de entrada (DB2IQTIME) = 5
Opciones de mandatos (DB2OPTIONS) =

Opción Descripción Valor actual


------ ---------------------------------------- ---------------
-a Visualizar SQLCA OFF
-c Confirmar automáticamente ON
-d Declaraciones XML OFF
-e Visualizar SQLCODE/SQLSTATE OFF
-f Leer archivo de entrada OFF
-l Anotar mandatos en archivo histórico OFF
-n Eliminar carácter de línea nueva OFF
-o Visualizar salida ON
-p Visualizar indicador entrada interactivo ON
-r Guardar salida en archivo informe OFF
-s Detener ejecución ante error de mandato OFF
-t Establ. carácter terminación sentencia OFF
-v Operación echo de mandato actual OFF
-w Visualizar mensajes aviso FETCH/SELECT ON
-z Guardar todas salidas en archivo salida OFF

374 Consulta de mandatos


LIST DATABASE DIRECTORY

LIST DATABASE DIRECTORY


Lista el contenido del directorio de bases de datos del sistema. Si se especifica una
vía de acceso, se listará el contenido del directorio de bases de datos locales.

Ámbito

Si se emite este mandato sin el parámetro ON vía-acceso, se devolverá el directorio


de bases de datos del sistema. Esta información es la misma en todas las
particiones de base de datos.

Si se especifica el parámetro ON vía-acceso, se devolverá el directorio de bases de


datos locales de dicha vía de acceso. Esta información no es la misma en todas las
particiones de base de datos.

Autorización

Ninguna

Conexión necesaria

Ninguna. Las operaciones de directorio sólo afectan al directorio local.

Sintaxis del mandato


 LIST DATABASE DIRECTORY 
DB ON vía-acceso
unidad

Parámetros del mandato


ON vía-acceso | unidad
Especifica el directorio de bases de datos locales del que se debe listar
información. Si no se especifica, se listará el contenido del directorio de
bases de datos del sistema. Observe que nombre de la instancia está
implícito en la vía de acceso. No especifique el nombre de la instancia
como parte de la vía de acceso.

Ejemplos

A continuación se muestra un ejemplo de salida para un directorio de bases de


datos del sistema:
Directorio de bases de datos del sistema

Número de entradas en directorio = 2

Entrada 1 de base de datos:


Alias de base de datos = SAMPLE
Nombre de base de datos = SAMPLE
Directorio de bases de datos local = /home/smith
Nivel release base de datos = 8.00
Comentario =
Tipo de entrada del directorio = Indirecta
Número partición base datos catálogo = 0
Nombre servidor alternativo = montero
Número puerto servidor alternativo = 29384

Entrada 2 de base de datos:

Capítulo 5. mandatos CLP 375


LIST DATABASE DIRECTORY

Alias de base de datos = TC004000


Nombre de base de datos = TC004000
Nombre nodo = PRINODE
Nivel de release base de datos = a.00
Comentario =
Tipo de entrada de directorio = LDAP
Número partición base datos catálogo = -1
Nombre nodo pasarela = PRIGW
Nombre nodo servidor alternativo =
Nombre nodo pasarela servidor alt. = ALTGW

A continuación se muestra un ejemplo de salida para un directorio de bases de


datos locales:
Directorio de la base de datos local en /u/smith

Número de entradas en directorio = 1

Entrada 1 de base de datos:

Alias de base de datos = SAMPLE


Nombre de base de datos = SAMPLE
Directorio base de datos = SQL00001
Nivel release base de datos = 8.00
Comentario =
Tipo de entrada del directorio = Inicial
Número partición base datos catálogo = 0
Número partición base de datos = 0

Estos campos se identifican del modo siguiente:


Alias de base de datos
Valor del parámetro alias al crear o catalogar la base de datos. Si no se ha
entrado un alias al catalogar la base de datos, el gestor de bases de datos
utiliza el valor del parámetro nombre-base-datos especificado al catalogar la
base de datos.
Nombre de base de datos
Valor del parámetro nombre-base-datos al catalogar la base de datos. Este
nombre es generalmente el nombre bajo el que se ha creado la base de
datos.
Directorio de bases de datos locales
Vía de acceso en la que reside la base de datos. Este campo sólo se rellena
si se ha explorado el directorio de bases de datos del sistema.
Directorio de bases de datos
Nombre del directorio donde reside la base de datos. Este campo sólo se
rellena si se ha explorado el directorio de bases de datos locales.
Nombre nodo
Nombre del nodo remoto. Este nombre corresponde al valor entrado para
el parámetro nombrenodo al catalogar la base de datos y el nodo.
Nivel release base de datos
Nivel de release del gestor de bases de datos que puede operar en la base
de datos.
Comentario
Comentarios asociados con la base de datos que se han entrado al
catalogarse ésta.
Tipo de entrada del directorio
Ubicación de la base de datos:

376 Consulta de mandatos


LIST DATABASE DIRECTORY

v Una entrada remota describe una base de datos que reside en otro nodo.
v Una entrada indirecta describe una base de datos local. Se opina que
las bases de datos que residen en el mismo nodo que el directorio de
bases de datos del sistema hacen referencia de forma indirecta a la
entrada inicial (en un directorio de bases de datos locales) y se
consideran entradas indirectas.
v Una entrada inicial indica que el directorio de bases de datos está en la
misma vía de acceso que el directorio de bases de datos locales.
v Una entrada LDAP indica que la información de ubicación de la base de
datos está almacenada en un servidor LDAP.
Todas las entradas del directorio de bases de datos del sistema son remotas
o indirectas. Todas las entradas de los directorios de bases de datos locales
se identifican en el directorio de bases de datos del sistema como entradas
indirectas.
Autentificación
Tipo de autentificación catalogado en el cliente.
Nombre principal
Especifica un nombre de principal de Kerberos totalmente calificado.
Número de partición de base de datos de catálogo
Especifica qué nodo es la partición de base de datos del catálogo. Ésta es la
partición de base de datos en la que se ha emitido el mandato CREATE
DATABASE.
Número de partición de base de datos
Especifica el número que se ha asignado en db2nodes.cfg al nodo donde se
ha emitido el mandato.
Nombre de sistema principal del servidor alternativo
Especifica el nombre de sistema principal o la dirección IP del servidor
alternativo que se deberá utilizar cuando haya un error de comunicación
en la conexión con la base de datos. Este campo sólo se muestra para el
directorio de bases de datos del sistema.
Número de puerto del servidor alternativo
Especifica el número de puerto del servidor alternativo que se deberá
utilizar cuando haya un error de comunicación en la conexión con la base
de datos. Este campo sólo se muestra para el directorio de bases de datos
del sistema.
Nombre de nodo del servidor alternativo
Si el tipo de entrada de directorio es LDAP, especifica el nombre de nodo
del servidor alternativo que se deberá utilizar cuando haya un error de
comunicación en la conexión con la base de datos.
Nombre de nodo de pasarela del servidor alternativo
Si el tipo de entrada de directorio es LDAP, especifica el nombre de nodo
de pasarela correspondiente a la pasarela alternativa que se deberá utilizar
cuando haya un error de comunicación en la conexión con la base de
datos.

Notas de uso

Independientemente del valor de las diversas variables de DB2LDAPCACHE, si utiliza


los mandatos LIST DATABASE DIRECTORY o LIST NODE DIRECTORY, la lista de entradas
de la base de datos local y del nodo se leerán desde el servidor LDAP.

Capítulo 5. mandatos CLP 377


LIST DATABASE DIRECTORY

Puede haber un máximo de ocho exploraciones del directorio de bases de datos


abiertas por proceso. Para superar esta restricción para un archivo de proceso por
lotes que emite más de ocho mandatos LIST DATABASE DIRECTORY dentro de una
sola sesión de DB2, convierta el archivo de proceso por lotes en un script de shell.
El prefijo "db2" genera una nueva sesión de DB2 para cada mandato.

378 Consulta de mandatos


LIST DATABASE PARTITION GROUPS

LIST DATABASE PARTITION GROUPS


Lista todos los grupos de particiones de base de datos asociados a la base de datos
actual.

Ámbito

Este mandato puede emitirse desde cualquier partición de base de datos que se
liste en $HOME/sqllib/db2nodes.cfg. Devuelve la misma información desde
cualquiera de estas particiones de base de datos.

Autorización

Para los catálogos de sistema SYSCAT.DBPARTITIONGROUPS y


SYSCAT.DBPARTITIONGROUPDEF, se necesita una de las autorizaciones
siguientes:
v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON
v DBADM
v Privilegio CONTROL
v Privilegio SELECT.

Conexión necesaria
Base de datos

Sintaxis del mandato


 LIST DATABASE PARTITION GROUPS 
SHOW DETAIL

Parámetros del mandato


SHOW DETAIL
Especifica que la salida debe incluir la información siguiente:
v ID de correlación de distribución
v Número de partición de base de datos
v Distintivo en uso

Ejemplos

El ejemplo siguiente es una salida de ejemplo del mandato LIST DATABASE


PARTITION GROUPS:
DATABASE PARTITION GROUP NAME
-----------------------------
IBMCATGROUP
IBMDEFAULTGROUP

2 registro(s) seleccionado(s).

El ejemplo siguiente es una salida de ejemplo del mandato LIST DATABASE


PARTITION GROUPS SHOW DETAIL:
Capítulo 5. mandatos CLP 379
LIST DATABASE PARTITION GROUPS

DATABASE PARTITION GROUP NAME PMAP_ID DATABASE PARTITION NUMBER IN_USE


------------------------------ ------- ------------------------- ------
IBMCATGROUP 0 0 Y
IBMDEFAULTGROUP 1 0 Y

2 registro(s) seleccionado(s).

Los campos se identifican del modo siguiente:


DATABASE PARTITION GROUP NAME
Nombre del grupo de particiones de base de datos. El nombre se repite
para cada partición de base de datos en el grupo de particiones de base de
datos.
PMAP_ID
ID de la correlación de distribución. El ID se repite para cada partición de
base de datos del grupo de particiones de base de datos.
DATABASE PARTITION NUMBER
Número de la partición de base de datos.
IN_USE
Uno de cuatro valores:
S El grupo de particiones de base de datos está utilizando la
partición de base de datos.
D La partición de base de datos se va a descartar del grupo de
particiones de base de datos como resultado de una operación
REDISTRIBUTE DATABASE PARTITION GROUP. Cuando se complete la
operación, la partición de base de datos no se incluirá en los
informes de LIST DATABASE PARTITION GROUPS.
A La partición de base de datos se ha añadido al grupo de
particiones de base de datos, pero no se añade todavía a la
correlación de distribución. Los contenedores para los espacios de
tablas del grupo de particiones de base de datos se han añadido en
esta partición de base de datos. El valor se cambia a Y cuando la
operación REDISTRIBUTE DATABASE PARTITION GROUP se completa
satisfactoriamente.
T La partición de base de datos se ha añadido al grupo de
particiones de base de datos, pero no se añade todavía a la
correlación de distribución. Los contenedores para los espacios de
tablas del grupo de particiones de base de datos no se han añadido
en esta partición de base de datos. Los contenedores de espacios de
tablas deben añadirse en la nueva partición de base de datos para
cada espacio de tablas del grupo de particiones de base de datos.
El valor cambia a A cuando se han añadido satisfactoriamente los
contenedores.

380 Consulta de mandatos


LIST DBPARTITIONNUMS

LIST DBPARTITIONNUMS
Lista todos los miembros o particiones de base de datos asociados a la base de
datos actual.

Ámbito

Este mandato puede emitirse desde cualquier partición o miembro de base de


datos que se liste en $HOME/sqllib/db2nodes.cfg. Devuelve la misma información
desde cualquiera de estos miembros o particiones de base de datos.

Autorización

Ninguna

Conexión necesaria

Base de datos

Sintaxis del mandato


 LIST DBPARTITIONNUMS 

Parámetros del mandato

Ninguna

Ejemplos

Ejemplo 1 - Instancia de base de datos particionada: A continuación se muestra


un ejemplo de salida del mandato LIST DBPARTITIONNUMS:
DATABASE PARTITION NUMBER
-------------------------
0
2
5
7
9

5 registro(s) seleccionado(s).

Ejemplo 2 - Instancia de DB2 pureScale: En un entorno DB2 pureScale, LIST


DBPARTITIONNUMS siempre informará de una única partición.
DATABASE PARTITION NUMBER
-------------------------
0

1 registro(s) seleccionado(s).

Capítulo 5. mandatos CLP 381


LIST DCS APPLICATIONS

LIST DCS APPLICATIONS


Visualiza información de salida estándar sobre aplicaciones que están conectadas a
bases de datos de sistema principal a través de DB2 Connect Enterprise Edition.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON

Conexión necesaria

Instancia. Para listar las aplicaciones DCS de una instancia remota, es necesario
conectarse primero a dicha instancia.

Sintaxis del mandato


 LIST DCS APPLICATIONS 
SHOW DETAIL
EXTENDED

Parámetros del mandato


LIST DCS APPLICATIONS
La información de aplicación por omisión incluye:
v ID de autorización de sistema principal (nombreusuario)
v Nombre de programa de aplicación
v Descriptor de contexto de aplicación
v ID de aplicación de salida (luwid).
SHOW DETAIL
Especifica que la salida debe incluir la información adicional siguiente:
v ID de aplicación cliente
v Número de secuencia de cliente
v Alias de base de datos de cliente
v Nombre de nodo de cliente (nombre-n)
v Nivel de release de cliente
v Página de códigos de cliente
v Número de secuencia de salida
v Nombre de base de datos de sistema principal
v Nivel de release de sistema principal.
EXTENDED
Genera un informe ampliado. Este informe incluye todos los campos que
se listan al especificar la opción SHOW DETAIL más los campos adicionales
siguientes:
v Estado de la aplicación DCS
v Hora de cambio de estado

382 Consulta de mandatos


LIST DCS APPLICATIONS

v Plataforma de cliente
v Protocolo de cliente
v Página de códigos de cliente
v ID de proceso de la aplicación cliente
v ID de juego de caracteres codificado (CCSID) de sistema principal.

Nota:
1. El campo de estado de la aplicación contiene uno de los valores siguientes:
conexión pendiente - de salida
Indica que se ha emitido la petición de conexión con una base de datos
de sistema principal y que DB2 Connect está esperando a que se
establezca la conexión.
en espera de petición
Indica que se ha establecido la conexión con la base de datos de
sistema principal y que DB2 Connect está esperando una sentencia de
SQL de la aplicación cliente.
en espera de respuesta
Indica que la sentencia de SQL se ha enviado a la base de datos de
sistema principal.
2. La hora de cambio de estado sólo se muestra si se ha activado el conmutador
UOW del Supervisor del sistema durante el proceso. De lo contrario, aparece No
recopilado.

Notas de uso

El administrador de bases de datos puede utilizar este mandato para comparar las
conexiones de aplicación cliente a la pasarela con las conexiones de sistema
principal correspondientes de la pasarela.

El administrador de bases de datos también puede utilizar información de ID de


agente para forzar a aplicaciones especificadas a salir de un servidor de DB2
Connect.

Capítulo 5. mandatos CLP 383


LIST DCS DIRECTORY

LIST DCS DIRECTORY


Lista el contenido del directorio de Servicios de conexión de bases de datos (DCS).

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 LIST DCS DIRECTORY 

Parámetros del mandato

Ninguna

Ejemplos

El ejemplo siguiente es una salida de ejemplo de LIST DCS DIRECTORY:

Directorio de Servicios de conexión de bases de datos (DCS)

Número de entradas en directorio = 1

Entrada 1 DCS:

Nombre de base de datos local = DB2


Nombre de base de datos destino = DSN_DB_1
Nombre peticionario aplicación =
Parámetros DCS =
Comentario = Nombre de ubicación DB2/MVS DSN_DB_1
Nivel release directorio DCS = 0x0100

Estos campos se identifican del modo siguiente:


Nombre de base de datos local
Especifica el alias local de la base de datos de sistema principal de destino.
Corresponde al parámetro nombre-base-datos entrado al catalogar la base de
datos de sistema principal en el directorio de DCS.
Nombre de base de datos destino
Especifica el nombre de la base de datos de sistema principal a la que se
puede acceder. Corresponde al parámetro nombre-base-datos-destino entrado
al catalogar la base de datos de sistema principal en el directorio de DCS.
Nombre peticionario aplicación
Especifica el nombre del programa que reside en el peticionario o servidor
de aplicaciones.
Parámetros DCS
Serie que contiene los parámetros de conexión y de entorno operativo a
utilizar con el peticionario de la aplicación. Corresponde a la serie de
parámetros entrada al catalogar la base de datos de sistema principal. La
serie debe escribirse entre comillas dobles y los parámetros deben estar
separados por comas.

384 Consulta de mandatos


LIST DCS DIRECTORY

Comentario
Describe la entrada de base de datos.
Nivel release directorio de DCS
Especifica el número de versión del programa Distributed Database
Connection Services bajo el que se ha creado la base de datos.

Notas de uso

El directorio DCS se crea la primera vez que se invoca el mandato CATALOG DCS
DATABASE. Se mantiene en la vía de acceso/unidad donde se ha instalado DB2 y
proporciona información acerca de las bases de datos de sistema principal a las
que puede acceder la estación de trabajo si se ha instalado el programa DB2
Connect. Las bases de datos de sistema principal pueden ser:
v Bases de datos DB2 en sistemas principales OS/390 y z/OS
v Bases de datos DB2 en sistemas principales System i
v Bases de datos DB2 en sistemas principales VSE y VM

Capítulo 5. mandatos CLP 385


LIST DRDA INDOUBT TRANSACTIONS

LIST DRDA INDOUBT TRANSACTIONS


Proporciona una lista de transacciones que son dudosas entre los peticionarios
DRDA y los servidores DRDA. Si se están utilizando protocolos de confirmación
DRDA, lista las transacciones dudosas entre los gestores de punto de sincronismo
DRDA.

Autorización

Ninguna

Conexión necesaria

Instancia

Sintaxis del mandato


 LIST DRDA INDOUBT TRANSACTIONS 
WITH PROMPTING

Parámetros del mandato


WITH PROMPTING
Indica que se deben procesar las transacciones dudosas. Si se especifica
este parámetro, se inicia una modalidad de diálogo interactivo, que
permite al usuario confirmar o retrotraer las transacciones dudosas. Si no
se especifica este parámetro, las transacciones dudosas se graban en el
dispositivo de salida estándar y no se inicia la modalidad de diálogo
interactivo.
No se soporta una opción de olvidar. Una vez que la transacción dudosa se
ha confirmado o retrotraído, se olvida automáticamente la transacción.
La modalidad de diálogo interactivo permite al usuario:
v Listar todas las transacciones dudosas (entre l)
v Listar el número de transacción dudosa x (entre l, seguido de un
número de transacción válido)
v Salir (entre q)
v Confirmar el número de transacción x (entre c, seguido de un número
de transacción válido)
v Retrotraer el número de transacción x (entre r, seguido de un número de
transacción válido).
La letra de mandato debe separarse de su argumento mediante un espacio
en blanco.
Antes de que se confirme o retrotraiga una transacción, se visualizan los
datos de la transacción y se le solicita al usuario que confirme la acción.

Notas de uso

Las transacciones dudosas DRDA se producen cuando se pierde la comunicación


entre los coordinadores y los participantes en unidades de trabajo distribuidas.
Una unidad de trabajo distribuida permite a un usuario o una aplicación leer y
actualizar datos en múltiples ubicaciones dentro de una sola unidad de trabajo.
Dicho trabajo requiere una confirmación de dos fases.

386 Consulta de mandatos


LIST DRDA INDOUBT TRANSACTIONS

La primera fase solicita a todos los participantes que se preparen para una
confirmación. La segunda fase confirma o retrotrae las transacciones. Si un
coordinador o un participante no está disponible después de la primera fase, las
transacciones distribuidas son dudosas.

Antes de emitir el mandato LIST DRDA INDOUBT TRANSACTIONS, se debe conectar el


proceso de aplicación a la instancia de SPM (gestor de punto de sincronismo) de
DB2. Utilice el parámetro de configuración de gestor de bases de datos nombre_spm
como aliasbd en la sentencia CONNECT.

Las conexiones TCP/IP, que usan el SPM para coordinar las confirmaciones,
utilizan protocolos de confirmación DRDA en dos fases.

Capítulo 5. mandatos CLP 387


LIST HISTORY

LIST HISTORY
Lista las entradas de los registros del histórico de la base de datos. Los registros
del histórico de la base de datos contienen un registro de sucesos de recuperación
y administrativos. Los sucesos de recuperación incluyen operaciones de copia de
seguridad completa a nivel de base de datos y de espacios de tablas, de copia de
seguridad incremental, de restauración y de avance. Los sucesos adicionales
anotados cronológicamente incluyen la creación, la modificación, el descarte o la
redenominación de espacios de tablas, la reorganización de tabla, el descarte de
tabla y la carga.

El mandato LIST HISTORY sólo devuelve información de histórico para la partición


de base de datos en la que se emite. Para obtener el histórico de varias particiones,
puede emitir el mandato LIST HISTORY desde cada partición de base de datos
individualmente o bien utilizar el prefijo db2_all para ejecutar el mandato LIST
HISTORY en todas las particiones de base de datos.

Autorización
Ninguna

Conexión necesaria

Instancia. Debe conectarse a cualquier base de datos remota para ejecutar este
mandato en ella. Para una base de datos local, no se necesita una conexión
explícita.

Sintaxis del mandato


 LIST HISTORY 
BACKUP
ROLLFORWARD
DROPPED TABLE
LOAD
CREATE TABLESPACE
ALTER TABLESPACE
RENAME TABLESPACE
REORG
ARCHIVE LOG

 ALL 
SINCE indicfechahora
CONTAINING esquema.nombre_objeto
nombre_objeto

 FOR alias-base-datos 
DATABASE
DB

Parámetros del mandato


HISTORY
Lista todos los sucesos que están actualmente anotados cronológicamente
en los registros del histórico de la base de datos.
BACKUP
Lista las operaciones de copia de seguridad y restauración.

388 Consulta de mandatos


LIST HISTORY

ROLLFORWARD
Lista las operaciones de avance.
DROPPED TABLE
Lista los registros descartados. Sólo se crea un registro de tablas
descartadas cuando se descarta la tabla y el espacio de tablas que la
contiene tiene habilitada la opción DROPPED TABLE RECOVERY.
Devuelve la sintaxis de CREATE TABLE para las tablas particionadas e
indica qué espacios de tablas contenían datos de la tabla que se ha
descartado.
LOAD
Lista las operaciones de carga.
CREATE TABLESPACE
Lista las operaciones de crear y descartar espacios de tablas.
RENAME TABLESPACE
Lista las operaciones de redenominación de espacios de tablas.
REORG
Lista las operaciones de reorganización. Incluye información sobre todas
las particiones de datos reorganizadas de una tabla particionada.
ALTER TABLESPACE
Lista las operaciones de modificar espacios de tablas.
ARCHIVE LOG
Lista operaciones de anotación cronológica de archivado y las anotaciones
cronológicas archivadas.
ALL Lista todas las entradas del tipo especificado de los registros del histórico
de la base de datos.
SINCE indicfechahora
Se puede especificar una indicación de fecha y hora completa (formato
aaaammddhhmmss), o un prefijo inicial (mínimo aaaa). Se listan todas las
entradas con indicaciones de fecha y hora iguales o mayores a la indicación
de fecha y hora proporcionada.
CONTAINING esquema.nombre_objeto
Este nombre calificado identifica de forma exclusiva una tabla.
CONTAINING nombre_objeto
Este nombre no calificado identifica de forma exclusiva un espacio de
tablas.
FOR DATABASE alias-base-datos
Se utiliza para identificar la base de datos cuyos registros del histórico de
la base de datos de recuperación deben listarse.

Ejemplos

Los ejemplos siguientes muestran usos diferentes del mandato LIST HISTORY:
db2 list history since 19980201 for sample
db2 list history backup containing userspace1 for sample
db2 list history dropped table all for db sample
Ejemplo 1
La siguiente salida de ejemplo muestra dos entradas, una para una
operación de carga (L) y otra para una operación de copia de seguridad
(B):

Capítulo 5. mandatos CLP 389


LIST HISTORY

db2 list history all for SAMPLE

Listar archivo histórico de sample

Número entradas arch. coincidentes = 2

Op Obj Indichora+Secuenc Tipo Dis Prim. anot. Anot. act. ID copia seg.
-- --- ------------------ ---- --- ------------ ------------ --------------
L T 20100106133005001 R S S0000000.LOG S0000000.LOG
----------------------------------------------------------------------------
"USERNAME"."T1" reside en 1 espacio(s)tabla:

00001 USERSPACE1
----------------------------------------------------------------------------
Comentario: DB2
Hora inicio: 20100106133005
Hora fin: 20100106133006
Estado: A
----------------------------------------------------------------------------
EID: 3 Ubicación: /home/hotel19/username/mydatafile.del
----------------------------------------------------------------------------
Información de SQLCA

sqlcaid : SQLCA sqlcabc: 136 sqlcode: 3107 sqlerrml: 0

sqlerrmc:
sqlerrp : SQLUVLD
sqlerrd : (1) -2146107283 (2) 0 (3) 0
(4) 0 (5) 0 (6) 0
sqlwarn : (1) W (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11)
sqlstate:

Op Obj Indichora+Secuenc Tipo Dis Prim. anot. Anot. act. ID copia seg.
-- --- ------------------ ---- --- ------------ ------------ --------------
B D 20100106135509001 F D S0000000.LOG S0000000.LOG
----------------------------------------------------------------------------
Contiene 2 espacio(s)tabla:

00001 SYSCATSPACE
00002 USERSPACE1
----------------------------------------------------------------------------
Comentario: DB2 BACKUP SAMPLE OFFLINE
Hora inicio: 20100106135509
Hora fin: 20100106135512
Estado: A
----------------------------------------------------------------------------
EID: 4 Ubicación: /home/hotel19/username

Ejemplo 2
La salida de ejemplo siguiente muestra una entrada para la operación de
reorganización de reclamaciones:
db2 -v "list history reorg all for wsdb"

Op Obj Indichora+Secuenc Tipo Dis Prim. anot. Anot. act. ID copia seg.
-- --- ------------------ ---- --- ------------ ------------ --------------
G T 20080924101408 N S0000000.LOG S0000000.LOG
----------------------------------------------------------------------------
Tabla: "ZHMFENG "."T1"

----------------------------------------------------------------------------
Comentario: REORG RECLAIM
Hora inicio: 20080924101408
Hora fin: 20080924101409
Estado: A

Ejemplo 3
Utilice el prefijo db2_all para ejecutar el mandato LIST HISTORY en todas
las particiones de base de datos:
db2_all "db2 list history since 20010601 for sample"
Ejemplo 4

390 Consulta de mandatos


LIST HISTORY

A continuación se muestra un ejemplo de registros de historial de base de


datos en un entorno DB2 pureScale.
db2 list history since 20091020163200 for database sample
Op Obj Indichora+Secuenc Tipo Dis ID copia seg.
-- --- ------------------ ---- --- --------------
X D 20091020163218 1 D
----------------------------------------------------------------------------

----------------------------------------------------------------------------
ID corr.anot. Primer anot. Anot. actual
------------- ------------ ------------
3 S0000023.LOG C0000000
----------------------------------------------------------------------------
Comentario:
Hora inicio: 20091020163218
Hora fin: 20091020163245
Estado: A
----------------------------------------------------------------------------
EID: 28 Ubicación: /notnfs/billings/arch_logs/billings/SAMPLE/NODE0000/LOGSTREAM0002/C0000000/S0000023.LOG

Op Obj Indichora+Secuenc Tipo Dis ID copia seg.


-- --- ------------------ ---- --- --------------
X D 20091020163219 1 D
----------------------------------------------------------------------------

----------------------------------------------------------------------------
ID corr.anot. Primer anot. Anot. actual
------------- ------------ ------------
0 S0000001.LOG C0000000
----------------------------------------------------------------------------
Comentario:
Hora inicio: 20091020163219
Hora fin: 20091020163257
Estado: A
----------------------------------------------------------------------------
EID: 29 Ubicación: /notnfs/billings/arch_logs/billings/SAMPLE/NODE0000/LOGSTREAM0000/C0000000/S0000001.LOG

Ejemplo 5
A continuación se muestra un ejemplo de registros de historial de base de
datos fuera de un entorno DB2 pureScale.
db2 list history since 20091020155300 for database sample
Op Obj Indichora+Secuenc Tipo Dis Prim. anot. Anot. act. ID copia seg.
-- --- ------------------ ---- --- ------------ ------------ --------------
X D 20091020155341 1 D S0000004.LOG C0000000
----------------------------------------------------------------------------

----------------------------------------------------------------------------
Comentario:
Hora inicio: 20091020155341
Hora fin: 20091020155345
Estado: A
----------------------------------------------------------------------------
EID: 9 Ubicación: /notnfs/billings/arch_logs/billings/SAMPLE/NODE0000/LOGSTREAM0000/C0000000/S0000004.LOG

Notas de uso

La vista administrativa SYSIBMADM.DB_HISTORY puede utilizarse para recuperar


datos de todas las particiones de la base de datos.

En una instancia de DB2 pureScale, todos los registros de historial de base de datos
para la base de datos son globales. Los registros de historial de base de datos
pueden recuperarse utilizando la interfaz de listado de historial o vista
administrativa conectada a cualquier miembro.

El informe generado por este mandato contiene los símbolos siguientes:


Operación

A - Crear espacio de tablas


B - Hacer copia de seguridad
C - Cargar copia
D - Descartar tabla
F - Realizar recuperación en avance
G - Reorganizar
L - Cargar
N - Redenominar espacio de tablas
O - Descartar espacio de tablas

Capítulo 5. mandatos CLP 391


LIST HISTORY

Q - Inmovilizar
R - Restaurar
T - Modificar espacio de tablas
U - Descargar
X - Anotación cronológica de archivador

Objeto

D - Base de datos
I - Índice
P - Espacio de tablas
T - Tabla
R - Tabla particionada

Tipo

Tipos de operación de modificación de espacios de tablas:

C - Añadir contenedor
R - Volver a equilibrar

Tipos de operación de archivado de anotaciones cronológicas:


F - Vía de acceso al archivado de sustituciones por anomalía
M - Vía de acceso de la anotación cronológica secundaria (duplicada)
N - Mandato Archive log
P - Vía de acceso de la anotación cronológica primaria
1 - Método de archivado de la anotación cronológica primaria
2 - Método de archivado de la anotación cronológica secundaria

Tipos de operación de copia de seguridad y restauración:

D - Delta fuera de línea


E - Delta en línea
F - Fuera de línea
I - Incremental fuera de línea
M - Fusionada
N - En línea
O - Incremental en línea
R - Reconstruir

Tipos de operación de carga:

I - Insertar
R - Sustituir

Tipos de operación de recuperación en avance:

E - Fin de anotaciones cronológicas


P - Punto del tiempo

Tipos de operación de inmovilización:

S - Compartimiento de inmovilización
U - Actualización de inmovilización
X - Exclusivo de inmovilización
Z - Restablecimiento de inmovilización

Distintivo de estado de entrada de histórico:

A - Activo
D - Suprimido
E - Caducado
I - Inactivo
N - Sin confirmar aún

392 Consulta de mandatos


LIST HISTORY

P - Pendiente de supresión
X - No suprimir
a - Activo incompleto
i - Inactivo incompleto

Capítulo 5. mandatos CLP 393


LIST INDOUBT TRANSACTIONS

LIST INDOUBT TRANSACTIONS


Proporciona una lista de transacciones que son dudosas. El usuario puede
confirmar, retrotraer u olvidar las transacciones dudosas de forma interactiva.

El protocolo de confirmación de las dos fases incluye:


1. La fase PREPARE, en la que el gestor de recursos graba las páginas de
anotación cronológica en disco, para poder responder a una operación básica
COMMIT o ROLLBACK
2. La fase COMMIT (o ROLLBACK), en la que la transacción se confirma o se
retrotrae realmente.

Olvidar una transacción libera los recursos retenidos por una transacción finalizada
heurísticamente (es decir, una transacción que se haya confirmado o retrotraído
heurísticamente). Una transacción dudosa es aquella que se ha preparado, pero que
aún no se ha confirmado o retrotraído.

Ámbito

Este mandato devuelve una lista de las transacciones dudosas del nodo ejecutado.

Autorización

Ninguna

Conexión necesaria
Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión
con la base de datos por omisión.

Sintaxis del mandato


 LIST INDOUBT TRANSACTIONS 
WITH PROMPTING

Parámetros del mandato


WITH PROMPTING
Indica que se deben procesar las transacciones dudosas. Si se especifica
este parámetro, se inicia una modalidad de diálogo interactivo, que
permite al usuario confirmar, retrotraer u olvidar las transacciones
dudosas. Si no se especifica este parámetro, las transacciones dudosas se
graban en el dispositivo de salida estándar y no se inicia la modalidad de
diálogo interactivo.
La modalidad de diálogo interactivo permite al usuario:
v Listar todas las transacciones dudosas (entre l)
v Listar el número de transacción dudosa x (entre l, seguido de un
número de transacción válido)
v Salir (entre q)
v Confirmar el número de transacción x (entre c, seguido de un número
de transacción válido)
v Retrotraer el número de transacción x (entre r, seguido de un número de
transacción válido)

394 Consulta de mandatos


LIST INDOUBT TRANSACTIONS

v Olvidar el número de transacción x (entre f, seguido de un número de


transacción válido).
La letra de mandato debe separarse de su argumento mediante un espacio
en blanco.
Antes de que se confirme, se retrotraiga o se olvide una transacción, se
visualizan los datos de la transacción y se le solicita al usuario que
confirme la acción.

El mandato LIST INDOUBT TRANSACTIONS devuelve información de tipo para mostrar


el rol de la base de datos en cada transacción dudosa:
TM Indica que la transacción dudosa está utilizando la base de datos como
base de datos de gestor de transacciones.
RM Indica que la transacción dudosa está utilizando la base de datos como
gestor de recursos, lo que significa que es una de las bases de datos que
participa en la transacción, pero no es la base de datos del gestor de
transacciones.

Notas de uso

Una transacción dudosa es una transacción global que se ha dejado en un estado


dudoso. Esto se produce cuando el Gestor de transacciones (TM) o al menos un
Gestor de recursos (RM) no queda disponible después de completar
satisfactoriamente la primera fase (es decir, la fase PREPARE) del protocolo de
confirmación de dos fases. Los RM no saben si deben confirmar o retrotraer su
bifurcación de la transacción hasta que el TM pueda consolidar su propia
anotación cronológica con la información de estado dudoso de los RM cuando
éstos queden disponibles otra vez. Una transacción dudosa también puede existir
en un entorno MPP.

Si se emite LIST INDOUBT TRANSACTIONS para la base de datos conectada


actualmente, el mandato devuelve la información sobre las transacciones dudosas
en esa base de datos.

Sólo se pueden retrotraer las transacciones cuyo estado sea dudoso (i), en las que
falta acuse de recibo de confirmación (m), en las que falta acuse de recibo de
confirmación federada o que han finalizado (d).

Sólo se pueden retrotraer las transacciones cuyo estado sea dudoso (i), falta acuse
de recibo de retrotracción federada (b) o finalizado (e).

Sólo se pueden olvidar las transacciones cuyo estado sea confirmado (c),
retrotraído (r) en las que falta acuse de recibo de confirmación federada (d) o en
las que falta acuse de recibo de confirmación federada (b).

En la fase de confirmación de una confirmación de dos fases, el nodo coordinador


espera acuses de recibo de confirmación. Si uno o más nodos no responden (por
ejemplo, debido a una anomalía del nodo), la transacción se coloca en estado de
falto de acuse de recibo de confirmación.

La información de la transacción dudosa sólo es válida en el momento de emitir el


mandato. Una vez que se está en modalidad de diálogo interactivo, el estado de la
transacción podría cambiar debido a las actividades externas. Si sucede esto y se
intenta procesar una transacción dudosa que ya no está en un estado apropiado, se
visualizará un mensaje de error.

Capítulo 5. mandatos CLP 395


LIST INDOUBT TRANSACTIONS

Después de que se produzca este tipo de error, el usuario deberá salir q) del
diálogo interactivo y volver a emitir el mandato LIST INDOUBT TRANSACTIONS WITH
PROMPTING para renovar la información mostrada.

396 Consulta de mandatos


LIST NODE DIRECTORY

LIST NODE DIRECTORY


Lista el contenido del directorio de nodos.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 LIST NODE DIRECTORY 
ADMIN SHOW DETAIL

Parámetros del mandato


ADMIN
Especifica nodos de servidor de administración.
SHOW DETAIL
Especifica que la salida debe incluir la información siguiente:
v Nombre de instancia remota
v Sistema
v Tipo de sistema operativo

Ejemplos

A continuación se muestra un ejemplo de salida de LIST NODE DIRECTORY:

Directorio de nodos

Número de entradas en directorio = 2

Entrada 1 nodo:

Nombre nodo = LANNODE


Comentario =
Tipo de entrada de directorio = LDAP
Protocolo = TCPIP
Nombre de sistema principal = LAN.db2ntd3.torolab.ibm.com
Nombre de servicio = 50000

Entrada 2 nodo:

Nombre nodo = TLBA10ME


Comentario =
Tipo de entrada del directorio = LOCAL
Protocolo = TCPIP
Nombre del sistema principal = tlba10me
Nombre de servicio = 447

A continuación se muestra un ejemplo de salida de LIST ADMIN NODE DIRECTORY:

Directorio de nodos

Número de entradas en directorio = 2

Capítulo 5. mandatos CLP 397


LIST NODE DIRECTORY

Entrada 1 nodo:

Nombre nodo = LOCALADM


Comentario =
Tipo de entrada del directorio = LOCAL
Protocolo = TCPIP
Nombre del sistema principal = jaguar
Nombre de servicio = 523

Entrada 2 nodo:

Nombre nodo = MYDB2DAS


Comentario =
Tipo de entrada de directorio = LDAP
Protocolo = TCPIP
Nombre de sistema principal = peng.torolab.ibm.com
Nombre de servicio = 523

Los campos comunes se identifican del modo siguiente:


Nombre nodo
Nombre del nodo remoto. Corresponde al nombre entrado para el
parámetro nombrenodo al catalogar el nodo.
Comentario
Comentario asociado con el nodo, entrado al catalogar el nodo. Para
cambiar un comentario del directorio de nodos, descatalogue el nodo y
luego catalóguelo otra vez con el comentario nuevo.
Tipo de entrada del directorio
LOCAL significa que la entrada se encuentra en el archivo de directorio de
nodo local. LDAP significa que la entrada se encuentra en el servidor LDAP
o en la antememoria LDAP.
Protocolo
Protocolo de comunicaciones catalogado para el nodo.

Para obtener información sobre los campos asociados con un tipo de nodo
específico, consulte el mandato CATALOG ... NODE aplicable.

Notas de uso

Independientemente del valor de las diversas variables de DB2LDAPCACHE, si utiliza


los mandatos LIST DATABASE DIRECTORY o LIST NODE DIRECTORY, la lista de entradas
de la base de datos local y del nodo se leerán desde el servidor LDAP.

En cada cliente de ejecución de IBM Data Server se crea y se mantiene un


directorio de nodos. Éste contiene una entrada para cada estación de trabajo
remota que tiene bases de datos a las que el cliente puede acceder. El cliente DB2
utiliza la información de punto final de comunicaciones del directorio de nodos
siempre que se solicita una conexión de base de datos o una conexión de instancia.

El gestor de bases de datos crea una entrada de nodo y la añade al directorio de


nodos cada vez que procesa un mandato CATALOG...NODE. Las entradas pueden
variar, en función del protocolo de comunicaciones que esté utilizando el nodo.

El directorio de nodos puede contener entradas para los tipos siguientes de nodos:
v LDAP
v Local

398 Consulta de mandatos


LIST NODE DIRECTORY

v Conexión con nombre


v TCPIP
v TCPIP4
v TCPIP6

Capítulo 5. mandatos CLP 399


LIST ODBC DATA SOURCES

LIST ODBC DATA SOURCES


Lista todas las fuentes de datos ODBC de sistema o de usuario disponibles.

Una fuente de datos, en terminología de ODBC (Open Database Connectivity -


Conectividad de bases de datos abiertas), es un nombre definido por el usuario
para una base de datos específica. Dicho nombre se utiliza para acceder a la base
de datos o al sistema de archivos mediante las API ODBC. En Windows, se pueden
catalogar fuentes de datos de usuario o de sistema. Una fuente de datos de usuario
sólo está visible para el usuario que la ha catalogado, mientras que una fuente de
datos de sistema está visible para todos los demás usuarios y todos ellos la pueden
utilizar.

Este mandato sólo está disponible en Windows.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


USER
 LIST ODBC DATA SOURCES 
SYSTEM

Parámetros del mandato


USER Lista solamente las fuentes de datos ODBC de usuario. Es el valor por
omisión si no se especifica ninguna palabra clave.
SYSTEM
Lista solamente las fuentes de datos ODBC de sistema.

Ejemplos

El ejemplo siguiente es una salida de ejemplo del mandato LIST ODBC DATA
SOURCES:
Fuentes de datos ODBC de usuario

Nombre de fuente de datos Descripción


-------------------------------- ----------------------------------------
SAMPLE IBM DB2 ODBC DRIVER

400 Consulta de mandatos


LIST PACKAGES/TABLES

LIST PACKAGES/TABLES
Lista los paquetes o las tablas que están asociados con la base de datos actual.

Autorización

Para el catálogo de sistema SYSCAT.PACKAGES (LIST PACKAGES) y


SYSCAT.TABLES (LIST TABLES), se necesita una de las siguientes:
v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON
v DBADM
v Privilegio CONTROL
v Privilegio SELECT.

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión.

Sintaxis del mandato


 LIST PACKAGES 
TABLES USER SHOW DETAIL
FOR ALL
SCHEMA nombre-esquema
SYSTEM

Parámetros del mandato


FOR Si no se especifica la cláusula FOR, se listan los paquetes o las tablas para
USER.
ALL Lista todos los paquetes o todas las tablas de la base de datos.
SCHEMA nombre-esquema
Lista todos los paquetes o todas las tablas de la base de datos
solamente para el esquema especificado.
SYSTEM
Lista todos los paquetes o todas las tablas de sistema de la base de
datos.
USER Lista todos los paquetes o todas las tablas de usuario de la base de
datos para el usuario actual.
SHOW DETAIL
Si se elige esta opción con el mandato LIST TABLES, se visualiza el nombre
de tabla y el nombre de esquema completos. Si no se especifica esta
opción, el nombre de tabla se trunca a 30 caracteres y el símbolo ">" de la
trigésimo primera columna representa la parte truncada del nombre de
tabla y el nombre de esquema se trunca a 14 caracteres y el símbolo ">" de
la decimoquinta columna representa la parte truncada del nombre de
esquema. Si se elige esta opción con el mandato LIST PACKAGES, se
visualiza el esquema de paquete completo (creador), la versión y el authid

Capítulo 5. mandatos CLP 401


LIST PACKAGES/TABLES

vinculado y el unique_id de paquete (el símbolo de coherencia se muestra


en formato hexadecimal). Si no se especifica esta opción, el nombre de
esquema e ID vinculado se truncan a 8 caracteres y el símbolo ">" de la
novena columna representa la parte truncada del esquema o ID vinculado;
la versión se trunca a 10 caracteres y el símbolo ">" de la undécima
columna representa la parte truncada de la versión.

Ejemplos

A continuación se muestra un ejemplo de salida de LIST PACKAGES:


Enlazado Total de Nivel de
Paquete Esquema Versión por secciones Válido Formato aislam. Bloqueo
---------- --------- ---------- --------- ------------ ------ ------- --------- --------
F4INS USERA VER1 SNOWBELL 221 Y 0 CS U
F4INS USERA VER2.0 SNOWBELL 201 Y 0 RS U
F4INS USERA VER2.3 SNOWBELL 201 N 3 CS U
F4INS USERA VER2.5 SNOWBELL 201 Y 0 CS U
PKG12 USERA USERA 12 Y 3 RR B
PKG15 USERA USERA 42 Y 3 RR B
SALARY USERT YEAR2000 USERT 15 Y 3 CS N

A continuación se muestra un ejemplo de salida de LIST TABLES:


Tabla/Vista Esquema Tipo Hora de creación
------------------ ---------------- ---------- ----------------------------
DEPARTMENT SMITH T 1997-02-19-13.32.25.971890
EMP_ACT SMITH T 1997-02-19-13.32.27.851115
EMP_PHOTO SMITH T 1997-02-19-13.32.29.953624
EMP_RESUME SMITH T 1997-02-19-13.32.37.837433
EMPLOYEE SMITH T 1997-02-19-13.32.26.348245
ORG SMITH T 1997-02-19-13.32.24.478021
PROJECT SMITH T 1997-02-19-13.32.29.300304
SALES SMITH T 1997-02-19-13.32.42.973739
STAFF SMITH T 1997-02-19-13.32.25.156337

9 registro(s) seleccionado(s).

Notas de uso

Los mandatos LIST PACKAGES y LIST TABLES están disponibles para proporcionar
una interfaz rápida para las tablas del sistema.

Las sentencias SELECT siguientes devuelven información encontrada en las tablas


del sistema. Se pueden expandir para seleccionar la información adicional que
proporcionan las tablas del sistema.
select tabname, tabschema, type, create_time
from syscat.tables
order by tabschema, tabname;

select pkgname, pkgschema, pkgversion, unique_id, boundby, total_sect,


valid, format, isolation, blocking
from syscat.packages
order by pkgschema, pkgname, pkgversion;

select tabname, tabschema, type, create_time


from syscat.tables
where tabschema = ’SYSCAT’
order by tabschema, tabname;

select pkgname, pkgschema, pkgversion, unique_id, boundby, total_sect,


valid, format, isolation, blocking
from syscat.packages
where pkgschema = ’NULLID’

402 Consulta de mandatos


LIST PACKAGES/TABLES

order by pkgschema, pkgname, pkgversion;

select tabname, tabschema, type, create_time


from syscat.tables
where tabschema = USER
order by tabschema, tabname;

select pkgname, pkgschema, pkgversion, unique_id, boundby, total_sect,


valid, format, isolation, blocking
from syscat.packages
where pkgschema = USER
order by pkgschema, pkgname, pkgversion;

Capítulo 5. mandatos CLP 403


LIST TABLESPACE CONTAINERS

LIST TABLESPACE CONTAINERS


Lista contenedores para el espacio de tablas especificado.

Importante: Este mandato o API ha quedado en desuso en la Versión 9.7 y puede


que se elimine en un futuro release. En su lugar, pueden utilizarse las funciones de
tabla MON_GET_TABLESPACE y MON_GET_CONTAINER, que devuelven más
información. Para obtener más información, consulte el tema “Los mandatos LIST
TABLESPACES y LIST TABLESPACE CONTAINERS han quedado en desuso” en
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/
com.ibm.db2.luw.wn.doc/doc/i0055001.html.

La instantánea de espacio de tablas contiene toda la información mostrada por el


mandato LIST TABLESPACE CONTAINERS.

Ámbito

Este mandato sólo devuelve información para el nodo en el que se ejecuta.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON
v DBADM

Conexión necesaria

Base de datos

Sintaxis del mandato


 LIST TABLESPACE CONTAINERS FOR ID-espaciotablas 
SHOW DETAIL

Parámetros del mandato


FOR id-espaciotablas
Número entero que representa de forma exclusiva un espacio de tablas
utilizado por la base de datos actual. Para obtener una lista de todos los
espacios de tablas utilizados por la base de datos actual, utilice el mandato
LIST TABLESPACES.
SHOW DETAIL
Si no se especifica esta opción, sólo se proporciona la información básica
siguiente acerca de cada contenedor:
v ID de contenedor
v Nombre
v Tipo (archivo, disco o vía de acceso).
Si se especifica esta opción, se proporciona la información adicional
siguiente acerca de cada contenedor:

404 Consulta de mandatos


LIST TABLESPACE CONTAINERS

v Número total de páginas


v Número de páginas utilizables
v Accesible (sí o no).

Ejemplos

A continuación se muestra un ejemplo de salida de LIST TABLESPACE CONTAINERS


FOR 0:
Contenedores de espacio tablas para espacio tablas 0

ID de contenedor = 0
Nombre = /home/smith/smith/NODE0000/SQL00001/SQLT0000.0
Tipo = Vía

A continuación se muestra un ejemplo de salida del mandato LIST TABLESPACE


CONTAINERS FOR 0 SHOW DETAIL especificado:
Contenedores de espacio tablas para espacio tablas 0

ID de contenedor = 0
Nombre = /home/smith/smith/NODE0000/SQL00001/SQLT0000.0
Tipo = Vía
Páginas totales = 895
Páginas utilizables = 895
Accesible = Sí

Capítulo 5. mandatos CLP 405


LIST TABLESPACES

LIST TABLESPACES
Lista los espacios de tablas e información acerca de ellos para la base de datos
actual.

Importante: Este mandato o API ha quedado en desuso en la Versión 9.7 y puede


que se elimine en un futuro release. En su lugar, pueden utilizarse las funciones de
tabla MON_GET_TABLESPACE y MON_GET_CONTAINER, que devuelven más
información. Para obtener más información, consulte el tema “Los mandatos LIST
TABLESPACES y LIST TABLESPACE CONTAINERS han quedado en desuso” en
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/
com.ibm.db2.luw.wn.doc/doc/i0055001.html.

La información visualizada por este mandato también está disponible en la


instantánea de espacios de tablas.

Ámbito

Este mandato sólo devuelve información para la partición de base de datos en la


que se ejecuta.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON
v DBADM
v Autorización LOAD

Conexión necesaria

Base de datos

Sintaxis del mandato


 LIST TABLESPACES 
SHOW DETAIL

Parámetros del mandato


SHOW DETAIL
Si no se especifica esta opción, sólo se proporcionará la información básica
siguiente acerca de cada espacios de tablas:
v ID de espacio de tablas
v Nombre
v Tipo (espacio gestionado por el sistema o espacio gestionado por la base
de datos)
v Contenido (datos cualesquiera, datos largos o de índice o datos
temporales)
v Estado, valor hexadecimal que indica el estado actual del espacio de
tablas. El estado visible externamente de un espacio de tablas se

406 Consulta de mandatos


LIST TABLESPACES

compone de la suma hexadecimal de determinados valores de estado.


Por ejemplo, si el estado es "inmovilizada: EXCLUSIVE" y "Carga
pendiente", el valor es 0x0004 + 0x0008, que es 0x000c. El mandato
db2tbst (Obtener estado de espacios de tablas) puede utilizarse para
obtener el estado de espacio de tablas que se asocia a un valor
hexadecimal determinado. He aquí las definiciones de bit listadas en
sqlutil.h:
0x0 Normal
0x1 Inmovilizada: SHARE
0x2 Inmovilizada: UPDATE
0x4 Inmovilizado: EXCLUSIVE
0x8 Carga pendiente
0x10 Supresión pendiente
0x20 Copia de seguridad pendiente
0x40 Recuperación en curso
0x80 Recuperación (en avance) pendiente
0x100 Restauración pendiente
0x100 Recuperación (recovery) pendiente (no se utiliza)
0x200 Inhabilitación pendiente
0x400 Reorganización en curso
0x800 Copia de seguridad en proceso
0x1000 El almacenamiento debe estar definido
0x2000 Restauración en curso
0x4000 Fuera de línea y no accesible
0x8000 Descarte pendiente
0x10000 Suspensión de las operaciones de grabación
0x20000 Carga en curso
0x2000000 Puede que el almacenamiento esté definido
0x4000000 Definición de almacenamiento en estado ’final’
0x8000000 Cambiada definición de almacenamiento antes del avance
0x10000000 Reequilibrio de DMS en curso
0x20000000 Supresión de espacio de tablas en curso
0x40000000 Creación de espacio de tablas en curso

Nota: LOAD de DB2 no establece el estado de espacio de tablas en


Pendiente de carga o Pendiente de supresión.
Si se especifica esta opción, se proporciona la información adicional
siguiente acerca de cada espacios de tablas:
v Número total de páginas
v Número de páginas utilizables
v Número de páginas utilizadas
v Número de páginas libres
v marca de límite superior (en páginas)
v Tamaño de página (en bytes)
v Tamaño de extensión (en páginas)
v Tamaño captación previa (en páginas)
v Número de contenedores
v Tiempo mínimo de recuperación (punto más alejado en el tiempo hasta
el que puede avanzarse una tabla; la indicación de fecha y hora se
expresa en formato de hora UTC, y sólo se visualiza si no es cero)
v ID de espacio de tablas de cambio de estado (sólo se visualiza si el
estado del espacio de tablas es "carga pendiente" o "supresión
pendiente")
v ID de objeto de cambio de estado (sólo se visualiza si el estado del
espacio de tablas es "carga pendiente" o "supresión pendiente")

Capítulo 5. mandatos CLP 407


LIST TABLESPACES

v Número de inmovilizadores (sólo se visualiza si el estado del espacio de


tablas es "inmovilizada: SHARE", "inmovilizada: UPDATE" o
"inmovilizada: EXCLUSIVE")
v ID de espacio de tablas e ID de objeto para cada inmovilizador (sólo se
visualiza si el número de inmovilizadores es mayor que cero).

Ejemplos

A continuación se muestran dos ejemplos de salida de LIST TABLESPACES SHOW


DETAIL.

Espacios de tablas de base de datos actual


ID de espacio de tablas = 0
Nombre = SYSCATSPACE
Tipo = Espacio gestionado por la base datos
Contenido = Cualquier dato
Estado = 0x0000
Explicación detallada:
Normal
Páginas totales = 895
Páginas utilizables = 895
Páginas utilizadas = 895
Páginas libres = No aplicable
marca de límite superior (páginas) = No aplicable
Tamaño página (bytes) = 4096
Tamaño extensión (páginas) = 32
Tamaño captación previa (páginas) = 32
Número de contenedores = 1

ID de espacio de tablas = 1
Nombre = TEMPSPACE1
Tipo = Espacio gestionado por el sistema
Contenido = Datos temporales
Estado = 0x0000
Explicación detallada:
Normal
Páginas totales = 1
Páginas utilizables = 1
Páginas utilizadas = 1
Páginas libres = No aplicable
marca de límite superior (páginas) = No aplicable
Tamaño página (bytes) = 4096
Tamaño extensión (páginas) = 32
Tamaño captación previa (páginas) = 32
Número de contenedores = 1

ID de espacio de tablas = 2
Nombre = USERSPACE1
Tipo = Espacio gestionado por la base datos
Contenido = Cualquier dato
Estado = 0x000c
Explicación detallada:
Inmovilizado: EXCLUSIVE
Carga pendiente
Páginas totales = 337
Páginas utilizables = 337
Páginas utilizadas = 337
Páginas libres = No aplicable
marca de límite superior (páginas) = No aplicable
Tamaño página (bytes) = 4096
Tamaño extensión (páginas) = 32
Tamaño captación previa (páginas) = 32
Número de contenedores = 1
ID espacio de tablas cambio de estado= 2
ID objeto de cambio de estado = 3

408 Consulta de mandatos


LIST TABLESPACES

Número de inmovilizadores = 1
Inmovilizador 1:
ID de espacio de tablas = 2
ID de objeto = 3
DB21011I En un entorno de servidor de bases de datos
particionadas, sólo los espacios de tablas
se listan en el nodo actual.

Espacios de tablas de base de datos actual


ID de espacio de tablas = 0
Nombre = SYSCATSPACE
Tipo = Espacio gestionado por el sistema
Contenido = Cualquier dato
Estado = 0x0000
Explicación detallada:
Normal
Páginas totales = 1200
Páginas utilizables = 1200
Páginas utilizadas = 1200
Páginas libres = No aplicable
marca de límite superior (páginas) = No aplicable
Tamaño página (bytes) = 4096
Tamaño extensión (páginas) = 32
Tamaño captación previa (páginas) = 32
Número de contenedores = 1

ID de espacio de tablas = 1
Nombre = TEMPSPACE1
Tipo = Espacio gestionado por el sistema
Contenido = Datos temporales
Estado = 0x0000
Explicación detallada:
Normal
Páginas totales = 1
Páginas utilizables = 1
Páginas utilizadas = 1
Páginas libres = No aplicable
marca de límite superior (páginas) = No aplicable
Tamaño página (bytes) = 4096
Tamaño extensión (páginas) = 32
Tamaño captación previa (páginas) = 32
Número de contenedores = 1

ID de espacio de tablas = 2
Nombre = USERSPACE1
Tipo = Espacio gestionado por el sistema
Contenido = Cualquier dato
Estado = 0x0000
Explicación detallada:
Normal
Páginas totales = 1
Páginas utilizables = 1
Páginas utilizadas = 1
Páginas libres = No aplicable
marca de límite superior (páginas) = No aplicable
Tamaño página (bytes) = 4096
Tamaño extensión (páginas) = 32
Tamaño captación previa (páginas) = 32
Número de contenedores = 1

ID de espacio de tablas = 3
Nombre = DMS8K
Tipo = Espacio gestionado por la base datos
Contenido = Cualquier dato
Estado = 0x0000
Explicación detallada:
Normal

Capítulo 5. mandatos CLP 409


LIST TABLESPACES

Páginas totales = 2000


Páginas utilizables = 1952
Páginas utilizadas = 96
Páginas libres = 1856
marca de límite superior (páginas) = 96
Tamaño página (bytes) = 8192
Tamaño extensión (páginas) = 32
Tamaño captación previa (páginas) = 32
Número de contenedores = 2

ID de espacio de tablas = 4
Nombre = TEMP8K
Tipo = Espacio gestionado por el sistema
Contenido = Datos temporales
Estado = 0x0000
Explicación detallada:
Normal
Páginas totales = 1
Páginas utilizables = 1
Páginas utilizadas = 1
Páginas libres = No aplicable
marca de límite superior (páginas) = No aplicable
Tamaño página (bytes) = 8192
Tamaño extensión (páginas) = 32
Tamaño captación previa (páginas) = 32
Número de contenedores = 1
DB21011I En un entorno de servidor de bases de datos
particionadas, sólo los espacios de tablas
se listan en el nodo actual.

Notas de uso

En un entorno de base de datos particionada, este mandato no devuelve todos los


espacios de tablas en la base de datos. Para obtener una lista de todos los espacios
de tablas, consulte SYSCAT.TABLESPACES.

Cuando se emite el mandato LIST TABLESPACES SHOW DETAIL, intentará liberar


todas las extensiones libres pendientes en el espacio de tablas. Si las extensiones
libres pendientes se liberan correctamente, se grabará una anotación cronológica.

Durante un reequilibrado de espacios de tablas, el número de páginas utilizables


incluirá páginas para el contenedor recién añadido, pero estas páginas nuevas no
se reflejarán en el número de páginas libres hasta que el reequilibrado se haya
completado. Cuando no haya un reequilibrado de espacio de tablas en curso, el
número de páginas utilizadas más el número de páginas libres será igual al
número de páginas utilizables.

410 Consulta de mandatos


LIST UTILITIES

LIST UTILITIES
Muestra en la salida estándar la lista de programas de utilidad que están activos
en la instancia. La descripción de cada programa de utilidad puede incluir
atributos como la hora de inicio, la descripción, la prioridad de regulación (si es
aplicable) y la información de supervisión del progreso (si es aplicable).

Ámbito

Este mandato devuelve información para todas las particiones de base de datos.

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v SYSMON

Conexión necesaria

Instancia

Sintaxis del mandato


 LIST UTILITIES 
SHOW DETAIL

Parámetros del mandato


SHOW DETAIL
Muestra información de progreso detallada de los programas de utilidad
que admiten la supervisión del progreso.

Ejemplos

Una invocación de RUNSTATS sobre la tabla some_table:


LIST UTILITIES

ID = 1
Tipo = RUNSTATS
Nombre de base de datos = PROD
Descripción = krrose.some_table
Hora de inicio = 19/12/2003 11:54:45.773215
Prioridad = 10

Supervisión del rendimiento de una copia de seguridad de base de datos fuera de


línea:
LIST UTILITIES SHOW DETAIL

ID = 2
Tipo = BACKUP
Nombre de base de datos = SAMPLE
Descripción = bd fuera de línea
Hora de inicio = 30/10/2003 12:55:31.786115
Prioridad = 0
Supervisión del progreso:

Capítulo 5. mandatos CLP 411


LIST UTILITIES

Número fase [CURRENT] = 1


Descripción =
Métrica de trabajo = BYTES
Total unid. trabajo = 20232453
Un. trab. completas = 230637
Hora de inicio = 30/10/2003 12:55:31.786115

Notas de uso

Utilice este mandato para supervisar el estado de los programas de utilidad en


ejecución. Por ejemplo, puede utilizar este programa de utilidad para supervisar el
progreso de una copia de seguridad en línea. En otro ejemplo, podría investigar un
problema de rendimiento utilizando este mandato para determinar qué programas
de utilidad se están ejecutando. Si se sospecha que el programa de utilidad es
responsable de la disminución del rendimiento, puede optar por regular el
programa de utilidad (si el programa de utilidad permite la regulación). El ID del
mandato LIST UTILITIES es el mismo ID que se utiliza en el mandato SET
UTIL_IMPACT_PRIORITY.

El mandato LIST UTILITIES puede utilizarse para supervisar el progreso de la


limpieza diferida de los índices mediante una limpieza de índices asíncrona.

A partir de DB2 Versión 9.7 Fixpack 1, el mandato LIST UTILITIES se puede


utilizar para supervisar el progreso del desenlace de una partición de datos de una
tabla de partición mediante la tarea de desenlace asíncrono de particiones. El
desenlace de una partición de datos de una tabla de partición se inicia emitiendo la
sentencia ALTER con la cláusula DETACH PARTITION.

412 Consulta de mandatos


LOAD

LOAD
Carga datos en una tabla DB2.

Los datos almacenados en el servidor pueden estar en forma de archivo, cinta o


conexión con nombre. Los datos almacenados en un cliente conectado de forma
remota pueden estar en forma de archivo totalmente calificado o conexión con
nombre. Los datos también se pueden cargar desde un cursor definido por el
usuario o mediante un script o una aplicación escritos por un usuario. Si el
atributo COMPRESS de la tabla está establecido en YES, los datos cargados están
sujetos a compresión en todas las particiones de datos y de base de datos para las
que exista un diccionario en la tabla, incluidos los datos del objeto de
almacenamiento XML de la tabla.

Enlace rápido con “Modificadores de tipo de archivo para el programa de utilidad


de carga” en la página 446.

Restricciones
El programa de utilidad de carga no soporta la carga de datos a nivel de jerarquía.
El programa de utilidad de carga no es compatible con las tablas agrupadas por
clústeres de rangos. El programa de utilidad de carga no da soporte al parámetro
NOT LOGGED INITIALLY para las sentencias CREATE TABLE o ALTER TABLE.

Ámbito

Este mandato puede emitirse para varias particiones de base de datos en una sola
petición.

Autorización

Una de las autorizaciones siguientes:


v DATAACCESS
v Autorización LOAD para la base de datos y los privilegios siguientes:
– privilegio INSERT en la tabla cuando se invoca el programa de utilidad de
carga en modalidad INSERT, en modalidad TERMINATE (para terminar una
operación de inserción de carga anterior) o en modalidad RESTART (para
reiniciar una operación de inserción de carga anterior)
– privilegio INSERT y DELETE en la tabla cuando el programa de utilidad de
carga se invoca en modalidad REPLACE, en modalidad TERMINATE (para
terminar una operación de sustitución de carga anterior) o en modalidad
RESTART (para reiniciar una operación de sustitución de carga anterior)
– Privilegio INSERT en la tabla de excepción, si dicha tabla se utiliza como
parte de la operación de carga.
v Para cargar datos en una tabla que tenga columnas protegidas, el ID de
autorización de sesión debe tener credenciales LBAC directamente o
indirectamente por medio de un grupo o un rol que permitan el acceso de
grabación a todas las columnas protegidas de la tabla. De lo contrario, la carga
no se realizará y se devolverá un error (SQLSTATE 5U014).
v Para cargar datos en una tabla que tenga filas protegidas, el ID de autorización
de sesión debe tener una etiqueta de seguridad que cumpla los siguientes
criterios:
– La etiqueta de seguridad forma parte de la política de seguridad que protege
la tabla.

Capítulo 5. mandatos CLP 413


LOAD

– La etiqueta de seguridad se ha otorgado al ID de autorización de sesión


directamente o indirectamente por medio de un grupo o un rol para el acceso
de grabación o para todos los accesos.
Si el ID de autorización de sesión no contiene una etiqueta de seguridad como
esta, la carga no se realizará y se devolverá un error (SQLSTATE 5U014). La
etiqueta de seguridad protege una fila cargada si las credenciales LBAC del ID
de autorización de sesión no permiten que se grabe en la etiqueta de seguridad
que protege dicha fila en los datos. Sin embargo, esto no sucede cuando la
política de seguridad que protege la tabla se ha creado con la opción RESTRICT
NOT AUTHORIZED WRITE SECURITY LABEL de la sentencia CREATE
SECURITY POLICY. En este caso, la carga no se realiza y se devuelve un error
(SQLSTATE 42519).
Cuando carga datos en una tabla con filas protegidas, la tabla de destino tiene
una columna con un tipo de datos DB2SECURITYLABEL. Si la fila de entrada
de datos no contiene un valor para esa columna, esa fila se rechaza a menos que
se especifique el modificador de tipo de archivo usedefaults en el mandato de
carga, en cuyo caso se utilizará la etiqueta de seguridad de que dispone para el
acceso de grabación de la política de seguridad que protege la tabla. Si no
dispone de una etiqueta de seguridad para el acceso de grabación, la fila se
rechaza y el proceso continúa con la fila siguiente.
v Si se especifica la opción REPLACE, el ID de autorización de sesión debe
disponer de autorización para descartar la tabla.
v Si se especifica la opción LOCK WITH FORCE, se necesita la autorización
SYSADM.
v Si la tabla tiene el control de acceso a filas activado, LOAD REPLACE en esa tabla
requerirá la capacidad de descartar la tabla. Concretamente, debe tener
CONTROL o DBADM en la tabla.

Dado que todos los procesos de carga (y todos los procesos del servidor DB2 en
general) son propiedad del propietario de la instancia y todos estos procesos
utilizan la identificación del propietario de la instancia para acceder a los archivos
necesarios, el propietario de la instancia debe tener acceso de lectura a los archivos
de entrada de datos. El propietario de instancia debe poder leer estos archivos de
datos de entrada, independientemente de quién invoque el mandato.

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión.

Instancia. No se necesita una conexión explícita. Si se ha establecido una conexión


a la base de datos, se intenta una conexión implícita a la instancia local.

Sintaxis del mandato

 LOAD FROM  nombrearchivo OF tipoarchivo 


CLIENT nombre-conexión ,
dispositivo
nombre-cursor LOBS FROM  vía-lob

 
,

XML FROM  vía-xml MODIFIED BY  mod-tipo-archivo

414 Consulta de mandatos


LOAD

 
,

METHOD L (  inicio-col fin-col )


,

NULL INDICATORS (  lista-indicadores-nula )


,

N (  nombre-col )
,

P (  posición-col )

 
XMLPARSE STRIP WHITESPACE
PRESERVE

 
XMLVALIDATE USING XDS Parámetros de IGNORE y MAP SAVECOUNT n
DEFAULT sqlid-esquema
SCHEMA sqlid-esquema
SCHEMALOCATION HINTS

 
ROWCOUNT n WARNINGCOUNT n MESSAGES archivo-mensajes TEMPFILES PATH nombrevía-temp

 INSERT INTO nombre_tabla 


KEEPDICTIONARY ,
REPLACE
RESETDICTIONARY (  insertar-columna )
RESTART
TERMINATE

 
, STATISTICS USE PROFILE
(1) (2) NO
FOR EXCEPTION nombre-tabla 
NORANGEEXC
NOUNIQUEEXC

 
NO WITHOUT PROMPTING
COPY YES USE TSM
OPEN núm-ses SESSIONS
,

TO  dispositivo/directorio
LOAD nombre-bibl
OPEN núm-ses SESSIONS
NONRECOVERABLE

 
DATA BUFFER tamaño-almacint SORT BUFFER tamaño-almacint CPU_PARALLELISM n

 
DISK_PARALLELISM n INDEXING MODE AUTOSELECT
REBUILD
INCREMENTAL
DEFERRED

ALLOW NO ACCESS
 
ALLOW READ ACCESS YES
USE nombre-espacio-tablas FETCH_PARALLELISM NO

 
SET INTEGRITY PENDING CASCADE IMMEDIATE LOCK WITH FORCE
DEFERRED

Capítulo 5. mandatos CLP 415


LOAD

 
SOURCEUSEREXIT ejecutable Redirigir parámetros de entrada/salida
PARALLELIZE

 

PARTITIONED DB CONFIG
 opción-bd-particionada

Parámetros de IGNORE y de MAP:


,

IGNORE (  sqlid-esquema )


,

MAP (  ( sqlid-esquema , sqlid-esquema ) )

Redirigir parámetros de entrada/salida:

REDIRECT INPUT FROM BUFFER almac-int-entrada


FILE arch-entrada OUTPUT TO FILE archivo-salida
OUTPUT TO FILE archivo-salida

Notas:
1 Estas palabras clave pueden aparecer en cualquier orden.
2 Cada una de estas palabras clave sólo puede aparecer una vez.

Parámetros del mandato


CLIENT Especifica que los datos que se deben cargar residen en un cliente
conectado de forma remota. Esta opción se ignora si la operación de carga
no se está invocando desde un cliente remoto. Esta opción se ignora si se
especifica junto con el tipo de archivo CURSOR.

Nota:
1. Los modificadores dumpfile y lobsinfile y la opción XML FROM hacen
referencia a archivos del servidor incluso cuando se especifica la
palabra clave CLIENT.
2. La conversión de página de códigos no se realiza durante una
operación de carga remota. Si la página de códigos de los datos es
diferente de la del servidor, se deberá especificar la página de códigos
de datos utilizando el modificador codepage.
En el ejemplo siguiente, un archivo de datos (/u/user/data.del) que reside
en un cliente conectado de forma remota se debe cargar en MITABLA en la
base de datos del servidor:
db2 load client from /u/user/data.del of del
modified by codepage=850 insert into mitabla
FROM nombrearchivo | nombre-conexión | dispositivo | nombre-cursor
Especifica el archivo, conexión, dispositivo o cursor que hacen referencia a
una sentencia de SQL que contiene los datos que se están cargando. Si la

416 Consulta de mandatos


LOAD

fuente de entrada es un archivo, un área de conexión de memoria o un


dispositivo, debe residir en la partición de base de datos donde reside la
base de datos, a menos que se especifique la opción CLIENT.
Si se especifican varios nombres, estos se procesarán en secuencia. Si el
último elemento especificado es un dispositivo de cinta, se le solicitará al
usuario otra cinta. Las opciones de respuesta válidas son:
c Continuar. Continuar utilizando el dispositivo que ha generado el
mensaje de aviso (por ejemplo, cuando se ha montado una cinta
nueva).
d Terminación de dispositivo. Dejar de utilizar el dispositivo que ha
generado el mensaje de aviso (por ejemplo, cuando no hay más
cintas).
t Terminar. Terminar todos los dispositivos.

Nota:
v Utilice el nombre de archivo completamente calificado. Si el servidor es
remoto, se deberá utilizar el nombre de archivo totalmente calificado. Si
la base de datos reside en la misma partición de base de datos que el
llamador, se pueden utilizar vías de acceso relativas.
v Si se exportan datos a un archivo mediante la utilización del mandato
EXPORT y del procedimiento ADMIN_CMD, el archivo de datos será
propiedad del ID de usuario delimitado. Normalmente, este archivo ya
no es accesible para el propietario de la instancia. Para ejecutar LOAD
desde CLP o el procedimiento ADMIN_CMD, el ID del propietario de la
instancia debe poder acceder al archivo de datos, por lo tanto, debe
otorgarse al propietario de la instancia acceso de lectura para el archivo
de datos.
v Se soporta la carga de datos de múltiples archivos IXF si los archivos
están físicamente separados pero lógicamente forman un solo archivo.
No se soporta si los archivos están física y lógicamente separados.
(Múltiples archivos se considerarían uno solo lógicamente, si se hubiesen
creados todos con una invocación del mandato EXPORT.)
v Si se cargan datos que residen en una máquina cliente, los datos deben
estar en forma de archivo totalmente calificado o de conexión con
nombre.
v Si carga datos XML de archivos a tablas en un entorno de base de datos
particionada, los archivos de datos XML deben poderse leer desde todas
las particiones de base de datos donde se están cargando.
OF tipoarchivo
Especifica el formato de los datos:
v ASC (formato ASCII no delimitado)
v DEL (formato ASCII delimitado)
v IXF (Integration Exchange Format, versión PC) es un formato binario
que utilizan exclusivamente las bases de datos DB2.
v CURSOR (cursor declarado para una sentencia SELECT o VALUES).

Nota: Cuando se utiliza un tipo de archivo CURSOR para cargar datos


XML en una tabla en un entorno de base de datos distribuida, no se da
soporte a las modalidades PARTITION_ONLY y LOAD_ONLY.
LOBS FROM vía-lob
Vía de acceso a los archivos de datos que contienen los valores LOB que se

Capítulo 5. mandatos CLP 417


LOAD

deben cargar. La vía de acceso debe finalizar con una barra inclinada. Si se
especifica la opción CLIENT, la vía de acceso debe estar totalmente
calificada. Los nombres de los archivos de datos LOB se almacenan en el
archivo de datos principal (ASC, DEL o IXF), en la columna que se cargará
en la columna LOB. El número máximo de vías de acceso que se puede
especificar es 999. Esto activará implícitamente el comportamiento de
LOBSINFILE.
Esta opción se ignora cuando se especifica junto con el tipo de archivo
CURSOR.
MODIFIED BY mod-tipo-archivo
Especifica opciones de modificador de tipo de archivo. Consulte
“Modificadores de tipo de archivo para el programa de utilidad de carga”
en la página 446.
METHOD
L Especifica los números de columna inicial y final de los que se
deben cargar datos. Un número de columna es un desplazamiento
de bytes respecto al principio de una fila de datos. Se numera
empezando por 1. Este método sólo se puede utilizar con archivos
ASC y es el único método válido para dicho tipo de archivo.
NULL INDICATORS lista-indicadores-nulo
Esta opción sólo se puede utilizar cuando se especifica el
parámetro METHOD L, es decir, el archivo de entrada es un
archivo ASC). Una lista de indicadores nulos es una lista
de enteros positivos separados por comas que especifican
el número de columna de cada campo de indicador nulo.
El número de columna es el desplazamiento de bytes del
campo de indicador nulo respecto al principio de una fila
de datos. Debe haber una entrada en la lista de indicadores
nulos para cada campo de datos definido en el parámetro
METHOD L. Un número de columna de cero indica que el
campo de datos correspondiente siempre contiene datos.
Un valor de Y en la columna de indicador NULL especifica
que los datos de la columna son NULL. Cualquier carácter
distinto de Y en la columna del indicador NULL especifica
que los datos de columna no son NULL y se cargarán los
datos de columna especificados por METHOD L.
El carácter de indicador NULL se puede cambiar utilizando
la opción MODIFIED BY.
N Especifica los nombres de las columnas del archivo de datos que se
deben cargar. Las mayúsculas y minúsculas de estos nombres de
columna deben coincidir con las mayúsculas y minúsculas de los
nombres correspondientes en los catálogos del sistema. Cada
columna de tabla que no pueda contener nulos debe tener una
entrada correspondiente en la lista METHOD N. Por ejemplo, dados
los campos de datos F1, F2, F3, F4, F5 y F6 y las columnas de tabla
C1 INT, C2 INT NOT NULL, C3 INT NOT NULL y C4 INT, el
método N (F2, F1, F4, F3) es una petición válida, mientras que el
método N (F2, F1) no es válido. Este método sólo se puede utilizar
con archivos de tipo IXF o CURSOR.
P Especifica los números de campo (numerados a partir de 1) de los
campos de datos de entrada que se van a cargar. Cada columna de

418 Consulta de mandatos


LOAD

tabla que no pueda establecerse en valores nulos debe tener una


entrada correspondiente en la lista METHOD P. Por ejemplo, dados
los campos de datos F1, F2, F3, F4, F5 y F6 y las columnas de tabla
C1 INT, C2 INT NOT NULL, C3 INT NOT NULL y C4 INT, el
método P (2, 1, 4, 3) es una petición válida, mientras que el
método P (2, 1) no es válido. Este método sólo se puede utilizar
con los tipos de archivo IXF, DEL o CURSOR, y es el único método
válido para el tipo de archivo DEL.
XML FROM vía-xml
Especifica una o más vías de acceso que contienen los archivos XML. Los
XDS están incluidos en el archivo de datos principal (ASC, DEL, o IXF), en
la columna que se cargará en la columna XML.
XMLPARSE
Especifica cómo se analizan los documentos XML. Si no se especifica esta
opción, el comportamiento de análisis de los documentos XML vendrá
determinado por el valor del registro especial CURRENT XMLPARSE
OPTION.
STRIP WHITESPACE
Especifica que hay que eliminar el espacio en blanco al analizar el
documento XML.
PRESERVE WHITESPACE
Especifica que no hay que eliminar el espacio en blanco al analizar
el documento XML.
XMLVALIDATE
Especifica que los documentos XML se validan con respecto a un esquema,
cuando sea pertinente.
USING XDS
Los documentos XML se validan con respecto al esquema XML
identificado por el especificador de datos XML (XDS) en el
documento de datos principal. Por omisión, si se invoca la opción
XMLVALIDATE con la cláusula USING XDS, el esquema que se utiliza
para realizar la validación estará determinado por el atributo SCH
del XDS. Si no existe un atributo SCH en el XDS, no se producirá
ningún esquema de validación a menos que la cláusula DEFAULT
especifique un esquema por omisión.
Las cláusulas DEFAULT, IGNORE y MAP se pueden utilizar para
modificar el comportamiento de determinación del esquema. Estas
tres cláusulas opcionales se aplican directamente a las
especificaciones del XDS, no entre ellas. Por ejemplo, si se
selecciona un esquema porque está especificado por la cláusula
DEFAULT, no se omitirá si también está especificado por la cláusula
IGNORE. Asimismo, si se selecciona un esquema porque se ha
especificado como la primera parte de un par en la cláusula MAP,
no se volverá a correlacionar si también se ha especificado en la
segunda parte de otro par de cláusulas MAP.
USING SCHEMA sqlid-esquema
Los documentos XML se validan con respecto al esquema XML que
tiene el identificador SQL especificado. En este caso, el atributo
SCH del especificador de datos XML (XDS) se ignorará para todas
las columnas XML.

Capítulo 5. mandatos CLP 419


LOAD

USING SCHEMALOCATION HINTS


Los documentos XML se validan con respecto a los esquemas
identificados por las sugerencias de ubicación de esquemas XML
en los documentos XML fuente. Si no se encuentra un atributo
schemaLocation en el documento XML, no se producirá ninguna
validación. Cuando se especifica la cláusula USING SCHEMALOCATION
HINTS, el atributo SCH del Especificador de datos XML (XDS) se
omitirá para todas las columnas XML.

Vea los ejemplos de la opción XMLVALIDATE en la siguiente sección.


IGNORE sqlid-esquema
Esta opción sólo se puede utilizar cuando se especifica el parámetro USING
XDS. La cláusula IGNORE especifica una lista de uno o más esquemas que
hay que ignorar si están identificados mediante un atributo SCH. Si existe
un atributo SCH en el Especificador de datos XML (XDS) de un documento
XML cargado y el esquema que identifica el atributo SCH se incluye en la
lista de esquemas que han de pasarse por alto, no se producirá ninguna
validación de esquemas para el documento XML cargado.

Nota:

Si se especifica un esquema en la cláusula IGNORE, tampoco puede estar


presente en el lado izquierdo de un par de esquemas en la cláusula MAP.

La cláusula IGNORE sólo se aplica al XDS. Un esquema que está


correlacionado por la cláusula MAP no se omitirá posteriormente si se ha
especificado en la cláusula IGNORE.
DEFAULT sqlid-esquema
Esta opción sólo se puede utilizar cuando se especifica el parámetro USING
XDS. El esquema especificado mediante la cláusula DEFAULT identifica un
esquema que se debe utilizar para la validación cuando el Especificador de
datos XML (XDS) de un documento XML cargado no contiene un atributo
SCH que identifique un esquema XML.
La cláusula DEFAULT tiene prioridad sobre las cláusulas IGNORE y MAP. Si un
XDS satisface la cláusula DEFAULT, se omitirán las especificaciones IGNORE y
MAP.
MAP sqlid-esquema
Esta opción sólo se puede utilizar cuando se especifica el parámetro USING
XDS. Utilice la cláusula MAP para especificar esquemas alternativas que
deben utilizarse en lugar de los especificados por el atributo SCH de un
Especificador de datos XML (XDS) para cada documento XML cargado. La
cláusula MAP especifica una lista de uno o más pares de esquemas, donde
cada par representa una correlación de un esquema con otro. El primer
esquema del par representa un esquema al que hace referencia un atributo
SCH de un XDS. El segundo esquema del par representa el esquema que
debe utilizarse para llevar a cabo la validación de esquemas.
Si un esquema está presente en el lado izquierdo de un par de esquemas
en la cláusula MAP, tampoco puede especificarse en la cláusula IGNORE.
Una vez aplicada una correlación de par de esquemas, el resultado es final.
La operación de correlación no es transitiva y, por lo tanto, el esquema
elegido no se aplicará ulteriormente a otra correlación de par de esquemas.

420 Consulta de mandatos


LOAD

Un esquema no se puede correlacionar más de una vez, es decir, no puede


aparecer en la parte izquierda de más de un par.
SAVECOUNT n
Especifica que el programa de utilidad de carga debe establecer puntos de
coherencia después de cada n filas. Este valor se convierte en una cuenta
de páginas y se redondea por exceso a los intervalos del tamaño de
extensión. Puesto que se emite un mensaje en cada punto de coherencia,
esta opción deberá seleccionarse si la operación de carga ha de
supervisarse mediante la utilización de LOAD QUERY. Si el valor de n no es
suficientemente alto, la sincronización de las actividades realizadas en cada
punto de coherencia influirá en el rendimiento.
El valor por omisión es cero, que significa que no se establecerán puntos
de coherencia, a menos que sean necesarios.
Esta opción no se permite cuando se especifica junto con el tipo de archivo
CURSOR o cuando se carga una tabla que contiene una columna XML.
ROWCOUNT n
Especifica el número de n registros físicos del archivo que se deben cargar.
Permite a un usuario cargar solamente las primeras n filas de un archivo.
WARNINGCOUNT n
Detiene la operación de carga después de n avisos. Establezca este
parámetro si no se esperan avisos, pero se desea que se verifique si se
están utilizando el archivo y la tabla correctos. Si el archivo de carga o la
tabla de destino se especifican de modo incorrecto, el programa de utilidad
de carga generará un aviso por cada fila que intente cargar, lo que hará
que la carga falle. Si n es cero o no se especifica esta opción, la operación
de carga continuará independientemente del número de avisos emitidos. Si
la operación de carga se detiene porque se ha alcanzado el umbral de
avisos, se puede iniciar otra operación de carga en modalidad RESTART.
La operación de carga continuará automáticamente desde el último punto
de coherencia. Alternativamente, se puede iniciar otra operación de carga
en modalidad REPLACE, empezando al principio del archivo de entrada.
MESSAGES archivo-mensajes
Especifica el destino para los mensajes de aviso y error que se producen
durante la operación de carga. Si no se especifica un archivo de mensajes,
los mensajes se graban en la salida estándar a menos que la instancia esté
configurada como un entorno de base de datos particionada. Si no se
especifica la vía de acceso completa al archivo, el programa de utilidad de
carga utiliza el directorio actual y la unidad por omisión como destino. Si
se especifica el nombre de un archivo que ya existe, el programa de
utilidad añade la información.
El archivo de mensajes se llena generalmente de mensajes al final de la
operación de carga y, por este motivo, no es adecuado para supervisar el
proceso de la operación.
TEMPFILES PATH nombrevía-temp
Especifica el nombre de la vía de acceso a utilizar al crear archivos
temporales durante una operación de carga y debe estar totalmente
calificada de acuerdo a la partición de base de datos del servidor.
Los archivos temporales ocupan espacio del sistema de archivos. A veces,
este requisito de espacio es bastante importante. A continuación se
proporciona una estimación de la cantidad de espacio del sistema de
archivos que se deberá asignar para todos los archivos temporales:

Capítulo 5. mandatos CLP 421


LOAD

v 136 bytes para cada mensaje que genere el programa de utilidad de


carga
v 15 KB de actividad general si el archivo de datos contiene datos de
campo largo o LOB. Esta cantidad puede aumentar significativamente si
se especifica la opción INSERT y hay una gran cantidad de datos LOB o
de campo largo en la tabla.
INSERT Una de cuatro modalidades bajo las que se puede ejecutar el programa de
utilidad de carga. Añade los datos cargados a la tabla sin cambiar los datos
de tabla existentes.
REPLACE
Una de cuatro modalidades bajo las que se puede ejecutar el programa de
utilidad de carga. Suprime todos los datos existentes de la tabla e inserta
los datos cargados. La definición de tabla y las definiciones de índice no
cambian. Si se utiliza esta opción al mover datos entre jerarquías, sólo se
pueden sustituir los datos de una jerarquía entera, no de subtablas
individuales.
Esta opción no se puede utilizar para cargar datos en tablas temporales de
período del sistema.
KEEPDICTIONARY
Se conserva un diccionario de compresión existente a través de la
operación LOAD REPLACE. Siempre que el atributo COMPRESS de la
tabla sea YES, los datos sustituidos recientemente estarán sujetos a
la compresión utilizando el diccionario que existía antes de invocar
la carga. Si anteriormente en la tabla no existía ningún diccionario,
se crea uno nuevo utilizando los datos que se sustituyen en la tabla
siempre y cuando el atributo COMPRESS de la tabla sea YES. La
cantidad de datos que son necesarios para crear el diccionario de
compresión en este caso está sujeta a las políticas de ADC. Estos
datos se llenan en la tabla como descomprimidos. Cuando el
diccionario se haya insertado en la tabla, los datos restantes que se
van a cargar estarán sujetos a la compresión con este diccionario.
Este es el parámetro por omisión. Para obtener un resumen, vea la
Tabla 1.
Tabla 28. LOAD REPLACE KEEPDICTIONARY
Existe el
Existe el diccionario de
diccionario de objetos de
datos de fila de almacenamiento Diccionario de
Compri- mir tabla XML1 compresión Compresión de datos
YES YES YES Conserva los diccionarios Los datos que se cargarán
XML de datos de fila de están sujetos a una
la tabla. compresión.
YES YES NO Conserva el diccionario Los datos de fila de la tabla
de datos de fila de tabla que se cargarán están sujetos
y genera un nuevo a compresión. Después de
diccionario XML. generar el diccionario XML,
los datos XML restantes que
se cargarán están sujetos a
compresión.

422 Consulta de mandatos


LOAD

Tabla 28. LOAD REPLACE KEEPDICTIONARY (continuación)


Existe el
Existe el diccionario de
diccionario de objetos de
datos de fila de almacenamiento Diccionario de
Compri- mir tabla XML1 compresión Compresión de datos
YES NO YES Genera un diccionario de Después de la generación de
datos de fila de tabla y los datos de fila de la tabla,
conserva el diccionario los datos de fila de la tabla
XML. restantes que deben cargarse
están sujetos a compresión.
Los datos XML que deben
cargarse están sujetos a
compresión.
YES NO NO Genera los diccionarios Después de generar los
XML y de datos de fila diccionarios, los datos
de la tabla nuevos. restantes que deben cargarse
están sujetos a compresión.
NO YES YES Conserva los diccionarios Los datos que deben cargarse
XML de datos de fila de no se comprimen.
la tabla.
NO YES NO Conserva el diccionario Los datos que deben cargarse
de datos de fila de tabla. no se comprimen.
NO NO YES Sin efecto en el Los datos que deben cargarse
diccionario de fila de la no se comprimen.
tabla. Conserva el
diccionario XML.
NO NO NO Sin efecto. Los datos que deben cargarse
no se comprimen.

Nota:
1. Se puede crear un diccionario de compresión para el objeto de
almacenamiento XML de una tabla sólo si las columnas XML se
añaden a la tabla en DB2 Versión 9.7 o una versión posterior o
si la tabla se migra mediante un movimiento de tabla en línea.
2. Si se interrumpe la operación LOAD REPLACE KEEPDICTIONARY, el
programa de utilidad LOAD puede recuperarse después de la
emisión del mandato LOAD RESTART o LOAD TERMINATE. Puede
que el diccionario de objetos de almacenamiento XML existente
no se pueda conservar tras la recuperación de una operación
LOAD REPLACE KEEPDICTIONARY interrumpida. Se creará un
diccionario de objetos de almacenamiento XML nuevo si se
utiliza LOAD RESTART.
RESETDICTIONARY
Esta directiva da instrucciones al proceso LOAD REPLACE para crear
un diccionario nuevo para el objeto de datos de la tabla siempre
que el atributo COMPRESS de la tabla sea YES. Si el atributo de
COMPRESS es NO y ya existía un diccionario en la tabla, se
eliminará y no se insertará ningún diccionario nuevo en la tabla. Se
puede crear un diccionario de compresión con tan sólo un registro
de usuario. Si el tamaño del conjunto de datos cargados es cero y
ya existe un diccionario, el diccionario no se conservará. La

Capítulo 5. mandatos CLP 423


LOAD

cantidad de datos necesarios para crear un diccionario con esta


directiva no está sujeta a las políticas de ADC. Para obtener un
resumen, vea la Tabla 2.
Tabla 29. LOAD REPLACE RESETDICTIONARY
Existe el
Existe el diccionario de
diccionario de objetos de
datos de fila de almacenamiento Diccionario de
Compri- mir tabla XML1 compresión Compresión de datos
YES YES YES Genera nuevos Después de generar los
diccionarios2. Si la opción diccionarios, los datos
DATA CAPTURE restantes que deben cargarse
CHANGES está están sujetos a compresión.
habilitada en las
sentencias CREATE
TABLE o ALTER TABLE,
se conserva el diccionario
de datos de fila de tabla
actual (y se hace
referencia a él como
diccionario de compresión
histórica).
YES YES NO Genera nuevos Después de generar los
diccionarios2. Si la opción diccionarios, los datos
DATA CAPTURE restantes que deben cargarse
CHANGES está están sujetos a compresión.
habilitada en las
sentencias CREATE
TABLE o ALTER TABLE,
se conserva el diccionario
de datos de fila de tabla
actual (y se hace
referencia a él como
diccionario de compresión
histórica).
YES NO YES Genera nuevos Después de generar los
diccionarios. diccionarios, los datos
restantes que deben cargarse
están sujetos a compresión.
YES NO NO Genera nuevos Después de generar los
diccionarios. diccionarios, los datos
restantes que deben cargarse
están sujetos a compresión.
NO YES YES Elimina diccionarios. Los datos que deben cargarse
no se comprimen.
NO YES NO Elimina el diccionario de Los datos que deben cargarse
datos de fila de tabla. no se comprimen.
NO NO YES Elimina el diccionario de Los datos que deben cargarse
objetos de no se comprimen.
almacenamiento XML.
NO NO NO Sin efecto. Ningún dato de la tabla se
comprime.

Notas:

424 Consulta de mandatos


LOAD

1. Se puede crear un diccionario de compresión para el objeto de


almacenamiento XML de una tabla sólo si las columnas XML se
añaden a la tabla en DB2 Versión 9.7 o una versión posterior o
si la tabla se migra mediante un movimiento de tabla en línea.
2. Si hay un diccionario y se habilita el atributo de compresión,
pero no hay registros que cargar en la partición de tabla, no se
puede generar un nuevo diccionario y la operación
RESETDICTIONARY no conservará el diccionario existente.
TERMINATE
Una de cuatro modalidades bajo las que se puede ejecutar el programa de
utilidad de carga. Termina una operación de carga interrumpida
anteriormente y retrotrae la operación hasta el momento en que se empezó,
incluso si se habían pasado puntos de coherencia. Los estados de los
espacios de tablas implicados en la operación vuelven a ser normales y
todos los objetos de tabla pasan a estar coherentes (puede que los objetos
de índice se marquen como no válidos, en cuyo caso tendrá lugar
automáticamente una reconstrucción de índice en el siguiente acceso). Si la
operación de carga que se está terminando es una operación LOAD REPLACE,
la tabla se truncará a una tabla vacía después de la operación LOAD
TERMINATE. Si la operación de carga que se está terminando es una
operación LOAD INSERT, la tabla retendrá todos los registros originales
después de la operación LOAD TERMINATE. Para obtener un resumen de la
gestión de diccionarios, vea la Tabla 3.
La opción LOAD TERMINATE no eliminará un estado de copia de seguridad
pendiente de los espacios de tablas.
RESTART
Una de cuatro modalidades bajo las que se puede ejecutar el programa de
utilidad de carga. Reinicia una operación de carga interrumpida
anteriormente. La operación de carga continuará automáticamente desde el
último punto de coherencia de la fase de carga, creación o supresión. Para
obtener un resumen de la gestión de diccionarios, vea la Tabla 4.
INTO nombre_tabla
Especifica la tabla de base de datos en la que deben cargarse los datos.
Esta tabla no puede ser una tabla de sistema, una tabla temporal declarada
o una tabla temporal creada. Se puede especificar un alias o el nombre de
tabla totalmente calificado o no calificado. Un nombre de tabla calificado
tiene el formato esquema.nombretabla. Si se especifica un nombre de tabla
no calificado, la tabla se calificará con CURRENT SCHEMA.
Si la tabla de base de datos contiene columnas ocultas implícitamente, debe
especificar si en la operación de carga han de incluirse o no los datos para
las columnas ocultas. Utilice uno de los métodos siguientes para indicar si
han de incluirse los datos para las columnas ocultas:
v Utilice columna-inserción para especificar explícitamente las columnas en
las que han de insertarse datos.
db2 load from delfile1 of del
insert into table1 (c1, c2, c3,...)
v Utilice uno de los modificadores de tipo de archivo de columnas ocultas:
especifique implicitlyhiddeninclude cuando el archivo de entrada
contenga datos para las columnas ocultas o especifique
implicitlyhiddenmissing cuando el archivo de entrada no los contenga.
db2 load from delfile1 of del modified by implicitlyhiddeninclude
insert into table1

Capítulo 5. mandatos CLP 425


LOAD

v Utilice la variable de registro DB2_DMU_DEFAULT en el lado del


servidor para establecer el comportamiento por omisión que ha de
aplicarse cuando los programas de utilidad de movimiento de datos
detecten tablas con columnas ocultas implícitamente. Especifique
IMPLICITLYHIDDENINCLUDE cuando los programas de utilidad den por
supuesto que han de incluirse las columnas ocultas implícitamente o
especifique IMPLICITLYHIDDENMISSING cuando los programas de utilidad
den por supuesto que no han de incluirse las columnas ocultas
implícitamente.
db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
db2 load from delfile1 of del insert into table1
columna-inserción
Especifica la columna de tabla en la que deben insertarse los datos.
El programa de utilidad de carga no puede analizar columnas cuyos
nombres contienen uno o más espacios. Por ejemplo,
db2 load from delfile1 of del noheader
method P (1, 2, 3, 4, 5, 6, 7, 8, 9)
insert into table1 (BLOB1, S2, I3, Int 4, I5, I6, DT7, I8, TM9)
fallará debido a la columna Int 4. La solución consiste en escribir entre
comillas dobles dichos nombres de columna:
db2 load from delfile1 of del noheader
method P (1, 2, 3, 4, 5, 6, 7, 8, 9)
insert into table1 (BLOB1, S2, I3, "Int 4", I5, I6, DT7, I8, TM9)
FOR EXCEPTION nombre-tabla
Especifica la tabla de excepción en la que se copiarán las filas erróneas. Se
copiará cualquier fila que esté violando un índice exclusivo o un índice de
claves primarias. Si se especifica un nombre de tabla no calificado, la tabla
se calificará con CURRENT SCHEMA.
La información que se graba en la tabla de excepción no se graba en el
archivo de vuelco. En un entorno de base de datos particionada, se debe
definir una tabla de excepción para las particiones de base de datos en las
que se ha definido la tabla de carga. De lo contrario, el archivo de vuelcos
contiene filas que no se pueden cargar porque no son válidas o contienen
errores de sintaxis.
Cuando se cargan datos XML, la utilización de la cláusula FOR EXCEPTION
para especificar la carga de una tabla de excepciones no recibirá soporte en
los casos siguientes:
v Cuando se utiliza el control de acceso basado en etiquetas (LBAC).
v Cuando se cargan datos en una tabla particionada.
NORANGEEXC
Indica que si se rechaza una fila debido a una violación del rango, no se
insertará en la tabla de excepción.
NOUNIQUEEXC
Indica que si se rechaza una fila porque viola una restricción exclusiva, no
se insertará en la tabla de excepción.
STATISTICS USE PROFILE
Indica a la carga que recopile estadísticas durante la carga de acuerdo con
el perfil definido para esta tabla. Este perfil se debe crear antes de ejecutar
la carga. El perfil se crea con el mandato RUNSTATS. Si el perfil no existe y
se indica a la carga que debe recopilar estadísticas de acuerdo con el perfil,
se devolverá un aviso y no se recopilarán estadísticas.

426 Consulta de mandatos


LOAD

Durante la carga, no se recopilan estadísticas de distribución para las


columnas de tipo XML.
STATISTICS NO
Especifica que no se deben reunir estadísticas y que las estadísticas de los
catálogos no se deben modificar. Es el valor por omisión.
COPY NO
Especifica que el espacio de tablas en el que reside la tabla se colocará en
estado de pendiente de copia de seguridad si se habilita la recuperación en
avance (es decir, si se establece logarchmeth1 o logarchmeth2 en un valor
distinto de OFF). La opción COPY NO también pondrá el estado del espacio
de tablas en el estado de espacio de tablas Carga en curso. Éste es un
estado transitorio que desaparecerá cuando la carga se complete o termine
anormalmente. Los datos de cualquier tabla del espacio de tablas no se
pueden actualizar o suprimir hasta que se realice una copia de seguridad
del espacio de tablas o una copia de seguridad de la base de datos
completa. Sin embargo, es posible acceder a los datos de cualquier tabla
utilizando la sentencia SELECT.
LOAD con COPY NO en una base de datos recuperable deja los espacios de
tablas en estado pendiente de copia de seguridad. Por ejemplo, ejecutar
una opción LOAD con COPY NO y INDEXING MODE DEFERRED dejará los índices
con necesidad de renovación. Ciertas consultas en la tabla podrían requerir
una exploración de índice y no serán satisfactorias hasta que se renueven
los índices. El índice no puede renovarse si reside en un espacio de tablas
que se encuentre en estado de pendiente de copia de seguridad. En ese
caso, no se permitirá acceso a la tabla hasta que se realice una copia de
seguridad. La base de datos efectúa la renovación de los índices
automáticamente cuando una consulta accede al índice. Si no se especifica
una de las opciones COPY NO, COPY YES o NONRECOVERABLE, y la base de
datos es recuperable (logarchmeth1 o logarchmeth2 se establecen en un
valor distinto de OFF), COPY NO es el valor por omisión.
COPY YES
Especifica que se guardará una copia de los datos cargados. Esta opción no
es válida si la recuperación en avance está inhabilitada.
USE TSM
Especifica que la copia se almacenará utilizando Tivoli Storage
Manager (TSM).
OPEN núm-ses SESSIONS
Número de sesiones de E/S que deben utilizarse con TSM o el
producto del proveedor. El valor por omisión es 1.
TO dispositivo/directorio
Especifica el dispositivo o el directorio en el que se creará la
imagen de copia.
LOAD nombre-bibl
El nombre de la biblioteca compartida (DLL en sistemas operativos
Windows) que contiene las funciones de E/S de copia de
seguridad y restauración del proveedor que se debe utilizar. Puede
contener la vía de acceso completa. Si no se proporciona la vía de
acceso completa, se tomará por omisión la vía de acceso donde
residen los programas de salida de usuario.
NONRECOVERABLE
Especifica que la transacción de carga debe marcarse como no recuperable

Capítulo 5. mandatos CLP 427


LOAD

y que no será posible recuperarla mediante una acción de avance posterior.


El programa de utilidad de recuperación en avance saltará la transacción y
marcará la tabla en la que se estaban cargando datos como "no válida". El
programa de utilidad también ignorará las transacciones subsiguientes para
la tabla. Después de que se haya completado la operación de recuperación
en avance, una tabla de este tipo sólo se puede descartar o restaurar desde
una copia de seguridad (completa o de espacio de tablas) realizada
después de un punto de confirmación a continuación de la realización de
la operación de carga no recuperable.
Con esta opción, los espacios de tablas no se ponen en estado de pendiente
de copia de seguridad a continuación de la operación de carga y durante la
operación de carga no se tiene que realizar una copia de los datos
cargados. Si no se especifica una de las opciones COPY NO, COPY YES o
NONRECOVERABLE, y la base de datos no es recuperable (logarchmeth1 y
logarchmeth2 se establecen ambos en OFF), NONRECOVERABLE es el valor por
omisión.
WITHOUT PROMPTING
Especifica que la lista de archivos de datos contiene todos los archivos que
se deben cargar y que los dispositivos o directorios listados son suficientes
para la operación de carga entera. Si no se encuentra un archivo de entrada
de continuación o los destinos de copia se llenan antes de que finalice la
operación de carga, la operación de carga fallará y la tabla permanecerá en
estado de pendiente de carga.
Si no se especifica esta opción y el dispositivo de cinta encuentra un fin de
cinta para la imagen de copia o el último elemento listado es un
dispositivo de cinta, se le solicitará al usuario una cinta nueva en dicho
dispositivo.
DATA BUFFER tamaño-almacint
Especifica el número de páginas de 4 KB (independientemente del grado
de paralelismo) que se deben utilizar como espacio de almacenamiento
intermedio para transferir datos dentro del programa de utilidad. Si el
valor especificado es menor que el mínimo algorítmico, se utilizará el
recurso mínimo necesario y no se devolverá ningún aviso.
Esta memoria se asigna directamente desde el almacenamiento dinámico
del programa de utilidad, cuyo tamaño puede modificarse mediante el
parámetro de configuración de base de datos util_heap_sz. A partir de la
versión 9.5, el valor de la opción DATA BUFFER del mandato LOAD puede
exceder temporalmente el valor de util_heap_sz si existe más memoria
disponible en el sistema. En esta situación, el almacenamiento dinámico del
programa de utilidad se incrementa dinámicamente en función de las
necesidades hasta alcanzarse el límite de database_memory. Esta memoria se
liberará cuando haya finalizado la operación de carga.
Si no se especifica un valor, el programa de utilidad calcula un valor por
omisión inteligente en la ejecución. El valor por omisión se basa en un
porcentaje del espacio libre disponible en la pila del programa de utilidad
en el tiempo de creación de instancias del cargador, así como en algunas
características de la tabla.
SORT BUFFER tamaño-almacint
Esta opción especifica un valor que prevalece sobre el parámetro de
configuración de base de datos sortheap durante una operación de carga.
Sólo es relevante al cargar tablas con índices y sólo cuando el parámetro
INDEXING MODE no se especifica como DEFERRED. El valor especificado no

428 Consulta de mandatos


LOAD

puede exceder el valor de sortheap. Este parámetro es útil para acelerar la


memoria de clasificación que se utiliza al cargar tablas con muchos índices
sin cambiar el valor de sortheap, que también afectaría al proceso general
de la consulta.
CPU_PARALLELISM n
Especifica el número de procesos o hebras que el programa de utilidad
creará para analizar, convertir y formatear registros al crear objetos de
tabla. Este parámetro está diseñado para aprovechar el número de procesos
que se ejecutan por partición de base de datos. Es especialmente útil al
cargar datos clasificados previamente, porque se conserva el orden de
registro de los datos fuente. Si el valor de este parámetro es cero o no se
ha especificado, el programa de utilidad de carga utiliza un valor
inteligente por omisión (generalmente basado en el número de CPU
disponibles) en la ejecución.

Nota:
1. Si se utiliza este parámetro con tablas que contienen campos LOB o
LONG VARCHAR, su valor se convierte en uno, independientemente
del número de CPU de sistema o del valor especificado por el usuario.
2. La especificación de un valor pequeño para el parámetro SAVECOUNT
dará lugar a que el cargador realice muchas más operaciones de E/S
para desechar los datos y los metadatos de tabla. Cuando
CPU_PARALLELISM es mayor que uno, las operaciones de desecho son
asíncronas, permitiendo al cargado aprovechar la CPU. Cuando
CPU_PARALLELISM se establece en uno, el cargador espera en la E/S
durante los puntos de coherencia. Una operación de carga con
CPU_PARALLELISM establecido en dos y SAVECOUNT establecido en 10 000
se completa mucho más rápidamente que la misma operación con
CPU_PARALLELISM establecido en uno, aunque sólo exista una única CPU.
DISK_PARALLELISM n
Especifica el número de procesos o hebras que el programa de utilidad de
carga creará para grabar datos en los contenedores del espacio de tablas. Si
no se especifica un valor, el programa de utilidad selecciona un valor por
omisión inteligente basándose en el número de contenedores de espacios
de tablas y en las características de la tabla.
INDEXING MODE
Especifica si el programa de utilidad de carga debe volver a crear índices o
si debe ampliarlos de forma incremental. Los valores válidos son:
AUTOSELECT
El programa de utilidad de carga determinará automáticamente si
ha de utilizarse la modalidad REBUILD o INCREMENTAL. La
decisión se basa en la cantidad de datos que se cargan y en la
profundidad del árbol de índice. La información relacionada con la
profundidad del árbol de índice se almacena en el objeto de índice.
RUNSTATS no es necesario para rellenar esta información. AUTOSELECT
es la modalidad de indexación por omisión.
REBUILD
Se volverán a crear todos los índices. El programa de utilidad debe
tener suficientes recursos para clasificar todas las partes de claves
de índice para los datos de tabla antiguos y añadidos.
INCREMENTAL
Se ampliarán los índices con datos nuevos. Esta propuesta

Capítulo 5. mandatos CLP 429


LOAD

consume espacio libre de índice. Sólo necesita suficiente espacio de


clasificación para añadir claves de índice para los registros
insertados. Este método sólo recibe soporte en los casos en los que
el objeto de índice es válido y puede accederse a este al inicio de
una operación de carga (por ejemplo, no es válido inmediatamente
después de una operación de carga en la que se ha especificado la
modalidad DEFERRED). Si se especifica esta modalidad, pero no
recibe soporte debido al estado del índice, se devuelve un aviso y
la operación de carga continúa en modalidad REBUILD. De forma
similar, si se ha iniciado una operación de reinicio de carga en la
fase de creación de carga, la modalidad INCREMENTAL no recibe
soporte.
DEFERRED
El programa de utilidad de carga no intentará la creación de
índices si se especifica esta modalidad. Los índices se marcarán
como que necesitan una renovación. El primer acceso a tales
índices que no esté relacionado con una operación de carga podría
forzar una reconstrucción, o puede que se vuelvan a construir los
índices cuando se reinicie la base de datos. Este planteamiento
necesita suficiente espacio de clasificación para todas las partes
clave del índice más grande. El tiempo total empleado
posteriormente para la construcción de índices es mayor que el
necesario en la modalidad REBUILD. Por consiguiente, al efectuar
múltiples operaciones de carga con creación de índices diferida, es
aconsejable (desde un punto de vista de rendimiento) dejar que la
última operación de carga de la secuencia realice una
reconstrucción de índices, en lugar de dejar que los índices se
vuelvan a crear en el primero acceso que no sea de carga.
La creación de índices diferida sólo se soporta para tablas con
índices no exclusivos, de modo que las claves duplicadas
insertadas durante la fase de carga no son permanentes después de
la operación de carga.
ALLOW NO ACCESS
La carga bloqueará la tabla de destino para su acceso exclusivo durante la
carga. El estado de tabla se establecerá en Carga en curso durante la carga.
ALLOW NO ACCESS es el comportamiento por omisión. Es la única opción
válida para LOAD REPLACE.
Cuando la tabla tiene restricciones, el estado de ésta se establecerá en
Pendiente de establecimiento de integridad, así como en Carga en proceso.
La sentencia SET INTEGRITY se debe utilizar para sacar a la tabla del
estado Pendiente de establecimiento de integridad.
ALLOW READ ACCESS
La carga bloqueará la tabla de destino en modalidad de compartimiento. El
estado de la tabla se establecerá Carga en curso y Acceso de lectura. Los
lectores pueden acceder a la parte no delta de los datos mientras se carga
la tabla. En otras palabras, los lectores de la tabla podrán acceder a los
datos que existían antes del inicio de la carga y los datos que se están
cargando no estarán disponibles hasta que se haya completado la carga.
LOAD TERMINATE o LOAD RESTART de una carga ALLOW READ ACCESS pueden
utilizar esta opción; LOAD TERMINATE o LOAD RESTART de una carga ALLOW NO
ACCESS no pueden utilizar esta opción. Además, esta opción no es válida si
los índices de la tabla de destino están marcados como que necesitan
reconstrucción.

430 Consulta de mandatos


LOAD

Cuando haya restricciones en la tabla, el estado de la tabla se establecerá


en Pendiente de establecimiento de integridad, así como Carga en proceso
y Acceso de lectura. Al final de la carga, el estado de tabla Carga en
proceso se eliminará, pero los estados de tabla Pendiente de
establecimiento de integridad y Acceso de lectura permanecerán. La
sentencia SET INTEGRITY se debe utilizar para sacar a la tabla del estado
Pendiente de establecimiento de integridad. Mientras la tabla está en los
estados Pendiente de establecer integridad y Acceso de lectura, la porción
no delta de los datos sigue siendo accesible para los lectores y la nueva
porción (delta) de los datos seguirá siendo inaccesible hasta que se haya
completado la sentencia SET INTEGRITY. Un usuario puede realizar varias
cargas de la misma tabla sin emitir una sentencia SET INTEGRITY. Sin
embargo, sólo los datos originales (comprobados) seguirán visibles hasta
que se emita la sentencia SET INTEGRITY.
ALLOW READ ACCESS también da soporte a los modificadores siguientes:
USE nombre-espacio-tablas
Si vuelven a crearse los índices, se crea una copia sombra del
índice en el espacio de tablas nombre-espacio-tablas, y vuelve a
copiarse en el espacio de tablas original al final de la carga durante
una operación INDEX COPY PHASE. Con esta opción sólo se
pueden utilizar espacios de tablas temporales del sistema. Si
entonces no se especifica, el índice duplicado se creará en el mismo
espacio de tablas que el objeto de índice. Si la copia duplicada se
crea en el espacio de tablas como objeto de índice, la copia del
objeto de índice duplicado sobre el antiguo objeto de índice es
instantánea. Si la copia sombra está en un espacio de tablas
diferente del objeto de índice, se realiza una copia física. Esto
podría implicar una E/S y tiempo considerables. La copia se
realiza mientras la tabla se encuentra fuera de línea al final de una
carga durante la operación INDEX COPY PHASE.
Sin esta opción, el índice duplicado se construye en el mismo
espacio de tablas que el original. Dado que tanto el índice original
como el duplicado por omisión residen simultáneamente en el
mismo espacio de tablas, es posible que no haya espacio suficiente
para mantener ambos índices en un mismo espacio de tablas. El
uso de esta opción asegura que se retiene suficiente espacio de
tablas para los índices.
Esta opción se omite si el usuario no especifica INDEXING MODE
REBUILD o INDEXING MODE AUTOSELECT. Esta opción también se
omitirá si se elige INDEXING MODE AUTOSELECT y la carga decide
actualizar de forma incremental el índice.
FETCH_PARALLELISM YES | NO
Cuando se realiza una carga desde un cursor en el que se ha declarado el
cursor mediante la palabra clave DATABASE o cuando se utiliza la entrada de
soporte de almacenamiento sqlu_remotefetch_entry de la API y esta opción
tiene el valor YES, el programa de utilidad de carga intentará paralelizar la
captación desde la fuente de datos remota si es posible. Si se establece en
NO, no se realizará ninguna captación en paralelo. El valor por omisión es
YES. Para obtener más información, consulte “Mover datos utilizando el
tipo de archivo CURSOR”.
SET INTEGRITY PENDING CASCADE
Si LOAD pone la tabla en el estado Pendiente de establecimiento de
integridad, la opción SET INTEGRITY PENDING CASCADE permite al usuario

Capítulo 5. mandatos CLP 431


LOAD

especificar si el estado Pendiente de establecimiento de integridad de la


tabla cargada se pondrá inmediatamente en cascada en todos los
descendientes (incluidas las tablas de claves foráneas descendientes, las
tablas de consulta materializada inmediatamente descendentes y las tablas
de etapas inmediatas descendientes).
IMMEDIATE
Indica que el estado Pendiente de establecimiento de integridad se
extiende inmediatamente a todas las tablas de claves foráneas
descendientes, las tablas de consulta materializada inmediatamente
y las tablas de etapas descendientes. En el caso de una operación
LOAD INSERT, el estado Pendiente de establecimiento de integridad
no se extiende a las tablas de claves foráneas descendientes,
incluso aunque se especifique la opción IMMEDIATE.
Cuando, posteriormente, se comprueba si se ha producido alguna
infracción de restricciones en la tabla cargada (mediante la
utilización de la opción IMMEDIATE CHECKED de la sentencia
SET INTEGRITY), las tablas de claves foráneas descendientes que
se habían establecido en el estado Establecer integridad pendiente
con acceso de lectura se establecerán en el estado Establecer
integridad pendiente sin acceso.
DEFERRED
Indica que sólo la tabla cargada se pondrá en el estado Pendiente
de establecimiento de integridad. Los estados de las tablas de clave
foránea descendientes, las tablas de consulta materializada
inmediatas descendientes y las tablas por fases inmediatas
descendientes seguirán sin cambios.
Las tablas de claves foráneas descendientes podrían establecerse
posteriormente y de forma implícita en el estado Establecer
integridad pendiente cuando se compruebe si se han producido
infracciones de restricciones en las tablas padre (mediante la
utilización de la opción IMMEDIATE CHECKED de la sentencia
SET INTEGRITY). Las tablas de consulta materializada inmediatas
descendientes y las tablas de etapas inmediatas descendientes se
pondrán implícitamente en estado Pendiente de establecimiento de
integridad cuando se compruebe la existencia de posibles
violaciones de la integridad en una de sus tablas subyacentes. Una
consulta de una tabla que tenga el estado Pendiente de
establecimiento de integridad podría ser correcta si, en lugar de
acceder a la tabla especificada, la consulta accede a una tabla de
consulta materializada elegible que no tiene el estado Pendiente de
establecimiento de integridad. Se emitirá un aviso (SQLSTATE
01586) para indicar que las tablas descendientes se han colocado en
estado Pendiente de establecimiento de integridad. Consulte el
apartado Notas de la sentencia SET INTEGRITY de la publicación
Consulta de SQL para obtener información relacionada con el
establecimiento de estas tablas descendientes en el estado
Pendiente de establecer integridad.
Si no se especifica la opción SET INTEGRITY PENDING CASCADE:
v Sólo la tabla cargada se pondrá en el estado Pendiente de
establecimiento de integridad. El estado de las tablas de claves foráneas
descendientes, las tablas de consulta materializada inmediatas
descendientes y las tablas de etapas inmediatas descendientes no
cambiará y, posteriormente, se podrá poner implícitamente en el estado

432 Consulta de mandatos


LOAD

Pendiente de establecimiento de integridad cuando se compruebe si la


tabla cargada contiene posibles violaciones de restricciones.
Si LOAD no establece la tabla de destino en el estado Pendiente de establecer
integridad, la opción SET INTEGRITY PENDING CASCADE se pasa por alto.
LOCK WITH FORCE
El programa de utilidad adquiere varios bloqueos, incluidos los bloqueos
de tabla en proceso de carga. En lugar de esperar, y posiblemente exceder
el tiempo de espera, al adquirir un bloqueo, esta opción permite que la
carga fuerce otras aplicaciones que retienen bloqueos que están en conflicto
en la tabla de destino. El programa de utilidad de carga no forzará las
aplicaciones que retienen bloqueos que están en conflicto en las tablas de
catálogos del sistema. Las aplicaciones forzadas se retrotraerán y se
liberarán los bloqueos que necesita el programa de utilidad de carga.
Entonces, el programa de utilidad de carga podrá continuar. Esta opción
requiere la misma autorización que el mandato FORCE APPLICATIONS
(SYSADM o SYSCTRL).
Las cargas ALLOW NO ACCESS pueden forzar las aplicaciones que contienen
bloqueos en conflicto al principio de la operación de carga. Al inicio de la
carga, el programa de utilidad puede forzar aplicaciones que intentan
consultar o modificar la tabla.
Las cargas ALLOW READ ACCESS pueden forzar las aplicaciones que contienen
bloqueos en conflicto al comienzo o al final de la operación de carga. Al
inicio de la carga, el programa de utilidad de carga puede forzar
aplicaciones que intentan modificar la tabla. Al final de la operación de
carga, el programa de utilidad de carga puede forzar aplicaciones que
intentan consultar o modificar la tabla.
SOURCEUSEREXIT ejecutable
Especifica un nombre de archivo ejecutable que se invocará para alimentar
datos en el programa de utilidad.

Capítulo 5. mandatos CLP 433


LOAD

REDIRECT
INPUT FROM
BUFFER almac-int-entrada
La secuencia de bytes especificada en
almacenamiento-intermedio-entrada se transfiere al
descriptor de archivo STDIN del proceso que
ejecuta el ejecutable suministrado.
FILE arch-entrada
El contenido de este archivo en el extremo cliente
se transfiere al descriptor de archivo STDIN del
proceso que ejecuta el ejecutable suministrado.
OUTPUT TO
FILE archivo-salida
Los descriptores de archivo STDOUT y STDERR se
capturan en el archivo del lado del servidor
totalmente calificado que se ha especificado.
PARALLELIZE
Aumenta el rendimiento de los datos que acceden al programa de
utilidad de carga invocando simultáneamente varios procesos de
salida de usuario. Esta opción sólo es aplicable en entornos de base
de datos de varias particiones y se omite en entornos de base de
datos de una sola partición.

Para obtener más información, consulte “Mover datos utilizando una


aplicación personalizada (salida de usuario)”.
PARTITIONED DB CONFIG opción-bd-particionada
Permite ejecutar una carga en una tabla distribuida en varias particiones de
base de datos. El parámetro PARTITIONED DB CONFIG permite especificar
opciones de configuración específicas de la base de datos particionada. Los
valores de opción-bd-particionada pueden ser cualquiera de las opciones
siguientes:
PART_FILE_LOCATION x
OUTPUT_DBPARTNUMS x
PARTITIONING_DBPARTNUMS x
MODE x
MAX_NUM_PART_AGENTS x
ISOLATE_PART_ERRS x
STATUS_INTERVAL x
PORT_RANGE x
CHECK_TRUNCATION
MAP_FILE_INPUT x
MAP_FILE_OUTPUT x
TRACE x
NEWLINE
DISTFILE x
OMIT_HEADER
RUN_STAT_DBPARTNUM x

Encontrará descripciones detalladas de estas opciones en “Opciones de


configuración de carga para entornos de bases de datos particionadas”.
RESTARTCOUNT
En desuso.
USING directorio
En desuso.

434 Consulta de mandatos


LOAD

Ejemplos

Ejemplo 1

TABLE1 tiene 5 columnas:


v COL1 VARCHAR 20 NOT NULL WITH DEFAULT
v COL2 SMALLINT
v COL3 CHAR 4
v COL4 CHAR 2 NOT NULL WITH DEFAULT
v COL5 CHAR 2 NOT NULL

ASCFILE1 tiene 7 elementos:


v ELE1 posiciones 01 a 20
v ELE2 posiciones 21 a 22
v ELE3 posiciones 23 a 23
v ELE4 posiciones 24 a 27
v ELE5 posiciones 28 a 31
v ELE6 posiciones 32 a 32
v ELE7 posiciones 33 a 40

Registros de datos:
1...5....10....15....20....25....30....35....40
Datos de prueba 1 XXN 123abcdN
Datos de prueba 2 y 3 QQY wxyzN
Datos de prueba 4, 5 y 6 WWN6789 Y

El mandato siguiente carga la tabla del archivo:


db2 load from ascfile1 of asc modified by striptblanks reclen=40
method L (1 20, 21 22, 24 27, 28 31)
null indicators (0,0,23,32)
insert into table1 (col1, col5, col2, col3)

Nota:
1. La especificación de striptblanks en el parámetro MODIFIED BY fuerza el
truncamiento de los espacios en blanco de las columnas VARCHAR (por
ejemplo, COL1, que tiene una longitud de 11, 17 y 19 bytes, en las filas 1, 2 y
3).
2. La especificación de reclen=40 en el parámetro MODIFIED BY indica que no
existe ningún carácter de línea nueva al final de cada registro de entrada y que
cada registro de entrada tiene 40 bytes de longitud. Los últimos 8 bytes no se
utilizan para cargar la tabla.
3. Dado que COL4 no se proporciona en el archivo de entrada, se insertará en
TABLE1 con su valor por omisión (se ha definido NOT NULL WITH
DEFAULT).
4. Las posiciones 23 y 32 se utilizan para indicar si COL2 y COL3 de TABLE1 se
cargarán como NULL para una fila determinada. Si hay una Y en la posición de
indicador nulo de la columna para un registro determinado, la columna será
NULL. Si hay una N, los valores de datos de las posiciones de datos de la
columna del registro de entrada (como se define as en L(........)) se utilizarán
como la fuente de datos de columna para la fila. En este ejemplo, ninguna de
las columnas de la fila 1 es NULL, COL2 en la fila 2 es NULL y COL3 en la fila
3 es NULL.

Capítulo 5. mandatos CLP 435


LOAD

5. En este ejemplo, NULL INDICATORS para COL1 y COL5 se especifican como 0


(cero), indicando que los datos no pueden contener nulos.
6. NULL INDICATOR para una columna determinada puede estar en cualquier
parte del registro de entrada, pero se debe especificar la posición y se deben
proporcionar los valores Y o N.

Ejemplo 2 (Carga de LOB de archivos)

TABLE1 tiene 3 columnas:


v COL1 CHAR 4 NOT NULL WITH DEFAULT
v LOB1 LOB
v LOB2 LOB

ASCFILE1 tiene 3 elementos:


v ELE1 posiciones 01 a 04
v ELE2 posiciones 06 a 13
v ELE3 posiciones 15 a 22

Los archivos siguientes residen en /u/user1 o /u/user1/bin:


v ASCFILE2 tiene datos LOB
v ASCFILE3 tiene datos LOB
v ASCFILE4 tiene datos LOB
v ASCFILE5 tiene datos LOB
v ASCFILE6 tiene datos LOB
v ASCFILE7 tiene datos LOB

Registros de datos de ASCFILE1:


1...5....10...15...20...25...30.
REC1 ASCFILE2 ASCFILE3
REC2 ASCFILE4 ASCFILE5
REC3 ASCFILE6 ASCFILE7

El mandato siguiente carga la tabla del archivo:


db2 load from ascfile1 of asc
lobs from /u/user1, /u/user1/bin
modified by lobsinfile reclen=22
method L (1 4, 6 13, 15 22)
insert into table1

Nota:
1. La especificación de lobsinfile en el parámetro MODIFIED BY indica al cargador
que todos los datos LOB deben cargarse de los archivos.
2. La especificación de reclen=22 en el parámetro MODIFIED BY indica que no
existe ningún carácter de línea nueva al final de cada registro de entrada y que
cada registro tiene 22 bytes de longitud.
3. Los datos LOB están contenidos en 6 archivos, ASCFILE2 a ASCFILE7. Cada
archivo contiene los datos que se utilizarán para cargar una columna LOB para
una fila específica. La relación entre los LOB y otros datos se especifica en
ASCFILE1. El primer registro de este archivo indica al cargador que coloque
REC1 en COL1 de la fila 1. El contenido de ASCFILE2 se utilizará para cargar
LOB1 de la fila 1 y el contenido de ASCFILE3 se utilizará para cargar LOB2 de

436 Consulta de mandatos


LOAD

la fila 1. De forma similar, se utilizarán ASCFILE4 y ASCFILE5 para cargar


LOB1 y LOB2 de la fila 2 y se utilizarán ASCFILE6 y ASCFILE7 para cargar los
LOB de la fila 3.
4. El parámetro LOBS FROM contiene 2 vías de acceso en las que se buscarán los
archivos LOB nombrados cuando el cargador necesite dichos archivos.
5. Para cargar los LOB directamente desde ASCFILE1 (un archivo ASCII no
delimitado), sin el modificador lobsinfile, deben observarse las normas
siguientes:
v La longitud total de cualquier registro, incluidos los LOB no puede exceder
de 32 KB.
v Los campos LOB de los registros de entrada deben ser de longitud fija y los
datos LOB deben rellenarse con los espacios en blanco que sean necesarios.
v Se debe especificar el modificador striptblanks, de modo que los blancos de
cola utilizados para rellenar los LOB puedan eliminarse a medida que se
insertan los LOB en la base de datos.

Ejemplo 3 (Utilización de archivos de vuelcos)

La tabla FRIENDS se define como:


table friends "( c1 INT NOT NULL, c2 INT, c3 CHAR(8) )"

Si se intentan cargar los registros de datos siguientes en esta tabla,


23, 24, bobby
, 45, john
4,, mary

se rechaza la segunda fila porque el primer INT es NULL y la definición de


columna especifica NOT NULL. Las columnas que contienen caracteres iniciales
que no sean coherentes con el formato DEL generarán un error y se rechazará el
registro. Dichos registros se pueden grabar en un archivo de vuelco.

Los datos DEL que aparecen en una columna fuera de los delimitadores de
caracteres se ignoran, pero no generan un aviso. Por ejemplo:
22,34,"bob"
24,55,"sam" sdf

El programa de utilidad cargará "sam" en la tercera columna de la tabla y se


señalarán los caracteres "sdf" en un aviso. No se rechazará el registro. Otro
ejemplo:
22 3, 34,"bob"

El programa de utilidad cargará 22,34,"bob" y generará un aviso indicando que se


han ignorado unos datos de la columna uno a continuación de 22. No se rechazará
el registro.

Ejemplo 4 (Cargar de una tabla con una columna de identidad)

TABLE1 tiene 4 columnas:


v C1 VARCHAR(30)
v C2 INT GENERATED BY DEFAULT AS IDENTITY
v C3 DECIMAL(7,2)
v C4 CHAR(1)

Capítulo 5. mandatos CLP 437


LOAD

TABLE2 es igual que TABLE1, excepto que C2 es una columna de identidad que se
genera siempre (GENERATED ALWAYS).

Registros de datos en DATAFILE1 (formato DEL):


"Liszt"
"Hummel",,187.43, H
"Grieg",100, 66.34, G
"Satie",101, 818.23, I

Registros de datos en DATAFILE2 (formato DEL):


"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I

Nota:
1. El mandato siguiente genera valores de identidad para las filas 1 y 2, dado que
no se proporcionan valores de identidad en DATAFILE1 para dichas filas. Sin
embargo, a la fila 3 se le ha asignado el valor de identidad proporcionado por
el usuario 100 y a la fila 4 se le ha asignado el valor de identidad
proporcionado por el usuario 101.
db2 load from datafile1.del of del replace into table1
2. Para cargar DATAFILE1 en TABLE1 de modo que se generen valores de
identidad para todas las filas, emita uno de los mandatos siguientes:
db2 load from datafile1.del of del method P(1, 3, 4)
replace into table1 (c1, c3, c4)
db2 load from datafile1.del of del modified by identityignore
replace into table1
3. Para cargar DATAFILE2 en TABLE1 de modo que se generen valores de
identidad para cada fila, emita uno de los mandatos siguientes:
db2 load from datafile2.del of del replace into table1 (c1, c3, c4)
db2 load from datafile2.del of del modified by identitymissing
replace into table1
4. Para cargar DATAFILE1 en TABLE2 de modo que se asignen valores de
identidad de 100 y 101 a las filas 3 y 4, emita el mandato siguiente:
db2 load from datafile1.del of del modified by identityoverride
replace into table2

En este caso, las filas 1 y 2 se rechazarán, porque se le ha indicado al programa


de utilidad que altere temporalmente los valores de identidad generados por el
sistema en favor de los valores proporcionados por el usuario. Sin embargo, si
no existen valores proporcionados por el usuario, se deberá rechazar la fila
porque las columnas de identidad son implícitamente no NULL.
5. Si se carga DATAFILE1 en TABLE2 sin utilizar ninguno de los modificadores
de tipo de archivo relacionados con la identidad, se cargarán las filas 1 y 2,
pero se rechazarán las filas 3 y 4, porque proporcionan sus propios valores no
NULL y la columna de identidad es GENERATED ALWAYS.

Ejemplo 5 (carga de una tabla con una columna de indicación de fecha y hora de
cambio de fila)

TABLE1 tiene 4 columnas:


v C1 VARCHAR(30)
v C2 ROW CHANGE TIMESTAMP GENERATED BY DEFAULT
v C3 DECIMAL(7,2)

438 Consulta de mandatos


LOAD

v C4 CHAR(1)

TABLE2 es igual que TABLE1, excepto que C2 es una columna que se genera
siempre (GENERATED ALWAYS).

Registros de datos en DATAFILE1 (formato DEL):


"Liszt"
"Hummel",,187.43, H
"Grieg", 2006-05-23-15.55.53.209971, 66.34, G
"Satie", 2006-05-22-19.34.14.947681, 818.23, I

Registros de datos en DATAFILE2 (formato DEL):


"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I

Nota:
1. El mandato siguiente genera valores ROW CHANGE TIMESTAMP para las
filas 1 y 2, ya que no se suministran valores ROW CHANGE TIMESTAMP en
DATAFILE1 para dichas filas. Sin embargo, a las filas 3 y 4 se les han asignado
los valores ROW CHANGE TIMESTAMP proporcionados por el usuario
2006-05-23-15.55.53.209971 y 2006-05-22-19.34.14.947681.
db2 load from datafile1.del of del replace into table1
2. Para cargar DATAFILE1 en TABLE1 para que se generen valores ROW
CHANGE TIMESTAMP para todas las filas, emita uno de los mandatos
siguientes:
db2 load from datafile1.del of del method P(1, 3, 4) replace into table1
(c1, c3, c4)

db2 load from datafile1.del of del modified by rowchangetimestampignore


replace into table1
3. Para cargar DATAFILE2 en TABLE1 para que se generen valores ROW
CHANGE TIMESTAMP para cada fila, emita uno de los mandatos siguientes:
db2 load from datafile2.del of del replace into table1 (c1, c3, c4)

db2 load from datafile2.del of del modified by rowchangetimestampmissing


replace into table1
4. Para cargar DATAFILE1 en TABLE2 para que los valores de ROW CHANGE
TIMESTAMP de 2006-05-23-15.55.53.209971 y 2006-05-22-19.34.14.947681 se
asignen a las filas 3 y 4, emita el siguiente mandato:
db2 load from datafile1.del of del modified by rowchangetimestampoverride
replace into table2
En este caso, las filas 1 y 2 se rechazarán porque se le ha indicado al programa
de utilidad que altere temporalmente los valores de ROW CHANGE
TIMESTAMP generados por el sistema en favor de los valores suministrados
por el usuario. Sin embargo, si no hay valores suministrados por el usuario, se
deberá rechazar la fila, porque las columnas de indicación de fecha y hora de
cambio de fila son implícitamente no NULL.
5. Si DATAFILE1 se carga en TABLE2 sin utilizar ninguno de los modificadores
de tipo de archivo relacionados con ROW CHANGE, las filas 1 y 2 se cargarán,
pero las filas 3 y 4 se rechazarán, porque suministran sus propios valores no
NULL y la columna de indicación de fecha y hora de cambio de fila es
GENERATED ALWAYS.

Ejemplo 6 (Carga utilizando el tipo de archivo CURSOR)

Capítulo 5. mandatos CLP 439


LOAD

La tabla ABC.TABLE1 tiene 3 columnas:


ONE INT
TWO CHAR(10)
THREE DATE

La tabla ABC.TABLE2 tiene 3 columnas:


ONE VARCHAR
TWO INT
THREE DATE

Al ejecutar los siguientes mandatos se cargarán todos los datos de ABC.TABLE1 en


ABC.TABLE2:
db2 declare mycurs cursor for select two,one,three from abc.table1
db2 load from mycurs of cursor insert into abc.table2

Si ABC.TABLE1 reside en una base de datos distinta de la base de datos ABC.TABLE2


en la que se encuentra, pueden utilizarse las opciones DATABASE, USER y USING de
la sentencia DECLARE CURSOR para realizar la carga. Por ejemplo, si ABC.TABLE1
reside en la base de datos DB1 y el ID de usuario y la contraseña de DB1 son user1
y pwd1, al ejecutar los siguientes mandatos se cargarán los datos de ABC.TABLE1 en
ABC.TABLE2:
db2 declare mycurs cursor database DB1 user user1 using pwd1
for select two,one,three from abc.table1
db2 load from mycurs of cursor insert into abc.table2

Ejemplo: Carga de datos XML

El usuario ha construido un archivo de datos con campos XDS para describir los
documentos que se van a insertar en la tabla. Puede parecerse al siguiente:
1, "<XDS FIL=""file1.xml"" />"
2, "<XDS FIL=’file2.xml’ OFF=’23’ LEN=’45’ />"

Para la primera fila, el documento XML se identifica mediante el archivo


denominado file1.xml. Observe que puesto que el delimitador de carácter es el
carácter de comillas dobles, y las comillas dobles están dentro del XDS, las marcas
de comillas dobles contenidas en el XDS se duplican. Para la segunda fila, el
documento XML se identifica mediante el archivo denominado file2.xml y
comienza en el desplazamiento de byte 23, y tiene 45 bytes de longitud.

El usuario emite un mandato de carga sin analizar ni validar opciones para la


columna XML y los datos se cargan satisfactoriamente:
LOAD
FROM data.del of DEL INSERT INTO mytable

Ejemplo: Carga de datos XML de CURSOR

La carga de datos de cursor es igual que con un tipo de columna relacional


habitual. El usuario tiene dos tablas, T1 y T2, cada una de las cuales consiste en
una única columna XML denominada C1. Para cargar (LOAD) de T1 a T2, el
usuario primero declarará un cursor:
DECLARE
X1 CURSOR FOR SELECT C1 FROM T1;

A continuación, el usuario puede emitir LOAD mediante la utilización del tipo de


cursor:

440 Consulta de mandatos


LOAD

LOAD FROM X1 of
CURSOR INSERT INTO T2

La aplicación de las opciones LOAD específicas de XML al tipo de cursor equivale a


realizar la carga desde un archivo.

Ejemplos de utilización de la cláusula XMLVALIDATE

XMLVALIDATE USING XDS

Ejemplo 1

USING XDS DEFAULT sqlid-esquema

El usuario desea validar de acuerdo con el esquema indicado en el XDS. Si hay


algún valor XDS sin atributos SCH, estos documentos se validarán con respecto al
esquema que se utiliza en esta cláusula.
XMLVALIDATE
USING XDS DEFAULT S1.SCHEMA_B

Ejemplo 2

El usuario desea validar pero IGNORA determinados esquemas que se mencionan


en el XDS.
XMLVALIDATE USING XDS IGNORE S1.SCHEMA_C

Ejemplo 3

El usuario desea validar pero vuelve a correlacionar algunos de los esquemas en el


XDS.
XMLVALIDATE USING XDS MAP( (S1.SCHEMA_A,
S2.SCHEMA_B ), (S3.SCHEMA_C, S5.SCHEMA_E) )

Dado el XDS mencionado anteriormente, cualquier documento con un atributo


SCH de S1.SCHEMA_A se validará con respecto a S2.SCHEMA_B. Asimismo,
cualquier documento con un atributo SCH de S3.SCHEMA_C se validará con
respecto a S5.SCHEMA_E.

Ejemplo 4

El usuario desea utilizar una combinación de las opciones DEFAULT, IGNORE y MAP:
XMLVALIDATE USING XDS
DEFAULT S8.SCHEMA_H
IGNORE (S9.SCHEMA_I, S10.SCHEMA_J)
MAP ((S1.SCHEMA_A, S2.SCHEMA_B), (S3.SCHEMA_C, S5.SCHEMA_E),
(S6.SCHEMA_F, S3.SCHEMA_C), (S4.SCHEMA_D, S7.SCHEMA_G))

Para una columna XML que contiene el siguiente XDS:


<XDS
FIL=’xmlfile.001.xml’ />

El esquema XML con el identificador de SQL "S8.SCHEMA_H" se utiliza para


validar el documento del archivo xmlfile.001.xml, puesto que "S8.SCHEMA_H" se
ha especificado como el esquema por omisión que se debe utilizar.

Para una columna XML que contiene el siguiente XDS:

Capítulo 5. mandatos CLP 441


LOAD

<XDS FIL=’xmlfile.002.xml’ OFF=’10’ LEN=’500’ SCH=’S10.SCHEMA_J’ />

No se produce ninguna validación de esquema para el documento del archivo


xmlfile.002.xml porque, aunque el XDS especifica "S10.SCHEMA_J" como el
esquema que ha de utilizarse, ese esquema forma parte de la cláusula IGNORE. El
contenido del documento se encuentra en un desplazamiento igual a 10 bytes en el
archivo (es decir, en el byte número 11), y la longitud es de 500 bytes.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.003.xml’ SCH=’S6.SCHEMA_F’ />

Se utiliza el esquema XML con el identificador de SQL "S3.SCHEMA_C" para


validar el documento del archivo xmlfile.003.xml. Esto es así porque la cláusula
MAP especifica que el esquema "S6.SCHEMA_F" debe correlacionarse con el
esquema "S3.SCHEMA_C". Tenga en cuenta que no se produce una correlación
adicional, por lo que la correlación del esquema "S3.SCHEMA_C" con el esquema
"S5.SCHEMA_E" no se aplica en este caso.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.004.xml’ SCH=’S11.SCHEMA_K’ />

El esquema XML con el identificador de SQL "S11.SCHEMA_K" se utiliza para


validar el documento del archivo xmlfile.004.xml. Observe que en este caso no se
aplica ninguna de las especificaciones DEFAULT, IGNORE o MAP.

XMLVALIDATE USING SCHEMA

El usuario desea validar todos los documentos XML de acuerdo con un único
esquema (SCHEMA). Para la siguiente cláusula XMLVALIDATE:
XMLVALIDATE USING SCHEMA S2.SCHEMA_B

Para una columna XML que contiene el siguiente XDS:


<XDS
FIL=’xmlfile.001.xml’ />

El documento del archivo xmlfile.001.xml se valida utilizando el esquema XML


con el identificador de SQL "S2.SCHEMA_B".

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.002.xml’ SCH=’S1.SCHEMA_A’ />

El documento del archivo xmlfile.002.xml se valida mediante la utilización del


esquema XML con el identificador de SQL "S2.SCHEMA_B". Observe que el
atributo SCH se omite, ya que la validación se realiza utilizando un esquema
especificado por la cláusula USING SCHEMA.

XMLVALIDATE USING SCHEMALOCATION HINTS

El usuario desea validar de acuerdo con la información del esquema situada dentro
del propio documento. Para la siguiente cláusula XMLVALIDATE:
XMLVALIDATE
USING SCHEMALOCATION HINTS

Para una columna XML que contiene el siguiente XDS:

442 Consulta de mandatos


LOAD

<XDS
FIL=’xmlfile.001.xml’ />

El esquema XML utilizado viene determinado por el atributo schemaLocation


presente en el contenido del documento, y no se produce validación si no hay uno
presente.

Para una columna XML que contiene el siguiente XDS:


<XDS FIL=’xmlfile.002.xml’ SCH=’S1.SCHEMA_A’ />

El esquema XML utilizado viene determinado por el atributo schemaLocation


presente en el contenido del documento, y no se produce validación si no hay uno
presente. Observe que el atributo SCH se omite, ya que la validación se realiza
utilizando SCHEMALOCATION HINTS.

Notas de uso
v Los datos se cargan en la secuencia que aparecen en el archivo de entrada. Si se
desea una secuencia determinada, se deberán clasificar los datos antes de
intentar una carga. Si no es necesario conservar el orden de los datos de origen,
considere la posibilidad de utilizar el modificador de tipo de archivo ANYORDER,
que se describe a continuación en la sección “Modificadores de tipo de archivo
para el programa de utilidad de carga”.
v El programa de utilidad de carga crea índices basándose en las definiciones
existentes. Las tablas de excepción se utilizan para manejar duplicados en claves
exclusivas. El programa de utilidad no fuerza la integridad referencial, no realiza
ninguna comprobación de restricciones ni actualiza las tablas de consulta
materializada que dependen de las tablas que se están cargando. Las tablas que
incluyen restricciones de comprobación o de referencia se ponen en el estado
Pendiente de establecimiento de integridad. Las tablas de resumen que se
definen con REFRESH IMMEDIATE y que dependen de las tablas que se cargan,
también se ponen en el estado Pendiente de establecimiento de integridad.
Ejecute la sentencia SET INTEGRITY para sacar a las tablas del estado Pendiente
de establecimiento de integridad. Las operaciones de carga no se pueden llevar a
cabo en tablas de consulta materializada duplicadas.
v Si existe un índice de clústeres en la tabla, los datos deben clasificarse en el
índice de clústeres antes de realizar la carga. Sin embargo, no es necesario
clasificar los datos antes de cargarlos en una tabla de clúster multidimensional
(MDC).
v Si se especifica una tabla de excepción cuando se carga en una tabla protegida,
las filas que están protegidas por etiquetas de seguridad no válidas se enviarán
a dicha tabla. Esto puede permitir que los usuarios que tienen acceso a la tabla
de excepción accedan a datos a los que normalmente tendrían autorización para
acceder. Para una mejor seguridad, tenga cuidado sobre a quién otorga acceso a
la tabla de excepción, suprima cada fila en cuanto esté arreglada y copiadas en
la tabla que se está cargando y descarte la tabla de excepción en cuanto haya
terminado.
v En las etiquetas de seguridad, cuando están en formato interno, puede haber
caracteres de nueva línea. Si carga el archivo utilizando el formato de archivo
DEL, los caracteres de nueva línea se podrían malinterpretar como
delimitadores. Si experimenta este problema, utilice la prioridad por omisión
más antigua para los delimitadores; para ello, especifique el modificador de tipo
de archivo delprioritychar en el mandato LOAD.
v Para realizar una carga mediante la utilización del tipo de archivo CURSOR,
donde se ha especificado la palabra clave DATABASE durante la sentencia
DECLARE CURSOR, el ID de usuario y la contraseña que se han utilizado para
Capítulo 5. mandatos CLP 443
LOAD

autentificarse en la base de datos con la que está conectado actualmente (para la


carga) se utilizarán para la autentificación para la base de datos fuente (que se
especifica mediante la opción DATABASE de la sentencia DECLARE CURSOR).
Si no se ha especificado ningún ID de usuario ni contraseña para la conexión
con la base de datos de carga, debe especificarse un ID de usuario y una
contraseña para la base de datos fuente durante la sentencia DECLARE
CURSOR.
v La carga de un archivo PC/IXF con varias partes cuyas partes individuales se
copian de un sistema Windows a un sistema AIX está soportada. Los nombres
de todos los archivos deben especificarse en el mandato LOAD. Por ejemplo, LOAD
FROM DATA.IXF, DATA.002 OF IXF INSERT INTO TABLE1. La carga en el sistema
operativo Windows de archivos PC/IXF divididos lógicamente no está
soportada.
v Cuando se reinicia un mandato LOAD anómalo, el comportamiento irá a
continuación del comportamiento existente en el sentido de que la fase BUILD
se verá forzada a utilizar la modalidad REBUILD para los índices.
v No se da soporte a la carga de documentos XML entre bases de datos y se
devuelve el mensaje de error SQL1407N.
v El programa de utilidad LOAD no soporta la carga en tablas que contienen
columnas que hacen referencia a procedimientos delimitados. Si emite el
mandato LOAD en tal tabla, recibirá el mensaje de error SQL1376N. Para
solucionar temporalmente esta restricción, se puede volver a definir la rutina
para que sea no delimitada o utilizar el programa de utilidad de importación.
v Si la tabla de base de datos contiene columnas ocultas implícitamente, debe
especificar si en la operación de carga han de incluirse o no los datos para las
columnas ocultas.

Resumen de la gestión de diccionarios LOAD TERMINATE y


LOAD RESTART

En la tabla siguiente se resume el comportamiento de gestión de diccionarios de


compresión para el proceso de LOAD bajo la directiva TERMINATE.
Tabla 30. Gestión de diccionario LOAD TERMINATE
¿Existe el El diccionario de
Atributo diccionario de objetos de TERMINATE: LOAD
COMPRESS datos de fila de almacenamiento REPLACE TERMINATE: LOAD
(comprimir) tabla antes que XML existe antes KEEPDICTIONARY o REPLACE
tabla LOAD? que LOAD1 LOAD INSERT RESETDICTIONARY
YES YES YES Conservar los diccionarios No se conserva ningún
existentes. diccionario. 2
2
YES YES NO Conservar diccionario No se conserva nada.
existente.
YES NO YES Conservar diccionario No se conserva nada.
existente.
YES NO NO No se conserva nada. No se conserva nada.
NO YES YES Conservar los diccionarios No se conserva nada.
existentes.
NO YES NO Conservar diccionario No se conserva nada.
existente.
NO NO YES Conservar diccionario No se conserva nada.
existente.
NO NO NO No hacer nada. No hacer nada.

444 Consulta de mandatos


LOAD

Nota:
1. Se puede crear un diccionario de compresión para el objeto de almacenamiento
XML de una tabla sólo si las columnas XML se añaden a la tabla en DB2
Versión 9.7 o una versión posterior o si la tabla se migra mediante un
movimiento de tabla en línea.
2. En el caso especial en el que la tabla tiene habilitada la captura de datos, se
conserva el diccionario de datos de fila de tabla.

LOAD RESTART trunca una tabla hasta el último punto de coherencia alcanzado.
Como parte del proceso LOAD RESTART, habrá un diccionario de compresión en la
tabla si existía en la tabla en el momento en que se accedió al último punto de
coherencia LOAD. En dicho caso, LOAD RESTART no creará un diccionario nuevo. Para
obtener un resumen de las posibles condiciones, vea la Tabla 4.
Tabla 31. Gestión de diccionario LOAD RESTART
¿Existe el ¿Existía el
diccionario de diccionario de
Atributo datos de fila de objetos de RESTART: LOAD
COMPRESS tabla antes que el almacenamiento REPLACE RESTART: LOAD
(comprimir) punto de XML antes que el KEEPDICTIONARY o REPLACE
tabla coherencia LOAD?1 último LOAD?2 LOAD INSERT RESETDICTIONARY
YES YES YES Conservar los diccionarios Conservar los
existentes. diccionarios existentes.
YES YES NO Mantener el diccionario de Mantener el diccionario
datos de fila de tabla de datos de fila de tabla
existente y generar el existente y generar un
diccionario XML sujeto a diccionario XML.
ADC.
YES NO YES Generar un diccionario de Generar el diccionario
datos de fila de tabla sujeto de datos de fila de tabla.
a ADC. Conservar el Conservar el diccionario
diccionario XML existente. XML existente.
YES NO NO Generar los diccionarios de Generar los diccionarios
datos de fila de la tabla y XML y de datos de fila
los XML sujetos a ADC. de la tabla.
NO YES YES Conservar los diccionarios Eliminar los diccionarios
existentes. existentes.
NO YES NO Conservar el diccionario de Eliminar el diccionario
datos de fila de tabla de datos de fila de tabla
existente. existente.
NO NO YES Conservar el diccionario Eliminar el diccionario
XML existente. XML existente.
NO NO NO No hacer nada. No hacer nada.

Notas:
1. La opción SAVECOUNT no se permite al cargar datos XML; las operaciones de
carga que no se ejecutan correctamente durante la fase de carga se reinician
desde el principio de la operación.

Capítulo 5. mandatos CLP 445


LOAD

2. Se puede crear un diccionario de compresión para el objeto de almacenamiento


XML de una tabla sólo si las columnas XML se añaden a la tabla en DB2
Versión 9.7 o una versión posterior o si la tabla se migra mediante un
movimiento de tabla en línea.

Modificadores de tipo de archivo para el programa de utilidad de


carga
Tabla 32. Modificadores de tipo de archivo válidos para el programa de utilidad de carga: Todos los formatos de
archivo
Modificador Descripción
anyorder Este modificador se utiliza junto con el parámetro cpu_parallelism. Especifica
que la conservación del orden de los datos fuente no es necesaria, produciendo
una ventaja significativa de rendimiento adicional en los sistemas SMP. Si el valor
de cpu_parallelism es 1, esta opción se pasa por alto. Esta opción no recibe
soporte si SAVECOUNT > 0, pues la recuperación de anomalía general después de un
punto de coherencia requiere que los datos se carguen en secuencia.
generatedignore Este modificador informa al programa de utilidad de carga que en el archivo de
datos existen datos para todas las columnas generadas pero que estos se deberán
ignorar. Esto hace que el programa de utilidad genere todos los valores para las
columnas generadas. Este modificador no se puede utilizar con el modificador
generatedmissing o el modificador generatedoverride.
generatedmissing Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada no contiene datos para la columna generada (ni siquiera
NULL). Esto hace que el programa de utilidad genere todos los valores para las
columnas generadas. Este modificador no se puede utilizar con el modificador
generatedignore o el modificador generatedoverride.
generatedoverride Este modificador indica al programa de utilidad de carga que acepte datos
proporcionados por el usuario para todas las columnas generadas de la tabla (lo
contrario a las normas normales para estos tipos de columnas). Es útil cuando se
migran datos de otro sistema de base de datos o al cargar una tabla a partir de
datos que se han recuperado mediante la utilización de la opción RECOVER
DROPPED TABLE en el mandato ROLLFORWARD DATABASE. Cuando se utilice este
modificador, se rechazarán las filas sin datos o con datos NULL para una
columna sin posibilidad de nulos generada (SQL3116W). Cuando se utiliza este
modificador, la tabla se colocará en estado Pendiente de establecer integridad.
Para sacar la tabla del estado Pendiente de establecimiento de integridad sin
verificar los valores suministrados por el usuario, emita el siguiente mandato
después de la operación de carga:
SET INTEGRITY FOR nombre-tabla GENERATED COLUMN
IMMEDIATE UNCHECKED

Para sacar la tabla del estado Pendiente de establecimiento de integridad y


obligar a ejecutar una verificación de los valores suministrados por el usuario,
ejecute el mandato siguiente después de la operación de carga:
SET INTEGRITY FOR nombre-tabla IMMEDIATE CHECKED.

Cuando se especifica este modificador y hay una columna generada en cualquiera


de las claves de particionamiento, las claves de dimensión o de distribución, el
mandato LOAD convertirá automáticamente el modificador a generatedignore y
proseguirá con la carga. Esto tendrá un efecto de regeneración de todos los
valores de columna generados.

Este modificador no se puede utilizar con el modificador generatedmissing o


generatedignore.

446 Consulta de mandatos


LOAD

Tabla 32. Modificadores de tipo de archivo válidos para el programa de utilidad de carga: Todos los formatos de
archivo (continuación)
Modificador Descripción
identityignore Este modificador informa al programa de utilidad de carga que existen datos para
la columna de identidad en el archivo de datos pero que estos se deberán ignorar.
Esto hace que el programa de utilidad genere todos los valores de identidad. El
comportamiento será el mismo para las columnas de identidad GENERATED
ALWAYS y GENERATED BY DEFAULT. Esto significa que, para las columnas
GENERATED ALWAYS, no se rechazará ninguna fila. Este modificador no se
puede utilizar con el modificador identitymissing o identityoverride.
identitymissing Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada no contiene datos para la columna de identidad (ni siquiera
ningún NULL) y, por consiguiente, generará un valor para cada fila. El
comportamiento será el mismo para las columnas de identidad GENERATED
ALWAYS y GENERATED BY DEFAULT. Este modificador no se puede utilizar
con el modificador identityignore o identityoverride.
identityoverride Este modificador sólo se deberá utilizar cuando exista una columna de identidad
definida como GENERATED ALWAYS en la tabla que se debe cargar. Indica al
programa de utilidad que acepte datos explícitos no NULL para dicha columna
(lo contrario a las normas habituales para estos tipos de columnas de identidad).
Es útil cuando se migran datos de otro sistema de base de datos cuando la tabla
debe definirse como GENERATED ALWAYS o cuando se carga una tabla a partir
de datos que se han recuperado mediante la utilización de la opción DROPPED
TABLE RECOVERY en el mandato ROLLFORWARD DATABASE. Cuando se utilice este
modificador, se rechazarán las filas sin datos o con datos NULL para la columna
de identidad (SQL3116W). Este modificador no se puede utilizar con el
modificador identitymissing o identityignore. El programa de utilidad no
intentará mantener o verificar la exclusividad de los valores de la columna de
identidad de la tabla cuando se utilice esta opción.
implicitlyhiddeninclude Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada contiene datos para las columnas ocultas implícitamente y
que estos datos se cargarán. Este modificador no se puede utilizar con el
modificador implicitlyhiddenmissing. Consulte la sección Nota: para obtener
información acerca de la prioridad cuando se utilizan varios modificadores.
implicitlyhiddenmissing Si se especifica este modificador, el programa de utilidad da por supuesto que el
archivo de datos de entrada no contiene datos para las columnas ocultas
implícitamente y el programa de utilidad generará valores para esas columnas
ocultas. Este modificador no se puede utilizar con el modificador
implicitlyhiddeninclude. Consulte la sección Nota: para obtener información
acerca de la prioridad cuando se utilizan varios modificadores.
indexfreespace=x x es un entero comprendido entre el 0 y el 99 inclusive. El valor se interpreta
como el porcentaje de cada página de índice que se debe dejar como espacio libre
cuando la carga reconstruye el índice. La carga con INDEXING MODE INCREMENTAL
pasa por alto esta opción. La primera entrada de una página se añade sin
restricciones; las entradas subsiguientes se añaden para mantener el porcentaje de
umbral de espacio libre. El valor por omisión es el utilizado cuando se ejecuta
CREATE INDEX.

Este valor tiene prioridad sobre el valor PCTFREE especificado en la sentencia


CREATE INDEX. La opción indexfreespace sólo afecta a las páginas hojas de
índice.

Capítulo 5. mandatos CLP 447


LOAD

Tabla 32. Modificadores de tipo de archivo válidos para el programa de utilidad de carga: Todos los formatos de
archivo (continuación)
Modificador Descripción
lobsinfile vía-lob especifica la vía de acceso a los archivos que contienen datos de LOB. Los
archivos de entrada de carga ASC, DEL o IXF contienen los nombres de los
archivos que tienen datos LOB en la columna LOB.

Esta opción no está soportada conjuntamente con el tipo de archivo CURSOR.

La cláusula LOBS FROM especifica dónde están situados los archivos LOB cuando
se utiliza el modificador lobsinfile. La cláusula LOBS FROM activará
implícitamente el comportamiento lobsinfile. La cláusula LOBS FROM transmite al
programa de utilidad LOAD la lista de vías de acceso para la búsqueda de los
archivos LOB durante la carga de los datos.

Cada vía de acceso contiene por lo menos un archivo que contiene por lo menos
un LOB al que apunta un Especificador de ubicación de LOB (LLS) en el archivo
de datos. El LLS es una representación de serie de la ubicación de un LOB en un
archivo almacenado en la vía de acceso del archivo LOB. El formato de un LLS es
nombrearchivo.ext.nnn.mmm/, donde nombrearchivo.ext es el nombre del archivo
que contiene el LOB, nnn es el desplazamiento en bytes del LOB dentro del
archivo y mmm es la longitud del LOB en bytes. Por ejemplo, si se almacena la
serie db2exp.001.123.456/ en el archivo de datos, el LOB está ubicado en el
desplazamiento 123 dentro del archivo db2exp.001 tiene una longitud de 456
bytes.

Para indicar un LOB nulo, entre el tamaño como -1. Si el tamaño se especifica
como 0, se trata como un LOB de longitud 0. Para los LOB nulos de longitud -1,
se pasan por alto el desplazamiento y el nombre de archivo. Por ejemplo, el LLS
de un LOB nulo podría ser db2exp.001.7.-1/.
noheader Salta el código de verificación de cabecera (sólo aplicable a operaciones de carga
en tablas que residen en un grupo de nodos de una partición de base de datos de
una sola partición).

Si se utiliza la carga MPP por omisión (modalidad PARTITION_AND_LOAD)


para una tabla que reside en un grupo de particiones de bases de datos de una
sola partición, no se espera que el archivo tenga una cabecera. Por lo tanto, el
modificador noheader no es necesario. Si se utiliza la modalidad LOAD_ONLY, se
espera que el archivo tenga una cabecera. La única circunstancia en la que
necesitará utilizar el modificador noheader es si desea realizar la operación
LOAD_ONLY utilizando un archivo que no tiene cabecera.
norowwarnings Suprime todos los avisos sobre filas rechazadas.
pagefreespace=x x es un entero comprendido entre el 0 y el 100 inclusive. El valor se interpreta
como el porcentaje de cada página de datos que se debe dejar como espacio libre.
Si el valor especificado no es válido debido al tamaño de fila mínimo (por
ejemplo, una fila que tiene como mínimo 3000 bytes de longitud y un valor x de
50), la fila se colocará en una página nueva. Si se especifica un valor 100, cada fila
residirá en una nueva página. El valor PCTFREE de una tabla determina la
cantidad de espacio libre designado por página. Si no se ha establecido un valor
pagefreespace en la operación de carga o un valor PCTFREE en una tabla, el
programa de utilidad llenará tanto espacio como sea posible en cada página. El
valor que pagefreespace establece prevalece temporalmente respecto al valor
PCTFREE que se ha especificado para la tabla.
periodignore Este modificador informa al programa de utilidad de carga que en el archivo de
datos existen datos para columnas de período pero que estos se deberán ignorar.
Cuando se especifica este modificador, el programa de utilidad genera todos los
valores de columna de período. Este modificador no puede utilizarse con los
modificadores periodmissing ni periodoverride.

448 Consulta de mandatos


LOAD

Tabla 32. Modificadores de tipo de archivo válidos para el programa de utilidad de carga: Todos los formatos de
archivo (continuación)
Modificador Descripción
periodmissing Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada no contiene datos para las columnas de período. Cuando se
especifica este modificador, el programa de utilidad genera todos los valores de
columna de período. Este modificador no puede utilizarse con los modificadores
periodignore ni periodoverride.
periodoverride Este modificador indica al programa de utilidad de carga que acepte datos
proporcionados por el usuario para columnas GENERATED ALWAYS AS ROW
BEGIN y GENERATED ALWAYS AS ROW END en una tabla temporal de
período del sistema. Este comportamiento es contrario a las reglas normales para
estos tipos de columnas. El modificador puede ser útil cuando desea mantener
datos de historial y cargar datos que incluyan indicaciones de fecha y hora en
una tabla temporal de período del sistema. Cuando se utiliza este modificador, se
rechazarán las filas sin ningún dato o datos NULL en una columna ROW BEGIN
o ROW END.
rowchangetimestampignore Este modificador informa al programa de utilidad de carga que los datos de la
columna de indicación de fecha y hora de cambio de fila existen en el archivo de
datos pero deben omitirse. Esto hace que el programa de utilidad genere todas las
columnas ROW CHANGE TIMESTAMP. El comportamiento será el mismo tanto
para las columnas GENERATED ALWAYS como para GENERATED BY
DEFAULT. Esto significa que, para las columnas GENERATED ALWAYS, no se
rechazará ninguna fila. Este modificador no se puede utilizar con el modificador
rowchangetimestampmissing o rowchangetimestampoverride.
rowchangetimestampmissing Si se especifica este modificador, el programa de utilidad presupone que el
archivo de datos de entrada no contiene ningún dato para la columna de
indicación de fecha y hora de cambio de fila (ni siquiera ningún NULL) y por lo
tanto, generará un valor para cada fila. El comportamiento será el mismo tanto
para las columnas GENERATED ALWAYS como para GENERATED BY
DEFAULT. Este modificador no se puede utilizar con el modificador
rowchangetimestampignore o rowchangetimestampoverride.
rowchangetimestampoverride Este modificador sólo debe utilizarse cuando exista una columna de indicación de
fecha y hora de cambio de fila definida como GENERATED ALWAYS en la tabla
que se debe cargar. Indica al programa de utilidad que acepte datos explícitos no
NULL para dicha columna (lo contrario de las normas habituales para estos tipos
de columnas de indicación de fecha y hora de cambio de fila). Es útil cuando se
migran datos de otro sistema de base de datos cuando la tabla debe definirse
como GENERATED ALWAYS o cuando se carga una tabla a partir de datos que
se han recuperado mediante la utilización de la opción DROPPED TABLE RECOVERY
en el mandato ROLLFORWARD DATABASE. Cuando se utiliza este modificador, se
rechazarán las filas sin ningún dato o datos NULL para la columna ROW
CHANGE TIMESTAMP (SQL3116W). Este modificador no se puede utilizar con el
modificador rowchangetimestampmissing o rowchangetimestampignore. El
programa de utilidad de carga no intentará mantener o verificar la exclusividad
de los valores de la columna de indicación de fecha y hora de cambio de fila
cuando se utilice esta opción.

Capítulo 5. mandatos CLP 449


LOAD

Tabla 32. Modificadores de tipo de archivo válidos para el programa de utilidad de carga: Todos los formatos de
archivo (continuación)
Modificador Descripción
seclabelchar Indica que las etiquetas de seguridad en el archivo fuente de entrada están en
formato de serie para los valores de etiqueta de seguridad en lugar de en el
formato numérico codificado por omisión. LOAD convierte cada etiqueta de
seguridad al formato interno a medida que se carga. Si una serie no tiene el
formato adecuado, la fila no se carga y se devuelve un aviso (SQLSTATE 01H53,
SQLCODE SQL3242W). Si la serie no representa una etiqueta de seguridad válida
que forma parte de la política de seguridad que protege la tabla, la fila no se
carga y se devuelve un aviso (SQLSTATE 01H53, SQLCODE SQL3243W).

Este modificador no puede especificarse si se ha especificado el modificador


seclabelname; de lo contrario, la carga no se ejecutará correctamente y se
devolverá un error (SQLCODE SQL3525N).

Si tiene una tabla que consta de una sola columna DB2SECURITYLABEL, el archivo
de datos puede tener el aspecto siguiente:
"CONFIDENTIAL:ALPHA:G2"
"CONFIDENTIAL;SIGMA:G2"
"TOP SECRET:ALPHA:G2"

Para cargar o importar estos datos, debe utilizarse el modificador de tipo de


archivo seclabelchar:
LOAD FROM input.del OF DEL MODIFIED BY SECLABELCHAR INSERT INTO t1
seclabelname Indica que las etiquetas de seguridad en el archivo fuente de entrada están
indicadas por su nombre en lugar de en el formato numérico codificado por
omisión. LOAD convertirá el nombre en la etiqueta de seguridad adecuada, si
existe. Si no existe ninguna etiqueta de seguridad con el nombre indicado para la
política de seguridad que protege la tabla, la fila no se carga y se devuelve un
aviso (SQLSTATE 01H53, SQLCODE SQL3244W).

Este modificador no puede especificarse si se ha especificado el modificador


seclabelchar; de lo contrario, la carga no se ejecutará correctamente y se
devolverá un error (SQLCODE SQL3525N).

Si tiene una tabla que consta de una sola columna DB2SECURITYLABEL, el archivo
de datos podría contener nombres de etiquetas de seguridad similares a:
"LABEL1"
"LABEL1"
"LABEL2"

Para cargar o importar estos datos, debe utilizarse el modificador de tipo de


archivo seclabelname:
LOAD FROM input.del OF DEL MODIFIED BY SECLABELNAME INSERT INTO t1

Nota: Si el tipo de archivo es ASC, los espacios a continuación del nombre de la


etiqueta de seguridad se interpretarán como parte del nombre. Para evitar esto,
utilice el modificador de tipo de archivo striptblanks con el fin de asegurarse de
que se eliminan los espacios.
totalfreespace=x x es un entero mayor o igual a 0. El valor se interpreta como el porcentaje de las
páginas totales de la tabla que debe añadirse al final de tabla como espacio libre.
Por ejemplo, si x es 20 y la tabla tiene 100 páginas de datos después de haberse
cargado los datos, se añadirán 20 páginas vacías adicionales. El número total de
páginas de datos para la tabla será de 120. El total de páginas de datos no es un
factor en el número de páginas de índice de la tabla. Esta opción no afecta al
objeto de índice. Si se realizan dos cargas especificando esta opción, la segunda
carga no volverá a utilizar el espacio extra añadido al final por la primera carga.

450 Consulta de mandatos


LOAD

Tabla 32. Modificadores de tipo de archivo válidos para el programa de utilidad de carga: Todos los formatos de
archivo (continuación)
Modificador Descripción
transactionidignore Este modificador informa al programa de utilidad que existen datos para la
columna TRANSACTION START ID en el archivo de datos pero que estos se
deberán ignorar. Cuando se especifica este modificador, el programa de utilidad
genera el valor para la columna de TRANSACTION START ID. Este modificador
no puede utilizarse con los modificadores transactionidmissing ni
transactionidoverride.
transactionidmissing Si se especifica este modificador, el programa de utilidad supone que el archivo
de datos de entrada no contiene datos para las columnas TRANSACTION START
ID. Cuando se especifica este modificador, el programa de utilidad genera el valor
para la columna de TRANSACTION START ID. Este modificador no puede
utilizarse con los modificadores transactionidignore ni transactionidoverride.
transactionidoverride Este modificador indica al programa de utilidad de carga que acepte datos
proporcionados por el usuario para la columna GENERATED ALWAYS AS
TRANSACTION START ID en una tabla temporal de período del sistema. Este
comportamiento es contrario a las reglas normales para este tipo de columna.
Cuando se utiliza este modificador, se rechazarán las filas sin ningún dato o datos
NULL en una columna TRANSACTION START ID.
usedefaults Si se ha especificado una columna fuente para una columna de tabla de destino,
pero dicha columna fuente no contiene datos para una o más instancias de fila, se
cargan los valores por omisión. He aquí unos ejemplos de datos que faltan:
v Para archivos DEL: se especifican dos delimitadores de columna adyacentes
(",,") o dos delimitadores de columnas adyacentes separados por un número
arbitrario de espacios (", ,") para un valor de columna.
v Para archivos DEL/ASC: una fila que no tiene suficientes columnas o que no es
suficientemente larga para la especificación original. Para archivos ASC, los
valores de columna NULL no se considera que falten de modo explícito y no se
sustituirán los valores de columna NULL por valores por omisión. Los valores
de columna NULL se representan mediante todos los caracteres de espacio para
columnas numéricas, de fecha, hora e indicación de fecha y hora o utilizando
NULL INDICATOR para una columna de cualquier tipo para indicar que la
columna es NULL.
Sin esta opción, si la columna fuente no contiene datos para una instancia de fila,
se produce una de las acciones siguientes:
v Para archivos DEL/ASC: Si la columna puede contener nulos, se carga un
NULL. Si la columna no puede contener nulos, el programa de utilidad rechaza
la fila.

Capítulo 5. mandatos CLP 451


LOAD

Tabla 33. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo ASCII
(ASC/DEL)
Modificador Descripción
codepage=x x es una serie de caracteres ASCII. El valor se interpreta como la página de
códigos de los datos del archivo de entrada. Convierte datos de tipo carácter (y
datos numéricos especificados en caracteres) de esta página de códigos a la
página de códigos de la base de datos durante la operación de carga.

Se aplican las siguientes normas:


v Para DBCS (gráfico) puro, DBCS mixto y EUC, los delimitadores están
restringidos al rango de x00 a x3F, inclusive.
v Para datos DEL especificados en una página de códigos EBCDIC, es posible
que los delimitadores no coincidan con los caracteres DBCS de desplazamiento
a teclado estándar y de desplazamiento a teclado ideográfico.
v nullindchar debe especificar símbolos incluidos en el conjunto ASCII estándar
entre los elementos de código x20 t x7F, inclusive. Esto hace referencia a
símbolos y elementos de código ASCII. Los datos EBCDIC pueden utilizar los
símbolos correspondientes, aunque los elementos de código serán diferentes.

Esta opción no está soportada conjuntamente con el tipo de archivo CURSOR.


dateformat="x" x es el formato de la fecha en el archivo fuente.1 Los elementos de fecha válidos
son:
AAAA - Año (cuatro dígitos entre 0000 y 9999)
M - Mes (uno o dos dígitos entre 1 y 12)
MM - Mes (dos dígitos entre 01 y 12;
se excluye mutuamente con M)
D - Día (uno o dos dígitos entre 1 y 31)
DD - Día (dos dígitos entre 01 y 31;
se excluye mutuamente con D)
DDD - Día del año (tres dígitos entre
001 y 366; se excluye mutuamente
con otros elementos de día o mes)

Se asigna un valor por omisión de 1 para cada elemento que no se haya


especificado. He aquí unos ejemplos de formatos de fecha:
"D-M-AAAA"
"MM.DD.AAAA"
"AAAADDD"

452 Consulta de mandatos


LOAD

Tabla 33. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo ASCII
(ASC/DEL) (continuación)
Modificador Descripción
dumpfile = x x es el nombre totalmente calificado (de acuerdo con la partición de base de datos
de servidor) de un archivo de excepción en el que se graban las filas rechazadas.
Se graba un máximo de 32 KB de datos por registro. La siguiente sección es un
ejemplo en el que se muestra cómo especificar un archivo de vuelco:
db2 load from data of del
modified by dumpfile = /u/user/nombrearchivo
insert into table_name

El archivo se creará y será propiedad del propietario de la instancia. Para alterar


temporalmente los permisos de archivo por omisión, utilice el modificador de
tipo de archivo dumpfileaccessall.
Nota:
1. En un entorno de base de datos particionada, la vía de acceso debe ser local
en la partición de base de datos de carga, de forma que las operaciones de
carga que se ejecuten simultáneamente no intenten grabar en el mismo
archivo.
2. El contenido del archivo se graba en disco en una modalidad asíncrona de
almacenamiento intermedio. En el caso de una operación de carga anómala o
interrumpida, el número de registros confirmados en disco no puede
conocerse con exactitud y la coherencia no puede garantizarse después de una
operación LOAD RESTART. Sólo se puede suponer que el archivo está completo
para una operación de carga que se inicia y se completa en un solo paso.
3. Si el archivo especificado ya existe, no se volverá a crear, sino que se truncará.
dumpfileaccessall Otorga acceso de lectura a 'OTHERS' cuando se crea un archivo de vuelco.

Este modificador de tipo de archivo sólo es válido cuando:


1. se utiliza junto con el modificador de tipo de archivo dumpfile
2. el usuario dispone de privilegio SELECT sobre la tabla de destino de carga
3. se emite en una partición de base de datos del servidor DB2 que reside en un
sistema operativo UNIX.

Si el archivo especificado ya existe, los permisos no se modificarán.


fastparse Debe utilizarse con precaución. Reduce la comprobación de la sintaxis en los
valores de columna suministrados por el usuario y mejora el rendimiento. Se
garantiza que las tablas sean arquitectónicamente correctas (el programa de
utilidad realiza suficientes comprobaciones para evitar una interrupción o
violación de segmentación). No obstante, no se valida la coherencia de los datos.
Esta opción debe utilizarse solamente si se está seguro de que los datos son
coherentes y correctos. Por ejemplo, si los datos que ha proporcionado el usuario
contienen el valor de columna de indicación de fecha y hora no válido
:1>0-00-20-07.11.12.000000, este valor se insertará en la tabla si se ha
especificado fastparse, y se rechazará si fastparse no se ha especificado.
implieddecimal La ubicación de una coma decimal implícita la determina la definición de
columna; ya no se supone que está al final del valor. Por ejemplo, el valor 12345
se carga en una columna DECIMAL(8,2) como 123,45, no como 12345,00.

Este modificador no se puede utilizar con el modificador packeddecimal.

Capítulo 5. mandatos CLP 453


LOAD

Tabla 33. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo ASCII
(ASC/DEL) (continuación)
Modificador Descripción
timeformat="x" x es el formato de la hora en el archivo fuente.1 Los elementos de hora válidos
son:
H - Hora (uno o dos dígitos entre 0 y 12
para un sistema de 12 horas y entre 0 y 24
para un sistema de 24 horas)
HH - Hora (dos dígitos entre 00 y 12
para un sistema de 12 horas, y entre 00 y 24
para un sistema de 24 horas; se excluye mutuamente
con H)
M - Minuto (uno o dos dígitos entre
0 y 59)
MM - Minuto (dos dígitos entre 00 y 59;
se excluye mutuamente con M)
S - Segundo (uno o dos dígitos entre
0 y 59)
SS - Segundo (dos dígitos entre 00 y 59;
se excluye mutuamente con S)
SSSSS - Segundo del día después de medianoche (5
dígitos de 00000 y 86400; se excluye
mutuamente con otros elementos de hora)
TT - Indicador de meridiano (AM o PM)

Se asigna un valor por omisión de 0 para cada elemento que no se ha


especificado. He aquí unos ejemplos de formatos de hora:
"HH:MM:SS"
"HH.MM TT"
"SSSSS"
timestampformat="x" x es el formato de la indicación de fecha y hora en el archivo fuente.1 Los
elementos válidos de la indicación de fecha y hora son:
AAAA - Año (cuatro dígitos entre 0000 y 9999)
M - Mes (uno o dos dígitos entre 1 y 12)
MM - Mes (dos dígitos entre 01 y 12;
se excluye mutuamente con M y MMM)
MMM - Mes (abreviación de tres letras no sensible a mayúsculas
y minúsculas para el nombre del mes; se excluye
mutuamente con M y MM)
D - Día (uno o dos dígitos entre 1 y 31)
DD - Día (dos dígitos entre 01 y 31; se excluye mutuamente con D)
DDD - Día del año (tres dígitos entre 001 y 366;
se excluye mutuamente con otros elementos de día o mes)
H - Hora (uno o dos dígitos entre 0 y 12
para un sistema de 12 horas y entre
0 y 24 para un sistema de 24 horas)
HH - Hora (dos dígitos entre 00 y 12
para un sistema de 12 horas, y entre 00
y 24 para un sistema de 24 horas;
se excluye mutuamente con H)
M - Minuto (uno o dos dígitos entre 0 y 59)
MM - Minuto (dos dígitos entre 00 y 59;
se excluye mutuamente con M, minuto)
S - Segundo (uno o dos dígitos entre 0 y 59)
SS - Segundo (dos dígitos entre 00 y 59;
se excluye mutuamente con S)
SSSSS - Segundo del día después de medianoche (5
dígitos de 00000 y 86400; se excluye
mutuamente con otros elementos de hora)
U (de 1 a 12 veces)
- Segundos fraccionarios (el número de casos de U representa el
número de dígitos con cada dígito comprendido entre 0 y 9
TT - Indicador de meridiano (AM o PM)

454 Consulta de mandatos


LOAD

Tabla 33. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo ASCII
(ASC/DEL) (continuación)
Modificador Descripción
timestampformat="x" Se asigna un valor por omisión de 1 para los elementos AAAA, M, MM, D, DD o
(Continuación) DDD no especificados. Se asigna un valor por omisión de 'Ene' a un elemento
MMM no especificado. Se asigna un valor por omisión de 0 para todos los demás
elementos no especificados. La siguiente sección es un ejemplo de un formato de
indicación de fecha y hora:
"AAAA/MM/DD HH:MM:SS.UUUUUU"

Los valores válidos para el elemento MMM incluyen: 'ene', 'feb', 'mar', 'abr', 'may',
'jun', 'jul', 'ago', 'sep', 'oct', 'nov' y 'dic'. Estos valores son sensibles a las
mayúsculas y minúsculas.

Si no se ha especificado el modificador timestampformat, el programa de utilidad


de carga formateará el campo de indicación de fecha y hora mediante la
utilización de uno de los dos formatos posibles:
AAAA-MM-DD-HH.MM.SS
AAAA-MM-DD HH:MM:SS

El programa de utilidad de carga elige el formato examinando el separador entre


DD y HH. Si se trata de un guión '-', el programa de utilidad de carga utilizará el
formato de guiones y puntos normal (AAAA-MM-DD-HH.MM.SS). Si se trata de un
espacio en blanco, el programa de utilidad de carga prevé un signo de dos puntos
':' para separar HH, MM y SS.

En cualquiera de los formatos, si incluye el campo de microsegundos (UUUUUU),


el programa de utilidad de carga espera el punto '.' como separador. Se acepta
cualquiera de los dos formatos, AAAA-MM-DD-HH.MM.SS.UUUUUU o AAAA-MM-DD
HH:MM:SS.UUUUUU.

En el siguiente ejemplo se muestra cómo cargar datos que contienen formatos de


fecha y hora definidos por el usuario en una tabla llamada schedule:
db2 load from delfile2 of del
modified by timestampformat="aaaa.mm.dd hh:mm tt"
insert into schedule
usegraphiccodepage Si se proporciona usegraphiccodepage, se supone que los datos cargados en
campos de datos de objeto gráfico o de gran objeto de caracteres de doble byte
(DBCLOB) se encuentran en la página de códigos gráfica. Se supone que el resto
de los datos estarán en la página de códigos de caracteres. La página de códigos
gráfica está asociada con la página de códigos de caracteres. LOAD determina la
página de códigos de caracteres a través del modificador codepage, si se especifica
o a través de la página de códigos de la base de datos si no se especifica el
modificador codepage.

Este modificador debe utilizarse junto con el archivo de datos delimitado


generado por la recuperación de descarte de tabla sólo si la tabla que se recupera
tiene datos gráficos.

Restricciones

El modificador usegraphiccodepage NO DEBE especificarse con archivos DEL


creados por el programa de utilidad EXPORT, ya que estos archivos contienen
datos codificados en una sola página de códigos. También ignorarán el
modificador usegraphiccodepage los grandes objetos de caracteres de doble byte
(DBCLOB) en los archivos.

Capítulo 5. mandatos CLP 455


LOAD

Tabla 33. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo ASCII
(ASC/DEL) (continuación)
Modificador Descripción
xmlchar Especifica que los documentos XML se codifican con la página de códigos de
caracteres.

Esta opción es útil para procesar documentos XML que estén codificados con la
página de códigos de caracteres especificada pero que no contengan una
declaración de codificación.

Para cada documento, si existe un identificador de declaración y contiene un


atributo de codificación, la codificación debe coincidir con la página de códigos
de caracteres, de lo contrario se rechazará la fila que contiene el documento.
Tenga en cuenta que la página de códigos es el valor especificado por el
modificador de tipo de archivo codepage o la página de códigos de la aplicación,
si no se ha especificado. Por omisión, los documentos están codificados en
Unicode o bien contienen un identificador de declaración con un atributo de
codificación.
xmlgraphic Especifica que los documentos XML se codifican con la página de códigos de
gráficos especificada.

Esta opción es útil para procesar documentos XML que estén codificados con una
página de códigos de gráficos específica, pero que no contengan una declaración
de codificación.

Para cada documento, si existe un identificador de declaración y contiene un


atributo de codificación, la codificación debe coincidir con la página de códigos
de gráficos, de lo contrario se rechazará la fila que contiene el documento. Tenga
en cuenta que la página de códigos de gráficos es el componente gráfico del valor
especificado por el modificador de tipo de archivo codepage o el componente
gráfico de la página de códigos de la aplicación, si no se ha especificado. Por
omisión, los documentos están codificados en Unicode o bien contienen un
identificador de declaración con un atributo de codificación.

Tabla 34. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo ASC (ASCII no
delimitado)
Modificador Descripción
binarynumerics Los datos numéricos (pero no DECIMAL) deben estar en formato binario, no en
la representación de caracteres. Esto evita conversiones costosas.

Esta opción sólo se soporta con ASC posicional, utilizando los registros de
longitud fija especificados por la opción reclen.

Se aplican las siguientes normas:


v No se realiza ninguna conversión entre tipos de datos, a excepción de BIGINT,
INTEGER y SMALLINT.
v Las longitudes de los datos deben coincidir con las definiciones de las
columnas de destino.
v Los FLOAT deben estar en formato de Coma flotante IEEE.
v Se supone que los datos binarios del archivo fuente de carga están en formato
big-endian (byte más significativo primero), independientemente de la
plataforma en la que se esté ejecutando la operación de carga.

No pueden existir NULL en los datos para las columnas afectadas por este
modificador. Cuando se utiliza este modificador, los espacios en blanco
(normalmente interpretados como NULL), se interpretan como un valor binario.

456 Consulta de mandatos


LOAD

Tabla 34. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo ASC (ASCII no
delimitado) (continuación)
Modificador Descripción
nochecklengths Si se especifica nochecklengths, se intenta cargar cada fila, incluso si los datos
fuente tienen una definición de columna que excede el tamaño de la columna de
tabla de destino. Dichas filas se pueden cargar satisfactoriamente si la conversión
de página de códigos hace que los datos fuente se acorten; por ejemplo, datos
EUC de 4 bytes en la fuente pueden acortarse a datos DBCS de 2 bytes en el
destino y necesitar la mitad del espacio. Esta opción es especialmente útil si se
sabe que los datos fuente cabrán en todos los casos, a pesar de las discrepancias
de las definiciones de columna.
nullindchar=x x es un carácter individual. Cambia el carácter que indica un valor NULL a x. El
valor por omisión de x es Y.2

Este modificador es sensible a las mayúsculas y minúsculas para archivos de


datos EBCDIC, excepto cuando el carácter es una letra inglesa. Por ejemplo, si se
especifica que el carácter indicador de NULL sea la letra N, se reconoce también n
como un indicador de NULL.
packeddecimal Carga directamente datos decimales empaquetados, dado que el modificador
binarynumerics no incluye el tipo de campo DECIMAL.

Esta opción sólo se soporta con ASC posicional, utilizando los registros de
longitud fija especificados por la opción reclen.

Los valores soportados para la porción de signo son:


+ = 0xC 0xA 0xE 0xF
- = 0xD 0xB

No pueden existir NULL en los datos para las columnas afectadas por este
modificador. Cuando se utiliza este modificador, los espacios en blanco
(normalmente interpretados como NULL), se interpretan como un valor binario.

Independientemente de la plataforma del servidor, se supone que el orden de


bytes de los datos binarios en el archivo fuente de carga es big-endian (byte más
significativo primero); es decir, cuando se utiliza este modificador en los sistemas
operativos Windows, no se debe invertir el orden de los bytes.

Este modificador no se puede utilizar con el modificador implieddecimal.


reclen=x x es un entero con un valor máximo de 32767. Se leen x caracteres de cada fila, y
no se utiliza un carácter de línea nueva para indicar el final de la fila.
striptblanks Trunca los espacios en blanco de cola al cargar datos en un campo de longitud
variable. Si no se especifica esta opción, se conservan los espacios en blanco.

Esta opción no se puede especificar junto con striptnulls. Son opciones que se
excluyen mutuamente. Esta opción sustituye a la opción t obsoleta, que se
soporta únicamente por compatibilidad con niveles anteriores.
striptnulls Trunca los NULL de cola (caracteres 0x00) al cargar datos en un campo de
longitud variable. Si no se especifica esta opción, se conservan los NULL.

Esta opción no se puede especificar junto con striptblanks. Son opciones que se
excluyen mutuamente. Esta opción sustituye a la opción padwithzero obsoleta,
que sólo se soporta por compatibilidad con niveles anteriores.

Capítulo 5. mandatos CLP 457


LOAD

Tabla 34. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo ASC (ASCII no
delimitado) (continuación)
Modificador Descripción
zoneddecimal Carga datos decimales con zona, puesto que el modificador binarynumerics no
incluye el tipo de campo DECIMAL. Esta opción sólo se soporta con ASC
posicional, utilizando los registros de longitud fija especificados por la opción
reclen.

Los valores de signo de medio byte pueden ser uno de los valores siguientes:
+ = 0xC 0xA 0xE 0xF 0x3
- = 0xD 0xB 0x7

Los valores que reciben soporte para los dígitos son del 0x0 al 0x9.

Los valores que reciben soporte para las zonas son 0x3 y 0xF.

Tabla 35. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo DEL (ASCII
delimitado)
Modificador Descripción
chardelx x es un delimitador de serie de un solo carácter. El valor por omisión son las
comillas dobles ("). El carácter especificado se utiliza en lugar de las comillas
dobles para encerrar una serie de caracteres.23 Si desea especificar explícitamente
las comillas dobles (") como delimitador de serie de caracteres, debe especificarse
de la manera siguiente:
modified by chardel""

También se pueden especificar las comillas simples (') como delimitador de serie
de caracteres del modo siguiente:
modified by chardel’’
coldelx x es un delimitador de columna de un solo carácter. El valor por omisión es una
coma (,). En lugar de una coma, se utiliza el carácter especificado para indicar el
final de una columna.23
decplusblank Carácter de signo más. Hace que a los valores decimales positivos se les ponga
un espacio en blanco como prefijo en lugar de un signo más (+). La acción por
omisión es poner a los valores decimales positivos un signo más como prefijo.
decptx x es un sustituto de un solo carácter del punto como carácter de coma decimal. El
valor por omisión es un punto (.). En lugar de un punto, se utilizará el carácter
especificado como carácter de coma decimal.23
delprioritychar La prioridad por omisión actual para los delimitadores es: delimitador de
registro, delimitador de carácter, delimitador de columna. Este modificador
protege a las aplicaciones existentes que dependen de la prioridad más antigua
invirtiendo las prioridades de los delimitadores del modo siguiente: delimitador
de carácter, delimitador de registro, delimitador de columna. Sintaxis:
db2 load ... modified by delprioritychar ...

Por ejemplo, dado el archivo de datos DEL siguiente:


"Smith, Joshua",4000,34.98<delimitador de fila>
"Vincent,<delimitador de fila>, is a manager", ...
... 4005,44.37<delimitador de fila>

Si se especifica el modificador delprioritychar, sólo habrá dos filas en este


archivo de datos. El segundo <delimitador de fila> se interpretará como parte de
la primera columna de datos de la segunda fila, mientras que el primero y tercero
<delimitadores de fila> se interpretarán como delimitadores de registro reales. Si
no se especifica este modificador, habrá tres filas en este archivo de datos, cada
una de las cuales estará delimitada por un <delimitador de fila>.

458 Consulta de mandatos


LOAD

Tabla 35. Modificadores de tipo de archivo válidos para el programa de carga: Formatos de archivo DEL (ASCII
delimitado) (continuación)
Modificador Descripción
keepblanks Conserva los blancos iniciales y de cola en cada campo de tipo CHAR,
VARCHAR, LONG VARCHAR o CLOB. Sin esta opción, se eliminan todos los
espacios en blanco iniciales y de cola que no están incluidos entre los
delimitadores de caracteres y se inserta un NULL en la tabla para todos los
campos en blanco.

El ejemplo siguiente ilustra cómo cargar datos en una tabla denominada TABLE1,
al mismo tiempo que se conservan todos los espacios iniciales y de cola del
archivo de datos:
db2 load from delfile3 of del
modified by keepblanks
insert into table1
nochardel El programa de utilidad de carga asumirá que todos los bytes encontrados entre
los delimitadores de columna forman parte de los datos de la columna. Los
delimitadores de carácter se analizarán como parte de los datos de la columna.
Esta opción no debe especificarse si los datos se han exportado mediante la
utilización de un sistema de base de datos DB2 (a menos que se haya especificado
nochardel durante la exportación). Se proporciona para dar soporte a archivos de
datos de proveedores que no tienen delimitadores de caracteres. El uso incorrecto
podría causar la pérdida o la corrupción de los datos.

Esta opción no se puede especificar con chardelx, delprioritychar o


nodoubledel. Son opciones que se excluyen mutuamente.
nodoubledel Suprime el reconocimiento de los delimitadores de caracteres dobles.

Tabla 36. Modificadores de tipo de archivo válidos para el programa de utilidad de carga: Formato de archivo IXF
Modificador Descripción
forcein Indica al programa de utilidad que acepte datos a pesar de las discrepancias de
página de códigos y que suprima la conversión entre páginas de códigos.

Se comprueban los campos de destino de longitud fija para verificar que son
suficientemente grandes para los datos. Si se especifica nochecklengths, no se
realiza ninguna comprobación y se realiza un intento de cargar cada fila.
nochecklengths Si se especifica nochecklengths, se intenta cargar cada fila, incluso si los datos
fuente tienen una definición de columna que excede el tamaño de la columna de
tabla de destino. Dichas filas se pueden cargar satisfactoriamente si la conversión
de página de códigos hace que los datos fuente se acorten; por ejemplo, datos
EUC de 4 bytes en la fuente pueden acortarse a datos DBCS de 2 bytes en el
destino y necesitar la mitad del espacio. Esta opción es especialmente útil si se
sabe que los datos fuente cabrán en todos los casos, a pesar de las discrepancias
de las definiciones de columna.

Nota:
1. Es obligatorio escribir la serie de formato de fecha entre comillas dobles. Los
separadores de campo no pueden contener ninguno de los caracteres siguientes:
a-z, A-Z y 0-9. El separador de campo no debe ser igual que el delimitador de
carácter o de campo en el formato de archivo DEL. Un separador de campo es
opcional si las posiciones inicial y final de un elemento no son ambiguas. La
ambigüedad puede existir si (en función del modificador) se usan elementos
tales como D, H, M o S, debido a la longitud variable de las entradas.
Para formatos de indicación de la hora, hay que tener cuidado de evitar la
ambigüedad entre los descriptores de mes y de minuto, dado que ambos

Capítulo 5. mandatos CLP 459


LOAD

utilizan la letra M. Un campo de mes debe estar junto a otros campos de fecha.
Un campo de minuto debe ser adyacente a otros campos de hora. He aquí unos
formatos ambiguos de indicación de fecha y hora:
"M" (puede ser mes o minuto)
"M:M" (¿Cuál es cada uno?)
"M:AAAA:M" (Ambos se interpretan como mes.)
"S:M:AAAA" (adyacente a un valor de hora y un valor de fecha)

En los casos ambiguos, el programa de utilidad informará con un mensaje de


error y la operación fallará.
He aquí unos formatos no ambiguos de indicación de fecha y hora:
"M:AAAA" (Mes)
"S:M" (Minuto)
"M:AAAA:S:M" (Mes....Minuto)
"M:H:AAAA:M:D" (Minuto....Mes)
Algunos caracteres, como las comillas dobles y las barras inclinadas invertidas,
deben ir precedidos de un carácter de escape (por ejemplo, \).
2. Los valores de caracteres que se proporcionan para los modificadores de tipo
de archivo chardel, coldel o decpt deben especificarse en la página de códigos
de los datos fuente.
Se puede especificar el elemento de código de carácter (en lugar del símbolo de
carácter), utilizando la sintaxis xJJ o 0xJJ, donde JJ es la representación
hexadecimal del elemento de código. Por ejemplo, para especificar el carácter #
como delimitador de columna, utilice una de las sentencias siguientes:
... modified by coldel# ...
... modified by coldel0x23 ...
... modified by coldelX23 ...
3. En la sección “Consideraciones sobre el delimitador para mover datos” se
muestran las restricciones que se aplican a los caracteres que se pueden utilizar
como alteración temporal de los delimitadores.
4. El programa de utilidad de carga no emite un aviso si se intenta utilizar tipos
de archivo no soportados con la opción MODIFIED BY. Si se intenta esto, la
operación de carga falla y se devuelve un código de error.
5. Cuando varios modificadores tengan especificados los sufijos ignore, include,
missing y override, éstos se aplicarán en el orden en el que se listan. En la
sentencia siguiente, los datos para las columnas ocultas implícitamente que no
son columnas de identidad se incluyen en los datos de entrada. Sin embargo,
los datos para todas las columnas de identidad, con independencia del estado
oculto de éstas, no se incluyen.
db2 load from delfile1 of del modified by
implicitlyhiddeninclude identitymissing insert into table1

No obstante, el cambio del orden de los modificadores de tipo de archivo en la


sentencia siguiente significa que han de incluirse los datos para todas las
columnas ocultas implícitamente (incluidas las columnas de identidad ocultas)
en los datos de entrada. Y los datos para las columnas de identidad no ocultas
implícitamente no se incluyen.
db2 load from delfile1 of del modified by
identitymissing implicitlyhiddeninclude insert into table1

460 Consulta de mandatos


LOAD

Tabla 37. Comportamiento de LOAD al utilizar codepage y usegraphiccodepage


codepage=N usegraphiccodepage Comportamiento de LOAD
Ausente Ausente Se supone que todos los datos del archivo están en la
página de códigos de la base de datos, no en la página
de códigos de la aplicación, aunque se especifique la
opción CLIENT.
Presente Ausente Se supone que todos los datos del archivo están en la
página de códigos N.

Aviso: Los datos gráficos se corromperán cuando se


carguen en la base de datos si N es una página de
códigos de un solo byte.
Ausente Presente Se supone que los datos de caracteres del archivo están
en la página de códigos de la base de datos, aunque se
especifique la opción CLIENT. Se supone que los datos
gráficos están en la página de códigos de los datos
gráficos de la base de datos, aunque se especifique la
opción CLIENT.

Si la página de códigos de la base de datos es de un


solo byte, se supone que todos los datos están en la
página de códigos de la base de datos.

Aviso: Los datos gráficos se corromperán cuando se


carguen en una base de datos de un solo byte.
Presente Presente Se supone que los datos de caracteres están en la página
de códigos N. Se supone que los datos gráficos están en
la página de códigos gráfica de N.

Si N es una página de códigos de un solo byte o de


doble byte, se supone que todos los datos están en la
página de códigos N.

Aviso: Los datos gráficos se corromperán cuando se


carguen en la base de datos si N es una página de
códigos de un solo byte.

Información relacionada

Capítulo 5. mandatos CLP 461


LOAD QUERY

LOAD QUERY
Comprueba el estado de una operación de carga durante el proceso y devuelve el
estado de tabla. Si una carga no se está procesando, sólo se devuelve el estado de
tabla.

Para invocar satisfactoriamente este mandato también se necesitan una conexión a


la misma base de datos y una conexión CLP independiente. Lo pueden utilizar
usuarios locales o remotos.

Autorización

Ninguna

Conexión necesaria

Base de datos

Sintaxis del mandato


 LOAD QUERY TABLE nombre-tabla 
TO archivo-mensajes-local

 
NOSUMMARY SHOWDELTA
SUMMARYONLY

Parámetros del mandato


NOSUMMARY
Especifica que no se debe proporcionar información de resumen de carga
(filas leídas, filas saltadas, filas cargadas, filas rechazadas, filas suprimidas,
filas confirmadas y diversos avisos).
SHOWDELTA
Especifica que sólo se debe proporcionar información nueva (perteneciente
a sucesos de carga que se han producido desde la última invocación del
mandato LOAD QUERY).
SUMMARYONLY
Especifica que sólo se debe proporcionar información de resumen de carga.
TABLE nombre-tabla
Especifica el nombre de la tabla en la que se están cargando datos
actualmente. Si se especifica un nombre de tabla no calificado, la tabla se
calificará con CURRENT SCHEMA.
TO archivo-mensajes-local
Especifica el destino para los mensajes de aviso y error que se producen
durante la operación de carga. Este archivo no puede ser el archivo-mensajes
especificado para el mandato LOAD. Si el archivo ya existe, todos los
mensajes que ha generado el programa de utilidad de carga se añadirán al
mismo.

462 Consulta de mandatos


LOAD QUERY

Ejemplos

Un usuario que carga una gran cantidad de datos en la tabla STAFF de la base de
datos BILLYBOB desea comprobar el estado de la operación de carga. El usuario
puede especificar:
db2 connect to billybob
db2 load query table staff to /u/midir/staff.tempmsg

El archivo de salida /u/midir/staff.tempmsg podría tener un aspecto similar al


siguiente:
SQL3501W El (Los) espacio(s) de tablas en el que reside la tabla no se colocará
en estado de pendiente de copia de seguridad dado que la recuperación en avance
está inhabilitada para la base de datos.

SQL3109N El programa de utilidad está iniciando la carga de datos del archivo


"/u/midir/data/staffbig.del"

SQL3500W El programa de utilidad comienza la fase "LOAD" a la hora "03-21-2002


11:31:16.597045".

SQL3519W Empieza la carga del punto de coherencia. Cuenta de registros de


entrada = "0".

SQL3520W Se ha cargado satisfactoriamente el punto de coherencia.

SQL3519W Empieza la carga del punto de coherencia. Cuenta de registros de


entrada = "104416".

SQL3520W Se ha cargado satisfactoriamente el punto de coherencia.

SQL3519W Empieza la carga del punto de coherencia. Cuenta de registros de


entrada = "205757".

SQL3520W Se ha cargado satisfactoriamente el punto de coherencia.

SQL3519W Empieza la carga del punto de coherencia. Cuenta de registros de


entrada = "307098".

SQL3520W Se ha cargado satisfactoriamente el punto de coherencia.

SQL3519W Empieza la carga del punto de coherencia. Cuenta de registros de


entrada = "408439".

SQL3520W Se ha cargado satisfactoriamente el punto de coherencia.

SQL3532I El programa de utilidad Load está actualmente en la fase "LOAD".

Número de filas leídas = 453376


Número de filas saltadas = 0
Número de filas cargadas = 453376
Número de filas rechazadas = 0
Número de filas suprimidas = 0
Número de filas confirmadas = 408439
Número de avisos = 0

Estado de tabla:
Carga en curso

Notas de uso

Además de los bloqueos, el programa de utilidad de carga utiliza estados de tabla


para controlar el acceso a la tabla. El mandato LOAD QUERY puede utilizarse para
determinar el estado de tabla; LOAD QUERY puede utilizarse en las tablas que no se

Capítulo 5. mandatos CLP 463


LOAD QUERY

están cargando actualmente. En el caso de una tabla particionada, el estado


comunicado es el más restrictivo de los estados de la partición de datos visible
correspondientes. Por ejemplo, si una sola partición de datos se encuentra en el
estado Sólo acceso de lectura y el resto de particiones de datos están en el estado
Normal, la operación de consulta de carga devolverá el estado Sólo acceso de
lectura. Una operación de carga no dejará un subconjunto de particiones de datos
en un estado distinto del resto de la tabla. Los estados de tabla descritos por LOAD
QUERY son los siguientes:
Normal
Una tabla está en estado Normal si no está en ninguno de los demás
estados de tabla (anómalo). El estado Normal es el estado inicial de una
tabla después de crearla.
Pendiente de establecer integridad
La tabla tiene restricciones que aún no se han verificado. Utilice la
sentencia SET INTEGRITY para sacar la tabla del estado Pendiente de
establecer integridad. El programa de utilidad de carga coloca una tabla en
el estado Pendiente de establecer integridad cuando comienza una
operación de carga en una tabla con restricciones.
Carga en curso
Se trata de un estado transitorio que sólo surte efecto durante una
operación de carga.
Carga pendiente
Una operación de carga ha estado activa en esta tabla pero ha terminado
anormalmente antes de que los datos pudieran confirmarse. Emita un
mandato LOAD TERMINATE, LOAD RESTART o LOAD REPLACE para colocar la
tabla fuera de este estado.
Acceso de sólo lectura
Una tabla está en este estado durante una operación de carga si se ha
especificado la opción ALLOW READ ACCESS. El Acceso de sólo lectura es un
estado transitorio que permite a otras aplicaciones y programas de utilidad
tener acceso de lectura a los datos que existían antes de la operación de
carga.
Reorganización pendiente
En la tabla se ha ejecutado una sentencia recomendada ALTER TABLE del
mandato REORG. Debe ejecutar un mandato REORG clásico antes de poder
volver acceder a la tabla.
No disponible
No se puede acceder a la tabla. La tabla solamente se puede descartar o
restaurar a partir de una copia de seguridad. La realización de una
recuperación en avance mediante una operación de carga no recuperable
colocará la tabla en un estado de no disponibilidad.
No es posible reiniciar la carga
La tabla está en un estado de carga parcial que no permitirá una operación
de reinicio de carga. La tabla también estará en un estado de carga
pendiente. Emita un mandato LOAD TERMINATE o LOAD REPLACE para colocar
la tabla fuera del estado No es posible reiniciar la carga. Una tabla se
coloca en este estado cuando se ha ejecutado una operación de
recuperación en avance tras una operación de carga anómala que no ha
reiniciado o finalizado satisfactoriamente, o cuando se ha llevado a cabo
una operación de restauración desde una copia de seguridad en línea que
se efectuó mientras la tabla estaba en los estados Carga en curso o Carga
pendiente. En ambos casos, la información necesaria para una operación de

464 Consulta de mandatos


LOAD QUERY

reinicio de carga es poco fiable y el estado No es posible reiniciar la carga


impide que se efectúe una operación de reinicio de carga.
Desconocido
El mandato LOAD QUERY no puede determinar el estado de la tabla.

Actualmente hay como mínimo 25 estados de tabla o de espacio de tablas


soportados por el producto de base de datos IBM DB2. Estos estados se utilizan
para controlar el acceso a los datos bajo determinadas circunstancias, o para
obtener acciones específicas del usuario, cuando se necesitan, a fin de proteger la
integridad de la base de datos. La mayor parte de éstos son el resultado de sucesos
relacionados con el funcionamiento de uno de los programas de utilidad de DB2,
como el programa de utilidad de carga o los programas de utilidad de copia de
seguridad y restauración.

Aunque ya no se inmovilizan los espacios de tablas dependientes (una


inmovilización es un bloqueo permanente) con anterioridad a una operación de
carga, el estado de espacio de tablas Carga en curso impide la copia de seguridad
de tablas dependientes durante una operación de carga. El estado de espacio de
tablas Carga en curso es diferente del estado de tabla Progreso en curso: todas las
operaciones de carga utilizan el estado de tabla Carga en curso, pero todas las
operaciones de carga (en una base de datos recuperable) con la opción COPY NO
especificada también utilizan el estado de espacio de tablas Carga en curso.

La tabla siguiente describe cada uno de los estados de tabla soportados. La tabla
también proporciona ejemplos de trabajo que muestran cómo interpretar
exactamente y responder a los estados que puede encontrar al administrar la base
de datos. Los ejemplos se toman de scripts de mandatos que se han ejecutado en
AIX; puede copiar, pegar y ejecutarlos. Si ejecuta el producto de base de datos DB2
en un sistema que no sea UNIX, asegúrese de que los nombres de vía de acceso
estén en formato correcto para el sistema. La mayoría de los ejemplos se basan en
las tablas de la base de datos SAMPLE que se suministra con el producto de base
de datos DB2. Unos cuantos ejemplos necesitan escenarios que no forman parte de
la base de datos SAMPLE, pero puede utilizar una conexión con la base de datos
SAMPLE como punto de inicio.
Tabla 38. Estados de tabla soportados
Estado Ejemplos
Carga pendiente Con el archivo de entrada de carga staffdata.del, que tiene una cantidad importante de datos
(por ejemplo, 20000 o más registros), cree un espacio de tablas pequeño que contenga la tabla de
destino de la operación de carga, una nueva tabla denominada NEWSTAFF:
connect to sample;
create tablespace ts1 managed by database using (file ’/home/melnyk/melnyk/NODE0000
/SQL00001/ts1c1’ 256);
create table newstaff like staff in ts1;
load from staffdata.del of del insert into newstaff;
load query table newstaff;
load from staffdata.del of del terminate into newstaff;
load query table newstaff;
connect reset;

La información que devuelve el mandato LOAD QUERY muestra que la tabla NEWSTAFF está en
estado Pendiente de carga; después de una operación de terminar carga, la tabla está en estado
Normal.

Capítulo 5. mandatos CLP 465


LOAD QUERY

Tabla 38. Estados de tabla soportados (continuación)


Estado Ejemplos
Carga en curso Con el archivo de entrada de carga staffdata.del, que tiene una cantidad importante de datos
(por ejemplo, 20000 o más registros):
connect to sample;
create table newstaff like staff;
load from staffdata.del of del insert into newstaff;

Mientras se ejecuta la operación de carga, ejecute el siguiente script desde otra sesión:
connect to sample;
load query table newstaff;
connect reset;

La información que devuelve el mandato LOAD QUERY muestra que la tabla NEWSTAFF está en
estado Carga en curso.
Normal connect to sample;
create table newstaff like staff;
load query table newstaff;

La información que devuelve el mandato LOAD QUERY muestra la tabla NEWSTAFF en estado
Normal.
No es posible Con el archivo de entrada de carga staffdata.del, que tiene una cantidad importante de datos
reiniciar la (por ejemplo, 20000 o más registros):
carga update db cfg for sample using logarchmeth1 logretain;
backup db sample;
connect to sample;
create tablespace ts1 managed by database using (file ’/home/melnyk/melnyk/NODE0000
/SQL00001/ts1c1’ 256);
create table newstaff like staff in ts1;
connect reset;
backup db sample;

La indicación de fecha y hora para esta imagen de copia de seguridad es: 20040629205935
connect to sample;
load from staffdata.del of del insert into newstaff copy yes to /home/melnyk/backups;
connect reset;
restore db sample taken at 20040629205935;
rollforward db sample to end of logs and stop;
connect to sample;
load query table newstaff;
connect reset;

La información que devuelve el mandato LOAD QUERY muestra que la tabla NEWSTAFF está en
estado No se puede reiniciar la carga y en estado Pendiente de carga.
connect to sample;
load from staffdata.del of del terminate into newstaff copy yes to /home/melnyk/backups;
load query table newstaff;
connect reset;

La información que devuelve el mandato LOAD QUERY muestra que la tabla NEWSTAFF está ahora
en estado Normal.

466 Consulta de mandatos


LOAD QUERY

Tabla 38. Estados de tabla soportados (continuación)


Estado Ejemplos
Acceso de sólo Con el archivo de entrada de carga staffdata.del, que tiene una cantidad importante de datos
lectura (por ejemplo, 20000 o más registros):
connect to sample;
export to st_data.del of del select * from staff;
create table newstaff like staff;
import from st_data.del of del insert into newstaff;
load from staffdata.del of del insert into newstaff allow read access;

Mientras se ejecuta la operación de carga, ejecute el siguiente script desde otra sesión:
connect to sample;
load query table newstaff;
select * from newstaff;
connect reset;

La información que devuelve el mandato LOAD QUERY muestra que la tabla NEWSTAFF está en
estado Acceso de sólo lectura y Carga en curso. La consulta sólo devuelve el contenido exportado
de la tabla STAFF, los datos que existían en la tabla NEWSTAFF antes de la operación de carga.
Pendiente de Con el archivo de entrada de carga staff_data.del, que tiene el contenido:
establecer
integridad 11,"Melnyk",20,"Sales",10,70000,15000:
connect to sample;
alter table staff add constraint max_salary check (100000 - salary > 0);
load from staff_data.del of del insert into staff;
load query table staff;

La información que devuelve el mandato LOAD QUERY muestra que la tabla STAFF está en estado
Pendiente de establecer integridad.
No disponible Con el archivo de entrada de carga staff_data.del, que tiene el contenido:

11,"Melnyk",20,"Sales",10,70000,15000:
update db cfg for sample using logarchmeth1 logretain;
backup db sample;

La indicación de fecha y hora para esta imagen de copia de seguridad es: 20040629182012
connect to sample;
load from staff_data.del of del insert into staff nonrecoverable;
connect reset;
restore db sample taken at 20040629182012;
rollforward db sample to end of logs and stop;
connect to sample;
load query table staff;
connect reset;

La información que devuelve el mandato LOAD QUERY muestra que la tabla STAFF está en estado
No disponible.

El progreso de una operación de carga también se puede supervisar mediante el


mandato LIST UTILITIES.

Capítulo 5. mandatos CLP 467


MIGRATE DATABASE

MIGRATE DATABASE
Convierte una versión anterior de una base de datos de DB2 a los formatos
correspondientes al release ejecutado por la instancia.

Este mandato ha quedado en desuso y dejará de mantenerse en futuros releases.


En su lugar, ejecute el mandato UPGRADE DATABASE.

Autorización

SYSADM

Conexión necesaria

Este mandato establece una conexión de base de datos.

Sintaxis del mandato


 MIGRATE DATABASE alias-base-datos 
DB

 
USER nombre-usuario
USING contraseña

Parámetros del mandato


DATABASE alias-base-datos
Especifica el alias de la base de datos que se debe migrar a la versión del
gestor de bases de datos instalada actualmente.
USER nombreusuario
Identifica el nombre de usuario bajo el que debe migrarse la base de datos.
USING contraseña
Contraseña utilizada para autentificar el nombre de usuario. Si se omite la
contraseña, pero se ha especificado un nombre de usuario, se le solicitará
al usuario que la entre.

Notas de uso

Consulte la documentación del mandato UPGRADE DATABASE.

468 Consulta de mandatos


PING

PING
Prueba el tiempo de respuesta de red de la conectividad subyacente entre un
cliente y un servidor de bases de datos conectado.

Autorización

Ninguna

Conexión necesaria

Base de datos

Sintaxis del mandato


REQUEST tamaño_paquete RESPONSE tamaño_paquete
 PING db_alias 

TIME
1
 
número_de_veces
TIMES
TIME

Parámetros del mandato


db_alias
Especifica el alias de base de datos para la base de datos en un servidor
DRDA al que se envía el sondeo. Este parámetro, aunque es obligatorio, no
se utiliza actualmente. Se reserva para utilizarlo en el futuro. Se puede
especificar cualquier nombre de alias de base de datos válido.
REQUEST tamaño_paquete
Especifica el tamaño, en bytes, del paquete que se debe enviar al servidor.
El tamaño debe estar entre 0 y 32767 inclusive. El valor por omisión es de
10 bytes. Esta opción sólo es válida en servidores que ejecutan DB2
Database para Linux, UNIX y Windows Versión 8 o posterior, o bien DB2
Universal Database para z/OS Versión 8 o posterior.
RESPONSE tamaño_paquete
Especifica el tamaño, en bytes, del paquete que se debe devolver al cliente.
El tamaño debe estar entre 0 y 32767 inclusive. El valor por omisión es de
10 bytes. Esta opción sólo es válida en servidores que ejecutan DB2
Database para Linux, UNIX y Windows Versión 8 o posterior, o bien DB2
UDB para z/OS Versión 8 o posterior.
número_de_veces
Especifica el número de repeticiones para esta prueba. El valor debe estar
entre 1 y 32767 inclusive. El valor por omisión es 1. Se devolverá un
tiempo para cada repetición.

Ejemplos

Ejemplo 1

Capítulo 5. mandatos CLP 469


PING

Para probar una vez el tiempo de respuesta de red para la conexión con la base de
datos de sistema principal bdsistpral:
db2 ping hostdb 1
o bien
db2 ping hostdb

El mandato visualizará una salida similar a la siguiente:


Tiempo transcurrido: 7221 microsegundos

Ejemplo 2

Para probar cinco veces el tiempo de respuesta de red para la conexión con la base
de datos de sistema principal bdsistpral:

db2 ping hostdb 5


o bien
db2 ping hostdb 5 times

El mandato visualizará una salida similar a la siguiente:


Tiempo transcurrido: 8412 microsegundos
Tiempo transcurrido: 11876 microsegundos
Tiempo transcurrido: 7789 microsegundos
Tiempo transcurrido: 10124 microsegundos
Tiempo transcurrido: 10988 microsegundos

Ejemplo 3

Para probar el tiempo de respuesta de red para una conexión con la base de datos
de sistema principal bdsistpral, con un paquete de petición de 100 bytes y un
paquete de recepción de 200 bytes:
db2 ping hostdb request 100 response 200
o bien
db2 ping hostdb request 100 response 200 1 time

Notas de uso

Debe existir una conexión de base de datos antes de emitir este mandato o de lo
contrario se producirá un error.

El tiempo transcurrido que se devuelve es para la conexión entre cliente de


servidor de datos de IBM y el servidor DB2.

Este mandato no funcionará cuando se utilice desde un cliente DB2 Universal


Database Versión 7 mediante DB2 Connect Versión 8 con un servidor de bases de
datos de sistema principal DB2 conectado.

470 Consulta de mandatos


PRECOMPILE

PRECOMPILE
Procesa un archivo fuente de programa de aplicación que contiene sentencias de
SQL incorporadas. Se produce un archivo fuente modificado, que contiene
llamadas de lenguaje de sistema principal para las sentencias de SQL y, por
omisión, se crea un paquete en la base de datos.

Ámbito

Este mandato puede emitirse desde cualquier partición de base de datos de


db2nodes.cfg. En un entorno de base de datos particionada, puede emitirse desde
cualquier servidor de particiones de base de datos definido en el archivo
db2nodes.cfg. Actualiza los catálogos de base de datos de la partición de base de
datos de catálogo. Sus efectos son visibles en todas las particiones de base de
datos.

Autorización

Una de las autorizaciones siguientes:


v Autorización DBADM
v Si se especifica EXPLAIN ONLY, basta con la autorización EXPLAIN o una
autorización que incluya implícitamente EXPLAIN.
v Si no existe un paquete, la autorización BINDADD; y:
– Si el nombre de esquema del paquete no existe, la autorización
IMPLICIT_SCHEMA en la base de datos.
– Si el nombre de esquema del paquete existe, el privilegio CREATEIN para el
esquema.
v Si el paquete existe, uno de los privilegios siguientes:
– Privilegio ALTERIN para el esquema
– Privilegio BIND en el paquete

Además, si se captura información de Explain con la cláusula EXPLAIN o


EXPLSNAP, es necesaria una de las autorizaciones siguientes:
v Privilegio INSERT para las tablas de Explain
v Autorización DATAACCESS

El usuario también necesita todos los privilegios necesarios para compilar las
sentencias de SQL estático en la aplicación. Los privilegios otorgados a grupos no
se utilizan para la comprobación de autorización de las sentencias estáticas.

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión.

Sintaxis del mandato


Para DB2 Database para Linux, UNIX y Windows

 PRECOMPILE nombrearchivo 
PREP

Capítulo 5. mandatos CLP 471


PRECOMPILE

 
ACTION ADD
REPLACE

RETAIN NO REPLVER id-versión


YES

 
APREUSE NO BINDFILE
YES USING archivo-vinculación

 
BLOCKING UNAMBIG COLLECTION nombre-esquema
ALL
NO

 
CALL_RESOLUTION IMMEDIATE
DEFERRED

 
CONCURRENTACCESSRESOLUTION USE CURRENTLY COMMITTED CONNECT 1
WAIT FOR OUTCOME 2

 
DATETIME DEF DEFERRED_PREPARE NO
EUR ALL
ISO YES
JIS
LOC
USA

 
DEGREE 1 DISCONNECT EXPLICIT
grado-de-paralelismo AUTOMATIC
ANY CONDITIONAL

 
DYNAMICRULES RUN EXPLAIN NO
BIND ALL
INVOKERUN ONLY
INVOKEBIND REOPT
DEFINERUN YES
DEFINEBIND

 
EXPLSNAP NO FEDERATED NO
ALL YES
REOPT
YES

 
FEDERATED_ASYNCHRONY ANY
número_de_atqs_en_el_plan

 
, GENERIC "serie" INSERT DEF
BUF
FUNCPATH  nombre-esquema

472 Consulta de mandatos


PRECOMPILE

 
ISOLATION CS LANGLEVEL SAA1 LEVEL símbolo-coherencia
RR MIA
RS SQL92E
UR

 
(1) MESSAGES archivo-mensajes NOLINEMACRO
LONGERROR NO
YES

 
OPTLEVEL 0 OPTPROFILE nombre-perfil-optimización
1

 
OUTPUT nombrearchivo OWNER id-autorización

 
PACKAGE
USING nombre-paquete

 
PREPROCESSOR "mandato-preprocesador"
'mandato-preprocesador'

 
QUALIFIER nombre-calificador QUERYOPT nivel-optimización

REOPT NONE
 
REOPT ONCE SQLCA NONE (2)
REOPT ALWAYS SAA SQLERROR NOPACKAGE
CHECK
CONTINUE

 
SQLFLAG SQL92E SYNTAX SQLRULES DB2 SQLWARN NO
MVSDB2V23 STD YES
MVSDB2V31
MVSDB2V41

 
NO SYNCPOINT ONEPHASE SYNTAX
STATICREADONLY YES NONE
TWOPHASE

 
TARGET IBMCOB TRANSFORM GROUP nombregrupo
MFCOB
ANSI_COBOL
C
CPLUSPLUS
FORTRAN

 
VALIDATE BIND VERSION id-versión
RUN AUTO

 
WCHARTYPE NOCONVERT WITH TEMPORAL HISTORY
CONVERT WITHOUT

Capítulo 5. mandatos CLP 473


PRECOMPILE

Notas:
1 NO es el valor por omisión para sistemas de 32 bits y para sistemas
Windows de 64 bits donde pueden utilizarse variables de lenguaje
principal largas como declaraciones para columnas INTEGER. YES es
el valor por omisión para sistemas UNIX de 64 bits.
2 SYNTAX es un sinónimo de SQLERROR(CHECK).
Para bases de datos DB2 en servidores que no sean Linux, Windows ni UNIX

 PRECOMPILE nombrearchivo 
PREP

 
ACTION ADD
REPLACE

YES REPLVER id-versión


RETAIN NO

 
BINDFILE UNAMBIG
USING archivo-vinculación BLOCKING ALL
NO

 
CALL_RESOLUTION IMMEDIATE CCSIDG ccsid-doble
DEFERRED

 
CCSIDM ccsid-mixto CCSIDS ccsid-sbcs DEFAULT
CHARSUB BIT
MIXED
SBCS

 COMPILE 
YES COLLECTION nombre-esquema PRECOMPILE
CNULREQD NO

 
CONCURRENTACCESSRESOLUTION USE CURRENTLY COMMITTED 1
WAIT FOR OUTCOME CONNECT 2

 
(1) DBPROTOCOL DRDA DEC 15
DATETIME DEF PRIVATE 31
EUR
ISO
JIS
LOC
USA

 
PERIOD NO
DECDEL COMMA DEFERRED_PREPARE ALL
YES

474 Consulta de mandatos


PRECOMPILE

 
(2) 1 EXPLICIT
DEGREE grado-de-paralelismo DISCONNECT AUTOMATIC
ANY CONDITIONAL

 
RUN ENCODING ASCII
DYNAMICRULES BIND EBCDIC
INVOKERUN UNICODE
INVOKEBIND CCSID
DEFINERUN
DEFINEBIND

 
NO GENERIC "serie" IMMEDWRITE NO
EXPLAIN YES YES
PH1

 
CS KEEPDYNAMIC YES LEVEL símbolo-coherencia
ISOLATION NC NO
RR
RS
UR

 
(3) NO MESSAGES archivo-mensajes NOLINEMACRO
LONGERROR YES

 
OPTHINT id-pista 0 OS400NAMING SYSTEM
OPTLEVEL 1 SQL

 
OWNER id-autorización PREPROCESSOR "mandato-preprocesador"
'mandato-preprocesador'

 
QUALIFIER nombre-calificador COMMIT
RELEASE DEALLOCATE

REOPT NONE
 
REOPT ONCE REOPT VARS SQLFLAG SQL92E SYNTAX
REOPT ALWAYS NOREOPT VARS MVSDB2V23
MVSDB2V31
MVSDB2V41

 
SORTSEQ JOBRUN DB2 NOPACKAGE
HEX SQLRULES STD SQLERROR CHECK
CONTINUE

 
APOSTROPHE ONEPHASE SYNTAX
STRDEL QUOTE SYNCPOINT NONE
TWOPHASE

Capítulo 5. mandatos CLP 475


PRECOMPILE

 
IBMCOB TEXT etiqueta
TARGET MFCOB
ANSI_COBOL
C
CPLUSPLUS
FORTRAN
BORLAND_C
BORLAND_CPLUSPLUS

 
VERSION id-versión VALIDATE BIND
AUTO RUN

 
NOCONVERT
WCHARTYPE CONVERT

Notas:
1 Si el servidor no da soporte a la opción DATETIME DEF, se correlaciona
con DATETIME ISO.
2 La opción DEGREE sólo está soportada por servidores de aplicaciones
DRDA de Nivel 2.
3 NO es el valor por omisión para sistemas de 32 bits y para sistemas
Windows de 64 bits donde pueden utilizarse variables de lenguaje
principal largas como declaraciones para columnas INTEGER. YES es
el valor por omisión para sistemas UNIX de 64 bits.

Parámetros del mandato


nombrearchivo
Especifica el archivo fuente que se debe precompilar. Se debe especificar
una extensión de:
v .sqc para aplicaciones C (genera un archivo .c)
v Se debe especificar .sqx (sistemas operativos Windows) o .sqC (sistemas
operativos UNIX y Linux) para las aplicaciones C++ (genera un archivo
.cxx en los sistemas operativos Windows o un archivo .C en los sistemas
operativos UNIX y Linux)
v .sqb para aplicaciones COBOL (genera un archivo .cbl)
v Se debe especificar .sqf para las aplicaciones FORTRAN (genera un
archivo .for en los sistemas operativos Windows o un archivo .f en los
sistemas operativos UNIX y Linux).
La extensión preferida para las aplicaciones C++ que contienen SQL
incorporado en sistemas operativos UNIX y Linux es sqC; sin embargo, los
sistemas operativos UNIX y Linux toleran el convenio sqx, que se ideó
para los sistemas que no son sensibles a las mayúsculas y minúsculas.
ACTION
Indica si el paquete se puede añadir o sustituir.
ADD Indica que el paquete mencionado no existe y que se debe crear un
paquete nuevo. Si el paquete ya existe, se detiene la ejecución y se
devuelve un mensaje de error de diagnóstico.

476 Consulta de mandatos


PRECOMPILE

REPLACE
Indica que el paquete existente ha de sustituirse por uno nuevo
que tiene el mismo nombre de paquete y creador. Es el valor por
omisión de la opción ACTION.
RETAIN
Indica si se deben conservar las autorizaciones de
EXECUTE cuando se sustituye un paquete. Si cambia la
propiedad del paquete, el nuevo propietario otorga la
autorización BIND y EXECUTE al propietario anterior del
paquete.
NO No conserva las autorizaciones EXECUTE cuando
se sustituye un paquete. Este valor no está
soportado por DB2.
YES Conserva las autorizaciones EXECUTE cuando se
sustituye un paquete. Es el valor por omisión.
REPLVER id-versión
Sustituye una versión específica de un paquete. El
identificador de versión especifica qué versión del paquete
debe sustituirse. Si la versión especificada no existe, se
devolverá un error. Si no se especifica la opción REPLVER de
REPLACE y ya existe un paquete que coincide con el nombre
de paquete y la versión del paquete que se está
precompilando, dicho paquete debe ser sustituido; de lo
contrario, se añadirá un paquete nuevo.
APREUSE
Especifica si se van a reutilizar planes de acceso de SQL estático. Cuando
esta opción está habilitada, el compilador de consultas intentará reutilizar
los planes de acceso para la sentencia en todos los paquetes existentes
durante la vinculación y durante las revinculaciones futuras implícitas y
explícitas.
YES El compilador de consultas intentará reutilizar los planes de acceso
para las sentencias del paquete. Si existe un paquete, el compilador
de consultas intentará reutilizar el plan de acceso para cada
sentencia que pueda coincidir con una sentencia en el nuevo
archivo de vinculación. Para que la sentencia coincida, el texto de
la sentencia debe ser idéntico y el número de sección para la
sentencia en el paquete existente debe coincidir con el número de
sección que tendrá la sentencia en el nuevo paquete.
NO El compilador de consultas no intentará reutilizar planes de acceso
para las sentencias del paquete. Es el valor por omisión.
BINDFILE
Produce la creación de un archivo de vinculación. No se crea un paquete a
no ser que también se especifique la opción package. Si se solicita un
archivo de vinculación, pero no se debe crear ningún paquete, como en el
ejemplo siguiente:
db2 prep sample.sqc bindfile

Los SQLCODE de autentificación y autorización de objeto se tratarán como


avisos en lugar de errores. Esto permitirá crear un archivo de vinculación
satisfactoriamente, incluso si la base de datos que se está utilizando para la
precompilación no tiene todos los objetos a los que se hace referencia en
las sentencias de SQL estático dentro de la aplicación. El archivo de

Capítulo 5. mandatos CLP 477


PRECOMPILE

vinculación puede vincularse satisfactoriamente, creando un paquete, una


vez que se han creado los objetos necesarios.
USING archivo-vinculación
Nombre del archivo de vinculación que debe generar el
precompilador. El nombre de archivo debe tener una extensión de
.bnd. Si no se entra un nombre de archivo, el precompilador
utilizará el nombre del programa (entrado como el parámetro
nombrearchivo) y añadirá la extensión .bnd. Si no se proporciona
una vía de acceso, el archivo de vinculación se crea en el directorio
actual.
BLOCKING
Especifica el tipo de bloqueo de filas para cursores. El bloqueo de datos de
fila que contienen referencias a tipos de datos de columna LOB también
está soportado en entornos de bases de datos particionadas.
ALL Para los cursores especificados con la cláusula FOR READ ONLY o
los cursores no especificados como FOR UPDATE, se produce un
bloqueo.
Los cursores ambiguos se tratan como de sólo lectura.
NO No se produce ningún bloqueo para ningún cursor.
Para ver la definición de un cursor de sólo lectura y de un cursor
ambiguo, consulte la sentencia DECLARE CURSOR.
Los cursores ambiguos se tratan como actualizables.
UNAMBIG
Para los cursores especificados con la cláusula FOR READ ONLY,
se produce un bloqueo.
Los cursores que no se hayan declarado con la cláusula FOR READ
ONLY o FOR UPDATE que no sean ambiguos y sean de sólo
lectura se bloquearán. Los cursores ambiguos no se bloquearán.
Los cursores ambiguos se tratan como actualizables.
CALL_RESOLUTION
Si se establece, la opción CALL_RESOLUTION DEFERRED indica que se ejecutará
la sentencia CALL como invocación de la API sqleproc() en desuso. Si no
se establece, o si se establece IMMEDIATE, la sentencia CALL se ejecutará
como una sentencia normal de SQL. SQL0204 se emitirá si el
precompilador no resuelve el procedimiento en una sentencia CALL con
CALL_RESOLUTION IMMEDIATE.
CCSIDG ccsid-doble
Número entero que especifica el identificador de juego de caracteres
codificado (CCSID) que se debe utilizar para caracteres de doble byte en
las definiciones de columnas de caracteres (sin una cláusula CCSID
específica) en las sentencias CREATE y ALTER TABLE de SQL. El servidor
para DB2 Database para Linux, UNIX y Windows no da soporte a esta
opción. El servidor DRDA utilizará un valor por omisión incorporado si no
se especifica esta opción.
CCSIDM ccsid-mixto
Número entero que especifica el identificador de juego de caracteres
codificado (CCSID) que se debe utilizar para caracteres de bytes mixtos en
las definiciones de columnas de caracteres (sin una cláusula CCSID
específica) en las sentencias CREATE y ALTER TABLE de SQL. El servidor

478 Consulta de mandatos


PRECOMPILE

para DB2 Database para Linux, UNIX y Windows no da soporte a esta


opción. El servidor DRDA utilizará un valor por omisión incorporado si no
se especifica esta opción.
CCSIDS ccsid-sbcs
Número entero que especifica el identificador de juego de caracteres
codificado (CCSID) que se debe utilizar para caracteres de un solo byte en
las definiciones de columnas de caracteres (sin una cláusula CCSID
específica) en las sentencias CREATE y ALTER TABLE de SQL. El servidor
para DB2 Database para Linux, UNIX y Windows no da soporte a esta
opción. El servidor DRDA utilizará un valor por omisión incorporado si no
se especifica esta opción.
CHARSUB
Designa el subtipo de carácter por omisión que se debe utilizar para las
definiciones de columnas en las sentencias CREATE y ALTER TABLE de
SQL. El servidor para DB2 Database para Linux, UNIX y Windows no da
soporte a esta opción de precompilación/vínculo.
BIT Utiliza el subtipo de carácter FOR BIT DATA SQL en todas las
columnas de caracteres nuevas para las que no se ha especificado
un subtipo explícito.
DEFAULT
Utiliza el valor por omisión incorporado de destino en todas las
columnas de caracteres nuevas para las que no se ha especificado
un subtipo explícito.
MIXED
Utiliza el subtipo de carácter FOR MIXED DATA SQL en todas las
columnas de caracteres nuevas para las que no se ha especificado
un subtipo explícito.
SBCS Utiliza el subtipo de carácter FOR SBCS DATA SQL en todas las
columnas de caracteres nuevas para las que no se ha especificado
un subtipo explícito.
CNULREQD
Esta opción está relacionada con la opción de precompilación LANGLEVEL.
Sólo es válida si el archivo de vinculación se crea desde una aplicación C o
C++. El servidor para DB2 Database para Linux, UNIX y Windows no da
soporte a esta opción de vínculo.
NO La aplicación se ha codificado en base a la opción de
precompilación LANGLEVEL de SAA1 respecto al terminador nulo de
las variables del lenguaje principal de serie C.
YES La aplicación se ha codificado en base a la opción de
precompilación LANGLEVEL de MIA respecto al terminador nulo de
las variables del lenguaje principal de serie C.
COLLECTION nombre-esquema
Especifica un identificador de colección de 128 bytes para el paquete. Si no
se especifica, se utilizará el identificador de autorización para el usuario
que procesa el paquete.
CONCURRENTACCESSRESOLUTION
Especifica la resolución de acceso simultáneo que se utilizará para las
sentencias del paquete.
USE CURRENTLY COMMITTED
Especifica que el gestor de bases de datos puede utilizar la versión

Capítulo 5. mandatos CLP 479


PRECOMPILE

confirmada actualmente de los datos para las exploraciones


aplicables cuando está en el proceso de actualizarse o suprimirse.
Las filas que se están insertando pueden saltarse. Esta cláusula se
aplica cuando el nivel de aislamiento en vigor es Estabilidad del
cursor o Estabilidad de lectura (en este último caso, sólo omite
inserciones no confirmadas) y, de lo contrario, se ignora. Las
exploraciones aplicables incluyen las exploraciones de sólo lectura
que pueden formar parte de una sentencia de sólo lectura así como
de una sentencia de no sólo lectura. Ya no se aplican los valores
para las variables del registro DB2_EVALUNCOMMITTED,
DB2_SKIPDELETED y DB2_SKIPINSERTED.
WAIT FOR OUTCOME
Especifica que Estabilidad del cursor y las exploraciones superiores
esperen a la confirmación o a la retrotracción si encuentran datos
en proceso de actualización o supresión. Las filas en proceso de
inserción no se omiten. Ya no se aplican los valores para las
variables del registro DB2_EVALUNCOMMITTED, DB2_SKIPDELETED y
DB2_SKIPINSERTED.
CONNECT
1 Especifica que una sentencia CONNECT debe procesarse como
CONNECT de tipo 1.
2 Especifica que una sentencia CONNECT debe procesarse como
CONNECT de tipo 2.
DATETIME
Especifica el formato de fecha y hora que se debe utilizar.
DEF Utiliza un formato de fecha y hora asociado al código de territorio
de la base de datos.
EUR Utiliza el estándar de IBM para el formato de fecha y hora
europeo.
ISO Utiliza el formato de fecha y hora de la International Standards
Organization (Organización internacional de estándares).
JIS Utiliza el formato de fecha y hora del Japanese Industrial Standard
(Estándar industrial japonés).
LOC Utiliza el formato de fecha y hora en la forma local asociada al
código de territorio de la base de datos.
USA Utiliza el estándar de IBM para el formato de fecha y hora de
EE.UU.
DBPROTOCOL
Especifica el protocolo que se va a utilizar al conectar con un sitio remoto
identificado por una sentencia de nombre en tres partes. Sólo está
soportado por DB2 para OS/390. Para ver una lista de los valores de
opción soportados, consulte la documentación de DB2 para OS/390.
DEC Especifica la precisión máxima que se debe utilizar en operaciones
aritméticas decimales. El servidor para DB2 Database para Linux, UNIX y
Windows no da soporte a esta opción de vínculo o precompilación. El
servidor DRDA utilizará un valor por omisión incorporado si no se
especifica esta opción.
15 Se utiliza la precisión de 15 dígitos en las operaciones aritméticas
decimales.

480 Consulta de mandatos


PRECOMPILE

31 Se utiliza la precisión de 31 dígitos en las operaciones aritméticas


decimales.
DECDEL
Determina si se utilizará un punto (.) o una coma (,) como indicador de
coma decimal en literales decimales y de coma flotante. El servidor para
DB2 Database para Linux, UNIX y Windows no da soporte a esta opción
de precompilación/vínculo. El servidor DRDA utilizará un valor por
omisión incorporado si no se especifica esta opción.
COMMA
Utilizar una coma (,) como indicador de coma decimal.
PERIOD
Utilizar un punto (.) como indicador de coma decimal.
DEFERRED_PREPARE
Proporciona una mejora de rendimiento cuando se accede a bases de datos
de servidor comunes DB2 o a bases de datos DRDA. Esta opción combina
el flujo de sentencias PREPARE de SQL con el flujo de sentencias OPEN,
DESCRIBE o EXECUTE asociado para minimizar el flujo entre procesos o
de red.
NO La sentencia PREPARE se ejecutará en el momento de emitirse.
YES La ejecución de la sentencia PREPARE se diferirá hasta que se
emita la sentencia OPEN, DESCRIBE o EXECUTE correspondiente.
La sentencia PREPARE no se diferirá si utiliza la cláusula INTO,
que requiere que se devuelva un SQLDA inmediatamente. Sin
embargo, si se emite la sentencia PREPARE INTO para un cursor
que no utiliza ningún marcador de parámetro, el proceso se
optimizará al ejecutar previamente OPEN en el cursor cuando se
ejecute PREPARE.
ALL Igual que YES, excepto que también se difiere una sentencia
PREPARE INTO. Si la sentencia PREPARE utiliza la cláusula INTO
para devolver un SQLDA, la aplicación no debe hacer referencia al
contenido de este SQLDA hasta que se emita y se devuelva la
sentencia OPEN, DESCRIBE o EXECUTE.
DEGREE
Especifica el grado de paralelismo para la ejecución de sentencias de SQL
estático en un sistema SMP. Esta opción no afecta al paralelismo de
CREATE INDEX.
1 La ejecución de la sentencia no utilizará paralelismo.
grado-de-paralelismo
Especifica el grado de paralelismo con el que se puede ejecutar la
sentencia, un valor entre 2 y 32 767 (inclusive).
ANY Especifica que la ejecución de la sentencia puede incluir
paralelismo utilizando un grado determinado por el gestor de
bases de datos.
DISCONNECT
AUTOMATIC
Especifica que todas las conexiones de base de datos deben
desconectarse al confirmarse.

Capítulo 5. mandatos CLP 481


PRECOMPILE

CONDITIONAL
Especifica que las conexiones de base de datos que se han marcado
RELEASE o que no tienen cursores WITH HOLD abiertos deben
desconectarse al confirmarse.
EXPLICIT
Especifica que sólo las conexiones de base de datos que la
sentencia RELEASE ha marcado explícitamente para liberar deben
desconectarse al confirmarse.
DYNAMICRULES
Define qué normas se aplican al SQL dinámico en tiempo de ejecución
para el valor inicial de los valores utilizados para el ID de autorización y
para la calificación implícita de referencias de objetos no calificadas.
RUN Especifica que se debe utilizar el ID de autorización del usuario
que ejecuta el paquete para la comprobación de autorización de
sentencias de SQL dinámico. El ID de autorización se utilizará
también como calificador de paquetes por omisión para la
calificación implícita de referencias de objeto no calificadas en
sentencias de SQL dinámico. Es el valor por omisión.
BIND Especifica que en tiempo de ejecución deben utilizarse todas las
normas que se aplican al SQL estático para autorización y
calificación. Es decir, se debe utilizar el ID de autorización del
propietario del paquete para la comprobación de autorización de
sentencias de SQL dinámico y se debe utilizar el calificador de
paquete por omisión para la calificación implícita de referencias de
objeto no calificadas dentro de las sentencias de SQL dinámico.
DEFINERUN
Si el paquete se utiliza en el contexto de una rutina, el ID de
autorización del definidor de rutina debe utilizarse para la
comprobación de autorización y para la calificación implícita de
referencias de objeto no calificadas en sentencias de SQL dinámico
dentro de la rutina.
Si el paquete se utiliza como una aplicación autónoma, las
sentencias de SQL dinámico se procesan como si el paquete
estuviera vinculado a DYNAMICRULES RUN.
DEFINEBIND
Si el paquete se utiliza en el contexto de una rutina, el ID de
autorización del definidor de rutina debe utilizarse para la
comprobación de autorización y para la calificación implícita de
referencias de objeto no calificadas en sentencias de SQL dinámico
dentro de la rutina.
Si el paquete se utiliza como una aplicación autónoma, las
sentencias de SQL dinámico se procesan como si el paquete
estuviera vinculado a DYNAMICRULES BIND.
INVOKERUN
Si el paquete se utiliza en el contexto de una rutina, el ID de
autorización de la sentencia actual en vigor al invocar la rutina
debe utilizarse para la comprobación de autorización de sentencias
de SQL dinámico y para la calificación implícita de referencias de
objeto no calificadas en sentencias de SQL dinámico dentro de esa
rutina.

482 Consulta de mandatos


PRECOMPILE

Si el paquete se utiliza como una aplicación autónoma, las


sentencias de SQL dinámico se procesan como si el paquete
estuviera vinculado a DYNAMICRULES RUN.
INVOKEBIND
Si el paquete se utiliza en el contexto de una rutina, el ID de
autorización de la sentencia actual en vigor al invocar la rutina
debe utilizarse para la comprobación de autorización de sentencias
de SQL dinámico y para la calificación implícita de referencias de
objeto no calificadas en sentencias de SQL dinámico dentro de esa
rutina.
Si el paquete se utiliza como una aplicación autónoma, las
sentencias de SQL dinámico se procesan como si el paquete
estuviera vinculado a DYNAMICRULES BIND.
Dado que las sentencias de SQL dinámico utilizarán el ID de autorización
del propietario del paquete en un paquete que exhibe un comportamiento
de vinculación, no se debe otorgar al vinculador del paquete ninguna
autorización que el usuario del paquete no deba recibir. De forma similar,
al definir una rutina que exhiba un comportamiento de definición, no se
debe otorgar al definidor de la rutina ninguna autorización que el usuario
del paquete no deba recibir, ya que una sentencia dinámica utilizará el ID
de autorización del definidor de la rutina.
Las siguientes sentencias de SQL preparadas dinámicamente no se pueden
utilizar dentro de un paquete que no se haya vinculado con DYNAMICRULES
RUN: GRANT, REVOKE, ALTER, CREATE, DROP, COMMENT ON,
RENAME, SET INTEGRITY y SET EVENT MONITOR STATE.
ENCODING
Especifica la codificación para todas las variables del lenguaje principal en
sentencias estáticas del plan o del paquete. Sólo está soportado por DB2
para OS/390. Para ver una lista de los valores de opción soportados,
consulte la documentación de DB2 para OS/390.
EXPLAIN
Almacena información en las tablas de Explain acerca de los planes de
acceso elegidos para cada sentencia de SQL del paquete.
NO La información de explicación no se capturará.
YES Las tablas de Explain se llenarán con información acerca del plan
de acceso elegido en tiempo de precompilación/vinculación las
sentencias estáticas y en tiempo de ejecución para las sentencias de
vinculación incremental.
Si el paquete va a utilizarse para una rutina y el paquete contiene
sentencias de vinculación incremental, la rutina debe definirse
como MODIFIES SQL DATA. Si esto no se hace así, las sentencias
de vinculación incremental del paquete causarán un error de
tiempo de ejecución (SQLSTATE 42985).
REOPT
La información de explicación para cada sentencia de SQL de
vinculación incremental reoptimizable se colocará en las tablas de
Explain en tiempo de ejecución. Además, se reunirá información de
explicación para las sentencias de SQL dinámico reoptimizable en
tiempo de ejecución, aunque el registro especial CURRENT
EXPLAIN MODE esté establecido en NO.

Capítulo 5. mandatos CLP 483


PRECOMPILE

Si el paquete ha de utilizarse para una rutina, esta debe definirse


como MODIFIES SQL DATA; de lo contrario las sentencias
dinámicas y de vinculación incremental del paquete causarán un
error de tiempo de ejecución (SQLSTATE 42985).
ONLY La opción ONLY permite explicar sentencias sin tener el privilegio
de ejecutarlas. Las tablas de Explain se llenan, pero no se crea
ningún paquete permanente. Si, durante el proceso de vinculación,
se encuentra un paquete existente con el mismo nombre y la
misma versión, el paquete existente no se descarta ni se sustituye
aunque se haya especificado ACTION REPLACE. Si se produce un
error durante el llenado de las tablas de Explain, no se añade la
información de explicación para la sentencia que ha devuelto el
error ni para las sentencias que la siguen.
ALL La información de explicación para cada sentencia de SQL estática
elegible se colocará en las tablas de Explain en tiempo de
precompilación/vinculación. La información de explicación para
cada sentencia de SQL de vinculación incremental elegible se
colocará en las tablas de Explain en tiempo de ejecución. Además,
se reunirá información de explicación para las sentencias de SQL
dinámico elegibles en tiempo de ejecución, aunque el registro
especial CURRENT EXPLAIN MODE esté establecido en NO.
Si el paquete ha de utilizarse para una rutina, esta debe definirse
como MODIFIES SQL DATA; de lo contrario las sentencias
dinámicas y de vinculación incremental del paquete causarán un
error de tiempo de ejecución (SQLSTATE 42985).
EXPLSNAP
Almacena información de instantánea de explicación en las tablas de
Explain.
NO No se capturará una instantánea de explicación.
YES Se colocará una instantánea de explicación para cada sentencia de
SQL estática elegible en las tablas de Explain en tiempo de
precompilación/vinculación para las sentencias estáticas y en
tiempo de ejecución para las sentencias de vinculación incremental.
Si el paquete ha de utilizarse para una rutina y contiene sentencias
de vinculación incremental, la rutina debe definirse como
MODIFIES SQL DATA, o las sentencias de vinculación incremental
del paquete causarán un error de tiempo de ejecución (SQLSTATE
42985).
REOPT
La información de instantánea de explicación para cada sentencia
de SQL de vinculación incremental reoptimizable se colocará en las
tablas de Explain en tiempo de ejecución. Además, se reunirá
información de la instantánea de explicación para las sentencias de
SQL dinámico reoptimizable en tiempo de ejecución, aunque el
registro especial CURRENT EXPLAIN SNAPSHOT esté establecido
en NO.
Si el paquete ha de utilizarse para una rutina, esta debe definirse
como MODIFIES SQL DATA; de lo contrario las sentencias
dinámicas y de vinculación incremental del paquete causarán un
error de tiempo de ejecución (SQLSTATE 42985).
ALL Se colocará una instantánea de explicación para cada sentencia de

484 Consulta de mandatos


PRECOMPILE

SQL estático elegible en las tablas de Explain en tiempo de


precompilación o vinculación. La información de instantánea de
explicación para cada sentencia de SQL de vinculación incremental
elegible se colocará en las tablas de Explain en tiempo de
ejecución. Además, se reunirá información de la instantánea de
explicación para las sentencias de SQL dinámico elegibles en
tiempo de ejecución, aunque el registro especial CURRENT
EXPLAIN SNAPSHOT esté establecido en NO.
Si el paquete ha de utilizarse para una rutina, esta debe definirse
como MODIFIES SQL DATA, o las sentencias dinámicas y de
vinculación incremental del paquete causarán un error de tiempo
de ejecución (SQLSTATE 42985).
FEDERATED
Especifica si una sentencia de SQL estático de un paquete hace referencia a
un apodo o a una vista federada. Si no se especifica esta opción y una
sentencia de SQL estático de un paquete hace referencia a un apodo o a
una vista federada, se devuelve un aviso y se crea el paquete.
NO No se hace referencia a ningún apodo ni vista federada en las
sentencias de SQL estático del paquete. Si se encuentra un apodo o
una vista federada en una sentencia de SQL estática durante la fase
de preparación o de vinculación de este paquete, se devuelve un
error y el paquete no se crea.
YES Se puede hacer referencia a un apodo o a una vista federada en las
sentencias de SQL estático del paquete. Si no se encuentra ningún
apodo ni ninguna vista federada en las sentencias de SQL estático
durante la preparación o la vinculación del paquete, no se
devuelven errores ni avisos y el paquete se crea.
FEDERATED_ASYNCHRONY
Especifica el número máximo de colas de tabla de asincronía (ATQ) al que
el servidor federado da soporte en el plan de acceso para los programas
que utilizan el SQL intercalado.
ANY El optimizador determina el número de ATQ para el plan de
acceso. El optimizador asigna una ATQ a todos los operadores de
pulsador remoto o SHIP del plan. El valor que se especifica para la
opción de servidor de DB2_MAX_ASYNC_REQUESTS_PER_QUERY limita el
número de peticiones asíncronas.
número_de_atqs_en_el_plan
El número de ATQ en el plan. Debe especificar un número
comprendido entre 0 y 32767.
FUNCPATH
Especifica la vía de acceso de función que se debe utilizar al resolver
funciones y tipos diferenciados definidos por el usuario en SQL estático. Si
no se especifica esta opción, la vía de acceso de función por omisión es
"SYSIBM","SYSFUN",USER donde USER es el valor del registro especial
USER.
nombre-esquema
Identificador de SQL, ordinario o delimitado, que identifica un
esquema que existe en el servidor de aplicaciones. No se realiza
ninguna validación de que el esquema existe en el momento de la
precompilación o de la vinculación. El mismo esquema no puede
aparecer más de una vez en la vía de acceso de función. No se

Capítulo 5. mandatos CLP 485


PRECOMPILE

puede especificar el nombre de esquema SYSPUBLIC para la vía de


acceso de función. El número de esquemas que se puede
especificar está limitado por la longitud de la vía de acceso de
función resultante, que no puede exceder de 2048 bytes. No es
necesario especificar explícitamente el esquema SYSIBM; se supone
implícitamente que es el primer esquema si no está incluido en la
vía de acceso de función.
INSERT
Permite a un programa que se está precompilando o vinculando en un
servidor solicitar que las inserciones de datos se pongan en el
almacenamiento intermedio para aumentar el rendimiento.
BUF Especifica que las inserciones de una aplicación deben ponerse en
el almacenamiento intermedio.
DEF Especifica que las inserciones de una aplicación no deben ponerse
en el almacenamiento intermedio.
GENERIC "serie"
Da soporte a la vinculación de nuevas opciones que están definidas en la
base de datos de destino. No utilice esta opción para pasar opciones de
vinculación que estén definidas en BIND o PRECOMPILE. La sintaxis es la
siguiente:
generic "opción1 valor1 opción2 valor2 ..."

Cada opción y valor debe estar separado por uno o más espacios en
blanco. Por ejemplo, podría utilizarse lo siguiente para vincular cada una
de las opciones OPCIÓN1, OPCIÓN2 y OPCIÓN3:
generic "opción1 valor1 opción2 valor2 opción3 valor3"
La longitud máxima de la serie son 4096 bytes. La longitud máxima de
cada nombre de opción de la serie son 255 bytes.
IMMEDWRITE
Indica si se realizarán grabaciones inmediatas para las actualizaciones
efectuadas para agrupar conjuntos de páginas o particiones de base de
datos dependientes de agrupaciones de almacenamientos intermedios. Sólo
está soportado por DB2 para OS/390. Para ver una lista de los valores de
opción soportados, consulte la documentación de DB2 para OS/390.
ISOLATION
Determina hasta qué punto un programa vinculado a este paquete puede
aislarse del efecto de otros programas en ejecución.
CS Especifica estabilidad de cursor como nivel de aislamiento.
NC Sin confirmación. Especifica que no se va a utilizar el control de
confirmación. DB2 no soporta este nivel de aislamiento.
RR Especifica lectura repetible como nivel de aislamiento.
RS Especifica estabilidad de lectura como nivel de aislamiento. La
estabilidad de lectura asegura que la ejecución de las sentencias de
SQL del paquete esté aislada de otros procesos de aplicación para
filas leídas y cambiadas por la aplicación.
UR Especifica lectura no confirmada como nivel de aislamiento.
KEEPDYNAMIC
Este parámetro especifica si las sentencias de SQL dinámico se han de
conservar de una transacción a otra.

486 Consulta de mandatos


PRECOMPILE

Para obtener más información sobre la opción soportada para DB2 para
z/OS, consulte la documentación en el Centro de información de DB2 para
z/OS.
A partir de DB2 para Linux, UNIX y Windows Versión 9.8 Fixpack 2, las
sentencias de SQL dinámico preparadas en un paquete vinculado con la
opción KEEPDYNAMIC YES se conservan en el contexto SQL después de una
operación COMMIT o ROLLBACK. Éste es el comportamiento por
omisión.
YES
Indica al contexto SQL que conserve de forma indefinida el texto y
la sección de la sentencia asociados a sentencias preparadas. Las
sentencias de SQL dinámico se conservan de una transacción a
otra. Todos los paquetes vinculados con KEEPDYNAMIC YES son, por
omisión, compatibles con el comportamiento de antememoria de
paquete existente.
No
Indica al contexto SQL que elimine el texto y la sección de la
sentencia asociados a sentencias preparadas al final de cada unidad
de trabajo. Las sentencias de SQL dinámico inactivas preparadas en
un paquete vinculado con KEEPDYNAMIC NO se eliminan del contexto
SQL durante una operación COMMIT o ROLLBACK. Las
sentencias deben volverse a preparar en una nueva transacción. El
cliente, el controlador o la aplicación necesitan preparar de nuevo
cualquier sentencia de SQL dinámico que necesite reutilizar en una
nueva unidad de trabajo.
Las sentencias de SQL dinámico pueden permanecer activas más
allá del fin de la transacción en las circunstancias siguientes:
v Los cursores declarados utilizando la opción WITH HOLD se
abren en un punto de confirmación.
v Una sentencia de SQL dinámico ejecuta una operación COMMIT
o ROLLBACK.
v Una sentencia de SQL dinámico invoca un procedimiento
almacenado o una función definida por el usuario que ejecuta la
operación COMMIT o ROLLBACK.
LANGLEVEL
Especifica las normas de SQL que se aplican a la sintaxis y la semántica
para el SQL estático y dinámico en la aplicación.
MIA Seleccione las normas ISO/ANS SQL92 que se indican a
continuación:
v Para soportar la comprobación de errores SQLCODE o
SQLSTATE, se debe declarar un SQLCA en el código de
aplicación.
v Las series C terminadas en nulo se rellenan con espacios en
blanco e incluyen siempre un carácter terminado en nulo,
incluso si se produce truncamiento.
v La cláusula FOR UPDATE es opcional para todas las columnas
que se deben actualizar en un UPDATE colocado.
v Una acción UPDATE o DELETE buscada necesita privilegio
SELECT en la tabla de objetos de la sentencia UPDATE o

Capítulo 5. mandatos CLP 487


PRECOMPILE

DELETE si se hace referencia a una columna de la tabla de


objetos en la condición de búsqueda o en el lado derecho de la
cláusula de asignación.
v Una función de columna que puede resolverse utilizando un
índice (por ejemplo MIN o MAX) también comprobará los nulos
y devolverá el aviso SQLSTATE 01003 si había algún nulo.
v Se devuelve un error cuando se incluye una restricción de
unicidad duplicada en una sentencia CREATE o ALTER TABLE.
v Se devuelve un error cuando no se otorga ningún privilegio y el
otorgante no tiene privilegios en el objeto (de lo contrario se
devuelve un aviso).
SAA1 Seleccione las normas comunes de IBM DB2 siguientes:
v Para soportar la comprobación de errores SQLCODE o
SQLSTATE, se debe declarar un SQLCA en el código de
aplicación.
v Las series C terminadas en nulo no terminan con un carácter
nulo si se produce truncamiento.
v La cláusula FOR UPDATE es necesaria para todas las columnas
que se deben actualizar en un UPDATE colocado.
v Un UPDATE o DELETE buscado no necesitará privilegio
SELECT en la tabla de objetos de la sentencia UPDATE o
DELETE a no ser que una selección completa (fullselect) de la
sentencia haga referencia a la tabla de objetos.
v Una función de columna que se puede resolver utilizando un
índice (por ejemplo MIN o MAX) no comprobará los nulos y no
se devolverá el aviso SQLSTATE 01003.
v Se devuelve un aviso y se ignora la restricción de unicidad
duplicada.
v Se devuelve un error cuando no se otorga ningún privilegio.
SQL92E
Define las normas ISO/ANS SQL92 que se indican a continuación:
v Para soportar la comprobación de valores SQLCODE o
SQLSTATE, se pueden declarar las variables con este nombre en
la sección de declaración de variables del lenguaje principal (si
no se declara ninguna, se supone SQLCODE durante la
precompilación).
v Las series C terminadas en nulo se rellenan con espacios en
blanco e incluyen siempre un carácter terminado en nulo,
incluso si se produce truncamiento.
v La cláusula FOR UPDATE es opcional para todas las columnas
que se deben actualizar en un UPDATE colocado.
v Una acción UPDATE o DELETE buscada necesita privilegio
SELECT en la tabla de objetos de la sentencia UPDATE o
DELETE si se hace referencia a una columna de la tabla de
objetos en la condición de búsqueda o en el lado derecho de la
cláusula de asignación.
v Una función de columna que puede resolverse utilizando un
índice (por ejemplo MIN o MAX) también comprobará los nulos
y devolverá el aviso SQLSTATE 01003 si había algún nulo.
v Se devuelve un error cuando se incluye una restricción de
unicidad duplicada en una sentencia CREATE o ALTER TABLE.

488 Consulta de mandatos


PRECOMPILE

v Se devuelve un error cuando no se otorga ningún privilegio y el


otorgante no tiene privilegios en el objeto (de lo contrario se
devuelve un aviso).
LEVEL símbolo-coherencia
Define el nivel de un módulo utilizando el símbolo de coherencia. El
símbolo de coherencia es cualquier valor alfanumérico de una longitud
máxima de 8 caracteres. El símbolo de coherencia del paquete RDB verifica
que la aplicación del peticionario y el paquete de base de datos relacional
estén sincronizados. Esta opción no se recomienda para el uso general.
LONGERROR
Indica si las declaraciones de variables del lenguaje principal largas se
tratarán como un error. Por portabilidad, sqlint32 puede utilizarse como
una declaración para una columna INTEGER en código C y C++
precompilado.
NO No genera errores para el uso de declaraciones de variables del
lenguaje principal largas. Este es el valor por omisión para
sistemas de 32 bits y para sistemas Windows de 64 bits donde
pueden utilizarse variables de lenguaje principal largas como
declaraciones para columnas INTEGER. La utilización de esta
opción en plataformas UNIX de 64 bits permitirá utilizar variables
del lenguaje principal largas como declaraciones para las columnas
BIGINT.
YES Genera errores para el uso de declaraciones de variables del
lenguaje principal largas. Es el valor por omisión para sistemas
UNIX de 64 bits.
MESSAGES archivo-mensajes
Especifica el destino para los mensajes de aviso, de error y de estado de
realización. Se crea un archivo de mensajes tanto si la vinculación es
satisfactoria como si no lo es. Si no se especifica un nombre de archivo de
mensajes, los mensajes se graban en la salida estándar. Si no se especifica
la vía de acceso completa al archivo, se utiliza el directorio actual. Si se
especifica el nombre de un archivo existente, se graba encima del
contenido del archivo.
NOLINEMACRO
Suprime la generación de las macros #line en el archivo de salida .c. Es
útil cuando se utiliza el archivo con herramientas de desarrollo que
necesitan información de líneas fuente, por ejemplo perfiles, programas de
utilidad de referencia cruzada y depuradores. Esta opción de
precompilación sólo se utiliza para los lenguajes de programación C/C++.
OPTHINT
Controla si se utilizan pistas de optimización de consultas para SQL
estático. Sólo está soportado por DB2 para OS/390. Para ver una lista de
los valores de opción soportados, consulte la documentación de DB2 para
OS/390.
OPTLEVEL
Indica si el precompilador C/C++ debe optimizar la inicialización de los
SQLDA internos cuando se utilizan variables del lenguaje principal en las
sentencias de SQL. Dicha optimización puede aumentar el rendimiento
cuando se utiliza una sola sentencia de SQL (por ejemplo FETCH) en un
bucle estrecho.

Capítulo 5. mandatos CLP 489


PRECOMPILE

0 Indica al precompilador que no optimice la inicialización de


SQLDA.
1 Indica al precompilador que optimice la inicialización de SQLDA.
Este valor no se deberá especificar si la aplicación utiliza:
v variables del lenguaje principal de puntero, como en el ejemplo
siguiente:
exec sql begin declare section;
char (*name)[20];
short *id;
exec sql end declare section;
v miembros de datos C++ directamente en sentencias de SQL.
OPTPROFILE nombre-perfil-optimización
Especifica el nombre de un perfil de optimización existente que utilizará
para todas las sentencias estáticas del paquete. El valor por omisión de la
opción es una serie vacía. El valor también se aplica como valor por
omisión para la preparación dinámica de sentencias DML para las que el
registro especial CURRENT OPTIMIZATION PROFILE es nulo. Si el
nombre especificado no es calificado, será un identificador de SQL, al que
la opción de vinculación QUALIFIER califica implícitamente.
El mandato BIND no procesa el archivo de optimización, sólo valida que el
nombre sea válido sintácticamente. Por lo tanto, si el perfil de optimización
no existe o no es válido, no se producirá un aviso SQL0437W con el código
de razón 13 hasta que se optimice una sentencia DML utilizando dicho
perfil de optimización.
OUTPUT nombrearchivo
Altera temporalmente el nombre por omisión del archivo fuente
modificado producido por el compilador. Puede incluir una vía de acceso.
OS400NAMING
Especifica cuál es la opción de denominación que se debe utilizar al
acceder a datos de DB2 para System i. Sólo recibe soporte de DB2 para
System i. Para ver una lista de los valores de opción soportados, consulte
la documentación de DB2 para System i.
Debido a que las barras inclinadas se utilizan como separadores, un
programa de utilidad DB2 puede informar de un error de sintaxis en
tiempo de ejecución para ciertas sentencias de SQL que utilizan el convenio
de denominación del sistema System i aunque el programa de utilidad se
pueda haber precompilado o vinculado con la opción OS400NAMING SYSTEM.
Por ejemplo, el procesador de línea de mandatos (CLP) informará de un
error de sintaxis en una sentencia de SQL CALL si se utiliza el convenio de
denominación del sistema System i tanto si se ha precompilado o
vinculado, como si no, mediante la opción OS400NAMING SYSTEM.
OWNER id-autorización
Designa un identificador de autorización de 128 bytes para el propietario
del paquete. El propietario debe tener los privilegios necesarios para
ejecutar las sentencias de SQL contenidas en el paquete. Sólo un usuario
con autorización DBADM puede especificar un identificador de
autorización distinto del ID de usuario. El valor por omisión es el ID de
autorización primario del proceso de precompilación/vinculación. SYSIBM,
SYSCAT y SYSSTAT no son valores válidos para esta opción. El
id-autorización sólo puede ser un usuario (no puede ser ni un rol ni un
grupo).

490 Consulta de mandatos


PRECOMPILE

PACKAGE
Crea un paquete. Si no se especifica PACKAGE, BINDFILE ni SYNTAX, por
omisión se crea un paquete en la base de datos.
USING nombre-paquete
Nombre del paquete que el precompilador debe generar. Si no se
entra un nombre, se utiliza el nombre del archivo fuente del
programa de aplicación (menos la extensión y convertido a
mayúsculas). La longitud máxima es de 128 bytes.
PREPROCESSOR "mandato-preprocesador"
Especifica el mandato de preprocesador que el precompilador puede
ejecutar antes de procesar sentencias de SQL incorporadas. La serie del
mandato de preprocesador (de una longitud máxima de 1024 bytes) debe
escribirse entre comillas dobles o simples.
Esta opción permite el uso de macros dentro de la sección de declaración.
Un mandato de preprocesador válido es aquel mandato que se puede
emitir desde la línea de mandatos para invocar el preprocesador sin
especificar un archivo fuente. Por ejemplo,
xlc -P -DMYMACRO=0
QUALIFIER nombre-calificador
Proporciona un calificador implícito de 128 bytes para los objetos no
calificados contenidos en el paquete. El valor por omisión es el ID de
autorización del propietario, tanto si se ha especificado explícitamente el
propietario como si no.
QUERYOPT nivel-optimización
Indica el nivel necesario de optimización para todas las sentencias de SQL
estático contenidas en el paquete. El valor por omisión es 5. La sentencia
SET CURRENT QUERY OPTIMIZATION describe el rango completo de
niveles de optimización disponibles.
RELEASE
Indica si se liberan recursos en cada punto COMMIT o cuando termina la
aplicación. El servidor para DB2 Database para Linux, UNIX y Windows
no da soporte a esta opción de precompilación/vínculo.
COMMIT
Libera recursos en cada punto COMMIT. Se utiliza para sentencias
de SQL dinámico.
DEALLOCATE
Sólo libera recursos cuando termina la aplicación.
REOPT
Especifica si DB2 debe optimizar una vía de acceso utilizando valores para
variables del lenguaje principal, marcadores de parámetro, variables
globales y registros especiales. Los valores válidos son:
NONE
La vía de acceso para una determinada sentencia de SQL que
contenga variables del lenguaje principal, marcadores de
parámetro, variables globales o registros especiales no se
optimizará utilizando valores reales para estas variables. En su
lugar, se utilizarán las estimaciones por omisión para estas
variables y este plan se almacenará en la antememoria y se
utilizará posteriormente. Este es el comportamiento por omisión.
ONCE La vía de acceso de una determinada sentencia de SQL se

Capítulo 5. mandatos CLP 491


PRECOMPILE

optimizará utilizando los valores reales de las variables del


lenguaje principal, marcadores de parámetro, variables globales o
registros especiales cuando la consulta se ejecute por primera vez.
Este plan se almacenará en la antememoria y se utilizará
posteriormente.
ALWAYS
La vía de acceso de una determinada sentencia de SQL siempre se
compilará y se reoptimizará utilizando los valores de las variables
del lenguaje principal, marcadores de parámetro, variables globales
o registros especiales conocidos en el momento en que se realice
cada ejecución.
REOPT | NOREOPT VARS
Estas opciones se han sustituido por REOPT ALWAYS y REOPT NONE; no
obstante, aún se pueden utilizar por cuestiones de compatibilidad con
releases anteriores. Especifica si DB2 debe determinar una vía de acceso en
tiempo de ejecución utilizando valores para variables del lenguaje
principal, variables globales, marcadores de parámetro y registros
especiales. Sólo está soportado por DB2 para OS/390. Para ver una lista de
los valores de opción soportados, consulte la documentación de DB2 para
OS/390.
SQLCA
Sólo para aplicaciones FORTRAN. Esta opción se ignora si se utiliza con
otros lenguajes.
NONE
Especifica que el código fuente modificado no es coherente con la
definición SAA.
SAA Especifica que el código fuente modificado es coherente con la
definición SAA.
SQLERROR
Indica si se debe crear un paquete o un archivo de vinculación en el caso
de que se encuentre un error.
CHECK
Especifica que el sistema de destino realiza todas las
comprobaciones de sintaxis y de semántica en las sentencias de
SQL que se están vinculando. No se creará un paquete como parte
de este proceso. Si, mientras se está realizando la vinculación, se
encuentra un paquete existente con el mismo nombre y la misma
versión, el paquete existente no se descarta ni se sustituye aunque
se haya especificado ACTION REPLACE.
CONTINUE
Crea un paquete, incluso si se producen errores al vincular las
sentencias de SQL. Aquellas sentencias que no se han podido
vincular por razones de autorización o existencia pueden
vincularse de forma incremental en el tiempo de ejecución si se
especifica también VALIDATE RUN. Cualquier intento de ejecutarlas
en la ejecución genera un error (SQLCODE -525, SQLSTATE 51015).
NOPACKAGE
No se crea un paquete o un archivo de vinculación si se encuentra
un error.

492 Consulta de mandatos


PRECOMPILE

SQLFLAG
Identifica e indica las desviaciones de la sintaxis de lenguaje SQL
especificadas en esta opción.
Sólo se crea un archivo de vinculación o un paquete si se especifica la
opción BINDFILE o PACKAGE, además de la opción SQLFLAG.
La comprobación de sintaxis local sólo se realiza si se especifica una de las
opciones siguientes:
v BINDFILE
v PACKAGE
v SQLERROR CHECK
v SYNTAX
Si no se especifica SQLFLAG, no se invoca la función de señalización y el
archivo de vinculación o el paquete no se ve afectado.
SQL92E SYNTAX
Se comprobarán las sentencias de SQL con la sintaxis y el formato
de lenguaje SQL a nivel de entrada ANSI o ISO SQL92 a excepción
de las normas de sintaxis que necesitarían acceso al catálogo de
base de datos. Se informará sobre cualquier desviación en el listado
del precompilador.
MVSDB2V23 SYNTAX
Se comprobarán las sentencias de SQL con la sintaxis de lenguaje
SQL de MVS DB2 Versión 2.3. Se informará sobre cualquier
desviación de la sintaxis en el listado del precompilador.
MVSDB2V31 SYNTAX
Se comprobarán las sentencias de SQL con la sintaxis de lenguaje
SQL de MVS DB2 Versión 3.1. Se informará sobre cualquier
desviación de la sintaxis en el listado del precompilador.
MVSDB2V41 SYNTAX
Se comprobarán las sentencias de SQL con la sintaxis de lenguaje
SQL de MVS DB2 Versión 4.1. Se informará sobre cualquier
desviación de la sintaxis en el listado del precompilador.
SORTSEQ
Especifica cuál es la tabla de secuencias de clasificación que se debe
utilizar en el sistema System i. Sólo recibe soporte de DB2 para System i.
Para ver una lista de los valores de opción soportados, consulte la
documentación de DB2 para System i.
SQLRULES
Especifica:
v Si se deben procesar los CONNECT de tipo 2 de acuerdo con las normas
de DB2 o las normas Estándares (STD) basadas en ISO/ANS SQL92.
v Cómo una aplicación especifica el formato de columnas LOB en el
conjunto de resultados.
DB2
v Permite a la sentencia CONNECT de SQL conmutar la conexión
actual a otra conexión (latente) establecida.
v Este valor por omisión permite a una aplicación especificar si se
recuperan valores de LOB o localizadores de LOB solamente

Capítulo 5. mandatos CLP 493


PRECOMPILE

durante la primera petición de captación. Las peticiones de


captación subsiguientes deben utilizar el mismo formato para las
columnas de LOB.
STD
v Permite a la sentencia CONNECT de SQL establecer solamente
una conexión nueva. Se deberá utilizar la sentencia SET
CONNECTION de SQL para conmutar a una conexión latente.
v La aplicación puede cambiar entre recuperar valores de LOB y
localizadores de LOB con cada petición de captación. Esto
significa que los cursores con una o más columnas LOB no se
pueden bloquear, independientemente del valor de la opción de
vinculación BLOCKING.
SQLWARN
Indica si se devolverán avisos de la compilación de las sentencias de SQL
dinámicas (a través de PREPARE o EXECUTE IMMEDIATE) o del proceso
de descripción (a través de PREPARE...INTO o DESCRIBE).
NO No se devolverán avisos del compilador de SQL.
YES Se devolverán avisos del compilador de SQL.
SQLCODE +238 es una excepción. Se devuelve independientemente del
valor de la opción SQLWARN.
STATICREADONLY
Determina si los cursores estáticos se tratarán como si fueran de sólo
lectura (READ ONLY).
NO Todos los cursores estáticos tomarán los atributos tal como se
generarían normalmente dado el texto de la sentencia y el valor de
la opción de precompilación LANGLEVEL. Es el valor por omisión.
YES Cualquier cursor estático que no contenga la cláusula FOR
UPDATE o FOR READ ONLY se considerará de sólo lectura
(READ ONLY).
STRDEL
Indica si se utilizará un apóstrofo (') o comillas dobles (") como delimitador
de serie en las sentencias de SQL. El servidor para DB2 Database para
Linux, UNIX y Windows no da soporte a esta opción de
precompilación/vínculo. El servidor DRDA utilizará un valor por omisión
incorporado si no se especifica esta opción.
APOSTROPHE
Utilizar un apóstrofo (') como delimitador de serie.
QUOTE
Utilizar comillas dobles (") como delimitador de serie.
SYNCPOINT
Especifica el modo en que se van a coordinar las operaciones de
confirmación o retrotracción entre múltiples conexiones de bases de datos.
Este parámetro de mandato se ignora y sólo se incluye aquí para la
compatibilidad con versiones anteriores.
NONE
Especifica que no se debe utilizar ningún gestor de transacciones
(TM) para realizar una confirmación de dos fases y no impone
ningún actualizador único, lector múltiple. Se envía un COMMIT a

494 Consulta de mandatos


PRECOMPILE

cada base de datos participante. La aplicación es responsable de la


recuperación si falla alguna de las confirmaciones.
ONEPHASE
Especifica que no se debe utilizar ningún TM para realizar una
confirmación de dos fases. Se deberá utilizar una confirmación de
una fase para confirmar el trabajo efectuado por cada base de
datos en múltiples transacciones de bases de datos.
TWOPHASE
Especifica que se necesita el TM para coordinar las confirmaciones
de dos fases entre las bases de datos que soportan este protocolo.
SYNTAX
Suprime la creación de un paquete o un archivo de vinculación durante la
precompilación. Esta opción puede utilizarse para comprobar la validez del
archivo fuente sin modificar o alterar paquetes o archivos de vinculación
existentes. SYNTAX es sinónimo de SQLERROR CHECK.
Si se utiliza SYNTAX junto con la opción PACKAGE, se ignorará PACKAGE.
TARGET
Indica al precompilador que produzca código modificado adaptado a uno
de los compiladores soportados de la plataforma actual.
IBMCOB
En AIX, se genera código para el compilador IBM COBOL Set para
AIX.
MFCOB
Se genera código para el compilador Micro Focus COBOL. Éste es
el valor por omisión si no se especifica un valor TARGET con el
precompilador COBOL en todos los sistemas operativos Linux,
UNIX y Windows.
ANSI_COBOL
Se genera código compatible con el estándar ANS X3.23-1985.
C Se genera código compatible con los compiladores C soportados
por DB2 en la plataforma actual.
CPLUSPLUS
Se genera código compatible con los compiladores C++ soportados
por DB2 en la plataforma actual.
FORTRAN
Se genera código compatible con los compiladores FORTRAN
soportados por DB2 en la plataforma actual.
TEXT etiqueta
Descripción de un paquete. La longitud máxima es de 255 caracteres. El
valor por omisión son espacios en blanco. El servidor para DB2 Database
para Linux, UNIX y Windows no da soporte a esta opción de
precompilación/vínculo.
TRANSFORM GROUP
Especifica el nombre de grupo de transformaciones que deberán utilizar las
sentencias de SQL estático para intercambiar valores de tipo estructurado
definidos por el usuario con programas de sistema principal. Este grupo de
transformaciones no se utiliza para las sentencias de SQL dinámico o para
el intercambio de parámetros y resultados con funciones o métodos
externos.

Capítulo 5. mandatos CLP 495


PRECOMPILE

groupname
Identificador de SQL de una longitud máxima de 128 bytes. Un
nombre de grupo no puede incluir un prefijo de calificador y no
puede empezar con el prefijo SYS, dado que éste está reservado
para uso de la base de datos. En una sentencia de SQL estática que
interactúe con variables del lenguaje principal, el nombre de grupo
de transformaciones a utilizar para intercambiar valores de un tipo
estructurado es el siguiente:
v El nombre de grupo de la opción de vinculación TRANSFORM
GROUP, si existe
v El nombre de grupo de la opción de precompilación TRANSFORM
GROUP que se ha especificado en el tiempo de precompilación
original, si existe
v El grupo DB2_PROGRAM, si existe una transformación para el
tipo proporcionado cuyo nombre de grupo es DB2_PROGRAM
v No se utiliza ningún grupo de transformaciones si no existe
ninguna de las condiciones indicadas anteriormente.
Son posibles los errores siguientes durante la vinculación de una
sentencia de SQL estática:
v SQLCODE aaa, SQLSTATE xxxxx: se necesita una transformación,
pero no se ha seleccionado ningún grupo de transformación
estático.
v SQLCODE aaa, SQLSTATE xxxxx: el grupo de transformaciones
seleccionado no incluye una transformación necesaria (TO SQL
para variables de entrada, FROM SQL para variables de salida)
para el tipo de datos que se tiene que intercambiar.
v SQLCODE aaa, SQLSTATE xxxxx: el tipo de resultado de la
transformación FROM SQL no es compatible con el tipo de la
variable de salida o el tipo de parámetro de la transformación
TO SQL no es compatible con el tipo de la variable de entrada.
En estos mensajes de error, aaaaa se sustituye por el código de error
de SQL y xxxxx por el código de estado de SQL.
VALIDATE
Determina cuándo el gestor de bases de datos comprueba los errores de
autorización y los errores de objeto no encontrado. Se utiliza el ID de
autorización del propietario del paquete para la comprobación de validez.
BIND La validación se realiza en el tiempo de precompilación o
vinculación. Si no existen todos los objetos o no se posee toda la
autorización, se producen mensajes de error. Si se especifica
SQLERROR CONTINUE, se produce un archivo de vinculación o
paquete a pesar del mensaje de error, pero las sentencias erróneas
no son ejecutables.
RUN Se intenta la validación en el tiempo de vinculación. Si existen
todos los objetos y se posee toda la autorización, no se realiza
ninguna comprobación adicional en el tiempo de ejecución.
Si no existen todos los objetos o no se posee toda la autorización
en el tiempo de precompilación/vinculación, se producen mensajes
de aviso y el paquete se vincula satisfactoriamente,
independientemente del valor de la opción SQLERROR CONTINUE. Sin
embargo, en el tiempo de ejecución se puede volver a realizar la
comprobación de autorización y la comprobación de existencia

496 Consulta de mandatos


PRECOMPILE

para las sentencias de SQL que han fallado dichas comprobaciones


durante el proceso de precompilación/vinculación.
VERSION
Define el identificador de versión para un paquete. Si no se especifica esta
opción, la versión del paquete será "" (serie vacía).
id-versión
Especifica un identificador de versión que es cualquier valor
alfanumérico, $, #, @, _, -, o ., de una longitud máxima de 64
caracteres.
AUTO
El identificador de versión se generará a partir del símbolo de
coherencia. Si el símbolo de coherencia es una indicación de fecha
y hora (lo será si no se especifica la opción LEVEL) la indicación de
fecha y hora se convertirá a formato de caracteres ISO y se
utilizará como identificador de versión.
WCHARTYPE
Especifica el formato para los datos gráficos.
CONVERT
Las variables del lenguaje principal que se declaran que utilizan el
tipo base wchar_t se tratarán como si contuvieran datos en formato
wchar_t. Puesto que este formato no es directamente compatible
con el formato de los datos gráficos almacenados en la base de
datos (formato DBCS), los datos de entrada de las variables del
lenguaje principal wchar_t se convierten implícitamente a formato
DBCS en nombre de la aplicación, utilizando la función ANSI C
wcstombs(). De forma similar, los datos DBCS de salida se
convierten implícitamente a formato wchar_t, utilizando
mbstowcs(), antes de almacenarse en variables del lenguaje
principal.
NOCONVERT
Las variables del lenguaje principal que se declaran que utilizan el
tipo base wchar_t se tratarán como si contuvieran datos en formato
DBCS. Éste es el formato utilizado dentro de la base de datos para
los datos gráficos; sin embargo, es diferente del formato wchar_t
nativo implementado en el lenguaje C. La utilización de NOCONVERT
significa que los datos gráficos no sufrirán ninguna conversión
entre la aplicación y la base de datos, lo cual puede mejorar la
eficacia. Sin embargo, la aplicación es responsable de asegurar que
los datos en formato wchar_t no se pasan al gestor de bases de
datos. Cuando se utiliza esta opción, las variables del lenguaje
principal wchar_t no se deberán manipular con las funciones de
series de caracteres anchos C y no se deberán inicializar con
literales de caracteres anchos (literales L).
WITH / WITHOUT TEMPORAL HISTORY
Especifica si los cambios realizados por sentencias de SQL estático o
dinámico en los datos en tablas temporales de período de sistema causan
cambios en la tabla de historial correspondiente.
WITH Especifica que los cambios realizados en los datos de las tablas
temporales de período de sistema causan cambios en la tabla de
historial correspondiente.
Es la opción por omisión.

Capítulo 5. mandatos CLP 497


PRECOMPILE

WITHOUT
Especifica que los cambios realizados en los datos de las tablas
temporales de período de sistema no causan cambios en la tabla de
historial correspondiente. El gestor de bases de datos puede
proporcionar valores para alterar temporalmente las columnas de
inicio de fila, de fin de fila y de ID de inicio de transacción aunque
se hayan definido como GENERATED ALWAYS.
Se requiere autorización DBADM para esta opción.

Notas de uso

Se produce un archivo fuente modificador, que contiene equivalentes de lenguaje


de sistema principal a las sentencias de SQL. Por omisión, se crea un paquete en la
base de datos con la que se ha establecido una conexión. El nombre del paquete es
el mismo que el nombre de archivo (menos la extensión y convertido a
mayúsculas), hasta un máximo de 8 caracteres. Aunque la longitud máxima de un
nombre de paquete es 128 bytes, a no ser que se especifique PACKAGE USING sólo se
utilizan los 8 primeros caracteres del nombre del archivo para mantener la
compatibilidad con versiones anteriores de DB2.

A continuación de la conexión a una base de datos, PREP se ejecuta bajo la


transacción que se ha iniciado. Entonces PREP emite un COMMIT o un ROLLBACK
para terminar la transacción actual e iniciar otra.

La creación de un paquete con un nombre de esquema que aún no existe da como


resultado la creación implícita de dicho esquema. El propietario del esquema es
SYSIBM. El privilegio CREATEIN sobre el esquema se otorga a PUBLIC.

Durante la precompilación, no se toma ninguna instantánea de explicación a no ser


que se cree un paquete y se haya especificado EXPLSNAP. La instantánea se pone en
las tablas de Explain del usuario que crea el paquete. De forma similar, la
información de tablas de Explain sólo se captura cuando se especifica EXPLAIN y se
crea un paquete.

La precompilación se detiene si se produce un error muy grave o se producen más


de 100 errores. Si se produce un error muy grave, el programa de utilidad deja de
precompilar, intenta cerrar todos los archivos y elimina el paquete.

Cuando un paquete exhibe un comportamiento de vinculación, lo siguiente puede


ser verdadero:
1. El valor implícito o explícito de la opción OWNER de BIND se utilizará para
realizar la comprobación de autorización de las sentencias de SQL dinámico.
2. El valor implícito o explícito de la opción QUALIFIER de BIND se utilizará como
calificador implícito para realizar la calificación de objetos no calificados en las
sentencias de SQL dinámico.
3. El valor del registro especial CURRENT SCHEMA no tiene ningún efecto sobre
la calificación.

En caso de que se haga referencia a varios paquetes durante una sola conexión,
todas las sentencias de SQL dinámico preparadas por esos paquetes exhibirán el
comportamiento que aparece especificado en la opción DYNAMICRULES para ese
paquete específico y el entorno en el que se utilicen.

Si se ha encontrado que una sentencia de SQL era errónea y se ha especificado la


opción SQLERROR CONTINUE de PRECOMPILE, la sentencia se marcará como no válida y

498 Consulta de mandatos


PRECOMPILE

se deberá emitir otro PRECOMPILE a fin de cambiar el estado de la sentencia de SQL.


La revinculación implícita o explícita no cambiará el estado de una sentencia no
válida en un paquete vinculado con VALIDATE RUN. Una sentencia puede cambiar de
estática a vinculación incremental o de vinculación incremental a estática a través
de revinculaciones implícitas y explícitas, en función de si existen o no problemas
de autorización o de existencia de objeto durante la revinculación.

Al vincular un paquete con REOPT ONCE o REOPT ALWAYS, es posible que cambie la
compilación y el rendimiento de las sentencias estáticas y dinámicas.

En el caso de un programa de SQL incorporado, si la opción de precompilación


FEDERATED_ASYNCHRONY no se especifica de forma explícita, las sentencias estáticas
del paquete se vinculan utilizando el parámetro de configuración federated_async.
Si se especifica la opción FEDERATED_ASYNCHRONY de forma explícita, dicho valor se
utiliza para vincular los paquetes y también es el valor inicial del registro especial.
En caso contrario, se utilizará el valor del parámetro de configuración del gestor de
base de datos como valor inicial del registro especial. La opción de precompilación
FEDERATED_ASYNCHRONY afecta a SQL dinámico sólo cuando se establece de forma
explícita.

Capítulo 5. mandatos CLP 499


PRUNE HISTORY/LOGFILE

PRUNE HISTORY/LOGFILE
Se utiliza para suprimir entradas del archivo histórico de recuperación o para
suprimir archivos de anotaciones cronológicas de la vía de acceso del archivo de
anotaciones cronológicas activo. La supresión de entradas del archivo histórico de
recuperación podría ser necesaria si el archivo crece excesivamente y el período de
retención es largo.

En un entorno particionado, el mandato PRUNE HISTORY solamente se ejecuta en la


partición de base de datos en la que se emite. Para podar el histórico en varias
particiones, puede emitir el mandato PRUNE HISTORY desde cada una de las
particiones de base de datos o bien puede utilizar el prefijo db2_all para ejecutar
el mandato PRUNE HISTORY en todas las particiones de base de datos.

Importante: El mandato PRUNE LOGFILE ha quedado en desuso y se puede eliminar


en un futuro release. En su lugar, utilice el mandato PRUNE HISTORY.

Autorización
Una de las autorizaciones siguientes:
v SYSADM
v SYSCTRL
v SYSMAINT
v DBADM

Conexión necesaria

Base de datos

Sintaxis del mandato


 PRUNE HISTORY indicfechahora 
WITH FORCE OPTION AND DELETE
LOGFILE PRIOR TO nombre-archivo-anotaciones

Parámetros del mandato


HISTORY indicfechahora
Identifica un rango de entradas del archivo histórico de recuperación que
se suprimirán. Se puede especificar una indicación de fecha y hora
completa (en el formato aaaammddhhmmss) o un prefijo inicial (mínimo
aaaa). Todas las entradas con indicaciones de fecha y hora iguales o
menores que la indicación de fecha y hora proporcionada se suprimirán
del archivo histórico de recuperación. Cuando se especifica un prefijo
inicial, los componentes de la indicación de fecha y hora que no se
especifican se interpretan como aaaa0101000000.
WITH FORCE OPTION
Especifica que se podarán las entradas de acuerdo con la indicación de
fecha y hora especificada, incluso si se suprimen del archivo algunas
entradas del conjunto de restauración más reciente. Un conjunto de
restauración es la copia de seguridad de base de datos completa más
reciente que incluye las restauraciones de dicha imagen de copia de

500 Consulta de mandatos


PRUNE HISTORY/LOGFILE

seguridad. Si no se especifica este parámetro, se mantendrán en el histórico


todas las entradas realizadas desde la imagen de copia de seguridad en
adelante.
AND DELETE
Especifica que los archivos de anotaciones asociados se suprimirán
físicamente (de acuerdo con la información de la ubicación) cuando se
elimine la entrada del archivo histórico. Esta opción resulta especialmente
útil para garantizar la recuperación del espacio de almacenamiento de
archivador cuando los archivos de anotaciones ya no se necesiten. Si está
archivando anotaciones mediante un programa de salida de usuario, las
anotaciones no se podrán suprimir utilizando esta opción.
Si establece el parámetro de configuración de base de datos
auto_del_rec_obj en ON, la invocación de PRUNE HISTORY con el parámetro
AND DELETE también suprimirá físicamente las imágenes de copia de
seguridad de carga y las imágenes de copia de carga si se poda la entrada
del archivo histórico.
LOGFILE PRIOR TO nombre-archivo-anotaciones
Especifica una serie para un nombre de archivo de anotaciones; por
ejemplo S0000100.LOG. Se suprimirán todos los archivos de anotaciones
cronológicas anteriores al archivo de anotaciones especificado (pero sin
incluir éste). El parámetro de configuración de base de datos logarchmeth1
debe establecerse en un valor distinto de OFF.

Nota: Este valor no está soportado en entornos DB2 pureScale.

Ejemplos

Para eliminar del archivo histórico de recuperación todas las entradas para todas
las restauraciones, cargas, copias de seguridad de espacios de tablas y copias de
seguridad de base de datos completa realizadas antes del 1 de diciembre de 1994
inclusive, entre:
db2 prune history 199412

199412 se interpreta como 19941201000000.

Notas de uso

Si se utiliza WITH FORCE OPTION, podrían suprimirse entradas que son necesarias
para la restauración automática de las bases de datos. Las restauraciones manuales
seguirán funcionando correctamente. La utilización de este mandato también
puede evitar que el programa de utilidad db2ckrst pueda analizar correctamente la
cadena completa de imágenes de copia de seguridad necesarias. El uso del
mandato PRUNE HISTORY sin la opción WITH FORCE OPTION impide que se supriman
las entradas necesarias.

Las entradas que tengan el estado DB2HISTORY_STATUS_DO_NOT_DELETE no


se podarán. Si se utiliza la opción WITH FORCE OPTION, los objetos marcados como
DB2HISTORY_STATUS_DO_NOT_DELETE se seguirán podando o suprimiendo.
Puede establecer el estado de las entradas del archivo histórico de recuperación en
DB2HISTORY_STATUS_DO_NOT_DELETE utilizando el mandato UPDATE HISTORY,
el mandato ADMIN_CMD con UPDATE_HISTORY o la API db2HistoryUpdate. Puede
utilizar el estado DB2HISTORY_STATUS_DO_NOT_DELETE para impedir que se
poden entradas del archivo histórico de recuperación de claves y evitar que se
supriman los objetos de recuperación asociados a ellas.

Capítulo 5. mandatos CLP 501


PRUNE HISTORY/LOGFILE

Puede recortar las entradas del archivo histórico de base de datos de copia de
seguridad selectiva utilizando el mandato PRUNE HISTORY, pero no puede suprimir
los objetos de recuperación físicos relacionados utilizando el parámetro AND DELETE.
La manera de suprimir los objetos de copia de seguridad selectiva es utilizar el
mandato db2acsutil.

502 Consulta de mandatos


PUT ROUTINE

PUT ROUTINE
Utiliza el archivo SQL Archive (SAR) de rutina especificado para definir una rutina
en la base de datos.

Autorización

DBADM. Esta autorización se debe otorgar directamente al usuario; no se puede


heredar a través de un rol.

Conexión necesaria

Base de datos. Si se ha habilitado la conexión implícita, se establece una conexión


con la base de datos por omisión.

Sintaxis del mandato


 PUT ROUTINE FROM nombrearchivo 

 
OWNER nuevo-propietario
USE REGISTERS

Parámetros del mandato


FROM nombrearchivo
Denomina el archivo en el que se almacena SQL Archive (SAR) de rutina.
OWNER nuevo-propietario
Especifica un nuevo nombre de autorización que se utilizará para la
comprobación de autorización de la rutina. El nuevo propietario debe tener los
privilegios necesarios para la rutina a definir. Si no se especifica la cláusula
OWNER, se utiliza el nombre de autorización que se ha definido originalmente
para la rutina.
USE REGISTERS
Indica que se utilizan los registros especiales CURRENT SCHEMA y
CURRENT PATH para definir la rutina. Si no se especifica esta cláusula, los
valores para el esquema por omisión y la vía de acceso de SQL son los valores
que se utilizan cuando se define la rutina. CURRENT SCHEMA se utiliza como
nombre de esquema para los nombres de objeto no calificados de la definición
de rutina (incluido el nombre de la rutina) y CURRENT PATH se utiliza para
resolver rutinas no calificadas y tipos de datos en la definición de rutina.

Ejemplos
PUT ROUTINE FROM procs/proc1.sar;

Notas de uso

No se puede instalar simultáneamente más de un procedimiento bajo un esquema


determinado.

Si una operación GET ROUTINE o PUT ROUTINE (o el procedimiento correspondiente)


no se ejecuta satisfactoriamente, siempre devolverá un error (SQLSTATE 38000),
acompañado de un texto de diagnóstico que proporcionará información acerca de
la causa de la anomalía. Por ejemplo, si el nombre de procedimiento proporcionado

Capítulo 5. mandatos CLP 503


PUT ROUTINE

a GET ROUTINE no identifica un procedimiento de SQL, se devolverá el texto de


diagnóstico "-204, 42704", donde "-204" es el SQLCODE y "42704" es el SQLSTATE,
que identifican la causa del problema. El SQLCODE y el SQLSTATE de este
ejemplo indican que el nombre de procedimiento proporcionado en el mandato GET
ROUTINE no está definido.

504 Consulta de mandatos


QUERY CLIENT

QUERY CLIENT
Devuelve valores de conexión actuales para un proceso de aplicación.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 QUERY CLIENT 

Parámetros del mandato

Ninguna

Ejemplos

El ejemplo siguiente es una salida de ejemplo de QUERY CLIENT:


Los valores de conexión actuales del proceso de aplicación son:
CONNECT = 1
DISCONNECT = EXPLICIT
MAX_NETBIOS_CONNECTIONS = 1
SQLRULES = DB2
SYNCPOINT = ONEPHASE
CONNECT_MEMBER = 0
ATTACH_MEMBER = -1

Si CONNECT_MEMBER y ATTACH_MEMBER no se han establecido utilizando el mandato


SET CLIENT, estos parámetros tienen valores idénticos a los de la variable de
entorno DB2NODE. Si el valor visualizado de los parámetros CONNECT_MEMBER o
ATTACH_MEMBER es -1, significa que el parámetro no se ha establecido; es decir, no se
ha establecido la variable de entorno DB2NODE, o el parámetro no se ha especificado
en un mandato SET CLIENT emitido con anterioridad.

Notas de uso

Los valores de conexión para un proceso de aplicación pueden consultarse en


cualquier momento durante la ejecución.

Capítulo 5. mandatos CLP 505


QUIESCE

QUIESCE
Fuerza a todos los usuarios a salir de la instancia o de la base de datos
especificadas en todos los miembros y los establece en la modalidad inmovilizada.

Mientras la instancia o la base de datos esté en la modalidad inmovilizada, puede


realizar tareas administrativas en ella. Después de completar las tareas
administrativas, utilice el mandato UNQUIESCE para activar la instancia o la base de
datos y permitir que otros usuarios se conecten a la base de datos.

En esta modalidad, solo los usuarios que posean autorización en esta modalidad
restringida tienen permiso para conectarse a la instancia o la base de datos. Los
usuarios con autorización SYSADM, SYSMAINT y SYSCTRL siempre tienen acceso
a una instancia mientras está inmovilizada, y los usuarios con autorización
SYSADM y DBADM siempre tienen acceso a una base de datos mientras está
inmovilizada.

Ámbito
QUIESCE DATABASE da como resultado que todos los objetos de la base de datos
están en modalidad inmovilizada. Sólo el usuario o grupo permitido y SYSADM,
SYSMAINT, DBADM o SYSCTRL podrán acceder a la base de datos o sus objetos.

QUIESCE INSTANCE nombre-instancia quiere decir que la instancia y las bases de datos
de la instancia nombre-instancia estarán en modalidad inmovilizada. La instancia
será accesible solo para SYSADM, SYSMAINT y SYSCTRL y el usuario o grupo
permitido.

Si una instancia está en modalidad inmovilizada, una base de datos de la instancia


no se puede poner en modalidad inmovilizada.

Si una base de datos está en el estado SUSPEND_WRITE, no se puede poner en la


modalidad inmovilizada.

Autorización

Una de las autorizaciones siguientes:

Para inmovilización a nivel de base de datos:


v SYSADM
v DBADM

Para inmovilización a nivel de instancia:


v SYSADM
v SYSCTRL

Conexión necesaria

Base de datos

(La conexión de base de datos no es necesaria para una inmovilización de


instancia.)

506 Consulta de mandatos


QUIESCE

Sintaxis del mandato


 QUIESCE DATABASE IMMEDIATE 
DB DEFER
WITH TIMEOUT minutos

FORCE CONNECTIONS
 

 QUIESCE INSTANCE nombre-instancia 


USER nombre-usuario
GROUP nombre-grupo

 IMMEDIATE 
RESTRICTED ACCESS DEFER
WITH TIMEOUT minutos

FORCE CONNECTIONS
 

Parámetros del mandato


DEFER Espera a las aplicaciones hasta que confirman la unidad de trabajo actual.
WITH TIMEOUT minutos
Especifica un período de tiempo, en minutos, que se deberá
esperar para que las aplicaciones confirmen la unidad de trabajo
actual. Si no se especifica ningún valor, en un entorno de bases de
datos de una sola partición el valor por omisión será de 10
minutos. En un entorno de base de datos particionada, se utilizará
el valor especificado por el parámetro de configuración de gestor
de bases de datos start_stop_time.
IMMEDIATE
No espera a que se confirmen las transacciones, retrotrae las transacciones
inmediatamente.
FORCE CONNECTIONS
Fuerza la desconexión de las conexiones.
DATABASE
Inmoviliza la base de datos. Todos los objetos de la base de datos se
pondrán en la modalidad inmovilizada. Solo los usuarios especificados de
grupos especificados y los usuarios con autorización SYSADM, SYSMAINT
y SYSCTRL podrán acceder a la base de datos o a sus objetos.
INSTANCE nombre-instancia
La instancia nombre-instancia y las bases de datos de la instancia se
pondrán en la modalidad inmovilizada. La instancia solo será accesible
para los usuarios con autorización SYSADM, SYSMAINT y SYSCTRL y
para los usuarios especificados en grupos especificados.
Las bases de datos de la instancia inmovilizada se activarán para realizar
la comprobación de autorizaciones de todos los intentos de conexión con la
base de datos. Esta acción es necesaria para determinar si el ID de usuario
que se está conectando tiene autorización DBADM; esta autorización se

Capítulo 5. mandatos CLP 507


QUIESCE

almacena en el catálogo de la base de datos y la base de datos debe estar


activada para determinar si el ID de usuario dispone de dicha
autorización. Para evitar que se compruebe la autorización, especifique la
opción RESTRICTED ACCESS.
USER nombre-usuario
Especifica el nombre de un usuario al que se permitirá el acceso a
la instancia mientras está inmovilizada.
GROUP nombre-grupo
Especifica el nombre de un grupo al que se permitirá el acceso a la
instancia mientras está inmovilizada.
RESTRICTED ACCESS
Especifique esta opción para que no se comprueben las autorizaciones en
todos los intentos de conexión con las bases de datos de una instancia
inmovilizada y determinar si el ID de usuario tiene la autorización
DBADM. Todavía se puede realizar la comprobación de autorizaciones en
el nivel de la instancia; para comprobar la autorización SYSADM,
SYSCTRL o SYSMAINT de un ID de usuario no es necesario activar una
base de datos.

Nota: Esta opción de mandato está disponible en DB2 Versión 9.7 Fixpack
2 y fixpacks posteriores.

Ejemplos

En el ejemplo siguiente, el comportamiento por omisión es forzar conexiones, de


forma que no se necesita indicar explícitamente y se puede eliminar de este
ejemplo.
db2 quiesce instance crankarm user frank immediate force connections

El ejemplo siguiente expulsa a todos los usuarios con conexiones a la base de


datos.
db2 quiesce db immediate
v El primer ejemplo inmovilizará la instancia crankarm, al tiempo que permitirá
que el usuario frank siga utilizando la base de datos.
El segundo ejemplo inmovilizará la base de datos a la que esté conectado,
evitando el acceso a todos los usuarios excepto a los que dispongan de las
autorizaciones siguientes: SYSADM, SYSMAINT, SYSCTRL o DBADM.
v Este mandato forzará a todos los usuarios a desconectarse de la base de datos o
de la instancia si se proporciona la opción FORCE CONNECTIONS. FORCE
CONNECTIONS es el comportamiento por omisión; el parámetro está permitido en
el mandato por motivos de compatibilidad.
v El mandato se sincronizará con FORCE CONNECTIONS y solo se completará una vez
que FORCE CONNECTIONS se haya completado.

Notas de uso
v Después de QUIESCE INSTANCE, solo los usuarios con autorización SYSADM,
SYSMAINT o SYSCTRL o un nombre de usuario y un nombre de grupo
proporcionados como parámetros del mandato podrán conectarse a la instancia.
v La opción RESTRICTED ACCESS impedirá que se activen las bases de datos de la
instancia inmovilizada para la comprobación de autorizaciones. No se autorizará
la conexión de ningún ID de usuario que intente conectar con una base de datos
teniendo la autorización DBADM o el privilegio QUIESCE_CONNECT sobre la

508 Consulta de mandatos


QUIESCE

base de datos. Solamente se podrán conectar a la base de datos los ID de


usuario que tengan autorización SYSADM, SYSCTRL o SYSMAINT y el usuario
o grupo especificado con el mandato.
v Debe utilizarse la opción RESTRICTED ACCESS cuando se requieran conexiones
exclusivas a una base de datos dentro de la instancia inmovilizada. Uno de estos
casos puede ser la realización de una copia de seguridad fuera de línea o la
ejecución de otras actividades de mantenimiento.
v Después de QUIESCE DATABASE, los usuarios con autorización SYSADM,
SYSMAINT, SYSCTRL o DBADM y los privilegios GRANT o REVOKE podrán
designar quién se podrá conectar. Esta información se almacenará de forma
permanente en las tablas de catálogos de la base de datos.
Por ejemplo,
grant quiesce_connect on database to username/groupname
revoke quiesce_connect on database from username/groupname
v En un entorno DB2 pureScale, después de inmovilizar una base de datos y
reiniciar la instancia, la base de datos permanecerá inmovilizada en todos los
miembros. Se requiere un mandato UNQUIESCE DATABASE para eliminar el estado
de inmovilización.
Información relacionada

Capítulo 5. mandatos CLP 509


QUIESCE TABLESPACES FOR TABLE

QUIESCE TABLESPACES FOR TABLE


Inmoviliza los espacios de tablas para una tabla. Existen tres modalidades de
inmovilización válidas: compartimiento, intención de actualización y exclusiva.

La función de inmovilización provoca tres estados posibles:


v Inmovilizado: SHARE
v Inmovilizado: UPDATE
v Inmovilizado: EXCLUSIVE

Ámbito

En un entorno de una sola partición, este mandato inmoviliza todos los espacios
de tablas implicados en una operación de carga en modalidad exclusiva durante el
tiempo que dura la operación de carga. En un entorno de base de datos
particionada, este mandato actúa localmente en una partición de base de datos.
Sólo inmoviliza la parte de espacios de tablas que pertenecen a la partición de base
de datos en la que se realiza la operación de carga. En el caso de las tablas
particionadas, se inmovilizan todos los espacios de tablas que se indican en
SYSDATAPARTITIONS.TBSPACEID y SYSDATAPARTITIONS.LONG_TBSPACEID
asociados a una tabla y cuyo estado sea normal, conectados o desconectados (por
ejemplo, SYSDATAPARTITIONS.STATUS es '"', 'A' o 'D').

Autorización

Una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v SYSMAINT
v DBADM
v LOAD

Conexión necesaria

Base de datos

Sintaxis del mandato


 QUIESCE TABLESPACES FOR TABLE nombretabla 
esquema.nombretabla

 SHARE 
INTENT TO UPDATE
EXCLUSIVE
RESET

Parámetros del mandato


TABLE
nombretabla
Especifica el nombre de tabla no calificado. La tabla no puede ser
una tabla de catálogos del sistema.

510 Consulta de mandatos


QUIESCE TABLESPACES FOR TABLE

esquema.nombre-tabla
Especifica el nombre de tabla calificado. Si no se proporciona
esquema, se utilizará CURRENT SCHEMA. La tabla no puede ser
una tabla de catálogos del sistema.
SHARE Especifica que la inmovilización debe ser en modalidad de
compartimiento.
Cuando se realiza una petición de "compartimiento de inmovilización", la
transacción solicita intentar bloqueos de compartimiento para los espacios
de tablas y un bloqueo de compartimiento para la tabla. Cuando la
transacción obtiene los bloqueos, el estado de los espacios de tablas cambia
a QUIESCED SHARE. El estado sólo se otorga al inmovilizador si no hay
ningún estado en conflicto mantenido por otros usuarios. El estado de los
espacios de tablas, junto con el ID de autorización y el ID de agente de
base de datos del inmovilizador, se registran en la tabla de espacios de
tablas, para que el estado sea permanente. No se puede cambiar la tabla
mientras los espacios de tablas para la tabla están en estado QUIESCED
SHARE. Se permiten otras peticiones de modalidad de compartimiento en
la tabla y los espacios de tablas. Cuando la transacción se confirma o se
retrotrae, se liberan los bloqueos, pero los espacios de tablas para la tabla
permanecen en estado QUIESCED SHARE hasta que se restablece
explícitamente el estado.
INTENT TO UPDATE
Especifica que la inmovilización debe ser en modalidad de intento de
actualización.
Cuando se realiza una petición "intento de actualización de
inmovilización", los espacios de tablas se bloquean en modalidad de
intento exclusivo (IX) y la tabla se bloquea en modalidad de actualización
(U). El estado de los espacios de tablas se registra en la tabla de espacios
de tablas.
EXCLUSIVE
Especifica que la inmovilización debe estar en modalidad exclusiva.
Cuando se realiza una petición de "inmovilización exclusiva", la
transacción solicita bloqueos superexclusivos en los espacios de tablas y un
bloqueo superexclusivo en la tabla. Cuando la transacción obtiene los
bloqueos, el estado de los espacios de tablas cambia a QUIESCED
EXCLUSIVE. El estado de los espacios de tablas, junto con el ID de
autorización y el ID de agente de base de datos del inmovilizador, se
registran en la tabla de espacios de tablas. Dado que los espacios de tablas
se mantienen en modalidad superexclusiva, no se permite ningún otro
acceso a los espacios de tablas. El usuario que invoca la función de
inmovilización (el inmovilizador) tiene acceso exclusivo a la tabla y a los
espacios de tablas.
RESET Especifica que el estado de los espacios de tablas debe restablecerse a
normal. El estado de inmovilización no se puede restablecer si la conexión
que emitió la petición de inmovilizar todavía está activa.
Cuando un inmovilizador emite un restablecimiento, sólo se restablece la
modalidad de inmovilización para ese inmovilizador. Si hay varios
inmovilizadores, el estado del espacio de tablas no cambiará.

Capítulo 5. mandatos CLP 511


QUIESCE TABLESPACES FOR TABLE

Cuando se trabaja con una tabla temporal de período del sistema y su


tabla histórica asociada, la operación de restablecer debe realizarse en la
misma tabla que se utilizó para establecer inicialmente la modalidad de
inmovilización.

Ejemplo
db2 quiesce tablespaces for table staff share
db2 quiesce tablespaces for table boss.org intent to update

Notas de uso

Este mandato no está soportado en entornos DB2 pureScale.

Una inmovilización es un bloqueo permanente. Su ventaja consiste en que


perduran las anomalías de las transacciones, las anomalías de conexión e incluso
las anomalías del sistema (por ejemplo anomalía de alimentación o rearranque).

Una inmovilización es propiedad de una conexión. Si se pierde la conexión, la


inmovilización permanece, pero no tiene propietario y se denomina inmovilización
ficticia. Por ejemplo, si un paro de alimentación ha hecho que se interrumpiera una
operación de carga durante la fase de supresión, los espacios de tablas para la
tabla cargada quedarán en estado de inmovilización exclusiva. Al reiniciarse la
base de datos, esta inmovilización será una inmovilización sin propietario (o
ficticia). Para eliminar de una inmovilización ficticia se necesita una conexión con
el mismo ID de usuario que se haya utilizado al establecer la modalidad de
inmovilización.

Para eliminar una inmovilización ficticia:


1. Conéctese a la base de datos con el mismo ID de usuario utilizado al establecer
la modalidad de inmovilización.
2. Utilice el mandato LIST TABLESPACES para determinar qué espacio de tablas
está inmovilizado.
3. Vuelva a inmovilizar el espacio de tablas utilizando el estado de inmovilización
actual. Por ejemplo:
db2 quiesce tablespaces for table mitabla exclusive

Una vez realizada, la nueva conexión es propietaria de la inmovilización y se


puede reiniciar la operación de carga.

Existe un límite de cinco inmovilizadores en un espacio de tablas en un momento


determinado.

Un inmovilizador puede alterar el estado de un espacio de tablas de un estado


menos restrictivo a otro más restrictivo (por ejemplo, S a U o U a X). Si un usuario
solicita un estado más bajo que uno que ya se mantiene, se vuelve al estado
original. Los estados no pueden disminuir de nivel.

Cuando se inmoviliza contra una tabla temporal de período de sistema, todos los
pasos de tabla asociados con la tabla temporal de período del sistema y la tabla de
historial se inmovilizan. Cuando se inmoviliza contra una tabla de historial, todos
los pasos de tabla asociados con la tabla de historial y las tablas temporales de
período de sistema asociadas se inmovilizan.

512 Consulta de mandatos


QUIT

QUIT
Sale de la modalidad de entrada interactiva del procesador de línea de mandatos y
vuelve al indicador de mandatos del sistema operativo.

Si se está utilizando un archivo de proceso por lotes para entrar mandatos en el


procesador de línea de mandatos, se procesan los mandatos hasta que se encuentra
QUIT, TERMINATE o el fin del archivo.

Autorización

Ninguna

Conexión necesaria

Ninguna

Sintaxis del mandato


 QUIT 

Parámetros del mandato

Ninguna

Notas de uso

QUIT no termina el proceso de fondo del procesador de línea de mandatos ni


interrumpe una conexión de base de datos. CONNECT RESET interrumpe una
conexión, pero no termina el proceso de fondo. El mandato TERMINATE realiza
ambas acciones.

Capítulo 5. mandatos CLP 513


REBIND

REBIND
Permite al usuario volver a crear un paquete almacenado en la base de datos sin
necesidad de un archivo de vinculación.

Autorización

Una de las autorizaciones siguientes:


v Autorización DBADM
v Privilegio ALTERIN para el esquema
v Privilegio BIND en el paquete.

El ID de autorización conectado a la columna BOUNDBY de la tabla de catálogos


del sistema SYSCAT.PACKAGES, que es el ID del vinculador más reciente del
paquete, se utiliza como ID de autorización de vinculador para la revinculación y
para el esquema por omisión de las referencias de tabla del paquete. Este
calificador por omisión puede ser diferente del ID de autorización del usuario que
ejecuta la petición de revinculación. REBIND utilizará las mismas opciones de
vinculación que se han especificado al crear el paquete.

Conexión necesaria
Base de datos. Si no existe ninguna conexión de base de datos y si se ha habilitado
la conexión implícita, se realiza una conexión a la base de datos por omisión.

Sintaxis del mandato


 REBIND nombre-paquete 
PACKAGE VERSION nombre-versión

 
APREUSE YES RESOLVE ANY REOPT NONE
NO CONSERVATIVE ONCE
ALWAYS

Parámetros del mandato


PACKAGE nombre-paquete
Nombre calificado o no calificado que indica el paquete que se debe volver
a vincular.
VERSION nombre-versión
La versión específica del paquete que se va a volver a vincular. Cuando no
se especifica la versión, se toma "" (serie vacía).
RESOLVE
Especifica si se debe volver a vincular el paquete con o sin semántica de
vinculación conservadora. Esto afecta al hecho de que se tengan en cuenta
los objetos nuevos, que utilizan la vía de acceso de SQL para la resolución,
durante la resolución en las sentencias de DML estático del paquete. Esta
opción no está soportada por DRDA. Los valores válidos son:
ANY Todas las coincidencias posibles en la vía de acceso de SQL se
tienen en cuenta para resolver referencias a los objetos que utilicen
dicha vía de acceso de SQL para la resolución de objetos. No se
utiliza semántica de vinculación conservadora. Es el valor por
omisión.
514 Consulta de mandatos
REBIND

CONSERVATIVE
Para resolver referencias a objetos que utilizan la vía de acceso de
SQL para la resolución de objetos sólo se tienen en cuenta los
objetos de la vía de acceso de SQL que se han definido antes de la
última indicación de fecha y hora de vinculación explícita. Se
utiliza semántica de vinculación conservadora. Esta opción no está
soportada para un paquete no operativo.
APREUSE
Especifica si se van a reutilizar planes de acceso de SQL estático. Cuando
esta opción está habilitada, el compilador de consultas intentará reutilizar
los planes de acceso para las sentencias de SQL estático en el paquete
existente durante la revinculación y durante las revinculaciones implícitas
y explícitas futuras. El valor por omisión es el que se había utilizado
durante la invocación anterior del mandato BIND o REBIND o de la sentencia
ALTER PACKAGE. Para determinar el valor, emita una consulta a la
columna APREUSE para el paquete de SYSCAT.PACKAGES.
YES El compilador de consultas intentará reutilizar los planes de acceso
para las sentencias del paquete.
NO El compilador de consultas no intentará reutilizar planes de acceso
para las sentencias del paquete.
REOPT
Especifica si DB2 debe optimizar una vía de acceso utilizando valores para
variables del lenguaje principal, marcadores de parámetro, variables
globales y registros especiales.
NONE
La vía de acceso para una determinada sentencia de SQL que
contenga variables del lenguaje principal, marcadores de
parámetro, variables globales o registros especiales no se
optimizará utilizando valores reales para estas variables. En su
lugar, se utilizarán las estimaciones por omisión para estas
variables y este plan se almacenará en la antememoria y se
utilizará posteriormente. Éste es el comportamiento por omisión.
ONCE La vía de acceso de una determinada sentencia de SQL se
optimizará utilizando los valores reales de las variables del
lenguaje principal, marcadores de parámetro, variables globales o
registros especiales cuando la consulta se ejecute por primera vez.
Este plan se almacenará en la antememoria y se utilizará
posteriormente.
ALWAYS
La vía de acceso de una determinada sentencia de SQL siempre se
compilará y se reoptimizará utilizando los valores de las variables
del lenguaje principal, marcadores de parámetros, variables
globales o registros especiales conocidos en el momento en que se
realice cada ejecución.

Notas de uso

REBIND no confirma automáticamente la transacción tras una revinculación


satisfactoria. El usuario debe confirmar la transacción explícitamente. Esto permite
realizar un análisis "que ocurriría si", en el que el usuario actualiza determinadas

Capítulo 5. mandatos CLP 515


REBIND

estadísticas y entonces intenta volver a vincular el paquete para ver qué cambios
se han producido. También permite múltiples revinculaciones dentro de una
unidad de trabajo.

El mandato REBIND confirmará la transacción si se ha habilitado la confirmación


automática.

Este mandato:
v Proporciona un método rápido para volver a crear un paquete. Esto permite al
usuario aprovechar un cambio en el sistema sin necesidad del archivo de
vinculación original. Por ejemplo, si es probable que una sentencia de SQL
determinada pueda aprovechar un índice recientemente creado, puede utilizarse
el mandato REBIND para volver a crear el paquete. REBIND también se puede
utilizar para volver a crear paquetes después de haber ejecutado el mandato
RUNSTATS, aprovechando así las nuevas estadísticas.
v Proporciona un método para volver a crear paquetes no operativos. Los
paquetes no operativos deben volverse a vincular explícitamente invocando el
programa de utilidad de vinculación o el programa de utilidad de revinculación.
Un paquete se marcará como no operativo (la columna VALID del catálogo de
sistema SYSCAT.PACKAGES se establecerá en X) si se descarta una instancia de
función de la que depende el paquete.
v Proporciona a los usuarios control sobre la revinculación de paquetes no válidos.
El gestor de bases de datos volverá a vincular automáticamente (o
implícitamente) los paquetes no válidos cuando estos se ejecuten. Esto podría
producir un retardo considerable en la ejecución de la primera petición SQL del
paquete no válido. Puede ser aconsejable volver a vincular explícitamente los
paquetes no válidos, en lugar de dejar que el sistema los vuelva a vincular
automáticamente, a fin de eliminar el retardo inicial y de evitar mensajes de
error de SQL inesperados que podrían devolverse en el caso de que falle la
revinculación implícita. Por ejemplo, tras la actualización de la base de datos,
todos los paquetes almacenados en la base de datos se invalidarán con el
mandato UPGRADE DATABASE. Dado que esto podría incluir un gran número de
paquetes, se recomienda volver a vincular explícitamente todos los paquetes no
válidos a la vez. Esta revinculación explícita puede llevarse a cabo utilizando
BIND, REBIND o la herramienta db2rbind).

Si hay varias versiones de un paquete (muchas versiones con el mismo nombre de


paquete y creador), sólo se puede volver a vincular una versión al mismo tiempo.
Si no se especifica en la opción VERSION, la versión de paquete por omisión será "".
Aunque haya sólo un paquete con un nombre que coincida, no se volverá a
vincular a menos que su versión coincida con la especificada o el valor por
omisión.

La elección de utilizar BIND or REBIND para volver a vincular explícitamente un


paquete dependerá de las circunstancias. Se recomienda utilizar REBIND siempre
que la situación no requiera específicamente el uso de BIND, porque el rendimiento
de REBIND es significativamente mejor que el de BIND. No obstante, debe utilizar
BIND en los siguientes casos:
v Cuando se hayan producido modificaciones en el programa (por ejemplo,
cuando se hayan añadido o suprimido sentencias de SQL o cuando el paquete
no coincida con el ejecutable para el programa).
v Cuando el usuario desee modificar cualquiera de las opciones de vinculación
como parte de la revinculación. REBIND no da soporte a ninguna opción de

516 Consulta de mandatos


REBIND

vinculación. Por ejemplo, si el usuario desea que se le otorguen privilegios para


el paquete como parte del proceso de vinculación, debe utilizarse BIND, pues
dispone de una opción GRANT.
v Cuando el paquete no existe actualmente en la base de datos.
v Cuando se requiera detección de todos los errores de vinculación. REBIND sólo
devuelve el primer error que detecta, mientras que el mandato BIND devuelve los
100 primeros errores que se producen durante la vinculación.

REBIND es soportado por DB2 Connect.

Si se ejecuta REBIND en un paquete que está utilizando otro usuario, la


revinculación no se producirá hasta que finalice la unidad de trabajo lógica del
otro usuario, ya que durante la revinculación se mantiene un bloqueo exclusivo en
el registro del paquete de la tabla de catálogos del sistema SYSCAT.PACKAGES.

Cuando se ejecuta REBIND, el gestor de bases de datos vuelve a crear el paquete a


partir de las sentencias de SQL almacenadas en la tabla de catálogos del sistema
SYSCAT.STATEMENTS.

Si REBIND encuentra un error, el proceso se detiene y se devuelve un mensaje de


error.

REBIND volverá a explicar los paquetes que se han creado con la opción de
vinculación EXPLSNAP establecida en YES o ALL (indicado en la columna
EXPLAIN_SNAPSHOT de la entrada de tabla de catálogos SYSCAT.PACKAGES
para el paquete) o con la opción de vinculación EXPLAIN establecida en YES o ALL
(indicado en la columna EXPLAIN_MODE de la entrada de tabla de catálogos
SYSCAT.PACKAGES para el paquete). Las tablas de Explain utilizadas son las del
solicitante de REBIND, no del vinculador original.

Si se ha encontrado que una sentencia de SQL era errónea y se ha especificado la


opción SQLERROR CONTINUE de BIND, se marcará la sentencia como no válida aunque
se haya corregido el problema. REBIND no cambiará el estado de una sentencia no
válida. En un paquete vinculado con VALIDATE RUN, una sentencia puede cambiar
de vinculación estática a incremental o viceversa a través de un REBIND, en función
de si existen o no problemas de autorización o de existencia de objetos durante
REBIND.

Al volver a vincular un paquete con REOPT ONCE o ALWAYS es posible que cambie la
compilación y el rendimiento de las sentencias estáticas y dinámicas.

Si no se especifica REOPT, REBIND conservará el valor existente de REOPT utilizado en


el momento de ejecutar PRECOMPILE o BIND.
Información relacionada

Capítulo 5. mandatos CLP 517


RECOVER DATABASE

RECOVER DATABASE
Restaura y avanza una base de datos hasta un determinado punto del tiempo o al
final de las anotaciones cronológicas.

Ámbito

En un entorno de base de datos particionada, este mandato sólo puede invocarse


desde la partición de catálogo. Una operación de recuperación de base de datos
hasta un punto del tiempo especificado afecta a todas las particiones de base de
datos que se listan en el archivo db2nodes.cfg. Una operación de recuperación de
base de datos hasta el final de las anotaciones cronológicas afecta a las particiones
de base de datos que se hayan especificado. Si no se ha especificado ninguna
partición, afecta a todas las particiones de base de datos listadas en el archivo
db2nodes.cfg.

En un entorno DB2 pureScale, el mandato RECOVER DATABASE puede emitirse desde


cualquier miembro.

Autorización

Para recuperar una base de datos existente, una de las autorizaciones siguientes:
v SYSADM
v SYSCTRL
v SYSMAINT

Para recuperar una base de datos nueva, una de las autorizaciones siguientes:
v SYSADM
v SYSCTRL

Conexión necesaria

Para recuperar una base de datos existente, se necesita una conexión de base de
datos. Este mandato establece automáticamente una conexión con la base de datos
especificada y finalizará la conexión cuando la operación de recuperación finalice.
Para recuperar una base de datos nueva, se necesita una conexión de instancia y
una conexión de base de datos. La conexión de instancia es necesaria para crear la
base de datos.

Sintaxis del mandato

 RECOVER DATABASE alias-base-datos-fuente 


DB

 
USING LOCAL TIME
TO horaiso
USING UTC TIME ON ALL DBPARTITIONNUMS
END OF LOGS
Cláusula En partición de base de datos

 
USER nombre-usuario
USING contraseña

 
USING HISTORY FILE ( archivo-histórico )
, Cláusula Archivo histórico

518 Consulta de mandatos


RECOVER DATABASE

 
OVERFLOW LOG PATH ( directorio-anotcron )
, Cláusula Desbordamiento anot. cronol.

 
COMPRLIB nombre-bib COMPROPTS serie-opciones RESTART

Cláusula En partición de base de datos:

ON Cláusula Lista de particiones de base de datos


ALL DBPARTITIONNUMS
EXCEPT Cláusula Lista de particiones de base de datos

Cláusula Lista de particiones de base de datos:

DBPARTITIONNUM (  partición-bd-número1 )
DBPARTITIONNUMS TO partición-bd-número2

Cláusula Desbordamiento anot. cronol.:

 directorio-anotcron ON DBPARTITIONNUM partición-bd-núm-1

Cláusula Archivo histórico:

 archivo-histórico ON DBPARTITIONNUM partición-bd-núm-1

Parámetros del mandato


DATABASE alias-base-datos
Alias de la base de datos que se debe recuperar.
USER nombreusuario
Nombre de usuario con el cual se debe recuperar la base de datos.
USING contraseña
Contraseña utilizada para autentificar el nombre de usuario. Si se omite la
contraseña, se solicitará al usuario que la entre.
TO
horaiso Punto del tiempo en que deben recuperarse todas las transacciones
confirmadas (incluida la transacción confirmada precisamente en
ese momento, así como todas las transacciones confirmadas
anteriormente). Una operación de recuperación a un punto en el
tiempo devuelve un mensaje de éxito solamente si existe una
transacción con un valor de fecha y hora superior en los archivos
de anotaciones cronológicas. Incluso si no hay ninguna transacción
con una indicación de fecha y hora mayor, se puede emitir una
operación de recuperación en avance con la opción COMPLETE.
Este valor se especifica como indicación de fecha y hora, una serie
de caracteres de 7 partes que identifica una fecha y hora
combinadas. El formato esaaaa-mm-dd-hh.mm.ss.nnnnnn (año, mes,

Capítulo 5. mandatos CLP 519


RECOVER DATABASE

día, hora, minutos, segundos, microsegundos). La indicación de


fecha y hora en una imagen de copia de seguridad se base en la
hora local en la que se ha iniciado la operación de copia de
seguridad. El registro especial CURRENT TIMEZONE especifica la
diferencia entre UTC y la hora local en el servidor de la aplicación.
La diferencia se representa mediante una duración (un número
decimal en el cual los dos primeros dígitos representan el número
de horas, los dos dígitos siguientes representan el número de
minutos y los dos últimos dígitos representan el número de
segundos). La resta entre CURRENT TIMEZONE y una hora local
convierte la hora local en UTC.
USING LOCAL TIME
Especifica el punto del tiempo en que se debe realizar la
recuperación. Esta opción permite al usuario recuperar hasta un
punto del tiempo que es la hora local del servidor en vez de la
hora UTC. Es la opción por omisión.

Nota:
1. Si el usuario especifica una hora local para la recuperación,
todos los mensajes devueltos al usuario estarán también en la
hora local. Todas las horas se convertirán en el servidor y, en
los entornos de bases de datos particionadas, en la partición de
base de datos de catálogo.
2. La serie de indicación de fecha y hora se convierte a UTC en el
servidor, de manera que la hora es local para la zona horaria
del servidor, no del cliente. Si el cliente está en una zona
horaria y el servidor en otra, debe utilizarse la hora local del
servidor.
3. Si la serie de indicación de fecha y hora está próxima al cambio
de hora del reloj a causa del horario de verano, es importante
saber si la hora de detención es anterior o posterior al cambio
de hora y especificarlo correctamente.
4. Es importante especificar una indicación de fecha y hora válida
cuando recupere una base de datos. Una indicación de fecha y
hora válida sería la hora a la que se ha realizado la última
copia de seguridad en el sistema de base de datos particionada.
5. Cuando se emiten varios mandatos RECOVER DATABASE, la
indicación de fecha y hora que se especifique para cada
mandato posterior debe ser posterior a la indicación de fecha y
hora del mandato anterior.
USING UTC TIME
Especifica el punto del tiempo en que se debe realizar la
recuperación.
END OF LOGS
Especifica que todas las transacciones confirmadas de todas las
anotaciones en la vía de acceso especificada mediante logpath, más
las anotaciones en la cadena de anotaciones con el número más
alto que pueden recuperarse de las ubicaciones especificadas por
los parámetros de configuración de base de datos logarchmeth1 y
logarchmeth2 deben avanzar.
ON ALL DBPARTITIONNUMS
Especifica que las transacciones deben avanzar en todas las particiones de

520 Consulta de mandatos


RECOVER DATABASE

base de datos especificadas en el archivo db2nodes.cfg. Es el valor por


omisión si no se especifica una cláusula de partición de base de datos.
EXCEPT
Especifica que las transacciones deben avanzar en todas las particiones de
base de datos especificadas en el archivo db2nodes.cfg, excepto las
especificadas en la lista de particiones de base de datos.
ON DBPARTITIONNUM | ON DBPARTITIONNUMS
Avanzar la base de datos en un conjunto de particiones de base de datos.
part-bd-núm1
Especifica un número de partición de base de datos en la lista de
particiones de base de datos.
TO partición-bd-núm-2
Especifica el segundo número de partición de base de datos, de
manera que todas las particiones de base de datos desde
partición-bd-núm-1 hasta partición-bd-núm-2 inclusive se incluyen en
la lista de particiones de base de datos.
USING HISTORY FILE archivo-histórico
archivo-histórico ON DBPARTITIONNUM
En un entorno de base de datos particionada, permite un archivo histórico
distinto.
OVERFLOW LOG PATH directorio-anotcron
Especifica una vía de acceso de anotaciones cronológicas alternativa en que
se deben buscar las anotaciones cronológicas archivadas durante la
recuperación. Utilice este parámetro si se han movido archivos de
anotaciones cronológicas a una ubicación distinta de la que se especifica en
el parámetro de configuración de base de datos logpath. En un entorno de
base de datos particionada, es la vía de acceso de anotación cronológica de
desbordamiento por omisión (completamente calificada) para todas las
particiones de base de datos. Se puede especificar una vía de acceso de
anotación cronológica de desbordamiento relativa para bases de datos de
una sola partición.
El parámetro de mandato OVERFLOW LOG PATH sobregrabará el valor (si hay
alguno) del parámetro de configuración de base de datos overflowlogpath.
COMPRLIB nombre-bib
Indica el nombre de la biblioteca que se debe utilizar para realizar la
descompresión. El nombre debe ser una vía de acceso totalmente calificada
que haga referencia a un archivo del servidor. Si este parámetro no se
especifica, DB2 intentará utilizar la biblioteca almacenada en la imagen. Si
la copia de seguridad no se ha comprimido, el valor de este parámetro se
pasará por alto. Si la biblioteca especificada no se puede cargar, la
operación de restauración fallará.
COMPROPTS serie-opciones
Describe un bloque de datos binarios que se pasará a la rutina de
inicialización en la biblioteca de descompresión. El sistema de base de
datos DB2 pasará esta serie directamente del cliente al servidor, de modo
que los posibles problemas de inversión de bytes o de conversión de
página de códigos los deberá manejar la biblioteca de descompresión. Si el
primer carácter del bloque de datos es “@”, DB2 interpretará los restantes
como el nombre de un archivo que se encuentra en el servidor. A
continuación, el sistema de base de datos DB2 sustituirá el contenido de

Capítulo 5. mandatos CLP 521


RECOVER DATABASE

serie por el contenido de este archivo y pasará este nuevo valor a la rutina
de inicialización. La longitud máxima para la serie es de 1024 bytes.
RESTART
Puede utilizarse la palabra clave RESTART si se ha interrumpido una
operación recover anterior o si no pudo completarse por otro motivo. Un
mandato RECOVER DATABASE posterior intenta continuar con la operación de
recuperación anterior, si es posible. Al utilizar la palabra clave RESTART se
fuerza a la operación de recuperación para que empiece con una
restauración nueva y luego avance al punto en el tiempo especificado.
directorio-anotcron ON DBPARTITIONNUM
En un entorno de base de datos particionada, permite que una vía de
acceso de anotación cronológica diferente altere temporalmente la vía de
acceso de anotación cronológica de desbordamiento por omisión para una
partición de base de datos específica.

Ejemplos

Los ejemplos siguientes se aplican en un entorno de base de datos de una sola


partición o un entorno DB2 pureScale, en el que la base de datos que se está
recuperando existe actualmente y la versión más reciente del archivo histórico está
disponible en la vía de acceso de base de datos por omisión especificada en el
archivo de configuración del gestor de bases de datos (parámetro dftdbpath):
1. Para utilizar la imagen de copia de seguridad más reciente y avanzar al final de
las anotaciones cronológicas utilizando todos los valores por omisión:
RECOVER DB SAMPLE
2. Para recuperar la base de datos hasta un punto en el tiempo, emita el mandato
siguiente. Se restaurará la imagen más reciente que se pueda utilizar y se
aplicarán anotaciones cronológicas hasta llegar al punto en el tiempo en
cuestión.
RECOVER DB SAMPLE TO 2001-12-31-04.00.00
3. Para recuperar la base de datos utilizando una versión guardada del archivo
histórico, emita el mandato siguiente. Por ejemplo, si el usuario necesita
realizar una recuperación hasta un punto en el tiempo muy antiguo que ya no
se encuentre en el archivo histórico actual, el usuario deberá proporcionar una
versión del archivo histórico del período en cuestión. Si el usuario ha guardado
un archivo histórico de este período, se podrá utilizar esta versión para llevar a
cabo la recuperación.
RECOVER DB SAMPLE TO 1999-12-31-04.00.00
USING HISTORY FILE (/home/user/old1999files/db2rhist.asc)

En un entorno de base de datos de una sola partición en el que no existe la base


de datos que se está recuperando, se debe utilizar la cláusula USING HISTORY FILE
para hacer referencia a un archivo histórico.
1. Si no se ha realizado ninguna copia de seguridad del archivo histórico de modo
que la única versión disponible es la copia de la imagen de copia de seguridad,
la recomendación será emitir un mandato RESTORE DATABASE seguido de un
mandato ROLLFORWARD DATABASE. Sin embargo, para utilizar el mandato RECOVER
DATABASE, primero deberá haber extraído el archivo histórico de la imagen en
otra ubicación, por ejemplo, /home/user/fromimage/db2rhist.asc y, a
continuación, emitir este mandato. (Esta versión, del archivo histórico no
contiene información sobre los archivos de anotaciones cronológicas necesarios
para el avance, de modo que este archivo histórico no resulta útil para RECOVER
DATABASE.)

522 Consulta de mandatos


RECOVER DATABASE

RECOVER DB SAMPLE TO END OF LOGS


USING HISTORY FILE (/home/user/fromimage/db2rhist.asc)
2. Si ha realizado copias de seguridad periódicas o frecuentes del archivo
histórico, deberá utilizar la cláusula USING HISTORY FILE para hacer referencia a
esta versión del archivo histórico. Si el archivo es /home/user/myfiles/
db2rhist.asc, emita el mandato:
RECOVER DB SAMPLE TO 2001-12-31-04.00.00
USING HISTORY FILE (/home/user/myfiles/db2rhist.asc)

(En este caso, puede utilizar cualquier copia del archivo histórico, no
necesariamente la última, siempre que contenga una copia de seguridad
realizada antes del punto en el tiempo solicitado).

En un entorno de base de datos particionada en que la base de datos exista en


todas las particiones de base de datos y el archivo histórico más reciente esté
disponible en dftdbpath en todas las particiones de base de datos:
1. Para recuperar la base de datos hasta un punto en el tiempo en todas las
particiones de base de datos. Los sistemas de base de datos DB2 verificarán que
puede alcanzarse el punto en el tiempo (PIT) en todas las particiones de base
de datos antes de iniciar operaciones de restauración.
RECOVER DB SAMPLE TO 2001-12-31-04.00.00
2. Para recuperar la base de datos hasta este punto en el tiempo en todas las
particiones de base de datos. Los sistemas de base de datos DB2 verificarán que
puede alcanzarse el punto en el tiempo especificado en todas las particiones de
base de datos antes de iniciar operaciones de restauración. La operación de
recuperación en cada partición de base de datos es idéntica a una recuperación
de partición única.
RECOVER DB SAMPLE TO END OF LOGS
3. Aunque la versión más reciente del archivo histórico se encuentre en dftdbpath,
puede que desee utilizar varios archivos históricos específicos. A menos que se
especifique lo contrario, cada partición de base de datos utilizará el archivo
histórico que se encuentra localmente en /home/user/oldfiles/db2rhist.asc.
Las excepciones son las particiones de base de datos 2 y 4. La partición de base
de datos 2 utilizará: /home/user/node2files/db2rhist.asc, y la partición de
base de datos 4 utilizará: /home/user/node4files/db2rhist.asc.
RECOVER DB SAMPLE TO 1999-12-31-04.00.00
USING HISTORY FILE (/home/user/oldfiles/db2rhist.asc,
/home/user/node2files/db2rhist.asc ON DBPARTITIONNUM 2,
/home/user/node4files/db2rhist.asc ON DBPARTITIONNUM 4)
4. Es posible recuperar un subconjunto de particiones de base de datos en lugar
de todas las particiones de base de datos, sin embargo, la operación de
recuperación de punto en el tiempo no puede realizarse en este caso; la
recuperación debe realizarse hasta el final de las anotaciones cronológicas.
RECOVER DB SAMPLE TO END OF LOGS ON DBPARTITIONNUMS(2 TO 4, 7, 9)

En un entorno de base de datos particionada en que la base de datos no exista:


1. Si no se ha realizado ninguna copia de seguridad del archivo histórico de modo
que la única versión disponible es la copia de la imagen de copia de seguridad,
la recomendación será emitir un mandato RESTORE DATABASE seguido de un
mandato ROLLFORWARD DATABASE. Sin embargo, para utilizar RECOVER DATABASE,
primero deberá haber extraído el archivo histórico de la imagen en otra
ubicación, por ejemplo, /home/user/fromimage/db2rhist.asc y, a continuación,
emitir este mandato. (Esta versión del archivo histórico no contiene información
sobre los archivos de anotaciones cronológicas necesarios para el avance, de
modo que este archivo histórico no resulta útil para la recuperación).
Capítulo 5. mandatos CLP 523
RECOVER DATABASE

RECOVER DB SAMPLE TO 2001-12-31-04.00.00


USING HISTORY FILE (/home/user/fromimage/db2rhist.asc)
2. Si ha realizado copias de seguridad periódicas o frecuentes del archivo
histórico, deberá utilizar la cláusula USING HISTORY FILE para hacer referencia a
esta versión del archivo histórico. Si el archivo es /home/user/myfiles/
db2rhist.asc, puede emitir el mandato siguiente:
RECOVER DB SAMPLE TO END OF LOGS
USING HISTORY FILE (/home/user/myfiles/db2rhist.asc)

Notas de uso
v Es posible que para recuperar una base de datos se necesite una recuperación de
carga utilizando dispositivos de cinta. Si se solicita otra cinta, el usuario puede
responder con alguna de las opciones siguientes:
c Continuar. Continuar utilizando el dispositivo que ha generado el
mensaje de aviso (por ejemplo, cuando se ha montado una cinta nueva).
d Terminación de dispositivo. Dejar de utilizar el dispositivo que ha
generado el mensaje de aviso (por ejemplo, cuando no hay más cintas).
t Terminar. Terminar todos los dispositivos.
v Si se produce una anomalía durante la parte de la operación de recuperación
correspondiente a la restauración, se puede volver a emitir el mandato RECOVER
DATABASE. Si la operación de restauración ha resultado satisfactoria, pero se ha
producido un error durante la operación de avance, se puede emitir un mandato
ROLLFORWARD DATABASE, puesto que no es necesario (y además cuesta mucho
tiempo) volver a realizar toda la operación de recuperación.
v En un entorno de base de datos particionada, si se produce un error durante la
parte de la operación de recuperación correspondiente a la restauración, es
posible que sólo se trate de un error en una única partición de base de datos. En
lugar de volver a emitir el mandato RECOVER DATABASE, que restaura la base de
datos en todas las particiones de base de datos, resulta más eficaz emitir un
mandato RESTORE DATABASE para la base de datos que haya sufrido la anomalía,
seguido de un mandato ROLLFORWARD DATABASE.
v En un entorno DB2 pureScale, debe especificar la partición de base de datos 0 si
utiliza el mandato RECOVER DATABASE con la cláusula ON DBPARTITIONNUMS o con
la cláusula ON DBPARTITIONNUM (como parte de la lista de particiones de base de
datos o cláusula de desbordamiento de anotaciones cronológicas).
Información relacionada

524 Consulta de mandatos


REDISTRIBUTE DATABASE PARTITION GROUP

REDISTRIBUTE DATABASE PARTITION GROUP


Redistribuye datos en las particiones de un grupo de particiones de base de datos.
Este mandato afecta a todos los objetos presentes en el grupo de particiones de
base de datos y no puede restringirse a un único objeto.

Este mandato sólo se puede emitir desde la partición de base de datos de catálogo.
Utilice el mandato LIST DATABASE DIRECTORY para determinar qué partición de base
de datos es la partición de base de datos del catálogo para cada base de datos.

Ámbito

Este mandato afecta a todas las particiones de base de datos del grupo de
particiones de base de datos.

Autorización

Se necesita una de las autorizaciones siguientes:


v SYSADM
v SYSCTRL
v DBADM

Asimismo, también es necesario uno de los grupos de autorizaciones siguientes:


v Privilegios DELETE, INSERT y SELECT en todas las tablas del grupo de
particiones de base de datos que se está redistribuyendo
v Autorización DATAACCESS

Sintaxis del mandato

 REDISTRIBUTE DATABASE PARTITION GROUP grupo-particiones-bd 

 Acción 
NOT ROLLFORWARD RECOVERABLE Acción Opciones no recuperables en avance

 ? ? 
,
ONLY
TABLE (  nombre-tabla )
FIRST

 ? ? ? ? 
, STOP AT horaiso-local

EXCLUDE (  nombre-tabla )

Acción:

UNIFORM Añadir/descartar partición BD


USING DISTFILE nombre-archivodist
USING TARGETMAP nombarchivocorrelacióndestino
CONTINUE
ABORT

Añadir/descartar partición BD:

Capítulo 5. mandatos CLP 525


REDISTRIBUTE DATABASE PARTITION GROUP


,

ADD DBPARTITIONNUM (  n )
DBPARTITIONNUMS TO m


,

DROP DBPARTITIONNUM (  n )
DBPARTITIONNUMS TO m

Opciones no recuperables en avance:

INDEXING MODE REBUILD PRECHECK YES


? ? ? ? 
DATA BUFFER n INDEXING MODE DEFERRED PRECHECK NO
PRECHECK ONLY

QUIESCE DATABASE YES STATISTICS USE PROFILE


 ? ? ?
QUIESCE DATABASE NO STATISTICS NONE

Parámetros del mandato


DATABASE PARTITION GROUP grupo-particiones-bd
Nombre del grupo de particiones de base de datos. Este nombre de una sola
parte identifica un grupo de particiones de base de datos descrito en la tabla
de catálogos SYSCAT.DBPARTITIONGROUPS. El grupo de particiones de base
de datos no puede estar sometido actualmente a una redistribución.

Nota: Las tablas de los grupos de particiones de base de datos


IBMCATGROUP e IBMTEMPGROUP no se pueden redistribuir.
NOT ROLLFORWARD RECOVERABLE
Cuando se utiliza esta opción, el mandato REDISTRIBUTE DATABASE PARTITION
GROUP no se puede recuperar en avance.
v Los datos se mueven masivamente en lugar de mediante operaciones de
inserción y supresión internas. Esto reduce el número de veces que se debe
explorar una tabla y acceder a ella, lo que da como resultado un mejor
rendimiento.
v Ya no se necesitan registros de anotaciones para cada una de las operaciones
de inserción y supresión. Esto significa que ya no necesita gestionar grandes
cantidades de espacio de anotaciones cronológicas activas y espacio de
archivado de anotaciones cronológicas en el sistema al realizar la
redistribución de datos.
v Al utilizar el mandato REDISTRIBUTE DATABASE PARTITION GROUP con la
opción NOT ROLLFORWARD RECOVERABLE, la operación de redistribución utiliza
la opción INDEXING MODE DEFERRED para las tablas que contienen columnas
XML. Si una tabla no contiene una columna XML, la operación de
redistribución utiliza la modalidad de creación de índices especificada al
emitir el mandato.
Cuando no se utiliza esta opción, se realiza una anotación cronológica
exhaustiva de todo el movimiento de filas que se efectúa para que se pueda
recuperar la base de datos posteriormente en caso de que se produzca una
interrupción, un error o por otra necesidad de la actividad.

526 Consulta de mandatos


REDISTRIBUTE DATABASE PARTITION GROUP

UNIFORM
Especifica que los datos se distribuyen uniformemente entre las particiones
hash (es decir, se supone que cada partición hash tiene el mismo número de
filas), pero no se correlaciona el mismo número de particiones hash con cada
partición de base de datos. Después de la redistribución, todas las particiones
de base de datos del grupo de particiones de base de datos tienen
aproximadamente el mismo número de particiones hash.
USING DISTFILE nombrearchivodist
Si se desvía la distribución de los valores clave de distribución, utilice esta
opción para obtener una redistribución uniforme de los datos entre las
particiones de base de datos de un grupo de particiones de base de datos.
Utilice el nombrearchivodist para indicar la distribución actual de los datos entre
las 32.768 particiones hash.
Utilice cuentas de filas, volúmenes de bytes o cualquier otra medida para
indicar la cantidad de datos representados por cada partición hash. El
programa de utilidad lee el valor entero asociado con una partición como el
valor relativo de dicha partición. Cuando se especifica un nombrearchivodist, el
programa de utilidad genera una correlación de distribución de destino y la
utiliza para redistribuir los datos entre las particiones de base de datos del
grupo de particiones de base de datos de la manera más uniforme posible.
Después de la redistribución, el valor relativo de cada partición de base de
datos del grupo de particiones de base de datos es aproximadamente el mismo
(el valor relativo de una partición de base de datos es la suma de los valores
relativos de todas las particiones hash que se correlacionan con dicha partición
de base de datos).
Por ejemplo, el archivo de distribución de entrada podría contener entradas
como las siguientes:
10223
1345
112000
0
100
...
En el ejemplo, la partición hash 2 tiene un valor relativo de 112.000 y la
partición 3 (con un valor relativo de 0) no tiene correlación de datos con ella
en absoluto.
El nombrearchivodist debe contener 32.768 valores enteros positivos en formato
de carácter. La suma de los valores debe ser inferior o igual a 4.294.967.295.
Si no se especifica la vía de acceso para nombrearchivodist, se utilizará el
directorio actual.
USING TARGETMAP nombarchivocorrelacióndestino
El archivo especificado en nombarchivocorrelacióndestino se utiliza como
correlación de distribución de destino. La redistribución de datos se realiza de
acuerdo con este archivo. Si no se especifica la vía de acceso, se utiliza el
directorio actual.
El nombarchivocorrelacióndestino debe contener 32 768 enteros, cada uno de los
cuales representa un número de partición de base de datos válido. El número
de cualquier fila se correlaciona un valor hash con una partición de base de
datos. Esto significa que si la fila X contiene el valor Y, cada registro con un
HASHEDVALUE() de X ha de estar ubicado en la partición de base de datos
Y.

Capítulo 5. mandatos CLP 527


REDISTRIBUTE DATABASE PARTITION GROUP

Si una partición de base de datos incluida en la correlación de destino no está


en el grupo de particiones de base de datos, se devolverá un error. Emita la
sentencia ALTER DATABASE PARTITION GROUP ADD DBPARTITIONNUM
antes de ejecutar el mandato REDISTRIBUTE DATABASE PARTITION GROUP.
Si una partición de base de datos, excluida de la correlación de destino, está en
el grupo de particiones de base de datos, esa partición de base de datos no se
incluirá en el particionamiento. Dicha partición de base de datos se puede
descartar utilizando la sentencia ALTER DATABASE PARTITION GROUP
DROP DBPARTITIONNUM antes o después del mandato REDISTRIBUTE
DATABASE PARTITION GROUP.
CONTINUE
Continúa una operación REDISTRIBUTE DATABASE PARTITION GROUP que se ha
detenido o ha fallado anteriormente. Si no se ha producido ninguna, se
devuelve un error.
ABORT
Cancela una operación REDISTRIBUTE DATABASE PARTITION GROUP que se ha
detenido o ha fallado anteriormente. Si no se ha producido ninguna, se
devuelve un error.
ADD
DBPARTITIONNUM n
TO m

n o n TO m especifica una lista o listas de números de particiones de base


de datos que deben añadirse al grupo de particiones de base de datos. Las
particiones especificadas no deben estar ya definidas en el grupo de
particiones de base de datos (SQLSTATE 42728). Es equivalente a ejecutar
la sentencia ALTER DATABASE PARTITION GROUP con la cláusula ADD
DBPARTITIONNUM especificada.
DBPARTITIONNUMS n
TO m

n o n TO m especifica una lista o listas de números de particiones de base


de datos que deben añadirse al grupo de particiones de base de datos. Las
particiones especificadas no deben estar ya definidas en el grupo de
particiones de base de datos (SQLSTATE 42728). Es equivalente a ejecutar
la sentencia ALTER DATABASE PARTITION GROUP con la cláusula ADD
DBPARTITIONNUM especificada.

Nota:
1. Cuando se añade una partición de base de datos utilizando esta opción,
los contenedores de espacios de tablas se basan en los contenedores del
espacio de tablas correspondiente en la partición existente con el
número más bajo del grupo de particiones de la base de datos. Como
resultado se obtendría un conflicto de nombres entre los contenedores,
algo que podría suceder si las nuevas particiones se realizan en la
misma máquina física que los contenedores existentes; esta opción no
debe utilizarse. En su lugar, debe utilizarse la sentencia ALTER
DATABASE PARTITION GROUP con la opción WITHOUT
TABLESPACES antes de emitir el mandato REDISTRIBUTE DATABASE
PARTITION GROUP. A continuación, los contenedores de espacios de
tablas se pueden crear manualmente especificando nombres apropiados.

528 Consulta de mandatos


REDISTRIBUTE DATABASE PARTITION GROUP

2. La redistribución de datos puede crear espacios de tablas de todas las


particiones de base de datos nuevas si se ha especificado el parámetro
ADD DBPARTITIONNUMS.
DROP
DBPARTITIONNUM n
TO m

n o n TO m especifica una lista o listas de números de particiones de base


de datos que deben descartarse del grupo de particiones de base de datos.
Las particiones especificadas no deben estar ya definidas en el grupo de
particiones de base de datos (SQLSTATE 42729). Esto equivale a ejecutar la
sentencia ALTER DATABASE PARTITION GROUP con la cláusula DROP
DBPARTITIONNUM especificada.
DBPARTITIONNUMS n
TO m

n o n TO m especifica una lista o listas de números de particiones de base


de datos que deben descartarse del grupo de particiones de base de datos.
Las particiones especificadas no deben estar ya definidas en el grupo de
particiones de base de datos (SQLSTATE 42729). Esto equivale a ejecutar la
sentencia ALTER DATABASE PARTITION GROUP con la cláusula DROP
DBPARTITIONNUM especificada.
TABLE nombretabla
Especifica un orden de tabla para el proceso de redistribución.
ONLY
Si el orden de tabla va seguido por la palabra clave ONLY (que es el valor
por omisión), entonces, sólo se redistribuirán las tablas especificadas. El
resto de las tablas se puede procesar más adelante mediante mandatos
posteriores REDISTRIBUTE CONTINUE. Es el valor por omisión.
FIRST
Si el orden de tabla va seguido por la palabra clave FIRST, entonces, se
distribuirán las tablas especificadas en el orden indicado y el resto de
tablas del grupo de particiones de base de datos se redistribuirán en orden
aleatorio.
EXCLUDE nombretabla
Especifica las tablas que se han de omitir en el proceso de redistribución. Por
ejemplo, puede omitir temporalmente una tabla hasta que pueda configurarla
de modo que cumpla con los requisitos para la redistribución de datos. Las
tablas omitidas se pueden procesar más adelante mediante mandatos
REDISTRIBUTE CONTINUE.
STOP AT horaiso-local
Cuando se especifica esta opción, antes de empezar la redistribución de datos
para cada tabla, horaiso-local se comparará con la indicación de fecha y hora
local actual. Si la horaiso-local es igual o anterior a la indicación de fecha y hora
local actual, el programa de utilidad se detendrá con un mensaje de error. El
proceso de redistribución de datos de las tablas en progreso en el momento de
la detención se completará sin interrupción. No empezará ningún proceso de
redistribución de datos de las tablas nuevo. Las tablas no procesadas se
pueden redistribuir utilizando la opción CONTINUE. Este valor horaiso-local se
especifica como indicación de fecha y hora, una serie de caracteres de 7 partes
que identifica una fecha y hora combinadas. El formato es

Capítulo 5. mandatos CLP 529


REDISTRIBUTE DATABASE PARTITION GROUP

aaaa-mm-dd-hh.mm.ss.nnnnnn (año, mes, día, hora, minutos, segundos,


microsegundos), expresado en hora local.
DATA BUFFER n
Especifica el número de páginas de 4 KB que se utilizan como espacio de
almacenamiento intermedio para transferir datos dentro del programa de
utilidad. Este parámetro de mandato solo se puede utilizar cuando se
especifica también el parámetro NOT ROLLFORWARD RECOVERABLE.
Si el valor especificado es menor que el valor mínimo soportado, se utiliza el
valor mínimo y no se devolverá ningún aviso. Si no se especifica un valor DATA
BUFFER, el programa de utilidad calculará un valor por omisión inteligente en
tiempo de ejecución, al inicio del proceso de cada tabla. De forma más
específica, el valor por omisión es utilizar el 50% de la memoria disponible en
la pila del programa de utilidad en el momento en que empieza la
redistribución de la tabla y tener en cuenta también diversas propiedades de