Oracle Izveidojiet tempu tabulu

Oracle Izveidojiet Tempu Tabulu



Globālās pagaidu tabulas ir noderīgas, glabājot provizoriskus datus, kas nepieciešami tikai darījuma vai sesijas ilgumam. Atšķirībā no parastajām tabulām, globālās pagaidu tabulas tiek automātiski atmestas, kad sesija vai transakcija beidzas. Tātad tie nav skaidri jāatmet kā parastās tabulas. Tomēr globālās pagaidu tabulas ir redzamas tikai pašreizējai sesijai, tāpēc tām nevar piekļūt citas sesijas vai lietotāji.

Programmā Oracle globālā pagaidu tabula ir īpašs tabulas veids, kas izveidots, izmantojot paziņojumu “izveidot globālo pagaidu tabulu”. Šis paziņojums ir līdzīgs parastajam priekšrakstam “izveidot tabulu”, taču tajā ir ietverts atslēgvārds “globāls pagaidu”, lai norādītu, ka tabula ir globāla pagaidu tabula.







Paziņojuma “CREATE GLOBAL TEMPORARY TABLE” sintakse ir šāda:



IZVEIDOT GLOBĀLU PAGAIDU TABULU tabulas_nosaukums (
kolonna1 datu tips [NULL | NOT NULL],
kolonna2 datu tips [NULL | NOT NULL],
...
) [PAR IESNIEGT {DZĒST | PRESERVE} ROWS];

Šajā sintaksē tabulas_nosaukums ir globālās pagaidu tabulas nosaukums, kuru vēlaties izveidot. kolonna1, kolonna2 utt. ir tabulas kolonnu nosaukumi un datu tipi.



ON COMMIT klauzula norāda, vai tabulas rindas tiks dzēstas vai saglabātas, kad tiks veikta pašreizējā transakcija. Ja nav definēta klauzula ON COMMIT, datu bāzes programma izmantos opciju ON COMMIT DELETE ROWS.





Kā minēts, ņemiet vērā, ka dati pagaidu tabulā ir privāti. Tas nozīmē, ka tai nevar piekļūt neviena cita sesija, izņemot tās, kuras izveidoja tabulu.

Globālās pagaidu tabulas izveides piemērs

Atklāsim dažus praktiskus piemērus pagaidu tabulas priekšraksta izveidei Oracle datu bāzēs.



Apsveriet tālāk redzamo vaicājuma piemēru:

IZVEIDOT GLOBĀLU PAGAIDU TABULU temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date DATE NOT NULL,
pārdošanas_summa NUMURS(10,2) NOT NULL
) ON COMMIT DZĒST RINDAS;

Iepriekš minētajā piemērā mēs izveidojam pagaidu tabulu, izmantojot opciju ON COMMIT DELETE ROWS.

Pēc tam mēs varam ievietot dažus datu paraugus, piemēram:

INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (3, DATE '2022-10-03', 130);

Pēc tam jūs varat veikt darījumu kā:

APŅEMTIES;

Pēc saistību izpildes datu bāzes programma saīsīs visus pagaidu tabulas datus, kā norādīts saistību klauzulā.

2. piemērs

Šajā piemērā parādīts, kā izveidot tabulu, kas saglabā rindas izpildes laikā:

IZVEIDOT GLOBĀLU PAGAIDU TABULU temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date DATE NOT NULL,
pārdošanas_summa NUMURS(10,2) NOT NULL
) PAR IESNIEGT SAGLABĀŠANAS RINDAS ;

Pēc tam mēs varam pievienot rindu paraugus un veikt, kā parādīts:

INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (3, DATE '2022-10-03', 130);

APŅEMTIES;

Šajā gadījumā dati ir jāsaglabā pēc commit darbības, kā parādīts tālāk esošajā atlases paziņojumā:

SELECT * FROM TEMP_SALES;

Izvade:

Secinājums

Paziņojums “izveidot pagaidu tabulu” ir spēcīgs rīks pagaidu tabulu izveidei programmā Oracle. Pagaidu tabulas ir noderīgas pagaidu datu glabāšanai, kas nepieciešami tikai darījumam vai sesijai. Paziņojums “izveidot pagaidu tabulu” ļauj definēt pagaidu tabulas struktūru un kolonnas un norādīt, kā rindas tiks apstrādātas, kad darījums tiks veikts. Rezultātā pagaidu tabulu izmantošana var uzlabot jūsu vaicājumu un lietojumprogrammu veiktspēju un efektivitāti, kā arī samazināt datubāzē nepieciešamās pastāvīgās krātuves vietu.