Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 12902|Resposta: 1

[Fonte] Cursores normais oraculares, cursores implícitos e cursores parametrizados

[Copiar link]
Publicado em 19/03/2015 10:53:06 | | |
selecione * do stuinfo;
--Cursor implícito
início
    dbms_output.put_line('Antes-consulta:'|| sql%rowcount);
    Atualizar o conjunto Stuinfo Stusex = 'feminino';
    dbms_output.put_line('Após a consulta:'|| sql%rowcount);
fim;

--cursor explícito
--1. Comum
declarar
    cursor mycur1 é select * de stuinfo; --definir cursores
    --v_id stuinfo.stuid%type;
    --v_name stuinfo.stuname%type;
    --v_sex stuinfo.stusex%type;
    --v_bir stuinfo.stubir%type;
    v_row stuinfo%rowtype;
início
    abra o mycur1; --Cursor aberto
    Loop
    --buscar mycur1 em v_id,v_name,v_sex,v_bir; --Mova o cursor para baixo para colocar o valor de leitura na variável
    buscar mycur1 para v_row; --Ler cursor
    sair quando mycur1%notfound;
    --dbms_output.put_line('id:'|| v_id||', nome: '|| v_name||', gênero: '|| v_sex||' Aniversário: '|| v_bir); --Resultado de saída
    dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', gênero: '|| v_row.stusex||' Aniversário: '|| v_row.stubir);
    laço final;
    Fechar o MyCur1; --Desligue o cursor
fim;

--2. Versificador com parâmetros
declarar
    cursor mycur1(v_sex stuinfo.stusex%type) é select * de stuinfo onde stusex = v_sex; --definir cursores
    v_row stuinfo%rowtype;
início
    abra mycur1('&gênero'); --Cursor aberto
    Loop
    buscar mycur1 para v_row; --Ler cursor
    sair quando mycur1%notfound;
    dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', gênero: '|| v_row.stusex||' Aniversário: '|| v_row.stubir);
    laço final;
    Fechar o MyCur1; --Desligue o cursor
fim;

--3. Cursor circular
declarar
    cursor mycur1 é select * de stuinfo; --definir cursores
início
    para v_row no mycur1
    Loop
        dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', gênero: '|| v_row.stusex||' Aniversário: '|| v_row.stubir);
    laço final;
fim;

--4. Atualize os dados com o cursor
declarar
    cursor mycur1 é select * do stuinfo para atualização; --definir cursores
início
    para v_row no mycur1
    Loop
        se v_row.stuid = '003' então
           Exclua do stuinfo onde está atualizado o mycur1;
        senão
           Atualizar o conjunto StuInfo Stusex = 'masculino' onde corrente é MyCur1;
        fim se;
    laço final;
fim;

selecione * do stuinfo;
Atualizar Stuinfo Define Stusex = 'Feminino' onde Stuid = '002';

--cursor de referência
--1. Tipo fraco
declarar
    Tipo curname é cursor de referência; --definam um tipo de cursor (curname é o nome do tipo)
    curname mycur1; --
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
    v_row2 subinfo%rowtype;
início
    v_sex := '& gênero';
    se v_sex = 'masculino' então
       abra mycur1 para selecionar * do stuinfo onde stusex = 'masculino';
        Loop
        buscar mycur1 para v_row; --Ler cursor
        sair quando mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', gênero: '|| v_row.stusex||' Aniversário: '|| v_row.stubir);
        laço final;
    senão
       abra mycur1 para selecionar * a partir de subinfo;
       Loop
        buscar o MyCur1 para v_row2; --Ler cursor
        sair quando mycur1%notfound;
        laço final;
    fim se;
    Fechar o MyCur1; --Desligue o cursor
fim;
selecione * de subinfo;

--Tipo forte
declarar
    Tipo curname é cursor ref return stuinfo%rowtype;
    curname mycur1;
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
início
    v_sex := '& gênero';
    se v_sex = 'masculino' então
       abra mycur1 para selecionar * do stuinfo onde stusex = 'masculino';
    senão
       abra o MyCur1 para selecionar * do StuInfo onde Stusex = 'Feminino';
    fim se;

    Loop
        buscar mycur1 para v_row; --Ler cursor
        sair quando mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', gênero: '|| v_row.stusex||' Aniversário: '|| v_row.stubir);
    laço final;
    Fechar o MyCur1; --Desligue o cursor
fim;







Anterior:"Wealth and Chess Game" - revelando a história interna do amor, do trabalho e do exame de ingresso na pós-graduação
Próximo:O php5.2.17 precisa mudar o valor de cgi.force_redirect de 1 para 0 ao instalar
Publicado em 19/03/2015 11:21:08 |
Reserva lesson6.rar (920 Bytes, Número de downloads: 0)
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com