DB2 'O erro de constante da cadeia começando com ... é muito longo' ao inserir 40000 caracteres no campo CLOB (50000) [fechado]

1

Eu criei um campo CLOB (50000) em uma tabela do DB2 e verifiquei que ele foi criado corretamente com

DB2 DESCRIBE TABLE dbname

... no entanto, recebi a seguinte mensagem de erro mesmo quando tentava inserir uma string de 40.000 caracteres no campo:

 [IBM][CLI Driver][DB2/LINUXX8664] SQL0102N  The string constant beginning with
 "'''Testing Long Notes! Testing Long Notes! Testing Long Notes! Testing" is too long.  
 SQLSTATE=54002 SQLCODE=-102

'Testando notas longas!' é apenas a string que repeti várias vezes no campo HTML para criar o comprimento de 40.000 string. Em seguida, o script PHP processa o formulário HTML publicado e tenta o SQL INSERT, que resulta no erro.

O que estou perdendo aqui? Existe algum outro local que é definido um tamanho máximo de campo que substitui a configuração CLOB (50000)? Talvez um item de configuração para controlar os tamanhos dos campos?

Sou relativamente novo no DB2 depois que um cliente exigiu a conversão do MySQL.

    
por dabayl 31.12.2012 / 04:07

1 resposta

4

Você precisa usar instruções preparadas em vez de concatenar os valores na consulta por conta própria. Isso também se aplica ao MySQL como uma boa prática - instruções preparadas protegem você contra a injeção de SQL.

O DB2 se recusará a manipular uma consulta crua com mais de 32.000 caracteres.

    
por 31.12.2012 / 06:04

Tags