Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...