Din variabeldeklaration er korrekt.
DECLARE
nøgleord bruges til at definere variabler, der er omfattet af en PL/SQL-blok (hvis krop er afgrænset af BEGIN
og END;
). Hvordan vil du bruge denne variabel?
Følgende PL/SQL fungerer fint for mig:
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;
Du kan også bruge DEFINE
sætning for at bruge simple strengsubstitutionsvariabler. De er velegnede til en klient som SQL/PLUS eller TOAD.
DEFINE start_date = "to_date('03/11/2011', 'dd/mm/yyyy')"
SELECT COUNT(*) from my_table tab where tab.some_date < &start_date;