Como interpretar as informações de erro SQL Retornado pela SQLSTATE

Quando você usa SQLSTATE para identificar erros de SQL, às vezes pode ser difícil de decidir o que fazer com essa informação. connection_name e ENVIRONMENT_NAME identificar a conexão e ambiente ao qual você está conectado no momento que a instrução SQL é executada.

Se o relatório trata de uma operação de mesa, CATALOG_NAME, SCHEMA_NAME, e TABLE_NAME identificar a tabela. COLUMN_NAME identifica a coluna dentro da tabela que causou o relatório a ser feita. Se a situação envolve um cursor, cursor_name dá o seu nome.

Às vezes, um DBMS produz uma cadeia de texto de linguagem natural para explicar uma condição. o MENSAGEM DE TEXTO item é para este tipo de informação. O conteúdo deste artigo dependem da implementação- o padrão SQL não defini-los explicitamente. Se você tem algo em MENSAGEM DE TEXTO, o seu comprimento em caracteres são gravados na message_length, e o seu comprimento em octetos é gravado em MESSAGE_OCTET_LENGTH.

Se a mensagem é em caracteres ASCII normais, message_length é igual a MESSAGE_OCTET_LENGTH. Se, por outro lado, a mensagem é no kanji ou algum outro idioma cujos caracteres requerem mais de um octeto para expressar, message_length difere de MESSAGE_OCTET_LENGTH.

Para recuperar informações de diagnóstico a partir de um cabeçalho da área de diagnósticos, use o seguinte:

GET DIAGNOSTICS Status1 = item1 [, Status2 = item2] ... -

statusn é uma variável de host ou parametrização itemn pode ser qualquer uma das palavras-chave NÚMERO, MAIS, COMMAND_FUNCTION, DYNAMIC_FUNCTION, ou ROW_COUNT.

Para recuperar informações de diagnóstico de uma área de detalhe diagnóstico, use a seguinte sintaxe:

GET condição numberstatus1 DIAGNOSTICS exceção = item1 [, Status2 = item2] ... -

Mais uma vez statusn é uma variável de host ou parâmetro, e itemn é qualquer uma das 28 palavras-chave para os itens de detalhe listadas na Tabela 21-2. O número de condição é (surpresa!) A área de detalhes da CONDITION_NUMBER item.

menu