yallayalla Geschrieben 7. Juli 2004 Geschrieben 7. Juli 2004 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
etreu Geschrieben 7. Juli 2004 Geschrieben 7. Juli 2004 CONCAT('1','2') oder '1' || '2' || '3' || '...' http://www.hk8.org/old_web/oracle/prog2/ch04_03.htm Punkt 4.3.3
yallayalla Geschrieben 7. Juli 2004 Autor Geschrieben 7. Juli 2004 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
yallayalla Geschrieben 7. Juli 2004 Autor Geschrieben 7. Juli 2004 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
etreu Geschrieben 7. Juli 2004 Geschrieben 7. Juli 2004 Welchen Daten hat denn deine Variable und welchen Datentyp gibt to_date() zurück? @Mods: Sollte der Thread nicht verschoben werden?
Wolle Geschrieben 7. Juli 2004 Geschrieben 7. Juli 2004 @Mods: Sollte der Thread nicht verschoben werden? Jo, sollte er. Nur um die Zeit war ich noch nicht am Rechner :floet:
yallayalla Geschrieben 7. Juli 2004 Autor Geschrieben 7. Juli 2004 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
AxlHammer Geschrieben 7. Juli 2004 Geschrieben 7. Juli 2004 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
yallayalla Geschrieben 7. Juli 2004 Autor Geschrieben 7. Juli 2004 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
AxlHammer Geschrieben 7. Juli 2004 Geschrieben 7. Juli 2004 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
yallayalla Geschrieben 7. Juli 2004 Autor Geschrieben 7. Juli 2004 Ho! Yo, die Hochkommas haben den Fehler gebaut...jetzt funzt es! Danke. mfg yallayalla
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden