Jump to content
José Peixoto

Erro(56,16): PLS-00306: wrong number or types of arguments in call to '||'

Recommended Posts

Olá,

 

quando tento executar a trigger abaixo, ele me retorna 

  • Erro(56,16): PLS-00306: wrong number or types of arguments in call to '||'

 

create or replace TRIGGER API_SIM_PF_ATUALIZA_DENTALIS
BEFORE INSERT OR UPDATE ON PESSOA_FISICA 

FOR EACH ROW
DECLARE

type t_num is table of number;
DS_EMAIL_W t_num;
TELEFONE_RES_W t_num;
TELEFONE_COM_W  t_num;
ESTADO_CIVIL_W VARCHAR2(255);
ENDERECO_RES_W t_num;
NUMERO_W t_num;
BAIRRO_RES_W t_num;
COMPLEMENTO_RES_W t_num;
CIDADE_RES_W t_num;
CEP_RES_W t_num;
ENDERECO_COM_W t_num;
NUMERO_COM_W t_num;
BAIRRO_COM_W t_num;
COMPLEMENTO_COM_W t_num;
CIDADE_COM_W t_num;
CEP_COM_W t_num;
PROFISSIONAL_W VARCHAR2(255);
SEXO_W  VARCHAR2(255);
DT_NASCIMENTO_W t_num;

    BEGIN

        SELECT DISTINCT CP.DS_EMAIL,
               ('('||nr_ddd_telefone||')'||nr_telefone),
               ('('||nr_ddd_telefone||')'||nr_telefone),
               (SELECT CP1.DS_ENDERECO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1),
               (SELECT CP1.NR_ENDERECO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1),
               (SELECT CP1.DS_BAIRRO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1),
               (SELECT CP1.DS_COMPLEMENTO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1),
               (SELECT CP1.DS_MUNICIPIO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1),
               (SELECT CP1.CD_CEP FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1),
               TO_CHAR(:NEW.DT_NASCIMENTO,'"YYYY-MM-DD HH24:MI:SS')
           BULK COLLECT INTO DS_EMAIL_W,TELEFONE_RES_W,TELEFONE_COM_W,ENDERECO_RES_W,NUMERO_W,BAIRRO_RES_W,COMPLEMENTO_RES_W,CIDADE_RES_W,CEP_RES_W,/*ENDERECO_COM_W,NUMERO_COM_W,BAIRRO_COM_W,COMPLEMENTO_COM_W,
                             CIDADE_COM_W,CEP_COM_W,*/DT_NASCIMENTO_W
        FROM TASY.COMPL_PESSOA_FISICA CP
        WHERE CP.CD_PESSOA_FISICA =:NEW.CD_PESSOA_FISICA
		  AND CP.IE_TIPO_COMPLEMENTO = 1;

       SELECT V.DS_VALOR_DOMINIO INTO ESTADO_CIVIL_W FROM VALOR_DOMINIO V WHERE CD_DOMINIO = 5 AND V.VL_DOMINIO = :NEW.IE_ESTADO_CIVIL;
       SELECT CA.DS_CARGO INTO PROFISSIONAL_W FROM CARGO CA WHERE CA.CD_CARGO = :NEW.CD_CARGO;
       SELECT V.DS_VALOR_DOMINIO INTO SEXO_W FROM VALOR_DOMINIO V WHERE CD_DOMINIO = 4 AND V.VL_DOMINIO = :NEW.IE_SEXO;



        BEGIN
             SEND_DB_REQUST_PROC

            ('http://628186fc.ngrok.io/DentalisIntegration-1.0.0/dentalis/createuser',
               '{ "nome":' || :NEW.NM_PESSOA_FISICA ||','||
                  '"codigo_externo":' || :NEW.CD_PESSOA_FISICA ||','||
                  '"codigo_plano":' || 694 ||','||
                  '"matricula":' || :NEW.CD_PESSOA_FISICA || ',' ||
                  '"cpf":' || :NEW.NR_CPF ||','|| 
                  '"rg":' || :NEW.NR_IDENTIDADE || ',' ||
                  '"email":' || DS_EMAIL_W || ',' ||
                  '"telefone_res":' || TELEFONE_RES_W ||','||
                  '"telefone_com":' || TELEFONE_COM_W || ',' ||
                  '"celular":' || :NEW.NR_TELEFONE_CELULAR || ',' ||
                  '"observacao":' || :NEW.DS_OBSERVACAO || ',' ||
                  '"estado_civil":' || ESTADO_CIVIL_W || ',' ||
                  '"profissao":' || PROFISSIONAL_W || ',' ||
                  '"sexo":'  || SEXO_W || ',' ||
                  '"data_nascimento":' || DT_NASCIMENTO_W || ',' ||
                  '"endereco_res":' || ENDERECO_RES_W || ',' ||
                  '"numero_res":' || NUMERO_W || ',' ||
                  '"bairro_res":' || BAIRRO_RES_W || ',' ||
                  '"complemento_res":' || COMPLEMENTO_RES_W || ',' ||
                  '"cidade_res":' || CIDADE_RES_W || ',' ||
                  '"cep_res":' || CEP_RES_W || ',' ||
                  '"endereco_com": "",' ||
                  '"numero_com":"",' ||
                  '"bairro_com":"",' || 
                  '"complemento_com":"",' ||
                  '"cidade_com":"",' ||
                  '"cep_com":""' ||
                  '}');

             exception 
              when others then
               raise_application_error(-20000,'Erro: '|| sqlerrm);
       END;
    END;

 

