Ir para conteúdo
josePeixoto

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais os parãmetros 

SEND_DB_REQUST_PROC

espera ?!

 

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

Para que estes 

||','||

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por fernanda_mon
      Boa tarde Pessoal,
      tenho uma tabela simples com os campos: data (data do cadastro), numero_parcelas ( números de parcelas de um financiamento) e valor_parcelas ( valor de cada parcela).
      Com isso preciso fazer uma sql que a partir da data atual, mostre para mim quais registros terminam o financiamento em no máximo 6 meses,
      usei a sql  abaixo  para determinar a data final e esta show, mas ainda não consegui fazer uma condição no "where" que determinasse o fim do financiamento nos proximos 6 meses
       
      SELECT V3.DATA AS “DATA-CADASTRO”, ADD_MONTHS(TRUNC(V3.DATA), v3.meses) DATA_FINAL FROM VENDA_FINANCIAMENTO V3  
      se alguem puder me ajudar eu agradeço.
       
    • Por dayenne
      Olá desenvolvedor.
      Estou com um problema um tanto quanto bobo, porém não consigo resolver!!! Estou gerando um e-mail automático com html onde nele contém um vídeo, a pagina fica toda certinha, porém quando esse e-mail chega ao remetente,ele chega sem a parte do vídeo, onde tem o iframe e afins.
       
       
       
      Código da parte que NÃO vai para o e-mail.
       
      <div style="margin:0; padding:15px 50px 15px 50px; font-family: Arial, Helvetica, sans-serif; color:#8f8871; font-size:18px; line-height:16px; background-color:#FFF; border-top: 1px dashed #ccc" text-align:"center"> <strong>Não tenha dúvidas! Aperta o play e veja como é fácil montar o seu álbum.</strong><span style="padding-left:10px;"> </span> <br> <br> <iframe width="100%" height="315" src="https://www.youtube.com/embed/_wPfz-w2XDo" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture background-color: #fff;" allowfullscreen> </iframe> </div>  
    • Por RENAN KAWAMOTO FAGUNDES
      !

      Olá, boa tarde!
      Estou precisando de uma ajuda em um SCRIPT (SQL).
      Preciso agrupar o resultado por tipo de convênio (CONVENIO).

      Exemplo Acima:
       

       
      Total por tipo de convênio.
      SET DATEFORMAT DMY -- RTM declare @DTINI datetime, @DTFIM datetime set @DTINI = '01/01/2019' set @DTFIM = '01/04/2019' SELECT CASE WHEN CONV_SUS = 'T' THEN 'SUS' WHEN CONV_PARTICULAR = 'T' THEN 'PARTICULAR' WHEN CONV_DS IS NOT NULL THEN 'CONVENIO' END CONVENIO, CONSUMO2.INSU_DS INSUMO, replace(CONSUMO2.EMI_QTDE_COMERCIAL,'.',',') QTDE_COMERCIAL, replace(CONSUMO2.VAL_TOTAL,'.',',') VALOR_TOTAL FROM ( SELECT CONSUMO.* FROM ( SELECT CONV_DS, CONV_SUS, CONV_PARTICULAR, INSU_DS, SUM(ISNULL(EMI_QTDE_COMERCIAL,0)) EMI_QTDE_COMERCIAL, ISNULL(SUM(ISNULL(EMI_QTDE_COMERCIAL,0) * ISNULL(PM,0)),0) VAL_TOTAL FROM ( SELECT CUREMI.*, (SELECT PCONV_DS FROM PLANO_CONVENIO PCONV WHERE PCONV.PCONV_ID = CUREMI.PCONV_ID) PCONV_DS, (SELECT CONV_DS FROM CONVENIO CONV WHERE CONV.CONV_ID = (SELECT CONV_ID FROM PLANO_CONVENIO PCONV WHERE PCONV.PCONV_ID = CUREMI.PCONV_ID) ) CONV_DS, (SELECT CONV_SUS FROM CONVENIO CONV WHERE CONV.CONV_ID = (SELECT CONV_ID FROM PLANO_CONVENIO PCONV WHERE PCONV.PCONV_ID = CUREMI.PCONV_ID) ) CONV_SUS, (SELECT CONV_PARTICULAR FROM CONVENIO CONV WHERE CONV.CONV_ID = (SELECT CONV_ID FROM PLANO_CONVENIO PCONV WHERE PCONV.PCONV_ID = CUREMI.PCONV_ID) ) CONV_PARTICULAR FROM( SELECT INSU_DS, EMI.PCONV_ID, EMI_QTDE_COMERCIAL, EMI.INSU_PRECO_MEDIO_FISCAL PM FROM EMISSAO EMI JOIN SERVICO SERV ON SERV.SERV_ID = EMI.SERV_ID JOIN INSUMO INSU ON INSU.SERV_ID = EMI.SERV_ID LEFT JOIN TIPO_EMISSAO TEMI ON EMI.TEMI_ID = TEMI.TEMI_ID LEFT JOIN ESTOQUE_LOTE ELOTE ON EMI.ELOTE_ID = ELOTE.ELOTE_ID WHERE EMI.ENTI_ID = 1 AND EMI_DT_DISPENSA >= @DTINI AND EMI_DT_DISPENSA < @DTFIM AND INSU.INSU_ID IN (255651, 243116, 243116, 246708, 562, 250466, 413, 808) UNION ALL SELECT INSU_DS, EMI.PCONV_ID, EMI_QTDE_COMERCIAL, EMI.INSU_PRECO_MEDIO_FISCAL PM FROM ITENS_EMISSAO IEMI JOIN EMISSAO EMI ON EMI.EMI_ID = IEMI.EMI_ID JOIN SERVICO SERV ON SERV.SERV_ID = IEMI.SERV_ID JOIN INSUMO INSU ON INSU.SERV_ID = IEMI.SERV_ID LEFT JOIN TIPO_EMISSAO TEMI ON EMI.TEMI_ID = TEMI.TEMI_ID LEFT JOIN ESTOQUE_LOTE ELOTE ON IEMI.ELOTE_ID = ELOTE.ELOTE_ID WHERE EMI.ENTI_ID = 1 AND EMI_DT_DISPENSA >= @DTINI AND EMI_DT_DISPENSA < @DTFIM AND INSU.INSU_ID IN (255651, 243116, 243116, 246708, 562, 250466, 413, 808) UNION ALL SELECT INSU_DS, EMI.PCONV_ID, EMI_QTDE_COMERCIAL, EMI.INSU_PRECO_MEDIO_FISCAL PM FROM ESTORNO_EMISSAO EEMI JOIN ESTORNO EST ON EEMI.EST_ID = EST.EST_ID JOIN EMISSAO EMI ON EMI.EMI_ID = EEMI.EMI_ID JOIN SERVICO SERV ON SERV.SERV_ID = EMI.SERV_ID JOIN INSUMO INSU ON INSU.SERV_ID = EMI.SERV_ID LEFT JOIN TIPO_EMISSAO TEMI ON EMI.TEMI_ID = TEMI.TEMI_ID LEFT JOIN ESTOQUE_LOTE ELOTE ON EEMI.ELOTE_ID = ELOTE.ELOTE_ID WHERE EMI.ENTI_ID = 1 AND EMI_DT_DISPENSA >= @DTINI AND EMI_DT_DISPENSA < @DTFIM AND INSU.INSU_ID IN (255651, 243116, 243116, 246708, 562, 250466, 413, 808) UNION ALL SELECT INSU_DS, EMI.PCONV_ID, EMI_QTDE_COMERCIAL, EMI.INSU_PRECO_MEDIO_FISCAL PM FROM ESTORNO_ITENS_EMISSAO ESTI JOIN ESTORNO EST ON ESTI.EST_ID = EST.EST_ID JOIN ITENS_EMISSAO IEMI ON IEMI.IEMI_ID = ESTI.IEMI_ID JOIN EMISSAO EMI ON EMI.EMI_ID = IEMI.EMI_ID JOIN SERVICO SERV ON SERV.SERV_ID = IEMI.SERV_ID JOIN INSUMO INSU ON INSU.SERV_ID = IEMI.SERV_ID LEFT JOIN TIPO_EMISSAO TEMI ON EMI.TEMI_ID = TEMI.TEMI_ID LEFT JOIN ESTOQUE_LOTE ELOTE ON ESTI.ELOTE_ID = ELOTE.ELOTE_ID WHERE EMI.ENTI_ID = 1 AND EMI_DT_DISPENSA >= @DTINI AND EMI_DT_DISPENSA < @DTFIM AND INSU.INSU_ID IN (255651, 243116, 243116, 246708, 562, 250466, 413, 808)) CUREMI ) CURCC GROUP BY INSU_DS, CONV_DS, CONV_SUS, CONV_PARTICULAR ) CONSUMO ) CONSUMO2 ORDER BY 2, 1  
    • Por stewartcintra@
      Tenho um sistema de contas em php mysql, preciso exibir todas as contas do mes agrupadas por categoria e o campo valorR$ para saber o total em reais de cada categoria.
      Não estou conseguindo, como posso fazer isso?
    • Por MateusDuarte
      Podem me ajudar? Sou novato em PHP e estou precisando de uma ajudinha.
      Tenho 2 tabelas no banco: filmes e generos.
      Faço o cadastro individual de todos os generos na tabela generos, e no cadastro de filmes eu puxo todos os generos por um multiple select. Até ai tudo certo, ele salva no banco de dados assim:
      genero1, genero2, genero3.
       
      Porém na hora de mostrar eu não sei separar eles das virgulas.
      Segue meu SELECT simples:
      <main class="content"> <?php $sql = "SELECT * FROM genero ORDER BY RAND()"; $result = $connect->query($sql); if($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $teste = $row["id_genero"]; ?> <section class="panel"> <h2><a id="links-generos" href="generos-filmes.php?id=<?php echo $row['id_genero'];?>"><?php echo $row["descricao"];?></a></h2> <div class="recentslider"> <div class="swiper-container"> <div class="swiper-wrapper"> <?php $sql_t = "SELECT * FROM filmes WHERE id_genero = ".$teste." ORDER BY RAND()"; $result_t = $connect->query($sql_t); if($result_t->num_rows > 0) { while($row_t = $result_t->fetch_assoc()) { ?> <div class="swiper-slide"><?php echo "<a href='single-filmes.php?id=".$row_t['id_filme']."&genero=".$row_t['id_genero']."';>";?><img src="capa/<?php echo $row_t["capa_filme"];?>"><h3 class="hometitle"><?php echo $row_t["titulo_filme"];?></h3></a></div> <?php }} else { echo "0 results"; } ?> </div> <div class="nextdirection recent-next"><img src="img/right-arrow.svg"> </div> <div class="leftdirection recent-prev"><img src="img/left-arrow.svg"> </div> </div> </div> </section> <?php }} else { echo "0 results"; } ?> </main> (Desculpa se não ficou alinhado, só copiei e colei.)

      Reparem que primeiro dou um select na tabela genero, e salvo o ID dela em uma variavel, e depois vou um select na tabela filmes usando a variavel que salvei antes como uma condição.
      Porem na tabela filmes, os generos estão salvos separados por virgula. Como consigo fazer um select separando ela das virgulas?
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.