2015-07-21 30 views
9

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

+0

È 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

+0

Aggiornata la mia domanda con la query – krisy

+0

La funzione 'REPLACE' accetta e restituisce' VARCHAR', quindi ovviamente non puoi usarlo per lavorare con le colonne 'CLOB'. – mustaccio

risposta

0

Non sono sicuro se questo vale per il vostro caso: esistono 2 diverse funzioni offerte da DB2, SYSIBM.REPLACE e SYSFUN.REPLACE REPLACE. La versione di REPLACE in SYSFUN accetta i CLOB e supporta valori fino a 1 MByte. Nel caso in cui i tuoi valori siano più lunghi di quanto avresti bisogno di scrivere la tua funzione (basata su SQL?).

BTW: è possibile controllare la risoluzione funzione eseguendo "valori (percorso corrente)"

+0

Grazie per la risposta! I miei campi sono purtroppo più grandi di 1Mb (circa 3-4Mb) – krisy

1

Infine, dal momento che ho trovato alcun modo per questo da una query SQL, ho finito per esportare la tabella, modifica del suo contenuto lob in Notepad ++ e importazione di nuovo la tabella.

Problemi correlati