PLSQL: VARBIABLE := SÉQUENCE.NEXTVAL ou SÉLECTIONNEZ la SÉQUENCE.NEXTVAL VARIABLE de double?
Quelle est la différence en PL/SQL à partir de:
CREATE OR REPLACE FUNCTION WBAR_TEST_1 RETURN NUMBER IS
LN_TMP NUMBER;
BEGIN
LN_TMP := SOME_SEQUENCE.NEXTVAL;
RETURN LN_TMP;
END WBAR_TEST_1;
et
CREATE OR REPLACE FUNCTION WBAR_TEST_2 RETURN NUMBER IS
LN_TMP NUMBER;
BEGIN
SELECT SOME_SEQUENCE.NEXTVAL INTO LN_TMP FROM DUAL;
RETURN LN_TMP;
END WBAR_TEST_2;
Je pense que la deuxième approche est seulement pour l'histoire seulement.
OriginalL'auteur WBAR | 2013-10-25
Vous devez vous connecter pour publier un commentaire.
Le premier est disponible avec Oracle 11g, avant que vous avez eu à
SELECT seq_name.nextVal FROM dual
. Quelle est la différence? Eh bien, le premier est plus facile à lire, à mon avis.Ce qui est plus, Tim Hall sur son site écrit que, selon la documentation, le premier (nouveau) approche permet d'améliorer les performances. Il a réalisé quelques tests, mais la différence est marginale.
Lire plus sur Tim Hall du site: Séquences et NEXTVAL en PL/SQL
D'autre part, comme indiqué ici Sur l'utilisation de NEXTVAL en PL/SQL - Oracle 11g, l'implémentation sous-jacente de l'extraction de l'
nextVal
valeur n'a pas changé, donc en fait il devrait y avoir aucune différence.OriginalL'auteur Przemyslaw Kruglej