Dans l'exemple suivant,l'accès à une variable de liaison dans sqlplus
variable recordId number;
BEGIN
SELECT MAX(recordvalue)
INTO recordId
FROM sometable;
END;
PRINT recordid;
SELECT *
FROM someothertable
WHERE recordkey = &recordId;
L'instruction select sur la dernière ligne ne peut pas accéder à la valeur de recordId. Je sais que je peux accéder à recordId
à l'intérieur du bloc pl/sql en utilisant: recordId mais y a-t-il un moyen d'accéder à recordId
dans une instruction sql qui n'est pas dans un bloc pl/sql? (comme dans la dernière ligne).
Pourquoi voudriez-vous faire plus d'opérations en dehors de la portée du bloc PLSQL anonyme? –
Vous pouvez également utiliser des variables de liaison dans SQL * Plus, toujours sous la forme ': recordId'. La version '&' demandera une valeur, et n'a pas de relation directe avec la version 'variable'. Je ne sais pas exactement pourquoi vous voudriez mélanger et assortir comme ceci cependant. –