09. november 2006 - 09:38
Der er
11 kommentarer
Tilføje strenge
Jeg prøver - i min PL/SQL procedure - at tilføje nogle variabler som jeg senere hen bruger som primærnøgle til en insert. (vNummer, systemnr og KODE er alle sammen varchar2) dog indeholder systemnr og kode kun numeriske værdier! vNummer := rec.SYSTEMNR + '-' + rec.KODE; Fejlen jeg får: ORA-06502: PL/SQL: numeric or value error: character to number conversion error ORA-06512: at "PFU6000.ETL_PG", line 107 ORA-06512: at line 2 hvordan får jeg added alle informationerne til en streng?
Annonceindlæg fra GlobalConnect
09. november 2006 - 09:49
#1
Hvad er det egentlig du vil opnå? - Hvis vNummer skal være en tekststreng i stil med '100-5', skal du skrive: vNummer := rec.SYSTEMNR || '-' || rec.KODE; -Hvis vNummer derimod skal være differencen, fx '95', skal du skrive: vNummer := rec.SYSTEMNR - rec.KODE; I øvrigt behøver jeg vel ikke fortælle dig, at det er noget gevaldigt rod at jonglere med numeriske værdier i tekststrenge... ;-)
09. november 2006 - 10:01
#2
vNummer skal være en tekststreng i stil med 100-5 problemet er at hvis jeg gør som du skriver vNummer := rec.SYSTEMNR || '-' || rec.KODE; så skriver den Numeric og Value error: Character to number conversion error
09. november 2006 - 10:02
#3
Det er som om at hvis jeg putter en numerisk værdi i min varchar2 variabel så opfører den sig som om det var en numerisk variabel..
09. november 2006 - 10:31
#4
Hvis alle 3 felter er varchar2 kan vNummer := rec.SYSTEMNR || '-' || rec.KODE; ikke give Character to number conversion error
09. november 2006 - 10:37
#5
Column Name ID Pk Null? Data Type Default KODE 4 Y VARCHAR2 (10) SYSTEMNR 1 Y VARCHAR2 (4) Det er de altså, men der er numeriske værdier i
09. november 2006 - 10:46
#6
Det var nok mest vNummer jeg havde mistanke til
09. november 2006 - 10:50
#7
Den er deklareret sådanne vNummer VARCHAR2(10);
09. november 2006 - 11:04
#8
Så burde vNummer vel være mindst varchar2(15) ? - Man får også en ORA-06502, hvis strengen er for kort...
09. november 2006 - 11:18
#9
Ja selvfølgelig, hvor er jeg dog DUM haha. Tusinde tak pgroen
09. november 2006 - 11:19
#10
Ja, men man får ikke en Character to number conversion error med mindre der implicit eller explicit sker en konvertering fra varchar2 til number. Derimod vil du helt præcist få den nævnte fejl hvis vNummer er af typen number
17. oktober 2007 - 12:56
#11
Lukker vi ?
Computerworld tilbyder specialiserede kurser i database-management