Cześć,
potrzebuję stworzyć funkcję, która jako parametr przyjmie datę, po to by potem w ciele funkcji wyciągnąć z bazy te rekordy, które będą odpowiadały miesiącowi podanymi w argumencie.
Czyli. Wywołuję funkcję np FUNKCJA(16/04) - czyli chodzi mi o kwiecień 2016 i potem chciałbym zamienić ten varchar na datę. Niestety to nie wychodzi.
CREATE OR REPLACE procedure rozkladWMiesiacu(miesiac char) IS test number; a date:=TO_DATE(miesiac, 'yy/mm'); wiersz wydatki%rowtype; cursor zapytanie IS SELECT * FROM wydatki WHERE dat = a; begin dbms_output.put_line(miesiac); dbms_output.put_line(a); open zapytanie; loop fetch zapytanie INTO wiersz; exit when zapytanie%notfound; dbms_output.put_line(wiersz.wyd_id ||' '|| wiersz.kat_id ||' '|| wiersz.kwota ||' '|| wiersz.czl_id ||' '|| wiersz.dat ||' '|| wiersz.nazwa); dbms_output.put_line(wiersz.wyd_id); dbms_output.put_line(wiersz.wyd_id); end loop; test:=2; end;
wyrzuca datę w formacie yy/mm/dd czyli ta konwersja
dbms_output.put_line(a);
nie zadziałał tak jak oczekiwałem.
a date:=TO_DATE(miesiac, 'yy/mm');
"a" jest typu "DATE" a dbms_output.put_line oczekuje tekstu. po zatym jak ty chcesz miesiac przekonwertowac na datę? - nie da się...
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)