Twoja deklaracja zmiennej jest poprawna.
DECLARE
słowo kluczowe służy do definiowania zmiennych objętych zakresem bloku PL/SQL (którego treść jest oddzielona przez BEGIN
i END;
). Jak chcesz użyć tej zmiennej?
Poniższy PL/SQL działa dla mnie dobrze:
DECLARE
startDate DATE := to_date('03/11/2011', 'dd/mm/yyyy');
reccount INTEGER;
BEGIN
SELECT count(*) INTO reccount
FROM my_table tab
WHERE tab.somedate < startDate;
dbms_output.put_line(reccount);
END;
Możesz też użyć DEFINE
instrukcja do używania prostych zmiennych zastępujących łańcuchy. Są odpowiednie dla klienta takiego jak SQL/PLUS lub TOAD.
DEFINE start_date = "to_date('03/11/2011', 'dd/mm/yyyy')"
SELECT COUNT(*) from my_table tab where tab.some_date < &start_date;