Comment puis-je déclarer une variable dans un corps de package Oracle?

Quelqu'un peut-il m'aider à comprendre pourquoi je peux déclarer une date codée en dur de la valeur dans un paquet, mais pas assigner une valeur à partir d'une requête?

J'ai vu un certain nombre d'exemples (y compris le livre de référence) qui montrent des déclarations de valeurs codées en dur, mais je ne suis pas capable de localiser des exemples d'attribuer une valeur à la variable par l'intermédiaire de requêtes.

Oracle 11g.

Il est permis de le

create or replace package body PACKAGE_NAME AS

tDate DATE := '2012-05-30';
...procedues follow

Il est permis de le

create or replace package body PACKAGE_NAME AS

tDate DATE := sysdate;

ce n'est pas autorisé

create or replace package body PACKAGE_NAME AS

tDate DATE := select MAX(date_) from Table_Name;

J'ai essayé un certain nombre de façons et à la fin, je suis ok avec ça ne fonctionne pas ( je peux l'utiliser comme nécessaire dans les procédures elles-mêmes), mais je ne vois pas pourquoi je ne peut pas affecter une valeur à tDate de cette façon?

L'erreur spécifique est la "Rencontrée le symbole "SÉLECTIONNEZ" lorsque attend ....".

Merci d'avance pour tout le monde insight

ajoutant que je peux obtenir les valeurs de la variable assignée par le biais de requêtes dans une procédure stockée, mais le même processus ne semble pas fonctionner pour le corps de package.

PROCEDURE Proc_Name IS
tDate Date;
BEGIN
SELECT MAX(date_) into tDate from Table_Name;

OriginalL'auteur dee | 2012-06-01