Šajā apmācībā mēs uzzināsim, kā izmantot NEXTVAL funkciju, strādājot ar Oracle sekvencēm.
PIEZĪME. Šajā apmācībā nav apskatīti Oracle secības izveides pamati. Lai uzzinātu vairāk, skatiet mūsu pamācību par Oracle sekvencēm.
Oracle Nextval funkcija
Funkcija nextval Oracle secībā tiek izmantota, lai iegūtu nākamo vērtību noteiktā secībā.
Mēs varam izteikt funkcijas sintaksi, kā parādīts šajā koda fragmentā:
secības_nosaukums.nextval
Funkcija nepieņem nevienu argumentu vai parametru. Pēc tam tas atgriež nākamo vērtību definētajā secībā.
Funkcijas demonstrācijas piemērs
Ņemsim vērā piemēru. Mēs sākam, definējot vienkāršu Oracle secību, kā parādīts šajā kodā:
CREATE SEQUENCE test_sequenceSĀKT AR 1
PIEAUGS PAR 1 ;
Mēs izmantojam priekšrakstu CREATE SEQUENCE, lai inicializētu jaunu Oracle secību. Pēc tam mēs definējam, ar kādu vērtību secība sākas, un pieauguma vērtību katrai jaunai ģenerētajai vērtībai.
Mūsu piemērā test_sequence sākas ar vērtību 1 un palielinās par vienu katrai jaunai vērtībai. Tam vajadzētu ģenerēt skaitlisko vērtību sēriju, sākot ar 1, 2, 3, 4, 5 utt.
Izmantojot Oracle Nextval funkciju
Mēs varam izmantot nākamās vērtības funkciju no secības test_sequence, lai iegūtu nākamo vērtību, kā parādīts tālāk:
izvēlieties test_sequence.nextval no dual;Tam vajadzētu atgriezt nākamo vērtību no secības, kā parādīts tālāk.
Ja izsaucat paziņojumu vēlreiz, tam ir jāatgriež nākamā sērijas vērtība, kas ir 2.
Tas turpinās, līdz vērtības ir izsmeltas vai tiek sasniegta maksimālā vērtība, kas ir noteikta secībā. Apskatiet mūsu Oracle secības pamācību, lai uzzinātu, kā iestatīt minimālās un maksimālās vērtības.
Funkcijas Nextval izmantošana vērtību cilpai
Mēs varam arī izmantot funkciju nextval, lai izdrukātu skaitļus no 1 līdz 10, kā parādīts šajā kodā:
CREATE SEQUENCE looper_sequenceSĀKT AR 1
PIEAUGS PAR 1 ;
komplekts SERVEROUTPUT ieslēgts;
SĀKT
PAR I I IEKŠU 1 .. 10
CILPA
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
BEIGAS CILPA;
BEIGAS;
Norādītais kods izveido jaunu secību ar nosaukumu looper_sequence, kas sākas ar 1 un palielinās par 1 katrai jaunai ģenerētajai vērtībai.
Pēc tam mēs iespējojam opciju SERVEROUTPUT, kas ļauj pakotnei DBMS_OUTPUT parādīt ziņojumus SQL*Plus konsolē.
Visbeidzot, priekšraksta beigu/sākšanas iekšpusē ievietojam for cilpu, lai atkārtotu vērtību diapazonu no 1 līdz 10. Pēc tam katrai diapazona vērtībai izsaucam funkciju DBMS_OUTPUT.PUT_LINE un izdrukājam nākamo vērtību secībā looper_sequence uz konsole.
Kods izdrukā nākamās desmit vērtības looper secībā. Mūsu gadījumā tā būs vērtība no 1 līdz 10 vai 11 - 20… un tā tālāk katram jaunam zvanam.
Iegūtā izvade :
12
3
4
5
6
7
8
9
10
PL / SQL procedūra veiksmīgi pabeigta.
Funkcijas Nextval izmantošana ievietošanas paziņojumā
Funkciju nextval varam izmantot arī ievietošanas priekšrakstā kā primāro atslēgu. Piemēram:
ievietot iekšā lietotājiem ( id ,vārds,kredītkarte,valsts )vērtības ( test_sequence.nextval, 'Džeimss Smits' , “4278793631436711” , 'Apvienotie Arābu Emirāti' ) ;
Dotajā piemērā mēs izsaucam funkciju nextval no test_sequence, lai tabulā ievietotu id kolonnas vērtību.
Secinājums
Šajā ziņojumā jūs atklājāt, kā izmantot Oracle nextval funkciju, lai iegūtu nākamo vērtību secībā. Jūs arī uzzinājāt, kā izmantot funkciju, lai atkārtotu vērtību kopu vai ievietotu unikālu vērtību tabulas kolonnā.