Su declaración de variable es correcta.
El DECLARE
La palabra clave se utiliza para definir variables en el ámbito de un bloque PL/SQL (cuyo cuerpo está delimitado por BEGIN
y END;
). ¿Cómo quieres usar esta variable?
El siguiente PL/SQL funciona bien para mí:
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;
También puede usar el DEFINE
instrucción para usar variables de sustitución de cadenas simples. Son adecuados para un cliente como SQL/PLUS o TOAD.
DEFINE start_date = "to_date('03/11/2011', 'dd/mm/yyyy')"
SELECT COUNT(*) from my_table tab where tab.some_date < &start_date;