Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako používať kurzor pre REC v slučke v Oracle

Oracle explicitné kurzory - tie musíte fyzicky vyhlásiť - umožňujú odstrániť " jeden riadok " obmedzenie bežných príkazov SELECT . Namiesto kopírovanie a ukladanie hodnôt stĺpcov v príkaze SELECT premenných jeden riadok naraz , explicitné kurzory vám umožní spustiť dotaz , ukladať kolekcia hodnôt do pamäte a vráťte sa späť a spracovávať každý záznam zvlášť. To nielen znižuje dobu spracovania , ale tiež znižuje množstvo kódu , ktoré potrebujete písať . Automatizácia procesu a ďalej znížiť požiadavky na značenie pomocou CURSOR FOR rec slučke prechádzať a získať viac databázových záznamov . Pokyny dovolená 1

Vytvorte alebo deklarovať kurzor ako obvykle tým , že mu jedinečný názov , väzba je na spoločné SELECT a potom pripojiť ho k časti vyhlásenia vášho funkcie alebo procesu . SELECT môže byť jednoduchý , alebo môže byť zložitejšie , ako je napríklad SELECT /kde /GroupBy vyhlásenie . Ak , napríklad , že chcete použiť kurzor pre rec slučky na načítanie aktuálnej mesačný plat za každý z vašich zamestnancov a celkovo tieto sumy , bude výpis vyhlásenie zobraziť ako :

CREATE OR REPLACE FUNCTION SalaryExpense ( name_in IN VARCHAR2 ) RETURN číslo varchar2IStotal_val ( 6 ) ;

DECLARE kurzor salary_cursor isselect monthly_salaryfrom employeeswhere name = name_in ;

BEGIN

( Referencie 1 , str 6 , 7 a referencie 2 )
2

Napíšte opakovanie vyhlásenie , ktoré sa automaticky otvorí kurzor , pristupuje každý záznam zamestnanca , extrahuje mesačné informácie o plate , ktoré potrebujete na výpočet mesačnej mzdy náklady a pridáva každú hodnotu do priebežného súčtu . Keď slučka dosiahne posledný záznam , automaticky sa zavrie kurzor :

total_monthy_salary : = 0 ;

employee_rec v salary_cursorLOOPtotal_monthy_salary : = total_monthy_salary + employee_rec.monthly_salary ; END LOOP ;

Sims 3

Zobrazenie výsledkov a ukončenie funkcie alebo procesu :

RETURN total_monthy_salary ; END ;

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené