Veröffentlicht 7. Juli 200421 j Hallo! Kleines Problem: Ich habe 5 Variablen und will die Werte in eine neue Variable speichern, die dann noch ins Datumsformat umgewandelt werden soll. x1: 07 x2: 07 x3: 2004 x4: 08 x5: 27 Wie mache ich das am besten (in Oracle PL/SQL).... Umwandeln ins Datumsformat mit to_date(), aber wie speichere ich die Werte der 5 Variablen in eine neue (hintereinander)? mfg yallayalla
7. Juli 200421 j CONCAT('1','2') oder '1' || '2' || '3' || '...' http://www.hk8.org/old_web/oracle/prog2/ch04_03.htm Punkt 4.3.3
7. Juli 200421 j Hallo! Vielen Dank erstmal, aber: Leider bekomme ich dann das hier: 334/3 PLS-00215: String length constraints must be in range (1 .. 32767) vorgehen: datum date; x varchar; x:='x1'||'x2'||'x3'||'x4'||'x5'; ---fehlermeldung..... datum:=to_date('x','DDMMYYYYHH24MI'); mfg yallayalla
7. Juli 200421 j Ok, der String wird jetzt richtig zusammengebaut...aber: ORA-01858: a non-numeric character was found where a numeric was expected bei dieser Zeile: datum:=to_date('x1||x2||x3||x4||x5','DDMMYYYYHH24MI'); x1 bis x5 sind nur zahlen. mfg yallayalla
7. Juli 200421 j Welchen Daten hat denn deine Variable und welchen Datentyp gibt to_date() zurück? @Mods: Sollte der Thread nicht verschoben werden?
7. Juli 200421 j @Mods: Sollte der Thread nicht verschoben werden? Jo, sollte er. Nur um die Zeit war ich noch nicht am Rechner :floet:
7. Juli 200421 j Hallo! Daten x1 bis x5 sind varchar2 und enthalten halt Tag/Monat/jahr/Stunde/Minute. datum ist als date definiert. Das "I" bei MI ist verrutscht...steht aber in meinem Source richtig. mfg yallayalla
7. Juli 200421 j Probiers dochmal so: DECLARE datum date; BEGIN datum := to_date('x1'||'x2'||'x3'||'x4'||'x5', 'DDMMYYYYHH24MI'); END; Bei mir hats geklappt. Die Fehlermeldung beim ersten Versuch kam übrigens, weil du bei der Deklaration der VARCHAR-Variablen keine Länge angegeben hast. Gruss, Axl
7. Juli 200421 j Hallo! Danke fuer den Tip mit der Länge! Aber: wo setze ich das Declare? Arbeite hier mit PL/SQL: procedure sp_eingabe( ... ) as datum date; begin datum:=to_date('i_tag||i_monat||i_jahr||i_stunde||i_minute', 'DDMMYYYYHH24MI'); und dann kommt immer: ORA-01858: a non-numeric character was found where a numeric was expected Schon mal Danke fuer den support hier! mfg yallayalla
7. Juli 200421 j Das mit dem DECLARE hat sich erledigt, wenn du ne Prozedur geschrieben hast. Das ist dann vergleichbar mit dem "as". Ich seh grade dass ich aber auch nen Fehler gemacht habe. Wenn du Variablen (in deinem Fall anscheinend i_tag, i_stunde, ...) verknüpfen willst, darfst du überhaupt nicht mit Hochkommas arbeiten: procedure sp_eingabe( ... ) as datum date; begin datum := to_date(i_tag || i_monat || i_jahr || i_stunde || i_min, 'DDMMYYYYHH24MI'); end; Gruss, Axl
7. Juli 200421 j Ho! Yo, die Hochkommas haben den Fehler gebaut...jetzt funzt es! Danke. mfg yallayalla
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.