Especificación: | CLI de DB2 2.1 | ODBC 1.0 |
|
SQLTables() devuelve una lista de nombres de tabla e información asociada almacenada en el catálogo del sistema de la fuente de datos conectada. La lista de nombres de tabla se devuelve como un conjunto de resultados, que se puede recuperar utilizando las mismas funciones que se utilizan para procesar un conjunto de resultados generado por una consulta.
Sintaxis
SQLRETURN SQLTables ( SQLHSTMT StatementHandle, /* hstmt */ SQLCHAR FAR *CatalogName, /* szCatalogName */ SQLSMALLINT NameLength1, /* cbCatalogName */ SQLCHAR FAR *SchemaName, /* szSchemaName */ SQLSMALLINT NameLength2, /* cbSchemaName */ SQLCHAR FAR *TableName, /* szTableName */ SQLSMALLINT NameLength3, /* cbTableName */ SQLCHAR FAR *TableType, /* szTableType */ SQLSMALLINT NameLength4); /* cbTableType */
Argumentos de la función
Tabla 89. Argumentos de SQLTables
Tipo de datos | Argumento | Uso | Descripción |
---|---|---|---|
SQLHSTMT | StatementHandle | Entrada | Descriptor de contexto de sentencia. |
SQLCHAR | CatalogName | Entrada | Es posible que el almacenamiento intermedio contenga un
pattern-value para calificar el conjunto de resultados.
Catalog es la primera parte de un nombre de tabla de 3 partes.
DB2 Everyplace ignora este campo. |
SQLSMALLINT | NameLength1 | Entrada | Longitud de CatalogName.
DB2 Everyplace ignora este campo. |
SQLCHAR | SchemaName | Entrada | Es posible que el almacenamiento intermedio contenga un
pattern-value para calificar el conjunto de resultados por medio de
un nombre de esquema.
DB2 Everyplace ignora este campo. |
SQLSMALLINT | NameLength2 | Entrada | Longitud de SchemaName.
DB2 Everyplace ignora este campo. |
SQLCHAR | TableName | Entrada | Es posible que el almacenamiento intermedio contenga un pattern-value para calificar el conjunto de resultados por medio de un nombre de tabla. |
SQLSMALLINT | NameLength3 | Entrada | Longitud de TableName. |
SQLCHAR | TableType | Entrada | DB2 Everyplace sólo da soporte al tipo TABLE. DB2 Everyplace ignora este campo. |
SQLSMALLINT | NameLength4 | Entrada | DB2 Everyplace ignora este campo. |
Tenga en cuenta que los argumentos de TableName aceptan patrones de búsqueda.
Uso
La información de tabla se devuelve en un conjunto de resultados en el que cada tabla se representa por medio de una fila del conjunto de resultados.
A veces, una aplicación llama a SQLTables() con punteros nulos al argumento TableName para que no se efectúe ningún intento de restringir el conjunto de resultados devuelto. Para algunas fuentes de datos que contienen una gran cantidad de tablas, este escenario se asocia a un conjunto de resultados extremadamente grande y a tiempos de recuperación muy grandes.
El conjunto de resultados que devuelve SQLTables() contiene las columnas listadas en la Tabla 90 en el orden indicado. Las filas se ordenan por medio de TABLE_NAME.
Las llamadas a SQLTables() deben utilizarse con moderación, ya que en muchos casos se asignan a una consulta compleja y por tanto cara en el catálogo del sistema. Los resultados deben guardarse en vez de repetir las llamadas.
Las columnas VARCHAR del conjunto resultante de las funciones de catálogo
se han declarado con un atributo de longitud máxima 128 para que sea coherente
los límites de SQL92. Dado que los nombres de DB2 son inferiores a 128,
la aplicación puede optar por poner siempre a un lado 128 caracteres (más el
terminador nulo) para el almacenamiento intermedio de salida o,
alternativamente llamar a SQLGetInfo() con SQL_MAX_TABLE_NAME_LEN
para determinar las longitudes reales de la columna TABLE_NAME a la que da
soporte el DBMS conectado.
Tabla 90. Columnas devueltas por SQLTables
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
TABLE_CAT | VARCHAR (128) | Siempre es una serie de longitud cero. |
TABLE_SCHEM | VARCHAR (128) | Siempre es una serie de longitud cero. |
TABLE_NAME | VARCHAR (128) | El nombre de la tabla. |
TABLE_TYPE | VARCHAR (128) | Identifica el tipo proporcionado por el nombre en la columna TABLE_NAME. Siempre tiene el valor de serie 'TABLE'. |
REMARKS | VARCHAR(254) | Contiene la información descriptiva sobre la tabla. |
Códigos de retorno
Diagnósticos
SQLSTATE | Descripción | Explicación |
---|---|---|
HY001 | Error de asignación de memoria. | DB2 CLI no puede asignar la memoria necesaria para ejecutar o finalizar la función. |
HY014 | No hay más descriptores de contexto. | DB2 CLI no pudo asignar un descriptor debido a los recursos internos. |
HY090 | Longitud no válida de la serie de caracteres o del almacenamiento intermedio. | El valor de uno de los argumentos de longitud de nombre era menor que 0,
pero no era igual a SQL_NTS.
La validez de uno de los argumentos de longitud del nombre superaba el valor máximo al que se da soporte para dicha fuente de datos. El valor soportado máximo puede obtenerse llamando a la función SQLGetInfo(). |
Restricciones
Ninguna.
Consulta relacionada