quarta-feira, 27 de fevereiro de 2008

SITE - inserir cliente

--0. Verificar em paralelo no Logix os cadastros relacionados: vdp3610 e vdp0110;

--1. consultar na tabela de clientes do logix se possui o cliente:
SELECT * FROM clientes WHERE NOM_CLIENTE LIKE '%GRECA%' -- cod_cliente = 322

--2. consultar na tabela de access-cliente pra saber se jah possui o cliente
SELECT * FROM ACCESS_CLIENTE WHERE razao_social LIKE '%GRECA%' OR NOME LIKE '%GRECA%' order by cd_cliente desc -- NÃO ENCONTROU

--3. cadastrar na tabela access-cliente o cliente
SELECT Max(CD_CLIENTE) FROM ACCESS_CLIENTE -- 242 (PARA SABER QUAL SERÁ O PRÓXIMO CÓDIGO A SER CRIADO)
INSERT INTO ACCESS_CLIENTE
(cd_cliente,cliente_gas,prazo_vencimento,cd_atividade,nome,razao_social,endereco,cep,municipio,sigla_uf,
ddd_ddi,telefone,cgc,icms_tp_base,status,dt_cadastramento,segunda,terca,quarta,quinta,sexta,sabado,domingo,
condicao_pagamento,instrucao1,instrucao2,prazo_protesto) VALUES
(243,1,10,32,'GRECA ASFALTO','GRECA DISTRIBUIDORA DE ASFALTO LTDA','AV. PARQUE NOTE II, 201','60000-000','FORTALEZA','CE',
'0085','34526070','02351006001291',3,1,'27/02/2008' ,1,1,1,1,1,1,1,
1,72,24,15)

--4. cadastrar no de_para o cliente novo -- ORACLE-->ACCESS
SELECT * FROM vdp_depara_962 WHERE referencia='CLIENTES' ORDER BY CAST(COD_DE AS INTEGER)
INSERT INTO vdp_depara_962(codigo,referencia,cod_de,cod_para) VALUES ( '03', 'CLIENTES', 322, 243)


--5. fazer carga novamente



GIS - Servidor de aplicação sem espaço em disco

Isto ocorre quando o arquivo de log cresce de forma acelerada, tomando todo o espaço do HD. Já foi tentado realizar configuração para que somente seja escrito em log os erros críticos, porém aparentemente não funcionou 100%.
No Cegasrv5, deve ser parado o serviço do Oracle Spatial, em seguida o arquivo de log contido na pasta E:\product\10.1.3\OracleAS_1\opmn\logs deverá ser apagado. Em seguida basta iniciar novamente o serviço do Oracle spatial.

sexta-feira, 8 de fevereiro de 2008

Oracle - cursor

Exemplo de cursor no Oracle:

create or replace function sup_obter_media_consumo_962
( xItem in char
) return number is

xSaida Number;
xMedia Number;
xAno Number;
xMes Number;
xMaxAnoMes char(6);
xCont Number;
xTotal Number;
begin
SELECT Max(ano_hist_cons||mes_hist_cons) into xMaxAnoMes FROM hist_cons;
xAno:= to_number(SubStr(xMaxAnoMes,1,4));
xMes:= to_number(SubStr(xMaxAnoMes,5,2));

xSaida:= 0;
xMedia:=0;
xTotal:=0;
xCont:=1;

While xCont <= 6 LOOP
Begin
SELECT qtd_consum_real into xSaida FROM hist_cons WHERE cod_item=xItem and ano_hist_cons=xAno and mes_hist_cons=xMes;
exception
when no_data_found then
xSaida:= 0;
end;

xTotal := xTotal + xSaida;
xMes := xMes - 1;
xCont := xCont + 1;

IF xMes = 0 THEN
xMes := 12;
xAno := xAno - 1;
END IF;

END LOOP;
if xTotal > 0 Then
xMedia:= round(xTotal / 6, 3);
End If;
RETURN xMedia;
end sup_obter_media_consumo_962;