Puntos clave: REXX SQLCA en Db2 12 explica la estructura del Área de Comunicación SQL (SQLCA) esencial para las operaciones SQL en Db2 para z/OS, detallando sus variables y sus funciones.
- Describe variables SQLCA como SQLCODE y SQLSTATE.
- Proporciona información sobre la gestión de errores y el diagnóstico en operaciones SQL.
| Variable | Índice |
| SQLCODE | El código de retorno SQL |
| SQLERRMC | Uno o más tokens separados por X'FF' que son sustituidos por variables en las descripciones de condiciones de error. Puede contener tokens truncados. Una longitud de mensaje de 70 bytes indica posible truncamiento |
| SQLERRP | Una firma de producto y, en caso de error, información diagnóstica como el nombre del módulo que detectó el error. Para DB2 o z/OS, la firma del producto está 'DSN' |
| SQLERRD.1 | Para un cursor estático sensible, contiene el número de filas en una tabla de resultados cuando la posición del cursor están después de la última fila (ese están, cuando el código SQL están igual a +100). También puede contener un código de error interno |
| SQLERRD.2 | Para un cursor estático sensible, contiene el número de filas en una tabla de resultados cuando la posición del cursor están después de la última fila (ese están, cuando el código SQL están igual a +100). También puede contener un código de error interno |
| SQLERRD.3 | Contiene el número de filas que calificaron para la operación tras una sentencia de cambio de datos SQL (pero no filas eliminadas como resultado de eliminación CASCADE). Para el OPEN de un cursor para un SELECT con una sentencia de cambio de datos SQL o para un SELECT INTO, SQLERRD(3) contiene el número de filas afectadas por la sentencia de cambio de datos incrustada. Se establece a 0 si la instrucción SQL falla, indicando que todos los cambios realizados en la ejecución de la instrucción fueron cancelados. Se establece en -1 para una eliminación masiva de una tabla en un espacio segmentado, para una operación truncada, o eliminación de una vista cuando ni la sentencia DELETE ni la definición de la vista incluyeron criterios de selección. Para sentencias FETCH orientadas a files, contiene el número de filas devueltas en el conjunto de filas. Para SQLCODES -911 y -913, SQLERRD(3) contiene el código de razón para el timeout o deadlock. Tras la ejecución exitosa de la instrucción REFRESH TABLE, SQLERRD(3) contiene el número de filas insertadas en la tabla de consulta materializada. Cuando se está detectando un error al analizar una sentencia dinámica, o al analizar, vincular o ejecutar un procedimiento SQL nativo, SQLERRD(3) contendrá el número de línea donde se encontró el error. El sexto byte de SQLCAID debe ser 'L' para que este sea un número de línea válido. Este valor solo tendrá sentido si la fuente de la sentencia contiene nuevos caracteres de control de línea. No se devuelve para un procedimiento SQL externo. |
| SQLERRD.4 | Generalmente contiene temporizadores, un valor corto en coma flotante que indica una estimación aproximada de los recursos necesarios. Este valor no refleja una estimación del tiempo necesario para ejecutar la instrucción SQL. Después de te preparar una sentencia SQL, te puede utiliza este campo como indicador del coste relativo de la instrucción SQL preparada. Para una instrucción concreta, este número puede variar con cambios en las estadísticas del catálogo. Sujeto a cambios entre versiones de DB2 para z/OS. |
| SQLERRD.5 | La posición o columna de un error sintáctico para una sentencia PREPARE o EXECUTE IMMEDIATE |
| SQLERRD.6 | Un código de error interno |
| SQLWARN.0 | En blanco si todos los demás indicadores son en blanco; W si al menos un indicador también contiene una W |
| SQLWARN.1 | W si el valor de una columna de cadena se truncó al asignarse a una variable anfitriona |
| SQLWARN.2 | W si no se eliminaban valores del argumento a una función columna; no necesariamente se estableciera en W para la función MIN porque sus resultados no son dependientes de la eliminación de valores nulos |
| SQLWARN.3 | W si el número de columnas de resultado está mayor que el número de variables de host. Z si la instrucción ASSOCIATE LOCATORS contiene menos localizadores que el procedimiento almacenado devuelto |
| SQLWARN.4 | W si una instrucción UPDATE o DELETE preparada no incluye una cláusula WHERE. Para un cursor desplazable, contiene una D para cursores dinámicos sensibles, I para cursores insensibles y S para cursores sensibles tras la instrucción OPEN CURSOR o ALLOCATE CURSOR, en blanco si no es desplazable |
| SQLWARN.5 | W si la sentencia SQL no se ejecutó porque no es válida en DB2 para z/OS. Valor de carácter 1 (solo lectura), 2 (lectura y eliminación) o 4 (lectura, eliminación y actualización) para reflejar la capacidad del caso tras la instrucción OPEN CURSOR o ALLOCATE CURSOR |
| SQLWARN.6 | W si la suma de una duración de mes o año a un valor de FECHA o HORA resulta en un día inválido (por ejemplo, 31 de junio). Indica que el valor del día se cambió al último día del mes para Haz válido el resultado |
| SQLWARN.7 | W si uno o más dígitos no nulos son eliminados de la parte fraccionaria de un número que se usó como operando de una operación de multiplicación o división decimal |
| SQLWARN.8 | W si un carácter que no puede convertirse fue reemplazado por un carácter sustituto |
| SQLWARN.9 | W si se ignoraron excepciones aritméticas durante el procesamiento COUNT o COUNT_BIG. Z si el procedimiento almacenado devolvió múltiples conjuntos de resultados |
| SQLWARN.10 | W si al menos un campo de caracteres de SQLCA está inválido debido a un error de conversión de caracteres |
| SQLSTATE | Devuelve código para el resultado de la ejecución más reciente de una instrucción SQL |
Aviso legal: Esta Guía de Referencia de Db2® 12 para z/OS fue desarrollada para ayudar a los usuarios en sus actividades diarias en la administración y programación en Db2 para z/OS. No son garantías expresadas ni implícitas con el contenido de esta guía. Queremos proporcionar una referencia de calidad y útil para los usuarios. Por favor, notifícanos cualquier error o error en esta guía de referencia en blogs@bmc.com. Db2 están una marca registrada de IBM Corporation.
Guía Db2
- Db2 12 para z/OS: Una introducción
- Funciones escalares en Db2 12
- Cómo leer diagramas sintácticos de IBM<sup>®</sup> para Db2 12
- Elementos del lenguaje en Db2 12
- Funciones agregadas en Db2 12
- Funciones de tabla y fila en Db2 12
- Consultas en Db2 12
- Comandos en Db2 12
- Sentencias de control SQL en Db2 12
- Explica las tablas en Db2 12
- DSNZPARM en Db2 12
- Parámetros de enlace en Db2 12
- Límites de Db2 en Db2 12
- Área de Comunicación SQL (SQLCA) en Db2 12
- REXX SQLCA en Db2 12
- Obtén diagnósticos en Db2 12
- IFCIDS en Db2 12
- Tablas de catálogo en Db2 12
- Excepciones en Db2 12
- Tablas del Repositorio de Esquemas XML en Db2 12
- Estadísticas actualizables del catálogo en Db2 12
- IBM Utilities en Db2 12
- Códigos de retorno positivo SQL en Db2 12
- Códigos de retorno de errores SQL en Db2 12
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.