Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 12902|Odpověď: 1

[Zdroj] Orákulní normální kurzory, implicitní kurzory a parametrizované kurzory

[Kopírovat odkaz]
Zveřejněno 19.03.2015 10:53:06 | | |
Vyberte * ze stuinfo;
--Implicitní kurzor
začátek
    dbms_output.put_line('Before-query:'|| sql%rowcount);
    Aktualizace stuinfo set stusex = 'žena';
    dbms_output.put_line('After query:'|| sql%rowcount);
konec;

--explicitní kurzor
--1. Běžné
Deklarujte
    kurzor mycur1 je select * ze stuinfo; --definujte kurzory
    --v_id stuinfo.stuid%type;
    --v_name stuinfo.stuname%type;
    --v_sex stuinfo.stusex%type;
    --v_bir stuinfo.stubir%type;
    v_row stuinfo%rowtype;
začátek
    otevřít mycur1; --Otevřený kurzor
    Loop
    --načíst mycur1 do v_id,v_name,v_sex,v_bir; --Posuňte kurzor dolů, abyste do proměnné vložili hodnotu čtení
    Natáhněte mycur1 do v_row; --Číst kurzor
    Odejít když mycur1%nenalezeno;
    --dbms_output.put_line('id:'|| v_id||', jméno: '|| v_name||', pohlaví: '|| v_sex||' Narozeniny: '|| v_bir); --Výstupní výsledek
    dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir);
    koncová smyčka;
    zavřít mycur1; --Vypni kurzor
konec;

--2. Versifikátor s parametry
Deklarujte
    Kurzor mycur1(v_sex stuinfo.stusex%type) je select * ze stuinfo, kde stusex = v_sex; --definujte kurzory
    v_row stuinfo%rowtype;
začátek
    otevřít mycur1('&gender'); --Otevřený kurzor
    Loop
    Natáhněte mycur1 do v_row; --Číst kurzor
    Odejít když mycur1%nenalezeno;
    dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir);
    koncová smyčka;
    zavřít mycur1; --Vypni kurzor
konec;

--3. Kruhový kurzor
Deklarujte
    kurzor mycur1 je select * ze stuinfo; --definujte kurzory
začátek
    Pro v_row v Mycur1
    Loop
        dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir);
    koncová smyčka;
konec;

--4. Aktualizovat data kurzorem
Deklarujte
    Kurzor mycur1 je pro aktualizaci select * ze stuinfo; --definujte kurzory
začátek
    Pro v_row v Mycur1
    Loop
        pokud v_row.stuid = '003' pak
           Smazat ze stuinfo kde je aktuální Mycur1;
        jinak
           Aktualizace stuinfo nastavte stusex = 'muž', kde je aktuální mycur1;
        Konec pokud;
    koncová smyčka;
konec;

Vyberte * ze stuinfo;
Aktualizace stuinfo nastavte stusex = 'žena', kde stuid = '002';

--referenční kurzor
--1. Slabý typ
Deklarujte
    typové jméno je ref cursor; --definujte typ kurzoru (curname je název typu)
    mycur1 cur curname; --
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
    v_row2 subinfo%rowtype;
začátek
    v_sex := '& gender';
    pokud v_sex = 'muž', pak
       Otevřete mycur1 pro select * ze stuinfo, kde stusex = 'muž';
        Loop
        Natáhněte mycur1 do v_row; --Číst kurzor
        Odejít když mycur1%nenalezeno;
        dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir);
        koncová smyčka;
    jinak
       Otevřete mycur1 pro výběr * ze subinfo;
       Loop
        Natáhněte mycur1 do v_row2; --Číst kurzor
        Odejít když mycur1%nenalezeno;
        koncová smyčka;
    Konec pokud;
    zavřít mycur1; --Vypni kurzor
konec;
Vyberte * ze subinformací;

--Silný typ
Deklarujte
    Typ curname je ref kurzor return stuinfo%rowtype;
    mycur1 cur curname;
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
začátek
    v_sex := '& gender';
    pokud v_sex = 'muž', pak
       Otevřete mycur1 pro select * ze stuinfo, kde stusex = 'muž';
    jinak
       Otevřete mycur1 pro select * ze stuinfo, kde stusex = 'žena';
    Konec pokud;

    Loop
        Natáhněte mycur1 do v_row; --Číst kurzor
        Odejít když mycur1%nenalezeno;
        dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir);
    koncová smyčka;
    zavřít mycur1; --Vypni kurzor
konec;







Předchozí:"Bohatství a šachová hra" – odhaluje vnitřní příběh lásky, práce a přijímacích zkoušek na postgraduální studium
Další:php5.2.17 musí při instalaci změnit hodnotu cgi.force_redirect z 1 na 0
Zveřejněno 19.03.2015 11:21:08 |
Odložte stranou lesson6.rar (920 Bytes, Počet stažení: 0)
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com