Alguém sabe o que pode ser? 

 

Obrigado desde já pela atenção!

Share this post


Link to post
Share on other sites

Quais os parãmetros 

SEND_DB_REQUST_PROC

espera ?!

 

A ideia é montar o sql de forma dinâmica ?

Para que estes 

||','||

?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By marcelojoss
      //O valor na média (resposta) sai muito diferente, gostaria de corrigir o código próximo  a lógica que ele está.
       
       
      #include <stdio.h>
      #include <stdlib.h>
      #include <locale.h>
      double media(int vetor[], int tamanho)
      {
          float soma = 0, media = 0;
          int i = 0;
          for(i = 0; i<tamanho; i++)
          {
              soma+=vetor;
          }
          media = soma / tamanho;
          return media;
      }

      int main()
      {
          setlocale(LC_ALL, "Portuguese");
          int i, x;
          float soma;
          printf("Qual o tamanho do vetor ?\n");
          scanf("%d", &x);
          double vet[x];
          for ( i = 0; i < x; i++ )
          {
              printf ( "Valor na %d posição:\n", i +1 );
              scanf("%lf", &vet[i + 1]);
              printf("%lf",vet[i + 1]);
              soma = soma  + (vet[i + 1]);
          }
          printf("\n %f", soma);
          float resposta = media(vet, x);
          printf ("A média é: %.2f \n", resposta);
          system ("pause");
          return 0;
      }
       
        
    • By mateusmarcucci
      Pessoal, meu primeiro tópico, então desculpa qualquer coisa...
       
      É o seguinte, pra treinar to criando um sisteminha de aposta.
       
      Consiste em 2 campos, Valor apostado e ODD (odd é o quanto vai multiplicar a aposta caso ganhe). Porém quero colocar uma telinha aonde ele vai somar todos os ganhos e perdas do dia.
       
      Estou fazendo a soma direto no php, porém gostaria de passar o resultado dessa soma no banco de dados para assim ser possível somar as colunas.
       
      Eu tenho o metodo de escolha que é Ganhou ou Perdeu.
       
      Exemplo:   Valor apostado: R$5,00 | ODD 2.0 = R$10,00     Porém o lucro é apenas R$5,00. Tendo em vista que o lucro é subtraído do valor total - valor apostado. Caso perca, o valor apostado apenas passa a ser negativo
       
      Vou deixar o código que estou utilizando:
       
       
       
      <?php
          session_start();
          include_once("servidor.php");

          if (!empty($_SESSION['usuario']) and !empty($_SESSION['id'])) {
              $id = $_SESSION['id'];
              $nome = $_SESSION['nome'];
              $usuario = $_SESSION['usuario'];
          }else{
              $_SESSION['mensagem']="Você não está logado";
              header("Location: index.php");
              exit;
          }
          $id = $_SESSION['id'];        
          $consulta = "SELECT * FROM Resultados WHERE id = '$id' ORDER BY resultado ASC";
          $con = mysqli_query($conexao, $consulta);
          $banca = "SELECT * FROM Usuarios";
          $conBanca = mysqli_query($conexao, $banca);
          
      ?>

      <!DOCTYPE html>
      <html>
      <head>
          <title>Anote sua Aposta - Painel</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <link rel="stylesheet" type="text/css" href="css/cssEstilo.css">

          <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
          <!-- Font Awesome -->
          <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
          <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
          <script type="text/javascript" src="js/bootstrap.min.js"></script>
          <script type="text/javascript" src="js/jquery.mask.min.js"></script>
          <script type="text/javascript">
                  $(document).ready(function(){
                      $("#valor").mask("99990.00", {reverse: true})    
                      $("#odd").mask("999.999.990.00", {reverse: true})
                      
                  })        
                      
          </script>
      </head>

      <body class="fundoBodyPainel">
          <!-- topo -->
          <?php include('topo.php'); ?>
          <!-- fim topo -->
          <section>                        
                  <nav>
                      <p class="topoPainel"><strong>Bem vindo(a),</strong> <?php echo $_SESSION['nome'];?></p>
                  </nav>
          </section>
          <!-- Botão para acionar modal -->
          <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalExemplo">
                Adicionar uma nova aposta
          </button>
          <!-- Modal -->
          <div class="modal fade" id="modalExemplo" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog" role="document">
              <div class="modal-content">
                <div class="modal-header">
                  <h5 class="modal-title" id="exampleModalLabel">Adicionar uma nova aposta</h5>
                  <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
                    <span aria-hidden="true">&times;</span>
                  </button>
                </div>
                <div class="modal-body">
                  <section>
                      <div>
                          <form action="validarResultado.php" method="get" accept-charset="utf-8">
       
                                    <div class="form-group">
                                      <label>Valor Apostado:</label>
                                      <input type="text" class="form-control" id="valor" placeholder="Valor Apostado"
                                          name="valor">        
                                    </div>

                                    <div class="form-group">
                                      <label>ODD:</label>
                                      <input type="text" class="form-control" id="odd" placeholder="ODD" name="odd">                
                                   </div>
                                    <div class="form-group">
                                        <label for="Resultado">Resultado</label>
                                        <select id="inputEstado" class="form-control" name="resultado">
                                          <option selected>Escolher...</option>
                                          <option>Ganhou</option>
                                          <option>Perdeu</option>
                                        </select>
                                  </div>
                                </div>
                                    <button id="botaoCadastro" type="submit" name="enviar" class="btn btn-danger">Cadastrar</button>
                              </form>
                      </div>
                  </section>
                </div>
              </div>
            </div>
          </div>

          <section class="containerContatos">
              <div class="container">
                  <div class="row">
                      <div class="col-md-12">
                          <div class="d-flex justify-content-center table-responsive">
                              <table class="table table-striped" style="background: white;">
                                <thead class="thead-dark">
                                  <tr>
                                    <th scope="col">Valor</th>
                                    <th scope="col">ODD</th>
                                    <th scope="col">Resultado</th>
                                    <th scope="col">ID Aposta</th>
                                    <th scope="col">Retorno</th>
                                  </tr>
                                </thead>
                                <tbody>
                                    <?php
                                      while($dado = mysqli_fetch_assoc($con)) {
                                  ?>
                                  <tr>
                                    <td><?php echo $dado["valor"]; ?></td>
                                    <td><?php echo $dado["odd"]; ?></td>
                                    <td><?php echo $dado["resultado"]; ?></td>
                                    <td><?php echo $dado["idAposta"]; ?></td>
                                    <td><?php    
       
                                                $opcao1 = $dado["resultado"];                                                                                
                                                if ("$opcao1" == 'Ganhou') {
                                                    $retorno = ($dado["valor"] * $dado["odd"]) - $dado["valor"];
                                                    $retorno1 = $retorno;
                                                  $retorno1 = number_format($retorno1, 2, '.', '');
                                                  $retorno4 = $retorno;
                                                    echo "$retorno1";
                                                }
                                                if ("$opcao1" == 'Perdeu') {
                                                    $retorno = ($dado["valor"] - $dado["valor"]) - $dado["valor"];
                                                    $retorno1 = $retorno;
                                                  $retorno1 = number_format($retorno1, 2, '.', '');
                                                  $retorno4 = $retorno;
                                                    echo "$retorno1";
                                                }
                                                
                                            ?>                                          
                                    </td>                          
                                    </td>
                                  </tr>                            
                                  <?php } ?>
                                </tbody>
                              </table>
                          </div>
                      </div>
                  </div>
              </div>
          </section>    

          <?php  ?>
          

          
          <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
          <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
      </body>

      </html>
    • By MasterX2020
      Olá a todos,
       
      Como falei anteriormente estou construindo um site para uma aula e agora surgiu mais um desafio: fazer uma pesquisa em PHP que apresente resultados que podem ser obtidos de uma base de dados em SQL.
       
      Já tenho a barra de pesquisa colocada no site, a base de dados construída e a página onde os resultados devem surgir. Gostava de saber se alguém me poderia ajudar com o código PHP para que os resultados da pesquisa surgem. É uma pesquisa simples. O utilizador, por exemplo, insere na barra de pesquisa Maçã e, com isso, é levado para a pagina "pesquisa.php" onde devem surgir os dados que na base de dados estão relacionados com o termo pesquisado.
       
      O que se encontra na base de dados são coisas simples. Apenas pequenos títulos, relacionados com um pequeno parágrafo e uma categoria. Exemplo:
      - titulo: Maçã
      - parágrafo: Uma Maçã é um fruto.
      - categoria: Fruta.
       
      Se alguém poder ajudar desde já agradeço, espero ter explicado bem a minha dúvida.
    • By alecram28
      Boa noite. Preciso fazer um select que me retorne os dados desse select:
      hjgnvbcbn
    • By MasterX2020
      Olá a todos,
       
      Para uma aula foi me pedido a construção de um pequeno site. Preciso de ter uma barra lateral onde estão 3 categorias: Frutas, Legumes e Verduras.
       
      A barra lateral está construída e a pagina que abre ao clicar numa das categorias também. Agora precisava do código com os elementos PHP e SQL que permita que ao clicar numa das categorias os elementos apresentados nessa mesma página sejam os que estão relacionados à categoria clicada e que se encontra numa base de dados que também já construí. Ou seja, a página tem que ser sempre a mesma, mas os resultados que esta apresenta têm que depender se foi clicado Frutas, Legumes ou Verduras.
       
      Espero ter explicado bem o meu problema e que alguém me possa ajudar. Como já devem perceber são um leigo na matéria e ainda estou a aprender, por isso, desde já agradeço muito toda a ajuda que me possam dar.
×

Important Information

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