Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''Oracle''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento Web
    • Desenvolvimento frontend
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets e outros ambientes
    • Desenvolvimento com Wordpress
    • Desenvolvimento de apps
    • Desenvolvimento ágil
    • Desenvolvimento de Games
    • Banco de Dados
    • Design e UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • Boteco iMasters

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 86 registros

  1. 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.
  2. Olá Pessoal meu nome é Jhonatan da Dev Aprender não quero que fiquemos para trás do pessoal da gringa, aqui no Brasil quero trazer também cursos de qualidade para a comunidade E por isso ontem lancei este : "Curso SQL Completo 2019 [Iniciantes] + Desafios e Muita Prática" Espero que ele possa ajudar o máximo de pessoas possível, se houver algum MOD que possa me ajudar caso não seja permitido postar este conteúdo aqui, eu posso remover, de qualquer forma bom aprendizado pessoal! https://www.youtube.com/watch?v=rX2I7OjLqWE Grade do Curso: 00:00:00 - 00:00:36 - O que você irá aprender no curso Aula 00 - Instalando SQL Server e SSMS 00:00:36 - 00:05:34 Aula 01 - Restaurando um banco de dados 05:40 - 12:30 Aula 02 - Select + Desafios 00:12:30 - 00:18:59 Aula 03 - Disctinct + Desafios 00:18:59- 00:34:02 Aula 04 - Where + Desafios 00:21:57 - 34:11 Aula 05 - Count + Desafios 00:34:02 - 00:38:08 Aula 06 - Top + Desafios 00:38:10 - 00:40:01 Aula 07 - Order By + Desafios 00:40:01 - 00:46:20 Aula 08 - Between 00:46:29 - 00:51:46 Aula 09 - In 00:51:55 - 00:55:31 Aula 10 - Like 00:55:40 - 01:00:25 Aula 11 - Desafios fundamentos SQL 00:01:06 - 01:06:33 Aula 12 - Min Max Sum Avg - 01:06:40 - 01:10:50 Aula 13 - Group By 01:11:00 - 01:24:18 Aula 14 - Having 01:24:18 - 01:32:40 Aula 15 - As 01:33:00 - 01:38:58 Aula 16 - Inner Join 01:30:05 - 01:55:17 Aula 17 -Tipos de Joins 01:55:25 - 02:03:56 Aula 18 - Outer Join 02:04:05 - 02:09:15 Aula 19 - Union 02:09:20 - 02:15:13 Aula 20 - Datepart 02:15:20 - 02:21:12 Aula 21 - Manipulação de String 02:21:18 - 02:27:43 Aula 22 - Operações Matemáticas 02:27:47 - 02:32:08 Aula 23 - Subquery 02:32:12 - 02:43:06 Aula 24 - Self Join 02:43:06 - 02:53:09 Aula 25 - Tipos de Dados 02:53:13 - 03:01:29 Aula 26 - Chave primária e estrangeira 03:01:35 - 03:08:50 Aula 27 - Create Table 03:09:00 - 03:19:49 Aula 28 - Insert Into 03:19:49 - 03:26:39 Aula 29 - Update 03:26:45 - 03:30:14 Aula 30 - Delete 03:30:20 - 03:33:05 Aula 31 - Alter Table 03:33:10 - 03:39:48 Aula 32 - Drop Table 03:39:55 - 03:42:55 Aula 33 - Check Constraint 03:43:00 - 03:46:18 Aula 34 - Not Null Constraint 03:47:03 - 03:53:38 Aula 35 - Unique Constraint 03:53:43 - 03:52:41 Aula 36 - Views 03:52:41 - 03:55:30 Considerações Finais 03:55:31
  3. 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"
  4. 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"
  5. 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"
  6. 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; /
  7. 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.
  8. 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?
  9. 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?
  10. Suporte Risti

    Criar .bat e armazenar variavel do mesmo em procedure plsql

    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á.
  11. 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
  12. frlopes

    Retorno em horas e minutos ( 28:15 )

    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
  13. 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
  14. Kennyguedes

    Transformar Subquery em table para um join

    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
  15. 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;
  16. 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?
  17. 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.
  18. Bom dia amigos, me deparei com um problema estou criando uma procedure que precisa criar uma PK em uma tabela ja existente e apos isso realizar um insert porem quando existe um dado duplicado por algum motive a exception DUP_VAL_ON_INDEX NAO FUNCIONA o insert funcionou mas quando testo uma situacao de duplicacao eu recebo um erro oracle 02260 e diz que a tabela somente pode ter uma PK porem a exception deveria tartar o erro , eu vou deixar o codigo a baixo par se alguem puder me ajudar isso desde ja agradeco a todos, CREATE OR REPLACE PROCEDURE MANUAL_CLIENT_INSERT_FIP AS Y_CONT NUMBER := 0; W_CONT NUMBER; BEGIN EXECUTE IMMEDIATE 'ALTER TABLE TEMP_FIP_CLIENT_HISTORIC ADD PRIMARY KEY (CLIENTKEY)'; FOR REG IN (SELECT LOADDATE, CLIENTKEY, CLIENTSEGMENT, CLIENTNAME, 'UK' AS COUNTRY, 'FIP' AS PROGRAM, 'TPL' AS COVERAGE FROM TEMP_FIP_CLIENT_HISTORIC ) LOOP BEGIN W_CONT := NVL(W_CONT, 0)+ 1; DBMS_OUTPUT.PUT_LINE('RECORDS' ||'-'|| W_CONT ||' '||REG.LOADDATE||' '||REG.CLIENTKEY||' '||REG.CLIENTSEGMENT||' '|| REG.CLIENTNAME||' '||'UK'||' '||'FIP'||' '||'TPL'); INSERT INTO GV_MANUAL_CLIENT(LOADDATE, CLIENTKEY, CLIENTSEGMENT, CLIENTNAME, COUNTRY, PROGRAM, COVERAGE ) VALUES (SYSDATE, REG.CLIENTKEY, REG.CLIENTSEGMENT, REG.CLIENTNAME, REG.COUNTRY, REG.PROGRAM, REG.COVERAGE); EXCEPTION WHEN DUP_VAL_ON_INDEX THEN DBMS_OUTPUT.PUT_LINE(W_CONT ||' '||'DUPLICATE KEY'); END; END LOOP; END;
  19. matlaureto

    Oracle outer join depreciado

    Pessoal, boa tarde!!! Gostaria de uma opinião de vocês... sempre trabalhei no Oracle utilizando left join, inner join, e não a marcação de join especifica da oracle (+). Quando estudei para a certificação 1Z0-047, OCE SQL Expert, lá mesmo falava para não utilizar a marcação (+) por se tratar de um código depreciado. Alguem sabe informar se essa marcação realmente é depreciada? Estou trabalhando em uma empresa onde o padrão dos joins é com esta marcação da Oracle, então to buscando informações sobre isso. Alguem sabe me orientar quanto a isso? Muito obrigado a todos!!
  20. Viniciusr9

    Erro no APEX_APPLICATION.G_F01 - ORACLE APEX

    Estou com um problema com esse esse script abaixo: tenho um checkbox na minha página ( não em relatório, na página mesmo, um item de página) e gostaria que o mesmo ao ser clicado e pressionado um botão submit realizasse o procedimento do script, porém ele faz o processo mas não me retorna nada. acredito que o problema seja no LOOP do APEX_APPLICATION.G_F01 . Alguém consegue me ajudar com isso? DECLARE V_DS_COLAB VARCHAR2(50); BEGIN APEX_DEBUG.MESSAGE('CHECK:'|| vCHECK); FOR A IN 1 .. APEX_APPLICATION.G_F01.COUNT LOOP BEGIN SELECT C.DS_COLABORADOR INTO V_DS_COLAB FROM COLABORADOR C WHERE C.USER_APEX = V('APP_USER') ; EXCEPTION WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR(-20001,'NENHUM REGISTRO ENCONTRADO!'); WHEN TOO_MANY_ROWS THEN RAISE_APPLICATION_ERROR(-20002,'MAIS QUE UM REGISTRO ENCONTRADO!'); WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20003,'ERRO NAO PREVISTO' || SQLERRM) ; END; :P12_SUPER := (V_DS_COLAB || ' - ' || TO_CHAR(SYSDATE,'DD/MM/RRRR HH24:MI')); UPDATE COMPETENCIA_COLABORADOR CC SET FINALIZADO_SN = 'S' WHERE CC.CD_EQUIPE = :P12_EQUIPE AND CC.CD_COMPETENCIA = (SELECT C.CD_COMPETENCIA FROM COMPETENCIA C WHERE TO_DATE(LPAD(C.MES_COMPETENCIA,2,'0') || '/' || C.ANO_COMPETENCIA,'MM/RRRR') = TO_DATE(:P12_COMPETENCIA,'MM/RRRR')); END LOOP; END;
  21. Estou tentando mandar uma "Blind Copy" pelo nossa Procedure de envio de email , pela documentação estaria ok , mas não está enviando nem gerando qualquer erro , o código está abaixo , os itens sensíveis foram trocados por "x" O que posso estar fazendo de errado ? SP : create or replace PROCEDURE ENVIA_EMAIL_CLOBHBC (ds_email_origem_w varchar2, ds_email_destino_p varchar2, ds_assunto varchar2, p_attach_clob IN CLOB DEFAULT NULL, p_httm in varchar2 default 'S', p_log out varchar2, p_nome_destino in varchar2 default null) is l_step PLS_INTEGER := 12000; ds_smtp_w varchar2(20) := 'xx.xx.x.xx'; /* Abre conex?o SMTP e HTTP */ CONEXAO UTL_SMTP.CONNECTION; vs_origem varchar2(100) := ds_email_origem_w; -- vs_para varchar2(100); vs_cc varchar2(100); -- PROCEDURE send_header(name IN VARCHAR2, header IN VARCHAR2) AS BEGIN UTL_SMTP.WRITE_DATA(CONEXAO, name || ': ' || header || UTL_TCP.CRLF); END; BEGIN /* Abre conex?o com um Servidor SMTP(Simple Mail Transfer Protocol), porta padr?o SMTP e 25 */ CONEXAO := utl_smtp.open_connection (ds_smtp_w,25); UTL_SMTP.HELO (CONEXAO, ds_smtp_w); /* Endereco do servidor de SMTP */ --utl_smtp.command (CONEXAO, 'AUTH LOGIN'); --utl_smtp.command (CONEXAO, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw((ds_user_id_w))))); --UTL_SMTP.COMMAND (CONEXAO, UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW((DS_SENHA_SMTP_W))))); UTL_SMTP.MAIL (CONEXAO, ('<' || vs_origem || '>')); /* E-mail de quem esta mandando */ -- se estiver em lista separado por ";" manda para o 1º como "para" e para o 2º como CC (copia) /* Para quem vou mandar */ IF INSTR(ds_email_destino_p,';') = 0 THEN vs_para := ds_email_destino_p; UTL_SMTP.RCPT (CONEXAO, ('<' || ds_email_destino_p || '>')); /* Para quem vou mandar */ ELSE vs_para := SUBSTR(ds_email_destino_p,1,INSTR(ds_email_destino_p,';')-1); vs_cc := SUBSTR(ds_email_destino_p,INSTR(ds_email_destino_p,';')+1,length(ds_email_destino_p)); UTL_SMTP.RCPT (CONEXAO, ('<' || vs_para || '>')); /* Para quem vou mandar original */ UTL_SMTP.RCPT (CONEXAO, ('<' || vs_cc || '>')); /* Para quem vou mandar copia */ END IF; UTL_SMTP.OPEN_DATA(CONEXAO); If upper(p_httm) <> 'S' Then send_header('Subject','=?iso-8859-1?Q?' ||UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))); Else --send_header('Subject','=?iso-8859-1?Q?' ||UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))|| '?='); send_header('Subject',UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))); end if; If upper(p_httm) <> 'S' Then UTL_SMTP.write_data(CONEXAO, 'Content-Type: text/html; charset="UTF-8"' || utl_tcp.CRLF); Else UTL_SMTP.write_data(CONEXAO, 'Content-Type: text/html; charset="UTF-8"' || utl_tcp.CRLF ); end if; send_header('From',ds_email_origem_w); --se denominou o destino formata o envio , senão vai o proprio email --tratamento diferente do "from" pois este é em geral dinamico --feito pela stored procedure chamadora if trim(p_nome_destino) is null then send_header('To',vs_para); else send_header('To','"'||trim(p_nome_destino)||'" <'||vs_para||'>'); end if; If Trim(vs_cc) is not null Then--copia (nao formata o destino) send_header('CC',vs_cc); end if; send_header('BCC',vs_origem);---<<< A LINHA COM PROBLEMA PARECE SER ESTA *********************** FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) - 1 )/l_step) LOOP UTL_SMTP.WRITE_DATA(CONEXAO, DBMS_LOB.substr(p_attach_clob, l_step, i * l_step + 1)); END LOOP; UTL_SMTP.CLOSE_DATA(CONEXAO); UTL_SMTP.QUIT (CONEXAO); Exception when OTHERS then utl_smtp.quit (conexao); p_log := 'Erro: ' || SQLERRM; END ENVIA_EMAIL_CLOBHBC;
  22. RAFAEL C D EMELO

    [Resolvido] Cálculo de datas

    Ola galera estou com uma duvida sou novo trabalhando com Oracle e preciso calcular A diferenca entre datas no caso seria Ver as datas de um contrato e primeiramente calcular se ele esta ativo no mes nesse se sim ele precisaria calcular quantos dias ele esta ativo NO mesmo por exemplo ele pode ter iniciado o contraro no dia 1 ou no dia 16 ai calcularia os dias que ele precisa me pagar pelo seguro mas estou com duvidas de como posso calcular A quantidades de dias nesse caso se alguém puder ajudar fico muito agradecido.
  23. Viniciusr9

    Horas entre datas

    Boa tarde pessoal, basicamente eu preciso do retorno de horas entre duas datas, porém tenho condições a tratar . basicamente tenho 2 colunas ( dt_fim e dt_ini ) que representam data final e data inicial. Preciso da diferença entre as duas retornada em uma outra coluna (hr_ausencias) , porém a cada dia posso computar no máximo 9 horas, e desconsiderar finais de semana e feriados( esses cadastrados em uma tabela) . Seria melhor tratar isso com uma Trigger , um Script PL/SQL , como me sugerem? Agradeço quem puder ajudar.
  24. edvaldo joviano de paula

    Comparação de valores iguais em linhas diferentes de uma consulta

    Prezados, boa tarde! Preciso de uma ajuda sendo possível: Tenho o seguinte cenário em uma consulta ( formação de kits de produtos tendo como produto principal um valor igual, ex: produto 1 é formado pelos produtos 2 e 3) select codkit, produtos from kit where codkit = 1 --- ---- 1 2 1 3 Percebem que o resultado traz o codigo do kit (1) e os produtos que compoem este kit (2,3), porem o produto 2 tambem faz parte do kit 4 junto com o produto 10 e produto 3 faz parte do kit 5 junto com o produto 11 sendo: kit 1 (2,3) kit 4 (2,10) kit 5 (3,11). Eu preciso de uma ajuda sobre alguma função que ao comprar os produtos 2 e 3 e estes estando na mesma nota fiscal (select produtos from notafiscal = x) traga o resultado do kit que estes dois produtos juntos formam, exemplo, ao pesquisar (select produtos from notafiscal = x) nesta nota existir os produtos 2 e 3 traga o resultado 1, se na nota existir os produtos 2 e 10 traga o resultado 4 e se existir na consulta dos itens da nota os itens 3 e 11 o resultado seja 5. Caso na pesquisa eventualmente existir por exemplo 10 unidades do item 2, 5 unidades do item 3 e 5 unidades do item 10, o resultado deve ser 1 e 4 pois 5 unidades do 2+5 unidades do 3 forma o kit 1 e 5 unidades do 2+ 5 unidades do 10 formam o kit 4. Espero ter explicado de forma a ser entendido e agradeço a ajuda.
×

Informação importante

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