2010-04-12 12 views
1

Je sais que le cap n'est pas si clair.Ceci est l'imageDOT (.) Après Ampersand (variable hôte) et considéré comme faisant partie du nom de la variable?

J'utilise & et je le considère comme $ a. , dans la sortie & a et & a. donne la même sortie. et pourquoi single. (DOT) après & a ne donne pas d'erreur mais si nous mettons un caractère, un opérateur ou des caractères génériques après & a donne une erreur.

Ceci est le code.

BEGIN 
    FOr i in &&a...3 LOOP 
    DBMS_OUTPUT.PUT_LINE(i||' '||&a.||' '||&a); 
END LOOP; 
END; 

Sortie Entrée

1 1 1 
2 1 1 
3 1 1 

Répondre

1

le point est un délimiteur pour la & définie. Dans la plupart des cas, vous ne remarquerez pas de différence, mais si, pour une raison quelconque, vous n'aviez pas d'espace ou similaire après le nom de la variable, cela pourrait créer une confusion. Par exemple, si vous concateniez quelque chose avec votre variable dans une chaîne, '&asomething', cela demanderait une variable nommée 'asomething'. Si vous l'avez fait en tant que '&a.something' alors il demanderait une variable nommée 'a' et virerait 'quelque chose' à la fin de la valeur fournie. Tout autre caractère après le &a serait traité comme faisant partie du nom de la variable ou provoquerait une erreur si elle n'est pas valide dans le cadre du nom.