Din variabeldeklaration är korrekt.
DECLARE
nyckelord används för att definiera variabler omfångade i ett PL/SQL-block (vars kropp är avgränsad av BEGIN
och END;
). Hur vill du använda denna variabel?
Följande PL/SQL fungerar bra för 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 också använda DEFINIERA
för att använda enkla strängersättningsvariabler. De är lämpliga för 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;