BASE_TABLE função de tabela
A função BASE_TABLE retorna tanto o nome do objeto como o nome do esquema do objeto encontrado após alguma cadeia de alias ter sido resolvida.
O esquema é SYSPROC.
O objectname (e objectschema) especificado são usados como ponto de partida da resolução. Se o ponto inicial não se referir a um alias, retornam o nome do esquema e o nome não qualificado do ponto de partida. A função retorna uma única tabela de linhas consistindo nas colunas a seguir:
| Nome da coluna | Tipo de dados | Descrição |
|---|---|---|
| ESQUEMA BÁSICO | VARCHAR(128) | Nome do esquema do objeto encontrado após quaisquer cadeias de alias foram resolvidas. Corresponde a objetschema se nenhum alias de correspondência foi encontrado. |
| basename | VARCHAR(128) | Nome não qualificado do objeto encontrado após quaisquer cadeias de alias foram resolvidas. Corresponde a objectname se nenhum alias de correspondência foi encontrado. O nome pode identificar uma tabela, uma visualização ou um objeto indefinido. |
- esquema de objetos
- Uma expressão de caracteres representando o esquema usado para qualificar o valor fornecido objectname antes da resolução. objectschema deve ter um tipo de dado de CHAR ou VARCHAR e um comprimento maior que 0 e menor que 129 bytes. nome do objeto
- Uma expressão de caracteres representando o nome não qualificado a ser resolvido. objectname deve ter um tipo de dado de CHAR ou VARCHAR e um comprimento maior que 0 e menor que 129 bytes.
Nota: A função de tabela BASE_TABLE melhora o desempenho em configurações de banco de dados particionados, evitando a comunicação desnecessária que ocorre entre a partição do coordenador e a partição do catálogo ao utilizar as funções escalares TABLE_SCHEMA e TABLE_NAME.
Exemplo
A instrução a seguir utilizando as funções TABLE_SCHEMA e TABLE_NAME é escrita como:
SELECT COLCOUNT INTO :H00030
FROM SYSCAT.TABLES
WHERE OWNER = TABLE_SCHEMA(:H00031 ,:H00032 )
AND TABNAME = TABLE_NAME(:H00031 ,:H00032 )
A instrução equivalente usando a função BASE_TABLE pode ser escrita como:
SELECT COLCOUNT INTO :H00030
FROM SYSCAT.TABLES A, TABLE(SYSPROC.BASE_TABLE(:H00032, :H00031)) AS B
WHERE A.OWNER = B.BASESCHEMA
AND A.TABNAME = B.BASENAME