Jump to content

Search the Community

Showing results for tags 'oracle'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 179 results

  1. Matheus_Moura

    Conexão banco de dados com PHP e ORACLE

    Boa tarde. Estou fazendo uma aplicação PHP em um PC Linux com Lubuntu como SO, para conexão com um banco de dados ORACLE 11g. Porém quando utilizo a função oci_connect ou qualquer outra função para oracle é retornado uma mensagem informando que estão indefenidas. Estou utilizando o XAMPP como servidor e fiz a configuração no caminho opt/lampp/etc/php.ini retirando o ; tanto no php_oci8.dll como também na php_oracle.dll, porém não obtive sucesso. Coloquei dentro da pasta opt também o instantclient já descompactado e utilizei o PECL para tentar ativar as OCI, porém mesmo assim ainda não consegui sucesso. Alguém teria alguma outra sugestão ? Att, Matheus Moura
  2. Ao acessar o meu aplicativo recebo a seguinte mensagem: 'the dbname and launch parameters must be specified on first run' como resolver? Ao acessar o meu aplicativo recebo a seguinte mensagem: 'the dbname and launch parameters must be specified on first run' como resolver? Existe algo que possa ser feito?
  3. RafaGomes

    [Resolvido] Select Case condicional

    Boa tarde, seria possível realizar uma consulta da seguinte forma: SELECT * FROM CARGA WHERE (CASE WHEN :VARIAVEL = 2 THEN ('2', '7') WHEN :VARIAVEL = 3 THEN ('3', '9', '10') WHEN :VARIAVEL = 4 THEN '4' WHEN :VARIAVEL = 5 THEN '5' WHEN :VARIAVEL = 6 THEN '6' END) IN AD_DIAENTREGA;
  4. asacap1000

    Página que recebe o curl/POST

    Galera estou com uma dúvida, tenho a parte de envio de dados para em Post, com encode json e curl. Já pesquisei em todos os lugares e não encontrei nada pra clarear as idéias. a parte final é essa do envio (cliente) header("Content-Type: ".$mediaType); $headers = array(); $headers[] = "Accept: ".$mediaType; $headers[] = "Accept-Charset: ".$charSet; $headers[] = "Accept-Encoding: ".$mediaType; $headers[] = "Content-Type: ".$mediaType.";charset=".$charSet; $headers[] = "Authorization: Basic ".$AuthorizationHeaderBase64; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,"contatos=$contatos"); #campos que serão enviados curl_setopt($ch, CURLOPT_USERPWD, $AuthorizationHeaderBase64); curl_setopt($ch, CURLOPT_HEADER, $headers); curl_setopt($ch, CURLINFO_HTTP_CODE, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);#ativa se for ter retorno do chamada $result = curl_exec($ch); $result2 = json_decode($result,true); curl_close($ch); if($result2 === false) { $err = 'Curl error: ' . curl_error($ch); $result2 = $err; echo "This is text".$err; } var_dump ($result2); Preciso de ajuda para entender como deve ser feito a página que será chamada, no caso lado servidor. Como pode ver tenho um header configurado e será enviado com chave de autorização agora como isso é feito do lado servidor?? Se alguém puder me ajudar, preciso entregar este webservice sexta feira 18/10. Todos os dados recebidos serão salvos no BD Oracle.
  5. Erika Fragoso

    Conexão não encerra com UTL_SMTP.QUIT

    Boa tarde Estou com problema para fechar a a conexão do UTL_SMTP. Quando executo a procedure mais de uma vez, apresenta erro: "too many open connections". Exemplo: Se executo esse bloco inteiro ele apresenta o erro a seguir: EXEC ATUALIZACAO(382002, 73, 356.000, 371.900); EXEC ATUALIZACAO(382003, 73, 373.600, 386.900); EXEC ATUALIZACAO(382004, 73, 389.600, 399.400); EXEC ATUALIZACAO(382005, 73, 117.500, 128.200); EXEC ATUALIZACAO(382006, 73, 130.900, 138.800); EXEC ATUALIZACAO(382007, 73, 146.600, 157.000); ------------ERRO--------------- 0678. 00000 - "too many open connections" *Cause: An attempt to open a connection failed because too many are already open by this session. The number of allowed connections varies as some may be in use through other components which share the same pool of allowed connections. *Action: Retry after closing some other connection. The number of connections supported is currently not adjustable. Agora se executo um por um não da erro. A impressão que tenho é que não esta fechando a conexão do UTL_SMTP. Ja tentei utilizar o UTL_SMTP.QUIT e o UTL_SMTP.CLOSE_CONNECTION dentro e fora do loop , mas não funcionou. Alguém tem alguma dica do que pode ser feito ? Segue a procedure : --Enviar o E-Mail IF bEnviaMail then --(StrDscMsg is not NULL) THEN StrCabMail := 'VERSAO : '||p_Versao ||' DIV: '||p_Division ||crlf||crlf|| 'ID Anti Novo ID KM Ini KM Fim Lin Vel Tipo H_Ini H_Fim Motivo '; StrDscMsg := StrCabMail ||crlf|| StrDscMsg; connmail := UTL_SMTP.OPEN_CONNECTION('smtp',25); FOR RegEmail IN( SELECT MR_MAIL FROM MAIL_REFRESH WHERE MR_GRUPO = 1 ) LOOP BEGIN ----connmail := UTL_SMTP.OPEN_CONNECTION('smtp',25); StrMailMsg := 'Date: ' ||TO_CHAR( SYSDATE,'dd Mon yyyy hh24:mi:ss') ||crlf|| 'From: <' ||'restricao@gmail.com'||'>' ||crlf|| 'Subject: '||'REFRESH VERSAO ' || p_Versao || TO_CHAR( SYSDATE,' dd/mm/yyyy hh24:mi:ss') ||crlf|| 'To: ' || ToEmail ||crlf|| ' Atualizações que foram retiradas e recolocadas na base ' ||crlf|| '' ||crlf|| 'Banco: ' || db_name || ' - ' || schema_name ||crlf|| '' ||crlf|| StrDscMsg ||crlf|| '' ||crlf|| '' ||crlf|| '[ATUALIZACAO]'; UTL_SMTP.HELO(connmail,'smtp'); UTL_SMTP.MAIL(connmail,'restricao@gmail.com'); UTL_SMTP.RCPT(connmail, RegEmail.MR_MAIL); UTL_SMTP.DATA(connmail,StrMailMsg); -- UTL_SMTP.QUIT(connmail); END; End Loop; UTL_SMTP.QUIT(connmail); End If; COMMIT; END;
  6. Galera salve a todos. Gostaria de saber se é possivel e se for como fazer. Tenho um select de faturamento, e nesta consulta ele me traz o numero da NF, ele me traz os ítens faturados. Gostaria de saber se´no próprio select é possível trazer o numero da NF apenas uma vez, e nas outras linhas que estarão vindo os ítens cobrados estes campos ficarem vazios. Segue exemplo hoje como está e como eu preciso. Como eu preciso: Abaixo o select SELECT A.ID_KLIENT COD, K.NAME NOME, A.BILLITE ITEM, I.DESCRIPTION DESC_ITEM, SUM(A.MNG) QUANT, SUM(ROUND(A.PREIS, 3)) VALOR, BO.NR_NF NF FROM BILL_OS_ITEM A, BILL_ITEM I, KLIENTEN K, BILL_OS BO, (SELECT T.DOCSVE_REF, D.DOCHD_DOC_ID FROM FISCAL.DOCSVE T, FISCAL.DOCHD D WHERE T.DOCSVE_DOC_PRC_ID = D.DOCHD_DOC_PRC_ID) REFE WHERE I.BILLITE = A.BILLITE AND A.ID_KLIENT = K.ID_KLIENT AND BO.NR_NF = REFE.DOCHD_DOC_ID(+) AND BO.ID_KLIENT = K.ID_KLIENT AND BO.STATUS <> '80' AND BO.ID_OS = A.ID_OS AND TRUNC(BO.DATE_EMISS) >= TO_DATE('01/09/2019', 'DD/MM/YYYY') AND TRUNC(BO.DATE_EMISS) <= TO_DATE('30/09/2019', 'DD/MM/YYYY') GROUP BY A.ID_KLIENT, K.NAME, A.BILLITE, I.DESCRIPTION, BO.NR_NF, BO.LOTE, REFE.DOCSVE_REF ORDER BY K.NAME, A.ID_KLIENT, A.BILLITE
  7. Bom dia galera, É o seguinte, possuo um banco de dados Oracle 10g instalado em um Oracle Linux. Hoje em dia faço backup apenas com Expdp, nunca usei Rman por falta de experiência e porque quando entrei a rotina de backup já existia. Sou leigo em questão Rman, pesquisei um pouco ultimamente e vi que o banco precisa estar em modo archivelog, coisa que meu banco não está, o tamanho total dos meus dbf gira em torno de 80gb. Estou com um pouco de receio de alterar para modo archivelog, pode dar algum problema? No modo archivelog há algum problema em casos de desligamento inesperados, é necessário algum comando quando o servidor ligar? O que realmente preciso verficar para ativar o archivelog? Pretendo efetuar essa mudança para trocar de hardware, já possuo um outro servidor de testes onde regularmente importo o arquivo de backup para testes, a ideia era colocar esse servidor de testes como servidor de produção.
  8. Boa tarde, Estou enfrentando um problema recorrente nas minhas queries, já tentei algumas alternativas encontradas aqui, sem sucesso. Tenho o seguinte select: select avaliacao.dt_liberacao, avaliacao.cd_pessoa_fisica, nome.nm_pessoa_fisica NOME_PCT, decode(diag.qt_resultado,871,'Desnutrição grave',872,'Desnutrição moderada',873,'Desnutrição leve', 874,'Eutrofia',875,'Sobrepeso',876,'Obesidade') from med_avaliacao_paciente avaliacao, pessoa_fisica nome, med_avaliacao_result diag where diag.nr_seq_item = 1266 and diag.nr_seq_avaliacao = avaliacao.nr_sequencia and avaliacao.cd_pessoa_fisica = nome.cd_pessoa_fisica and avaliacao.dt_liberacao is not null and ie_situacao = 'A' O que quero é trazer apenas o último registro por pessoa, um das alternativas que tentei foi dada em outro tópico pelo moderador Motta, incluindo no where o código: and avaliacao.dt_liberacao = (select max(avaliacao2.dt_liberacao) from med_avaliacao_paciente avaliacao2 where avaliacao.cd_pessoa_fisica = avaliacao2.cd_pessoa_fisica) Porém esse select só retorna um resultado... Realmente preciso entender como funciona essa lógico, porque tenho vários selects semelhantes que preciso retirar os resultados "repetidos"
  9. Estou com o seguinte problema fiz alguns cursores para exportar algumas informações para texto, porém está demorando mais de 2 horas para exportar 4 mil linhas, o problema aconteceu depois de ter incluído os registros de nível 3 e 4 algumas dessas tabelas estão sem informação não sei se seria esse o problema, todas as minhas tabelas estão indexadas. Gostaria de saber se alguém pode me ajudar a otimizar esse tempo ou me informar qual seria a melhor maneira de fazer isso, sem o nível 3 e 4 levava 5 min para gerar o mesmo resultado, agora leva mais de 2hs. Abaixo Segue o Cursor. Obrigado! --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SET SERVEROUTPUT ON; DECLARE MEU_ARQUIVO UTL_FILE.FILE_TYPE; CURSOR CR_0000 IS SELECT * FROM TBL_EFD_ICMS_0000; CURSOR CR_C100 IS SELECT * FROM TBL_EFD_ICMS_C100; CURSOR CR_C110 IS SELECT * FROM TBL_EFD_ICMS_C110; CURSOR CR_C111 IS SELECT * FROM TBL_EFD_ICMS_C111; REG_0000 CR_0000%ROWTYPE; REG_C100 CR_C100%ROWTYPE; REG_C110 CR_C110%ROWTYPE; REG_C111 CR_C111%ROWTYPE; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN MEU_ARQUIVO := UTL_FILE.FOPEN('DIRETORIO', 'SAIDAS_NEW.txt', 'w'); OPEN CR_0000; -- nivel 1 LOOP FETCH CR_0000 INTO REG_0000; EXIT WHEN CR_0000%NOTFOUND; UTL_FILE.PUT_LINE(MEU_ARQUIVO,'|'||REG_0000.REG ||'|'||REG_0000.COD_VER ||'|'||REG_0000.DT_INI ||'|'||REG_0000.DT_FIN ||'|'||REG_0000.CNPJ ||'|'||REG_0000.IND_ATIV ||'|'); OPEN CR_C100; -- nivel 2 LOOP FETCH CR_C100 INTO REG_C100; EXIT WHEN CR_C100%NOTFOUND; IF REG_C100.ID_0000 = REG_0000.ID_0000 THEN UTL_FILE.PUT_LINE(MEU_ARQUIVO,'|'||REG_C100.REG ||'|'||REG_C100.SER ||'|'||REG_C100.NUM_DOC ||'|'||REG_C100.CHV_NFE ||'|'||REG_C100.DT_DOC ||'|'||REG_C100.DT_E_S ||'|'||REG_C100.VL_DOC ||'|'||REG_C100.VL_COFINS_ST ||'|'); END IF; OPEN CR_C110; -- nivel 3 LOOP FETCH CR_C110 INTO REG_C110; EXIT WHEN CR_C110%NOTFOUND; IF REG_C110.ID_0000 = REG_0000.ID_0000 AND REG_C110.ID_C100 = REG_C100.ID_C100 THEN UTL_FILE.PUT_LINE(MEU_ARQUIVO,'|'||REG_C110.REG ||'|'||REG_C110.COD_INF ||'|'||REG_C110.TXT_COMPL ||'|'); END IF; OPEN CR_C111; -- nivel 4 LOOP FETCH CR_C111 INTO REG_C111; EXIT WHEN CR_C111%NOTFOUND; IF REG_C111.ID_0000 = REG_0000.ID_0000 AND REG_C111.ID_C100 = REG_C100.ID_C100 AND REG_C111.ID_C110 = REG_C110.ID_C110 THEN UTL_FILE.PUT_LINE(MEU_ARQUIVO,'|'||REG_C111.REG ||'|'||REG_C111.COD_INF ||'|'||REG_C111.TXT_COMPL ||'|'); END IF; END LOOP; CLOSE CR_C111; END LOOP; CLOSE CR_C110; END LOOP; CLOSE CR_C100; END LOOP; CLOSE CR_0000; DBMS_OUTPUT.PUT_LINE('Arquivo gerado com sucesso.'); --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Exception WHEN UTL_FILE.INVALID_OPERATION THEN Dbms_Output.Put_Line('Operação inválida no arquivo.'); UTL_FILE.FCLOSE(MEU_ARQUIVO); WHEN UTL_FILE.WRITE_ERROR THEN Dbms_Output.Put_Line('Erro de gravação no arquivo.'); UTL_FILE.FCLOSE(MEU_ARQUIVO); WHEN UTL_FILE.INVALID_PATH THEN Dbms_Output.Put_Line('Diretório inválido.'); UTL_FILE.FCLOSE(MEU_ARQUIVO); WHEN Others THEN Dbms_Output.Put_Line('Problemas na gravação do arquivo.'); UTL_FILE.FCLOSE(MEU_ARQUIVO); END; /
  10. Boa tarde, Estou enfrentando um problema recorrente nas minhas queries, já tentei algumas alternativas encontradas aqui, sem sucesso. Tenho o seguinte select: select avaliacao.dt_liberacao, avaliacao.cd_pessoa_fisica, nome.nm_pessoa_fisica NOME_PCT, decode(diag.qt_resultado,871,'Desnutrição grave',872,'Desnutrição moderada',873,'Desnutrição leve', 874,'Eutrofia',875,'Sobrepeso',876,'Obesidade') from med_avaliacao_paciente avaliacao, pessoa_fisica nome, med_avaliacao_result diag where diag.nr_seq_item = 1266 and diag.nr_seq_avaliacao = avaliacao.nr_sequencia and avaliacao.cd_pessoa_fisica = nome.cd_pessoa_fisica and avaliacao.dt_liberacao is not null and ie_situacao = 'A' O que quero é trazer apenas o último registro por pessoa, um das alternativas que tentei foi dada em outro tópico pelo moderador Motta, incluindo no where o código: and avaliacao.dt_liberacao = (select max(avaliacao2.dt_liberacao) from med_avaliacao_paciente avaliacao2 where avaliacao.cd_pessoa_fisica = avaliacao2.cd_pessoa_fisica) Porém esse select só retorna um resultado... Realmente preciso entender como funciona essa lógico, porque tenho vários selects semelhantes que preciso retirar os resultados "repetidos"
  11. EREGON

    Problemas com Merge em Oracle

    Olá, estou a ter problemas com o seguinte código, dando o erro: "ORA-01861: o literal não corresponde à cadeia de caracteres do formato" MERGE INTO B491_MAIN main USING( SELECT ACESS_ID, CASE WHEN (ACESS_ID IN (SELECT ACESS_ID FROM ( SELECT ACESS_ID, END_DATE_CP, SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDD'), 1, 6) || BILL_CYCLE_CODE AS REF_DATE, BILL_CYCLE_CODE, TO_CHAR(SYSDATE, 'YYYYMMDD') AS PREBILL FROM B491_MAIN WHERE EXCLUSAO = 'OK' )t WHERE TO_DATE(END_DATE_CP) < TO_DATE(REF_DATE) AND TO_DATE(END_DATE_CP) < TO_DATE(PREBILL) - 15 AND TO_DATE(REF_DATE) < TO_DATE(PREBILL) - 8 ) ) THEN 'POST_BILL' ELSE 'PRE_BILL' END AS DECISION FROM B491_MAIN WHERE EXCLUSAO = 'OK' )tabela ON(tabela.ACESS_ID = main.ACESS_ID) WHEN MATCHED THEN UPDATE SET LIST_ID = tabela.DECISION WHEN NOT MATCHED THEN INSERT (LIST_ID) VALUES('POST_BILL') ; O código dentro do "USING" corre bem. Alguma ajuda? Obrigado.
  12. asacap1000

    resultado em cada linha

    Galera estou com uma consulta que ainda não consegui entender o porque. gostaria que ela trouxesse em apenas uma linha mas não vem de forma alguma. SELECT BO.LAGER, BO.ID_OS, K.ID_KLIENT, K.SUCHBEGRIFF CNPJ_CPF, K.NAME, BI.DIV_1 LOTE, BI.DIV_10 DI_DDE, (SELECT DISTINCT DIS.ID_DISPATCHER FROM FISCAL.DOCHD DC, WMS_EADI.DISPATCHER DIS WHERE DC.DOCHD_DOC_ID = BO.NR_NF AND DC.DOCHD_RPS_DESP = DIS.SUCHBEGRIFF) COD_COMISSARIA, (SELECT DISTINCT DIS.BEZ FROM FISCAL.DOCHD DC, WMS_EADI.DISPATCHER DIS WHERE DC.DOCHD_DOC_ID = BO.NR_NF AND DC.DOCHD_RPS_DESP = DIS.SUCHBEGRIFF) COMISSARIA, BO.NR_NF, BO.DATE_BILL, BO.DATE_EMISS, --------ABAIXO OS TIPOS DE SERVIÇOS ONDE ESTÃO OCORRENDO CADA RESULTADO ELE CRIA UMA LINHA---------------- (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND WER.WERT = 'ARMAZ')) VLR_ARMAZ, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND WER.WERT = 'GER.RISCO')) VLR_GER_RISCO, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND WER.WERT = 'MOVIMENT')) VLR_MOVIMENTACAO, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND WER.WERT = 'DESUNIT')) VLR_DESUNIT, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND WER.WERT = 'PESAGEM')) VLR_PESAGEM, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND WER.WERT LIKE 'AVERBA%')) VLR_AVERBACAO, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND WER.WERT = 'FAT.MINIMO.')) VLR_FAT_MINIMO, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND BLL.BILLITE NOT IN ('21.02', '21.03') AND WER.WERT = 'OUT.SERV.')) VLR_OUTROS_SERV, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND BLL.BILLITE = '21.02' AND WER.WERT = 'OUT.SERV.')) TRANSF_IN, (SELECT SUM(ROUND(OSI.PREIS, 2)) FROM BILL_OS_ITEM OSI WHERE OSI.LAGER = BO.LAGER AND OSI.ID_KLIENT = K.ID_KLIENT AND OSI.ID_OS = BO.ID_OS AND OSI.BILLITE = BI.BILLITE AND OSI.DIV_1 = BI.DIV_1 --AND NVL(OSI.DIV_10, 'x') = NVL(BI.DIV_10, 'x') AND OSI.BILLITE IN (SELECT BLL.BILLITE FROM BILL_ITEM BLL, WERTE WER WHERE BLL.TIPO_FAT = WER.WERT AND WER.WERTE_BER = 'ITENSF' AND BLL.BILLITE = '21.03' AND WER.WERT = 'OUT.SERV.')) TRANSF_OUT FROM BILL_OS BO, BILL_OS_ITEM BI, KLIENTEN K WHERE BO.LAGER = BI.LAGER AND BO.ID_KLIENT = BI.ID_KLIENT AND BO.ID_OS = BI.ID_OS AND BO.LAGER = K.LAGER AND BO.ID_KLIENT = K.ID_KLIENT and k.id_klient = '3099' and BO.NR_NF = '121304' AND BO.STATUS = '90' AND TRUNC(BO.DATE_BILL) BETWEEN '28/08/2019' AND '28/08/2019' GROUP BY BO.LAGER, BO.ID_OS, K.ID_KLIENT, K.SUCHBEGRIFF, K.NAME, BO.DATE_EMISS, BO.NR_NF, BO.DATE_BILL, BI.BILLITE, BI.DIV_1, BI.DIV_10 Alguem consegue identificar neste select porque ele vem assim?
  13. Pessoal, instalei o oracle database XE 11g express via docker em um MacOS e até então estive utilizando normalmente, o problema é que eu acho que em um determinado tempo de uso a senha padrão do usuário SYS expira. Agora eu não consigo mais acessar, não sei como acessar o banco via terminal para alterar a senha do usuário, alguém que esteja mais acostumado consegue me dar uma ajuda?
  14. Bom dia, estou iniciando com bando de dados oracle e plsql e estou precisando de uma ajuda para criar um arquivo .bat para nossa empresa em que o usuário consiga apagar os horários do nosso banco de dados, mas não sei como fazer a procedure identificar o dado digitado na variável do .bat script do .bat @echo Off title limpeza de horarios. : inicio cls echo -------------------Informe uma data valida, apenas numeros------------------- echo . echo ------------------------------informe a data--------------------------------- set /p data = echo . echo . sqlplus usuario/senha@intancia @script.sql cls echo . : Fim echo . echo -----------------Horario apagado----------------- echo . pause O script em questão é esse, ele executa uma procedure, ela apaga os horários, o parâmetro da mesma é uma data ex: abaixo. set serveroutput on begin sp_apaga_horario('31072019'); end; / exit como eu faço para o dado salvo na variável data seja executado no parâmetro da procedure? não estou conseguindo fazer isso, estou tendo que alterar o script para data que o usuário quer apagar e somente executando o .bat digitando números aleatórios para que ele não trave, não sei como fazer para a mesma identificar esse dado estando em um script diferente. Quem souber e puder me ajudar ja agradeço desde já.
  15. asacap1000

    Ultima data independente do id

    Galera não sei o porque mas n select abaixo eu preciso mostrar o ultimo registro de uma das datas que são lançadas. SELECT IO.ID_IN_OUT TICKET, TO_CHAR(IO.TIME_ARRIVAL, 'DD/MM/YYYY HH24:MI') CHEGADA, TO_CHAR(IO.TIME_RELEASE_IN, 'DD/MM/YYYY HH24:MI') LIBERADO, TO_CHAR(IO.TIME_IN, 'DD/MM/YYYY HH24:MI') ENTRADA, SUBSTR(SP.NAME, 0, 18) TRANSPORTADORA, SUBSTR(DR.NAME, 0, 18) MOTORISTA, VE.PLATE PLACA, (SELECT DISTINCT MAX(TOS.PLATZ) DOCA FROM PICKAUF PI, AUFTRAEGE TOS, (SELECT IO.ID_IN_OUT, MAX(IO.TIME_RELEASE_PP) TIME_RELEASE_PP, IOP.DOCUMENT, MAX(IO.TIME_OUT) TIME_OUT FROM IN_OUT IO, IN_OUT_POS IOP WHERE IO.ID_IN_OUT = IOP.ID_IN_OUT --AND IO.ART_IN_OUT IN ('CA', 'CCE', 'CC') AND IO.STAT <> '80' GROUP BY IOP.DOCUMENT, IO.ID_IN_OUT) SAD WHERE PI.CHARGE = TOS.NR_AUF AND SAD.ID_IN_OUT = IO.ID_IN_OUT AND SAD.DOCUMENT(+) = REPLACE(TRANSLATE(TOS.HINW_ZUST, '/-', ' '), ' ') GROUP BY SAD.ID_IN_OUT) DOCA FROM IN_OUT IO, SPEDITEURE SP, VEHICLE VE, TRACTOR TR, DRIVER DR WHERE IO.STAT <> '80' AND IO.TIME_ARRIVAL IS NOT NULL AND TR.ID_TRACTOR = IO.ID_TRACTOR AND DR.ID_DRIVER = IO.ID_DRIVER AND VE.ID_VEHICLE = IO.ID_VEHICLE AND IO.TIME_RELEASE_PP IS NULL AND SP.ID_SPEDITEUR = IO.ID_SPEDITEUR AND IO.ART_IN_OUT IN ('CA', 'CC', 'CCE', 'CV') and rownum = '1' ORDER BY TO_CHAR(IO.TIME_RELEASE_IN, 'DD/MM/YYYY HH24:MI') Neste Select temos as datas de CHEGADA, LIBERADO, ENTRADA. eu preciso mostrar o ultimo registro do LIBERADO. Eu já fiz um max porém não retornou.Ela será utilizada em um telão no pátio de uma empresa. O telão será desta forma
  16. Galera preciso de ajuda, Meu campo no banco de data é data/hora, e preciso ver a hora. Quando eu faço o select me retorna apenas a data. Realizei o debug e vi que esta retornando apenas a data como varchar. Conseguem me ajudar ? Ja tentei diversas conversões de data. To char, To date , Date , Strtotime ... Nada funcionou. Uso PHP 5.6.40 e banco de dados Oracle. Minha necessidade é mostrar a data e hora do evento. Alguem conhece uma solução ? Formato no meu banco : 25.07.2019 05:33:00 Meu codigo: SELECT : $sql='SELECT tr.tm_prf_act as prf, tr.tm_cod_of, ev.ev_nom_mac , un.dt_ini_parada, un.dt_fim_parada, un.cod_motivo, un.cod_mot_despachador FROM unl_trens_parados un,trens tr, elem_via ev WHERE un.id_trem_act = tr.tm_id_trm AND un.id_sb = ev.ev_id_elm AND un.dt_ini_parada > SYSDATE -1 AND un.id_posto = 2 AND un.cod_motivo IN (20,28,26,50,15,30) AND un.dt_fim_parada IS NOT NULL ORDER BY un.dt_ini_parada desc '; Conexão : $stid=oci_parse($ora_conexao,$sql); oci_execute($stid); Chamando a data somente para testar : $teste = oci_result($stid,'DT_INI_PARADA'); --> Estou testando o campo de data echo date('d/m/Y H:m:s', strtotime($teste)); -> Chamando a data Debug ( Me retorna apenas data "25/07/2019") $var = $teste; -> Debugando var_dump($var); > Debugando die(); > Debugando
  17. Pessoal, bom dia.Preciso calcular em horas e minutos a diferença entre datas com horas e minutos.Exemplo 1:Data Inicial: 01/06/2006 10:30Data Final: 02/06/2006 11:00Preciso que o retorno seja: 23:30Exemplo 2:Data Inicial: 01/06/2006 10:30Data Final: 02/06/2006 14:00Preciso que o retorno seja: 27:30Tentei o seguinte código abaixo, porém ele dá uma diferença de 1 hora a mais. Alguém pode me ajudar? Ou me passar outra forma de fazer? Obrigada! 1 2 3 4 5 select round(((to_number(to_date('02/06/2006 11:00','DD/MM/RRRR HH24:MI') - to_date('01/06/2006 10:30','DD/MM/RRRR HH24:MI')) * 1440))/60)||':'|| round((to_number(to_date('02/06/2006 11:00','DD/MM/RRRR HH24:MI') - to_date('01/06/2006 10:30','DD/MM/RRRR HH24:MI')) * 1440) -1440) from dual
  18. Olá, preciso transformar a seguinte subquery para utilizar como uma table no join NVL((SELECT X.MPE_META FROM (SELECT MPE_IDC_ID, MPE_META FROM META_PERSONALIZADA_SLA M ORDER BY M.MPE_META DESC) X WHERE ROWNUM = 1 AND X.MPE_IDC_ID = IDC_ID AND X.MPE_META <= APR_NEGOCIACAO_SLA), IDC_META) eu utilizo esse trecho em vários lugares dentro da minha procedure, então queria utilizar como "LEFT JOIN", assim o custo seria menor da procedure caso seja possivel e alguem puder ajuda
  19. emerod

    Erro ORA-31641(EXPDP)

    Boa tarde! Estou montando uma rotina de backup para um banco de dados oracle, com o seguinte comando: expdp compiere/compiere@COMPIERE directory=compierebkp schemas=compiere dumpfile=ExpDat.dmp NOLOGFILE=Y Porém está retornando estes erros: Conectado a: Oracle Database 11g Release 11.2.0.4.0 - 64bit Production ORA-39001: valor de argumento invßlido ORA-39000: especificaþÒo de arquivo de dump incorreto ORA-31641: nÒo Ú possÝvel criar o arquivo de dump "c:\compiere2\data/ExpDat.dmp" ORA-27040: erro ao criar arquivo, nÒo foi possÝvel criar o arquivo Linux-x86_64 Error: 2: No such file or directory Additional information: 1 O banco está instalado em uma maquina linux e eu estou montando o backup em uma maquina linux. Segue a tela com o detalhamento do erro: Alguém pode me ajudar? Obrigado Emerson Ricardo Rodrigues
  20. Ola Pessoal! Aqui na minha empresa não existe um usuário por pessoa e sim um usuário único para todos utilizarem (regras da empresa isso). A forma que eles dizem que controla quem esta acessado o banco é pelo IP da maquina. Como eu faço para saber qual USUÁRIO, IP E NOME DA MAQUINA que está fazendo SELECT, UPDATE, INSERT, DELETE em uma determinada tabela(s)? Detalhe, não dou o administrador do banco, somente desenvolvedor. Estou perguntando isso, porque tem outras diretorias que acessão algumas tabelas que são de minha responsabilidade e não tenho noção se está sendo feito alguma modificação nelas. Abraços,
  21. samuelpanamericana

    Erro de permissão Oracle

    Olá Pessoal, estou com um problema com relação ao Oracle em nossas máquinas aqui! Quando tentamos acessar o SGT (sistema de gerenciamento textil) através de um usuário de rede comum sem privilégios administrativos na máquina ele apresenta o seguinte erro ERRO: "Oracle não instalado ou seu caminho é inválido. Consulte o seu superior [\Bin\ORA803.dll]" Código de erro 803 O usuário não tem acesso ao Oracle Path por ser um usuário comum sem privilégios administrativos, devido a problemas de segurança não queremos deixar os usuários com privilégios administrativos evitando assim problemas com a alteração e instalação de programas, abrimos esse tópico para resolver este problema da necessidade de ser um administrador da máquina para executar o SGT, precisamos que usuários sejam comuns para acessá-lo! Confirmei que o usuário está tendo privilégios apropriados no caminho binário Oracle. Os usuários têm acesso completo ao caminho "C: \ Oracle", eu já configurei dessa maneira: Cliquei com o botão direito do mouse na pasta oracle/segurança/usuários do domínio/controle total A única maneira que nosso programa(SGT) pode encontrar a pasta oracle é definir os usuários do domínio para o grupo de administradores Porém tivemos alguns problemas ao fazer isso como por exemplo usuarios instalando programas de terceiro e efetuando alterações nas máquinas. Se alguém já passou pela mesma situação ou situação parecida eu ficaria grato se pudessem ajudar!! Atenciosamente Samuel
  22. felipeaggs

    Totalização de valores por itens

    Boa-tarde, pessoal! Estou com um problema e não consigo resolvê-lo de forma alguma. Vou exemplificar aqui o que acontece. Tenho duas tabelas, uma tabela é relativa a registro de nota fiscal, estruturada da seguinte forma (edição simplificada). TGFCAB ID | DTNEG | NUMNOTA | CODTIPOPER | CODEMP | 1 | 01/01/2019 | 1000 | 50 | 7 | 2 | 02/01/2019 | 1001 | 50 | 7 | 3 | 02/01/2019 | 1002 | 50 | 7 | 4 | 03/01/2019 | 1003 | 50 | 7 | TGFITE ID | NUMNOTA | QTDNEG| VLRUNIT | VLRTOT | CODVOL | PRODUTONFE 1 |1001 | 5 | 10 | 50 | UN | 10 2 |1001 | 10 | 700 | 7000 | TN | 11 3 |1002 | 3 | 20 |60 | UN | 12 4 |1003 | 20 | 7 | 140 | UN | 10 5 |1003 | 100 | 7 | 700 | UN | 10 Eu preciso realizar um select de forma que traga as Informação abaixo. PRODUTO| QTDNEGMES | VALORTOTAL 10 | 125 | 890 11 | 10 | 7000 12 | 3 | 60 Já tentei de todas as formas possíveis, porém eu não consigo de forma alguma. Por favor, alguém poderia me ajudar?
  23. Abran

    PL SQL (Select dentro do LOOP)

    Gostaria de poder fazer um SELECT dentro do LOOP igual ao exemplo abaixo. Esse exemplo não deu certo, se tirar esse SELECT que está dentro do LOOP, tudo funciona. O problema está no Select dentro do LOOP que nao aceita. ORA-01403: dados não encontrados A ideia é, Z45 grava cliente, e Z46 grava títulos em aberto. Toda vez que rodar, deverá checar se existe novos títulos que ainda não foram gravados, e só gravar os que ainda não foram. Alguem sabe alguma maneira de fazer o que preciso ? DECLARE v_CODCLI VARCHAR2 (6); vPREFIXO VARCHAR2 (3); vNUM VARCHAR2 (9); vPARCELA VARCHAR2 (3); BEGIN v_CODCLI := '0'; FOR V_FUNC IN ( SELECT E1_FILIAL, A1_COD, A1_LOJA, A1_PESSOA, E1_PREFIXO, E1_NUM, E1_PARCELA, E1_TIPO, E1_NATUREZ, E1_EMISSAO, E1_VENCREA, E1_VALOR, CASE WHEN TO_DATE('20190627', 'yyyymmdd') - TO_DATE(E1_VENCTO, 'yyyymmdd') < 0 THEN 0 ELSE TO_DATE('20190627', 'yyyymmdd') - TO_DATE(E1_VENCTO, 'yyyymmdd') END ATRASO FROM SE1010 SE1 INNER JOIN SA1010 A1 ON A1.A1_COD = E1_CLIENTE AND A1_LOJA = E1_LOJA AND A1.D_E_L_E_T_ = SE1.D_E_L_E_T_ WHERE SE1.D_E_L_E_T_ = ' ' ORDER BY A1_LOJA, A1_COD ) LOOP SELECT Z46_PREFIX, Z46_NUM, Z46_PARCEL, Z46_TIPO, Z46_NATURE INTO vPREFIXO, vNUM, vPARCELA, vTIPO, vNATUREZ FROM Z46010 Z46 WHERE Z46_PREFIX = V_FUNC.E1_PREFIXO AND Z46_NUM = V_FUNC.E1_NUM AND Z46_PARCEL = V_FUNC.E1_PARCELA AND D_E_L_E_T_ = ' ' ; IF vPREFIXO || vNUM || vPARCELA != V_FUNC.E1_PREFIXO || V_FUNC.E1_NUM || V_FUNC.E1_PARCELA THEN IF V_FUNC.A1_COD <> v_CODCLI THEN v_CODCLI := V_FUNC.A1_COD; INSERT INTO DADOSADV.Z45010 ( Z45_RECNO, Z45_FILIAL, Z45_CODCLI, Z45_LOJA, Z45_PESSOA, Z45_DTCAD ) VALUES ( (SELECT CASE WHEN MAX(Z45_RECNO) IS NULL THEN 1 ELSE MAX(Z45_RECNO) + 1 END Z45_RECNO FROM Z45010) , V_FUNC.E1_FILIAL, V_FUNC.A1_COD, V_FUNC.A1_LOJA, V_FUNC.A1_PESSOA, TO_CHAR(SYSDATE, 'YYYYMMDD') ); COMMIT; END IF; INSERT INTO DADOSADV.Z46010 ( Z46_RECNO, Z46_RECZ45, Z46_STATIT, Z46_PREFIX, Z46_NUM, Z46_PARCEL, Z46_TIPO, Z46_NATURE, Z46_VALOR, Z46_ATRASO, Z46_DTCAD ) VALUES ( (SELECT CASE WHEN MAX(Z46_RECNO) IS NULL THEN 1 ELSE MAX(Z46_RECNO) + 1 END Z46_RECNO FROM Z46010) , (SELECT CASE WHEN MAX(Z45_RECNO) IS NULL THEN 1 ELSE MAX(Z45_RECNO) END Z45_RECNO FROM Z45010), 0, V_FUNC.E1_PREFIXO, V_FUNC.E1_NUM, V_FUNC.E1_PARCELA, V_FUNC.E1_TIPO, V_FUNC.E1_NATUREZ, 20, V_FUNC.ATRASO, TO_CHAR(SYSDATE, 'YYYYMMDD') ); COMMIT; END IF; END LOOP; END;
  24. asacap1000

    Ultima nota fiscal não retorna.

    Galera estou com uma consulta que travei em uma situação. Eu preciso buscar as ultimas informações de uma Nota fiscal. NUMERO DA NF | DATA FATURAMENTO | COBERTURA neste select ele utiliza como parâmetro o lote cadastrado no sistema de estoque, e ao pesquisar ele volta a Data do faturamento e cobertura corretos porém o numero da NF é outro bem antiga. O que posso estar fazendo errado nesta consulta?? segue a query SELECT TO_CHAR(MAX(OS.NR_NF)) NOTA, TO_CHAR(MAX(TO_DATE(REPLACE(OS.DATE_BILL, '/.', ''), 'dd/mm/yy')), 'dd/mm/yyyy') DATA_FAT, TO_CHAR(MAX(TO_DATE(REPLACE(IT.DIV_6, '/.', ''), 'dd/mm/yy')), 'dd/mm/yyyy') COBERTURA FROM BILL_OS_ITEM IT, BILL_OS OS, BILL_ITEM B WHERE OS.LAGER = IT.LAGER AND OS.ID_KLIENT = IT.ID_KLIENT AND OS.ID_OS = IT.ID_OS AND IT.LAGER = OS.LAGER AND IT.ID_OS = OS.ID_OS AND IT.BILLITE = B.BILLITE AND OS.STATUS <> '80' --AND OS.NR_NF = '119247' AND IT.DIV_1 = 'EX16208816' A nota fiscal que deveria retornar ´seria a 119247, porém vem 99336.
×

Important Information

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