Ir para conteúdo
Fórum Script Brasil

Shinka

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Shinka

Shinka's Achievements

0

Reputação

  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...