Avatar billede webbe Nybegynder
15. april 2002 - 14:04 Der er 7 kommentarer og
1 løsning

Finde strenglængde m.m. - Haster

Hejsa eksperter

Jeg skal i en Oracle DB/Tabel finde alle de records hvor feltet CustAccount kun indeholde 4 cifre for derefter at opdatere dem med et 1-tal i starten af dette nummer.

Jeg har styr på syntaxen m.m. i ren ASP, men kan ikke finde ud af det i ren SQL.

Er der nogen der kan hjælpe mig?
Avatar billede andy2003 Nybegynder
15. april 2002 - 14:12 #1
update <tablenavn>
  set <kolonnenavn> = '1'||<kolonnenavn>
where length(rtrim(<kolonnenavn>)) = 4

hvis dine kolonner er af type number skal du :

update <tablenavn>
  set <kolonnenavn> = '1'||to_char(<kolonnenavn>)
where length(rtrim(to_char(<kolonnenavn>))) = 4

mv

Andy
Avatar billede webbe Nybegynder
15. april 2002 - 14:19 #2
Andy:

Har prøvet dit forslag, men den siger at der ikke er opdateret nogen poster selv om der ligger 167 poster i tabellen!?
Avatar billede andy2003 Nybegynder
15. april 2002 - 14:29 #3
Jeg regner ikke med at det er fordi du glemmer at comitte ;-)
Prøv at starte med en select på din data for at verificere at du ikke har "snask" i din data :

select <kolonne>
from <tabel>
where length(rtrim(<kolonnenavn>)) = 4

hvis den viser 0 rækker...så er der noget galt med dine data.
Check det ved at lave noget i stil med :

select <kolonne>, '*'||<kolonne>||'*' length(<kolonne>) from <tabel>;

mv

Andy
Avatar billede webbe Nybegynder
15. april 2002 - 14:38 #4
Får følgende fejl når jeg tjekker:

ORA-00923: FROM keyword not found where expected
Avatar billede webbe Nybegynder
15. april 2002 - 14:42 #5
Har følgende sql:

select CustAccount,'*'||CustAccount||'*' length(CustAccount) from mw_rm_clubrelations;

Feltet CustAccount er et tekstfelt!
Avatar billede andy2003 Nybegynder
15. april 2002 - 18:58 #6
sorry....jeg manglede et komma, din sql skal se sådan ud :

select CustAccount,'*'||CustAccount||'*', length(CustAccount) from mw_rm_clubrelations;
Avatar billede webbe Nybegynder
15. april 2002 - 21:15 #7
Tjekker lige imorgen, men jeg har fundet ud af at felterne indeholder mellemrum oxo...skod, så det udvider mit spørgsmål lidt til hvordan jeg så kan lave en update der automatisk gennemløber alle records i tabellen og opdaterer dem!
Avatar billede webbe Nybegynder
16. april 2002 - 10:20 #8
Hey Andy

Problemet er løst.

Vi kopierede tabellen over i en DB-connection der fungerede og kørte et ASP-script på den...og vupti, så er den opdateret.

Men tak for din indsats...det hjalp meget.
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