Sua declaração de variável está correta.
O
DECLARAR
a palavra-chaveéusada para definir variáveis com escopo em um bloco PL/SQL (cujo corpo é delimitado por BEGIN
e END;
). Como você quer usar essa variável? O seguinte PL/SQL funciona bem para mim:
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;
Você também pode usar o
DEFINE
instrução para usar variáveis de substituição de string simples. Eles são adequados para um cliente como SQL/PLUS ou TOAD. DEFINE start_date = "to_date('03/11/2011', 'dd/mm/yyyy')"
SELECT COUNT(*) from my_table tab where tab.some_date < &start_date;