segunda-feira, 28 de março de 2016

Sql Codes

SQLCODE
SQLSTATE

Post em andamento. Sempre que possível é adicionado outros codes :-)

-119
SQLSTATE: 42803
A COLUMN OR EXPRESSION IN A HAVING CLAUSE IS NOT VALID

Possível solução:
1 - Verifique se TODOS os campos do Select estão no Group By. Exemplo:
       SELECT NOME,  SOBRENOME,  DATA,  ENDERECO FROM TABELA
     GROUP BY NOME,  SOBRENOME,  DATA,  ENDERECO





-304
SQLSTATE: 22003
A VALUE WITH DATA TYPE data-type1 CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE THE VALUE IS NOT WITHIN THE RANGE OF THE HOST VARIABLE IN POSITION position-number WITH DATA TYPE data-type2

Possível solução:
1 - Verifique se as variáveis do COBOL estão na respectiva posição dos campos da tabela. Exemplo:
       SELECT NOME,  SOBRENOME,  DATA³,  ENDERECO FROM TABELA
        INTO :NOME, :SOBRENOME, :DATA³; :ENDERECO

2 - Verifique se as variáveis estão com tamanho e tipo correto.




-305
SQLSTATE: 22002
THE NULL VALUE CANNOT BE ASSIGNED TO OUTPUT HOST VARIABLE NUMBER position-number BECAUSE NO INDICATOR VARIABLE IS SPECIFIED

Possível solução: adicionar para os campos que podem ser nulos um indicador de nulidade.

Exemplo:
LOCAL-STORAGE
      * -- INDICADORES DE NULIDADE                                 
       77 IN-NULL-CAMPO-TRES            PIC S9(04) COMP VALUE ZEROS.
PROCEDURE DIVISION
              EXEC SQL                                               
               FETCH INSENSITIVE ABSOLUTE :POSICAO-CURSOR CURSOR-TESTE
                   INTO :CAMPO-UM
                      , :CAMPO-DOIS
                      , :CAMPO-TRES          :IN-NULL-CAMPO-TRES
             END-EXEC.




-420
SQLSTATE: 22018
THE VALUE OF A STRING ARGUMENT WAS NOT ACCEPTABLE TO THE function-name FUNCTION

Possível solução:
1 - Verifique se as variáveis do COBOL estão na respectiva posição dos campos da tabela, ou seja, se as variáveis do INTO estão na respectiva posição dos campos do SELECT. Exemplo:

SELECT NOME, SOBRENOME, DATA³, ENDERECO FROM TABELA
    INTO :NOME, :SOBRENOME, :DATA³; :ENDERECO

2 - Verifique se as variáveis estão com tamanho e tipo correto.

3 – Se tiver um campo varchar no Select para uma variável de item de grupo COBOL com tamanho (LEN) e texto, certifique que estão com o nível 49, exemplo:

01 TEXTO.
    49 TEXTO-LEN.                * -- armazena o tamanho do texto
    49 TEXTO-DESCRICAO. * -- armazena o texto




-504
SQLSTATE: 34000
IF THE CURSOR-NAME WAS <UNKNOWN>, THEN THE CURSOR WAS NOT SUCCESSFULLY DECLARED OR ALLOCATED.

Possível solução: O nome do cursor não foi "encontrado", então verifique se nas clausulas EXEC SQL que referenciam o cursor estão com o mesmo nome declarado ao cursor.




-530
SQLSTATE: 23503
THE INSERT OR UPDATE VALUE OF FOREIGN KEY constraint-name IS INVALID

Possível solução: Para realizar um Insert ou UpDate os valores das chaves estrangeiras devem existir no banco de dados, ou seja, os valores que estão sendo passados na instrução Insert ou UpDate devem ser valores válidos (existentes nas tabelas estrangeiras).




-803
SQLSTATE: 23505
AN INSERTED OR UPDATED VALUE IS INVALID BECAUSE THE INDEX IN INDEX SPACE indexspace-name CONSTRAINS COLUMNS OF THE TABLE SO NO TWO ROWS CAN CONTAIN DUPLICATE VALUES IN THOSE COLUMNS. RID OF EXISTING ROW IS X record-id

Possíveis soluções:
  1. No caso de ser tentativa de INSERT, verifique se os campos/valores (chave) já existem no banco de dados.
  2. Se for tentativa de UpDate ou Delete, verifique se há campos/valores (chave) duplicados.




-923
SQLSTATE: 57015
CONNECTION NOT ESTABLISHED: DB2 condition REASON reason-code, TYPE resource-type, NAME resource-name

Possível soluções:

  1. Verifique se o SQL está correto
  2. Tente executar o SQL por outra plataforma
  3. Certifique que o plano do Natural está correto


Nenhum comentário:

Postar um comentário