Jump to content
  • ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Carolm
      Boa Noite, tenho que solucionar um exercício de PL/SQL ,onde devo encontrar um algorítimo/código para poder analisar um CNPJ ,que sera informado pelo usuário,o SQL Developer deve realizar o cálculo para pegar os dígitos validadores desse CNPJ, e por fim analisar se ele é válido ou inválido e no console apresentar o texto : Valido ou inválido dependendo do resultado obtido com o calculo!
      Nesse exercício sera aberta uma "tela" que vai pedir pro usuário digitar o numero do CNPJ,esse CNPJ sera capturado e analisado através de um calculo de validação de CNPJ (ira analisar os dígitos verificadores) e com o resultado ele ira informar ao usuário se o numero é VALIDO ou INVALIDO!
      Enunciado :
      CRIE UM BLOCO ANÔNIMO PL/SQL  ORACLE  QUE IRÁ SOLICITAR PARA O USUÁRIO O NÚMERO DO: CNPJ - BLOCO ANÔNIMO-DÍGITO VERIFICADOR

      Eu rodei o código abaixo  o SQL informou que a função foi compilada,porém não aparece a mensagem dizendo se o numero informado é válido ou inválido...Será que poderiam me ajudar ?
      set serveroutput on ACCEPT CNPJ PROMPT 'Digite o numero do CNPJ' CREATE OR REPLACE FUNCTION CNPJ (p_cgc IN CHAR) RETURN BOOLEAN IS m_total NUMBER := 0; m_digito NUMBER := 0; BEGIN FOR i IN 1..4 LOOP m_total := m_total + substr(p_cgc,i,1) * (6 - i); END LOOP; FOR i IN 5..12 LOOP m_total := m_total + substr(p_cgc,i,1) * (14 - i); END LOOP; m_digito := 11 - mod(m_total,11); IF m_digito > 9 THEN m_digito := 0; END IF; IF m_digito != substr(p_cgc,13,1) THEN RETURN FALSE; END IF; m_digito := 0; m_total := 0; FOR i IN 1..5 LOOP m_total := m_total + substr(p_cgc,i,1) * (7 - i); END LOOP; FOR i IN 6..13 LOOP m_total := m_total + substr(p_cgc,i,1) * (15 - i); END LOOP; m_digito := 11 - mod(m_total,11); IF m_digito > 9 THEN m_digito := 0; END IF; IF m_digito != substr(p_cgc,14,1) THEN RETURN FALSE; END IF; RETURN TRUE; IF CNPJ(14) = TRUE THEN DBMS_OUTPUT.PUT_LINE('VERDADEIRO'); ELSE DBMS_OUTPUT.PUT_LINE('FALSO'); END IF; END; /  

    • By sadamkim
      Pessoal,  me deparei com um problema.
      Tenho uma Tabela, onde fica armazenada as transações dos clientes.
      Cada transação tem vários registros com o campo STATUS.
       
      Preciso fazer um MAX, para pegar a ultima transação por data, e assim saber qual foi o status da mesma.
      Mas ao utilizar o MAX e selecionar o campo STATUS ele me traz todos os registro, porque o mesmo não pode agrupar por status, por conter valores diferentes.
      É possível criar alguma forma de selecionar no meu caso a ultima transação por data (MAX) e trazer o campo status?
      Seja com alguma procedure, ou outra função do ORACLE.


    • By douglas.ribeiro.id
      Bom dia a todos
       
      a varios anos que nao tenho que criar um script no oracle nao consigo lembrar ne como começar e tambem estou sem o oracle instalado na maquina
      alguem poderia me ajudar? o problema e este: 
      Crie um segundo script (SCRIPT2.SQL) que possua um bloco de código para que gere registros fictícios para as tabelas criadas. Gere 1000 registros para a tabela EXAME_NF. Para cada EXAME_NF gere 3 registros. Faça com que a DATACADASTRO do EXAME_NF comece em 10 dias atrás, fazendo com que a cada 100 registros a data seja aumentada em 1 dia, distribuindo assim os 1000 registros em 10 dias diferentes de cadastro.
    • By pamf
      Prezados, boa noite!
       
      Me deparei com um problema aqui que acredito que seja bem simples para voces. Estou aqui precisando agrupar dados com a maior data de vendas para um cliente Numa coluna para todas as linhas do cliente (registro a registro das notas). Tambem preciso fazer algumas operacoes de total para disponibilizar um SCRIPT SQL sql para ser consumido por uma ferramenta analitica de BI e foi especificado exatamente como esta na planilha. Para facilitar criei os cenários. Tem os scripts de criacao da tabela e de insert e os resultados esperados nas colunas calculadas pelo sql. Espero que a documentação esteja boa para o caso de uso e que voces possam me ajudar. POde ser didatico para quem da aulas de PL SQL.
       
      Grato
       
      Att
      Paulo
       
      PS: como nao aceitou a planilha, escrevo abaixo:
       
      --SCRIPT DE CRIACAO TABELA ORACLE CREATE TABLE T_VENDAS (DATA_VENDA DATE, COD_CLI NUMBER (10), CLIENTE VARCHAR2(10), NUM_NF VARCHAR(10), ITEM VARCHAR2(20), QTDE NUMBER (10,2), VL_TOT_ITEM NUMBER (10,2), VL_UNIT NUMBER (10,2)); --INSERTS INSERT INTO T_VENDAS VALUES('05-Jan-2019',15,'JOAO','20','MESA',1,200,200); INSERT INTO T_VENDAS VALUES('05-Jan-2019',15,'JOAO','20','CADEIRA',4,240,60); INSERT INTO T_VENDAS VALUES('21-Jan-2019',15,'JOAO','66','BANCO',2,240,120); INSERT INTO T_VENDAS VALUES('08-Feb-2019',15,'JOAO','102','GELADEIRA',1,600,600); INSERT INTO T_VENDAS VALUES('07-Mar-2019',15,'JOAO','145','ARMARIO',1,450,450); INSERT INTO T_VENDAS VALUES('05-Jan-2019',20,'MARIA','28','SOFA',1,750,750); INSERT INTO T_VENDAS VALUES('05-Jan-2019',20,'MARIA','28','TAPETE',2,280,140); INSERT INTO T_VENDAS VALUES('21-Jan-2019',20,'MARIA','72','CORTINA',2,160,80); INSERT INTO T_VENDAS VALUES('08-Feb-2019',20,'MARIA','120','CAMA',1,400,400); INSERT INTO T_VENDAS VALUES('17-Feb-2019',20,'MARIA','151','COLCHAO',1,500,500);  
       
      CENARIOS (DADOS INSERIDOS NA TABELA T_VENDAS - COLUNAS DO EXCEL ABAIXO: B, C, D, E, F, G, H, I)
       

       
      COLUNAS CALCULADAS ESPERADAS NO SCRIPT SQL ALEM DAS COLUNAS JA EXISTENTES NA TABELA
       

       
      RESULTADO ESPERADO DO SCRIPT SQL
       

       
       
       
         
    • By EREGON
      Bom dia,
       
      tenho uma tabela cuja estrutura está toda em VARCHAR. Essa tabela contem algumas colunas com valores decimais, e quero executar algumas queries para fazer algumas operações aritméticas, como:
       
      -Devolver valores maiores que xx.xx, etc.
       
      Mas estou a ter erros, como:
       
      ORA-12801: erro assinalado no servidor de consulta paralela P009, instance ptlhb100.pt.sedc.internal.vodafone.com:CSTMRDM2 (2)
      ORA-01722: número inválido
      12801. 00000 -  "error signaled in parallel query server %s"
      *Cause:    A parallel query server reached an exception condition.
      *Action:   Check the following error message for the cause, and consult
                 your error manual for the appropriate action.
      *Comment:  This error can be turned off with event 10397, in which
                 case the server's actual error is signaled instead.
       
      Estou a executar a querie:
       
      SELECT TBL_NUMBER
      FROM MOBILE_UPSELL tl
      WHERE TO_NUMBER(tl.ARPU_MIB) < 8.01
       
      Já tentei TO_BINARY_NUMBER e dá o mesmo erro.
       
      O que está mal aqui?
       
      Obrigado
       
      Paulo
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.