Ir para conteúdo
Fórum Script Brasil

Shinka

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Shinka postou

  1. Estou tendo algumas complicações quanto ao código que estou criando no ORACLE Database Express Edition. Eu havia feito com parâmetros mas me falaram que não seria necessário, pois o próprio BD iria localizar os campos que estavam sendo utilizado. Ainda estou aprendendo quanto ao uso de Procedures/Triggers/Jobs, por isso acabo ouvindo o conselho amigo. A idéia é a seguinte. Duas tabelas (OCORRENCIA e HISTORICO), onde a primeira é onde ficam os registros de ocorrencias feitas durante o dia e a histórico mantem registro dos registros de OCORRENCIA a cada 1 hora. CREATE TABLE OCORRENCIA ( ID_OCORRENCIA NUMBER NOT NULL, -- PK da tabela gerada pela sequence SEQ_OCORRENCIA LATITUDE NUMBER(10, 0) NOT NULL, -- Latitude da ocorrência LONGITUDE NUMBER(10, 0) NOT NULL, -- Longitude da ocorrência FOTO BLOB, -- Foto da ocorrência COMENTARIO VARCHAR2(100), -- Comentário opcional da ocorrência DATA DATE NOT NULL, -- Data da ocorrência neste formato: dd/mm/aaaa HORA TIMESTAMP NOT NULL, -- Hora da ocorrência neste formato: hh:mm:ss CONFIRMACAO NUMBER(3,0), -- Número de confirmações da ocorrência FINALIZADO NUMBER(1,0), -- Os valores podem ser 0 ou 1, sendo que 1 representa a ocorrência que está finalizada e 0 não finalizada TURNO NUMBER(1,0) -- Os valores podem ser: -- 0: manhã (6h-11h59min59s) -- 1: tarde (12h-17h59min59s) -- 2: noite (18h-23h59min59s) -- 3: madrugada (00h-5h59min59s) ); CREATE TABLE HISTORICO( ID_HISTORICO NUMBER NOT NULL, -- PK da tabela gerada automaticamente pela função SEQ_HISTORICO() LATITUDE NUMBER(10, 0) NOT NULL, -- Latitude da ocorrência LONGITUDE NUMBER(10, 0) NOT NULL, -- Longitude da ocorrência DATA DATE NOT NULL, -- Data da ocorrência neste formato: dd/mm/aaaa TURNO NUMBER(1,0), -- Os valores podem ser: -- 0: manhã (6h-11h59min59s) -- 1: tarde (12h-17h59min59s) -- 2: noite (18h-23h59min59s) -- 3: madrugada (00h-5h59min59s) DIA_SEMANA NUMBER(1,0) -- Os valores podem ser: -- 0: segunda-feira -- 1: terça-feira -- 2: quarta-feira -- 3: quinta-feira -- 4: sexta-feira -- 5: sábado -- 6: domingo ); Pesquisei quanto a uma forma de atualizar o BD e me falaram sobre JOBS, tentei criar mas não sei se está corrento da forma que fiz. dbms_job.submit( what => prc_atualiza_ocorrencias, next_date => sysdate + 1/24, -- Inicia o JOB depois de uma hora Interval => 'sysdate + 1/24'); -- Executa a cada uma hora O problema que parece estar ocorrendo é na Procedure que criei, ele deve fazer a inserção dos dados de OCORRENCIA em HISTORICO a cada 12 horas ou quando o campo FINALIZADO estiver flegado em OCORRENCIA: CREATE PROCEDURE prc_atualiza_ocorrencias IS BEGIN -- Insere na tabela HISTORICO registros da tabela OCORRENCIA. Apenas são registrado os dados que tenham passado 12 horas após o cadastro. -- Essa mesma linha é deletada da tabela OCORRENCIA IF sysdate >= (HORA + 12/24) OR FINALIZADO = 1 THEN BEGIN INSERT INTO HISTORICO(LATITUDE, LONGITUDE, DATA, TURNO, DIA_SEMANA) (SELECT LATITUDE, LONGITUDE, DATA, TURNO, to_char(DATA, 'D') FROM OCORRENCIA WHERE DATA < SYSDATE - 2/24); DELETE FROM OCORRENCIA WHERE DATA < SYSDATE - 2/24; END; END IF; -- END; Será que alguém poderia me dar umas dicas de programação em BD? Atualmente estou trabalhando com PowerBuilder e meu contato com BD no máximo é ao utilizar o SQL Navigator que utilizamos acaba sendo mais para SELECTs, INSERTs e DELETEs. Se alguém tiver um local para baixar o MySQL seria uma boa, não estou me encontrando com esse ORACLE Database Express Edition.
×
×
  • Criar Novo...