Wie ktoś dlaczego przy wywołaniu procedury z parametrami pojawia się error?
StackOverflow, obetnij czas używając TRUNC.
Zadeklarowałeś typ DATE dla pierwszego argumentu, a SYSDATE zwraca Ci, format mniej więcej, 'yyyy-mm-dd hh:ii:ss'.
Procedura sprawdzi. Czy pierwszy argument jest w formacie 'yyyy-mm-dd'.
CREATE OR REPLACE procedure liczba_niedziel(data_od IN OUT DATE, data_do IN OUT DATE) AS licznik NUMBER :=0; BEGIN SELECT NEXT_DAY(data_od,7) INTO data_od FROM dual; WHILE (data_od <= data_do) LOOP data_od :=data_od + 7; licznik :=licznik +1; END LOOP; DBMS_OUTPUT.PUT_LINE('Liczba Niedziel pomiędzy: '|| SYSDATE || ' - ' || data_do || ' wynosi :' || licznik); END; EXECUTE liczba_niedziel('2021-31-12', '2022-01-18');
Procedure LICZBA_NIEDZIEL compiled Error starting at line : 36 in command - BEGIN liczba_niedziel('2021-31-12', '2022-01-18'); END; Error report - ORA-06550: linia 1, kolumna 143: PLS-00363: wyrażenie "TO_CHAR(SQLDEVBIND1Z_2)" nie może być użyte jako cel przypisania ORA-06550: linia 1, kolumna 169: PLS-00363: wyrażenie "TO_CHAR(SQLDEVBIND1Z_1)" nie może być użyte jako cel przypisania ORA-06550: linia 1, kolumna 127: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:
Zrobiłem tak i też nie działa:
93,466 zapytań
142,459 odpowiedzi
322,732 komentarzy
62,846 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto polecana książka warta uwagi.Pełną listę książek znajdziesz tutaj