Votre déclaration de variable est correcte.
Le DECLARE
mot-clé est utilisé pour définir des variables portées dans un bloc PL/SQL (dont le corps est délimité par BEGIN
et END;
). Comment voulez-vous utiliser cette variable ?
Le PL/SQL suivant fonctionne bien pour moi :
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;
Vous pouvez également utiliser le DEFINE
instruction pour utiliser des variables de substitution de chaînes simples. Ils conviennent à un client comme 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;