› Fóruns › SQL e PL/SQL › Posição de registros em Oracle
- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 16 anos atrás por
Adimari.
-
AutorPosts
-
24 de maio de 2010 às 5:45 pm #94159
Adimari
ParticipanteBom dia,
Alguém sabe se é possível pegar a posição de cada registro em um cursor implicito, do tipo %type?
exemplo:
vValor(002) := vValor(002) + NVL(RFMG_type.VlEsgoR,0) * vMult;eu quero a posição e valor do RFMG_type.VlEsgoR antes do tratamento nvl e multiplicação.
Se sim, como eu faço isso?
24 de maio de 2010 às 9:34 pm #94184Adimari
ParticipanteMelhorando a questão:
Tenho uma proc que pega dados de uma tabela e os distribui em outra, fazendo calculo de icms, valor de tarifa, etc., e é executada por periodo, mensal. Há meses que nao retorna valor, ex. só do icms, na tabela final, mas na tabela de origem, onde ele pega os dados, os valores para o calculo estão lá. Isso teria relação com a posição do dado no cursor %type?
24 de maio de 2010 às 9:41 pm #94185fsitja
ParticipanteO número da linha dentro do cursor vem no NOMEDOCURSOR%ROWCOUNT:
SQL> set serveroutput on
SQL> declare
2 cursor cur_teste is
3 select table_name from all_tables where rownum
24 de maio de 2010 às 9:44 pm #94186fsitja
Participante[quote=”Adimari”:1a6gc2gs]Melhorando a questão:
Tenho uma proc que pega dados de uma tabela e os distribui em outra, fazendo calculo de icms, valor de tarifa, etc., e é executada por periodo, mensal. Há meses que nao retorna valor, ex. só do icms, na tabela final, mas na tabela de origem, onde ele pega os dados, os valores para o calculo estão lá. Isso teria relação com a posição do dado no cursor %type?[/quote]
Não entendi a situação, o que seria o problema… a posição da linha dentro do cursor é função exclusivamente do Order By no cursor. Se não houver order by o ordenamento não é garantido, não é determinístico.
24 de maio de 2010 às 10:56 pm #94192Adimari
ParticipanteUma procedure pega os dados de uma tabela, a mae, que alimenta outra filha, mas tem mês que a tabela filha vem com os valores corretos, tem outros que não, as vezes vem nulo. Na tabela mae, de onde os dados são captados, os valores contidos forem corretos, ex.:
se eu fizer um select na tabela mae, os valores retornam corretos, mas ao processar essa proc acontece isso dos valores variarem.
Essa pro tem um cursor que calculo valores, e armazena os resultados num RFMG_type.Valor, tipo do tipo TYPE TCONTABIL IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;vValor(002) := vValor(002) + NVL(RFMG_type.Valor,0) * vMult;
o vValor é fixado numa posição
Mesmo criando chaves como matricula, id, local, valores podem retornar errado?
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › SQL e PL/SQL › Posição de registros em Oracle