Avatar billede d_warma Nybegynder
08. februar 2005 - 09:25 Der er 6 kommentarer

Fil med nuller i de blanke felter

Hej,

Jeg skal lave en export af en tabel med en masse CHAR kolonner.
Det er jo meget nemt.
Krøllen på halen er dog, at jeg skal insætte '0' der hvor der er "huller" fordi værdien i CHAR kolonnen ikke fylder kolonnen ud.

Feks. flg. tabel
CHAR(7)
CHAR(3)
CHAR(4)
CHAR(1)
CHAR(6)
CHAR(5)
CHAR(5)
CHAR(3)
CHAR(2)
CHAR(2)
CHAR(2)
CHAR(2)

Data:
abcdef gh ijkl mnop    qrstuvw xy z æ ø å
Output:
abcdef0gh0ijkl0mnop00000qrstuvw0xy0z0æ0ø0å

Er der nogen der kan hjælpe mig med dette?

Mvh
D_Warma
Avatar billede d_warma Nybegynder
08. februar 2005 - 09:34 #1
For lige at spare jer lidt tid på at tælle frem og tilbage:
CHAR(7) 'abcdef ' => 'abcdef0'
CHAR(3) 'gh '    => 'gh0'
CHAR(4) 'ijkl'    => 'ijkl'
CHAR(1) ' '      => '0'
CHAR(6) 'mnop  '  => 'mnop00'
CHAR(5) '  qr'  => '000qr'
CHAR(5) 'stuvw'  => 'stuvw'
CHAR(3) ' xy'    => '0xy'
CHAR(2) ' z'      => '0z'
CHAR(2) ' æ'      => '0æ'
CHAR(2) ' ø'      => '0ø'
CHAR(2) ' å'      => '0å'
Avatar billede Slettet bruger
08. februar 2005 - 09:56 #2
kan du ikke bruge REPLACE:

select replace('d fe', ' ', '0')
from dual;


REPL
----
d0fe
Avatar billede d_warma Nybegynder
08. februar 2005 - 11:02 #3
Det ser ud til at virke.
Tabellen har dog også nogle talværdier, som er konverteret til CHAR. I den forbindelse er de blevet venstrestillet, hvor jeg ønsker de skal være højrestillet.
Ex. 123456 => '123456      ' vil jeg gerne have til at være '000000123456'.
Hvordan gør jeg dette? Er det nemmere at sørge for at indsætte nullerne før den kommer ind i CHAR kolonnen? Hvis ja, hvordan?
Avatar billede bimbambusse Nybegynder
08. februar 2005 - 12:13 #4
select substr('0000000000'||<numberfield>, -10) from dual

hvis det er en char(10) den skal over i.
tallet -10 reguleres i forhold til feltets længde med andre ord
Avatar billede holdam Nybegynder
08. februar 2005 - 14:43 #5
Prøv evt. med

SELECT LPAD(RTRIM(<kolonnenavn>),LENGTH(<kolonnenavn>),'0');
Avatar billede d_warma Nybegynder
11. februar 2005 - 10:50 #6
bimbambusse... læg venligst et svar, så deler jeg point'ene mellem dig og joern_h
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester