Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #94159
    Adimari
    Participante

      Bom 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?

      #94184
      Adimari
      Participante

        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?

        #94185
        fsitja
        Participante

          O 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

          #94186
          fsitja
          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.

            #94192
            Adimari
            Participante

              Uma 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?

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.