PL/SQL Cursor para o ciclo
Resumo: neste tutorial, irá aprender a usar o cursor PL/SQL FOR LOOP declaração para obter e processar todos os registos a partir de um cursor.
Introduction to PL / SQL cursor FOR LOOP statement
the cursor FOR LOOP statement is an elegant extension of the numeric FOR LOOP statement.
O numérico FOR LOOP executa o corpo de um loop uma vez para cada valor inteiro num intervalo especificado., Similarmente, o cursor FOR LOOP executa o corpo do loop uma vez para cada linha retornada pela consulta associada com o cursor.
Um recurso interessante do cursor FOR LOOP instrução é que ele permite que você para buscar todas as linhas a partir de um cursor sem manualmente gerenciar o ciclo de execução i.é., OPEN FETCH e CLOSE.
o cursor FOR LOOP cria implicitamente o seu Índice de loop como uma variável de registo com o tipo de linha em que o cursor retorna e, em seguida, abre o cursor.,
em cada iteração de loop, o cursor FOR LOOP a instrução obtém uma linha do resultado definido para o seu Índice de loop. Se não houver linha a obter, o cursor FOR LOOP fecha o cursor.
o cursor também é fechado se uma declaração dentro do laço transfere controle fora do laço, por exemplo, EXIT e GOTO, ou levanta uma exceção.,
A seguir ilustra a sintaxe do cursor FOR LOOP declaração:
1) registro
record é o nome do índice que o cursor FOR LOOP instrução declara implicitamente como uma %ROWTYPE gravar variável do tipo cursor.
a variávelrecord é local para o cursorFOR LOOP declaração. Isso significa que você só pode referenciá-lo dentro do loop, não fora., Após o cursor FOR LOOP a execução da instrução termina, a variável record torna-se indefinida.
2) cursor_name
The cursor_name é o nome de um cursor explícito que não é aberto quando o ciclo começa.
Note que além do nome de cursor, você pode usar um SELECT instrução, como mostrado abaixo:
neste caso, o cursor FOR LOOP declara, abre, busca de, e fecha um cursor implícito., No entanto, o cursor implícito é interno; portanto, você não pode referenciá-lo.
Note que Oracle Database optimiza automaticamente um cursor FOR LOOPpara trabalhar de forma semelhante a um BULK COLLECT query. Embora o seu código pareça ter obtido uma linha de cada vez, a base de Dados Oracle obtém várias linhas de cada vez e permite-lhe processar cada linha individualmente.
PL / SQL cursor for LOOP examples
Let’s look at some examples of using the cursor FOR LOOP statement to see how it works.,
a) PL/SQL cursor for LOOP example
o seguinte exemplo declara um cursor explícito e o usa no cursor FOR LOOP statement.
neste exemplo, o SELECT a instrução do cursor recupera dados doproducts tabela. A instrução FOR LOOP abriu, obteve cada linha no conjunto de resultados, mostrou a informação do produto e fechou o cursor.,
B) Cursor para LOOP com um exemplo de instrução SELECT
o exemplo seguinte é equivalente ao exemplo acima, mas usa uma consulta em um cursor FOR LOOP instrução.
neste tutorial, você aprendeu a usar o cursor PL/SQL FOR LOOP para obter dados de um cursor.
- este tutorial foi útil?
- YesNo