Vaše deklarace proměnné je správná.
DECLARE
klíčové slovo se používá k definování proměnných v rozsahu PL/SQL bloku (jehož tělo je odděleno BEGIN
a END;
). Jak chcete tuto proměnnou používat?
Následující PL/SQL mi funguje dobře:
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;
Můžete také použít DEFINE
příkaz k použití jednoduchých řetězcových substitučních proměnných. Jsou vhodné pro klienty jako SQL/PLUS nebo TOAD.
DEFINE start_date = "to_date('03/11/2011', 'dd/mm/yyyy')"
SELECT COUNT(*) from my_table tab where tab.some_date < &start_date;