View Full Version : [SQL] carattere di riempimento
ciao a tutti
ho questo problema: in un database oracle, ricevo delle stringhe di dati da alcune fonti, sono tutte stringhe di testo. il campo in cui arrivano le stringhe è un char (6), e dovrei ricevere in input per esempio '00000A', mentre mi arriva 'A ' (lettera e 5 spazi a seguire)
come potrei fare? la sola funzione trim (o rtrim) non è sufficiente perchè elimina gli spazi, e usando pad non riempie correttamente...
grazie per l'aiuto e ciao
ps: spero che almeno stavolta qualcuno che mi sappia rispondere ci sia... ;)
Fai trim e poi concatena con '00000'
lpad (trim('A '), 6)
non va bene?
Originariamente inviato da mailand
ps: spero che almeno stavolta qualcuno che mi sappia rispondere ci sia... ;)
di solito le tue domande sarebbero adatte a un forum di DBA oracle, non di sviluppatori.
Originariamente inviato da cionci
Fai trim e poi concatena con '00000'
no, la lunghezza della stringa è variabile...
Originariamente inviato da kingv
non va bene?
potrebbe, lo provo... ma dov'è che indichi il carattere di riempimento?
potrebbe, lo provo... ma dov'è che indichi il carattere di riempimento?
lpad (stringa, lungh, carattere_di_riempimento);
se non metti niente usa lo spazio :O
lungh lo puoi determinare da 6 - la lunghezza della stringa sopo che hai fatto il trim...
Originariamente inviato da kingv
di solito le tue domande sarebbero adatte a un forum di DBA oracle, non di sviluppatori.
lo so, ma di solito non riescono a rispondermi nemmeno lì, e a volte nemmeno nei metalink di oracle... ho aperto qualche tar ma giace senza risposta da un paio di mesi... :)
Originariamente inviato da kingv
se non metti niente usa lo spazio
perfetto, sbagliavo la sintassi...
avevo anche provato a farla eseguire direttamente in db2 con la funzione translate, ma (ovviamente) mi portava gli 0 in coda alla stringa...;)
grazie mille per l'aiuto! :)
Originariamente inviato da cionci
lungh lo puoi determinare da 6 - la lunghezza della stringa sopo che hai fatto il trim...
esatto... è che senza trim se fai una banale sostituzione mette i caratteri in fondo e a me servono in testa...
Originariamente inviato da mailand
in db2 con la funzione translate, ma (ovviamente) mi portava gli 0 in coda alla stringa...;)
in Db2? ma non era su oracle che ti serviva :wtf:
Originariamente inviato da kingv
in Db2? ma non era su oracle che ti serviva :wtf:
lascia perdere, mi ricordo ora che avevi chiesto del transparent gw...
esatto... ho la possibilità di eseguire la manipolazione dei dati da entrambe le fonti, posso scegliere se farle eseguire direttamente dal cursore su as400 oppure se manipolare i dati da oracle in locale al momento dell'insert into...
adesso sto testando quale sia il più performante... il fatto è che posso caricare i dati in maniera velocissima (e già ottimizzata) via sql loader, ma possono passarmeli una volta al giorno perchè i dati vengono manipolati per darci la stringa giusta, viene fatto un ftp di tutti i file che ci servono (circa 15gb di dati) e oltretutto mi passano anche dati che non mi servono... solo che se per caso mi servono dati in tempo reale, l'unica soluzione è usare il gateway, con questi problemi di conversione dati...
cmq con la stringa di istruzioni va perfettamente!;)
Originariamente inviato da mailand
cmq con la stringa di istruzioni va perfettamente!;)
meglio così :)
lavori in una banca?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.