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 LOOP
para 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