Ho un campo CLOB(2000000)
in un database db2 (v10) e vorrei eseguire una semplice query UPDATE
su di esso per sostituire ogni occorrenza di "pippo" a "baaz".sostituzione di caratteri in una colonna CLOB (db2)
Dal momento che il contenuto del campo è più di 32k, ottengo il seguente errore:
"{some char data from field}" is too long.. SQLCODE=-433, SQLSTATE=22001
Come posso sostituire i valori?
UPDATE: La query è stata la seguente (AGGIORNAMENTO trasformato in selezionare per la prova più semplice):
SELECT REPLACE(my_clob_column, 'foo', 'baaz') FROM my_table WHERE id = 10726
UPDATE 2 Come Mustaccio sottolineato, REPLACE
non funziona su CLOB
campi (o almeno non senza fare un cast a VARCHAR
sui dati inseriti - che nel mio caso non è possibile poiché la dimensione dei dati è più di 32k) - la domanda è di trovare un modo alternativo per accedere alla funzione REPLACE
alleanza per i campi CLOB
.
Grazie, krisy
È possibile che si desideri mostrare la dichiarazione effettiva che è stata eseguita. Inoltre, questo è DB2 per z/OS? (È l'unica piattaforma che ha la versione 10.) – mustaccio
Aggiornata la mia domanda con la query – krisy
La funzione 'REPLACE' accetta e restituisce' VARCHAR', quindi ovviamente non puoi usarlo per lavorare con le colonne 'CLOB'. – mustaccio