# Oracle, PL/SQL Datum zerschneiden



## zuckerbrini (4. Februar 2009)

Hallo!

In diesem Fall ist es mir egal ob ich das ganze gleich im SELECT-Befehl mache oder erst in PL/SQL.

Ich habe ein Datum aus der Datenbank das i zerlegen will und zwar so das ich im Endeffekt 3 Variablen habe (eine fürs Jahr, eine fürs Monat und eine für den Tag). 

Hab das ganze jetzt mal in pl/sql in einer Cursor-For-Schleife gemacht (weil ich das für jedes Datum aus der DB machen will)
Mein Versuch:

```
v_jahr := to_char(test_record.datum, 'YYYY');
   v_monat := to_char(test_record.datum, 'MM');
   v_tag := to_char(test_record.datum, 'DD');
```

Ich bekomme nun aber immer folgende Fehlermeldung:

```
PLS-00307: too many declarations of 'TO_CHAR' match this call
```

Kann mir da vielleicht jemand weiterhelfen?
Kann wie gesagt auch gleich direkt im SELECT_Befehl passieren, nur hab ich da grad auch keine Idee.


Außerdem hab ich da noch eine zweite Frage.
Ich dachte das es funktioniert mit Daten zu rechnen also einfach Datum1-Datum2. 
Stimmt das? Bzw. wie kann ich mit Daten rechnen?


----------



## dbwizard (4. Februar 2009)

zuckerbrini hat gesagt.:


> Hallo!
> 
> In diesem Fall ist es mir egal ob ich das ganze gleich im SELECT-Befehl mache oder erst in PL/SQL.
> 
> ...



Hi,

(Ich würde es immer in SQL machen, wenn es geht, und erst als 2. Lösung PL/SQL nehmen)



```
SELECT to_char(SYSDATE,'YYYY') as YEAR,to_char(SYSDATE,'MM') as Month,to_char(SYSDATE,'DD') as Day From Dual
/
```

- Der Grund, das es bei dir im PL/SQL nicht funktioniert hat., ist, dass TO_CHAR eine SQL- Funktion ist...und keine PL/SQL Funktion. 

Gruss


----------

