[firebase-br] AS USER :IN_USER PASSWORD :IN_PWD -- just for example WITH autonomous TRANSACTION -- note autonomous transaction
Rafael Barberi Moreira
rafaelbmoreira em qtux.com.br
Quinta Outubro 2 16:56:22 -03 2025
Olá boa tarde,
Recebi esta mensagem e pode ter conteúdo sensível e vindo por engano.
A intenção é informar, estou desconsiderando a mensagem.
Boa sorte em seus trabalhos.
Att,
Rafael
Em qui., 2 de out. de 2025 às 16:51, Mário Reis via lista <
lista em firebase.com.br> escreveu:
> Gladiston,
> Esta construção é de Confiança?!
> A ideia é trazer da base de produção os dados atuais e passá-los para uma
> base noa que estou migrando.
> Ora abaixo o Valor que está voltandoa da base externa(produção)
> Pessoas.Altura é '0.02' mas na verdade nesta base de migração que
> exite esse valor em altura na base de produção o valor em consulta direta é
> 1.72 ou 1.51 ou 1.55, 1.52
> Assim não dá para confiar assim há alguma outra forma de resolver isto as
> dua tabelas são PESSOAS então em memória confunde-se só poderá ser um bug
>
> CREATE PROCEDURE CONSULTA_EXTERNA_PESSOAS(
> IN_USER TYPE OF USERID,
> IN_PWD VARCHAR(20),
> IN_ID SMALLINT)
> RETURNS(
> OUT_CONTA INTEGER,
> OUT_ID BIGINT,
> OUT_NOME VARCHAR(50),
> OUT_APELIDO VARCHAR(20),
> OUT_DTADM TYPE OF COLUMN SOCIOS.DATADM,
> WPESSOA_ID TYPE OF COLUMN PESSOAS.PESSOA_ID,
> WTITULO_ID TYPE OF COLUMN PESSOAS.TITULO_ID,
> WAPELIDO TYPE OF COLUMN PESSOAS.APELIDO,
> WNOME TYPE OF COLUMN PESSOAS.NOME,
> WTIPO_ID TYPE OF COLUMN PESSOAS.TIPO_ID,
> WNOBI TYPE OF COLUMN PESSOAS.NOBI,
> WARQIDENT TYPE OF COLUMN PESSOAS.ARQIDENT,
> WDATEMIBI TYPE OF COLUMN PESSOAS.DATEMIBI,
> WSEXO TYPE OF COLUMN PESSOAS.SEXO,
> WESTCIVIL TYPE OF COLUMN PESSOAS.ESTCIVIL,
> WDAT_NASC TYPE OF COLUMN PESSOAS.DAT_NASC,
> WNIF TYPE OF COLUMN PESSOAS.NIF,
> WRFEMIT_NIF TYPE OF COLUMN PESSOAS.RFEMIT_NIF,
> WDATNIF TYPE OF COLUMN PESSOAS.DATNIF,
> WNOSEGSOCIAL TYPE OF COLUMN PESSOAS.NOSEGSOCIAL,
> WRFEMIT_SEGSOC TYPE OF COLUMN PESSOAS.RFEMIT_SEGSOC,
> WDATSEGSOC TYPE OF COLUMN PESSOAS.DATSEGSOC,
> WCONCNASC_ID TYPE OF COLUMN PESSOAS.CONCNASC_ID,
> WFREGNASC_ID TYPE OF COLUMN PESSOAS.FREGNASC_ID,
> WPROFISSO_ID TYPE OF COLUMN PESSOAS.PROFISSO_ID,
> WEMPRESA_ID TYPE OF COLUMN PESSOAS.EMPRESA_ID,
> WRELACAO_ID TYPE OF COLUMN PESSOAS.RELACAO_ID,
> WENTMST_ID TYPE OF COLUMN PESSOAS.ENTMST_ID,
> WSITUAC_ID TYPE OF COLUMN PESSOAS.SITUAC_ID,
> WSINDICATO_ID TYPE OF COLUMN PESSOAS.SINDICATO_ID,
> WILHA_ID TYPE OF COLUMN PESSOAS.ILHA_ID,
> WNASC_RES TYPE OF COLUMN PESSOAS.NASC_RES,
> WUSERID TYPE OF COLUMN PESSOAS.USERID,
> WESTACAO TYPE OF COLUMN PESSOAS.ESTACAO,
> WDATA TYPE OF COLUMN PESSOAS."DATA",
> WHORA TYPE OF COLUMN PESSOAS.HORA,
> WSITU TYPE OF COLUMN PESSOAS.SITU,
> WACCAO TYPE OF COLUMN PESSOAS.ACCAO,
> WDEPENDE_ID TYPE OF COLUMN PESSOAS.DEPENDE_ID,
> WDD TYPE OF COLUMN PESSOAS.DD,
> WCC TYPE OF COLUMN PESSOAS.CC,
> WFF TYPE OF COLUMN PESSOAS.FF,
> WDATA_C TYPE OF COLUMN PESSOAS.DATA_C,
> WNOBI12 TYPE OF COLUMN PESSOAS.NOBI12,
> WNACIONALIDADE TYPE OF COLUMN PESSOAS.NACIONALIDADE,
> WNMPAI TYPE OF COLUMN PESSOAS.NMPAI,
> WINDEVTPAI TYPE OF COLUMN PESSOAS.INDEVTPAI,
> WNMMAE TYPE OF COLUMN PESSOAS.NMMAE,
> WINDEVTMAE TYPE OF COLUMN PESSOAS.INDEVTMAE,
> WNUTSNS TYPE OF COLUMN PESSOAS.NUTSNS,
> WLOC_PEDIDO TYPE OF COLUMN PESSOAS.LOC_PEDIDO,
> WVERSAOCARTAO TYPE OF COLUMN PESSOAS.VERSAOCARTAO,
> WESTADOCARTAO TYPE OF COLUMN PESSOAS.ESTADOCARTAO,
> WDATVALIDAD TYPE OF COLUMN PESSOAS.DATVALIDAD,
> WALTURA TYPE OF COLUMN PESSOAS.ALTURA,
> WDTHRPRT TYPE OF COLUMN PESSOAS.DTHRPRT,
> WDHPRINT TYPE OF COLUMN PESSOAS.DHPRINT,
> WCCUSTOS TYPE OF COLUMN PESSOAS.CCUSTOS,
> WID_PES_LOC TYPE OF COLUMN PESSOAS.PESSOA_ID)
> AS
> DECLARE VARIABLE SDB VARCHAR(255);
> DECLARE VARIABLE SSQL VARCHAR(25000);
> DECLARE VARIABLE CONTA INTEGER;
> DECLARE VARIABLE XSQLCODE INTEGER;
> DECLARE VARIABLE XGDSCODE INTEGER;
> DECLARE VARIABLE XSQLSTATE VARCHAR(100);
> DECLARE VARIABLE SNOTE VARCHAR(100);
> BEGIN
>
> OUT_CONTA=1;
>
> -- APLICAÇÃO EM PRODUÇÃO
> sDB='HostProducao.pt/3052:D:\Firebird\Fb30\Dados\GestACRA.FDB';
>
> --' WHERE P.PESSOA_ID >= '||TRIM(CAST(:IN_ID AS VARCHAR(15)))||
> -- sSql=
> -- ' Select P.Pessoa_id, P.Nome, P.Apelido, S.NOSOC_ID, s.DATADM From
> Pessoas P '||
> -- ' Inner Join Socios S on S.Socios_ID=P.Pessoa_Id '||
> -- ' Where S.NOSOC_ID >= '||TRIM(CAST( IN_ID AS VARCHAR(15)) ) ;
> -- ' INNER JOIN SOCIOS S ON S.SOCIOS_ID=P.PESSOA_ID '|| NO.S1 --5513
> ID-8526 ... 8751
>
>
> sSql = TRIM(
> ' SELECT '||
> ' COALESCE(P.PESSOA_ID, 0) AS PESSOA_ID, '||
> ' COALESCE(P.TITULO_ID, 0) AS TITULO_ID, '||
> ' COALESCE(P.APELIDO, '''') AS APELIDO, '||
> ' COALESCE(P.NOME, ''SEM NOME'') AS NOME, '||
> ' COALESCE(P.TIPO_ID, '''') AS TIPO_ID, '||
> ' COALESCE(P.NOBI, '''') AS NOBI, '||
> ' COALESCE(P.ARQIDENT, '''') AS ARQIDENT, '||
> ' COALESCE(P.DATEMIBI, DATE ''1900-01-01'') as DATEMIBI, '||
> ' COALESCE(P.SEXO, '' '') AS SEXO, '||
> ' COALESCE(P.ESTCIVIL, '' '') AS ESTCIVIL, '||
> ' COALESCE(P.DAT_NASC, DATE ''1900-01-01'') as DAT_NASC, '||
> ' COALESCE(P.NIF, ''000000000'') AS NIF, '||
> ' COALESCE(P.RFEMIT_NIF, '''') AS RFEMIT_NIF, '||
> ' COALESCE(P.DATNIF, DATE ''1900-01-01'') as DATNIF, '||
> ' COALESCE(P.NOSEGSOCIAL, ''00000000000'') AS NOSEGSOCIAL, '||
> ' COALESCE(P.RFEMIT_SEGSOC, '''') AS RFEMIT_SEGSOC, '||
> ' COALESCE(P.DATSEGSOC, DATE ''1900-01-01'') as DATSEGSOC, '||
> ' COALESCE(P.CONCNASC_ID, 0) AS CONCNASC_ID, '||
> ' COALESCE(P.FREGNASC_ID, 0) AS FREGNASC_ID, '||
> ' COALESCE(P.PROFISSO_ID, 0) AS PROFISSO_ID, '||
> ' COALESCE(P.EMPRESA_ID, 0) AS EMPRESA_ID, '||
> ' COALESCE(P.RELACAO_ID, 0) AS RELACAO_ID, '||
> ' COALESCE(P.ENTMST_ID, 0) AS ENTMST_ID, '||
> ' COALESCE(P.SITUAC_ID, '' '') AS SITUAC_ID, '||
> ' COALESCE(P.SINDICATO_ID, 0) AS SINDICATO_ID, '||
> ' COALESCE(P.ILHA_ID, 0) AS ILHA_ID, '||
> ' COALESCE(P.NASC_RES, '' '') AS NASC_RES, '||
> ' COALESCE(P.USERID, '''') AS USERID, '||
> ' COALESCE(P.ESTACAO, '''') AS ESTACAO, '||
> ' COALESCE(P."DATA", DATE ''1900-01-01'') AS "DATA", '||
> ' COALESCE(P.HORA, TIME ''00:00:00'') AS HORA, '||
> ' COALESCE(P.SITU, '' '') AS SITU, '||
> ' COALESCE(P.ACCAO, ''000'') AS ACCAO, '||
> ' COALESCE(P.DEPENDE_ID, 0) AS DEPENDE_ID, '||
> ' COALESCE(P.DD, 0) AS DD, '||
> ' COALESCE(P.CC, 0) AS CC, '||
> ' COALESCE(P.FF, 0) AS FF, '||
> ' COALESCE(P.DATA_C, DATE ''1900-01-01'') AS DATA_C, '||
> ' COALESCE(P.NOBI12, '''') AS NOBI12, '||
> ' COALESCE(P.NACIONALIDADE, '''') AS NACIONALIDADE, '||
> ' COALESCE(P.NMPAI, '''') AS NMPAI, '||
> ' COALESCE(P.INDEVTPAI, '''') AS INDEVTPAI, '||
> ' COALESCE(P.NMMAE, '''') AS NMMAE, '||
> ' COALESCE(P.INDEVTMAE, '''') AS INDEVTMAE, '||
> ' COALESCE(P.NUTSNS, '''') AS NUTSNS, '||
> ' COALESCE(P.LOC_PEDIDO, '''') AS LOC_PEDIDO, '||
> ' COALESCE(P.VERSAOCARTAO, '''') AS VERSAOCARTAO, '||
> ' COALESCE(P.ESTADOCARTAO, '''') AS ESTADOCARTAO, '||
> ' COALESCE(P.DATVALIDAD, TIMESTAMP ''1900-01-01 00:00:00'') AS DATVALIDAD,
> '||
> ' COALESCE(P.ALTURA, 0) AS ALTURA, '||
> ' COALESCE(P.DTHRPRT, '''') AS DTHRPRT, '||
> ' COALESCE(P.DHPRINT, TIMESTAMP ''1900-01-01 00:00:00'') AS DHPRINT, '||
> ' COALESCE(P.CCUSTOS, 0) AS CCUSTOS '||
> ' FROM PESSOAS P '||
> ' WHERE P.PESSOA_ID BETWEEN 8530 AND 8666 '||
> ' ORDER BY P.PESSOA_ID'
> ) ;
>
>
>
> FOR
> EXECUTE STATEMENT
> ( :sSql )
> ON EXTERNAL DATA SOURCE :sDB
> AS USER :IN_USER PASSWORD :IN_PWD -- just for example
> WITH autonomous TRANSACTION -- note autonomous transaction
> INTO
> :wPESSOA_ID, :wTITULO_ID, :wAPELIDO, :wNOME, :wTIPO_ID, :wNOBI,
> :wARQIDENT, :wDATEMIBI, :wSEXO,
> :wESTCIVIL, :wDAT_NASC, :wNIF, :wRFEMIT_NIF, :wDATNIF,
> :wNOSEGSOCIAL,:wRFEMIT_SEGSOC,
> :wDATSEGSOC, :wCONCNASC_ID, :wFREGNASC_ID, :wPROFISSO_ID,
> :wEMPRESA_ID, :wRELACAO_ID,
> :wENTMST_ID, :wSITUAC_ID, :wSINDICATO_ID, :wILHA_ID, :wNASC_RES,
> :wUSERID, :wESTACAO, :wDATA,
> :wHORA, :wSITU, :wACCAO, :wDEPENDE_ID, :wDD, :wCC, :wFF, :wDATA_C,
> :wNOBI12, :wNACIONALIDADE,
> :wNMPAI, :wINDEVTPAI,:wNMMAE, :wINDEVTMAE, :wNUTSNS, :wLOC_PEDIDO,
> :wVERSAOCARTAO, :wESTADOCARTAO,
> :wDATVALIDAD, :wALTURA, :wDTHRPRT, :wDHPRINT, :wCCUSTOS
> DO
> BEGIN
>
> --Não insere repetidos
> conta=ROW_COUNT ;
> OUT_NOME=:wNOME ;
> OUT_APELIDO=:wAPELIDO;
> OUT_ID =:wPessoa_id;
>
> if (:wALTURA<>0) then
> If (:wALTURA=0.02) then -- <= tem bug e não é meu ALTURA=0.02 é na
> base local - sem falar que eu não estou consultando a base local Só se
> internamente o sistema faz isso, mas
> -não é percetível. Na
> base EXTER=> wALTURA=1.52; --
> :sDB='HostProducao.pt/3052:D:\Firebird\Fb30\Dados\GestACRA.FDB';
>
> EXECUTE PROCEDURE PESSOAS_INS_UPD(
> :wPESSOA_ID,
> :wTITULO_ID,
> :wAPELIDO,
> :wNOME,
> :wTIPO_ID,
> :wNOBI,
> :wARQIDENT,
> :wDATEMIBI,
> :wSEXO,
> :wESTCIVIL,
> :wDAT_NASC,
> :wNIF,
> :wRFEMIT_NIF,
> :wDATNIF,
> :wNOSEGSOCIAL,
> :wRFEMIT_SEGSOC,
> :wDATSEGSOC,
> :wCONCNASC_ID,
> :wFREGNASC_ID,
> :wPROFISSO_ID,
> :wEMPRESA_ID,
> :wRELACAO_ID,
> :wENTMST_ID,
> :wSITUAC_ID,
> :wSINDICATO_ID,
> :wILHA_ID,
> :wNASC_RES,
> :wUSERID,
> :wESTACAO,
> :wDATA,
> :wHORA,
> :wSITU,
> :wACCAO,
> :wDEPENDE_ID,
> :wDD,
> :wCC,
> :wFF,
> :wDATA_C,
> :wNOBI12,
> :wNACIONALIDADE,
> :wNMPAI,
> :wINDEVTPAI,
> :wNMMAE,
> :wINDEVTMAE,
> :wNUTSNS,
> :wLOC_PEDIDO,
> :wVERSAOCARTAO,
> :wESTADOCARTAO,
> :wDATVALIDAD,
> :wALTURA,
> :wDTHRPRT,
> :wDHPRINT,
> :wCCUSTOS
> ) ;
>
>
> OUT_CONTA=:OUT_CONTA + 1;
>
> -- DO SUSPEND;
> WHEN ANY DO
> IN AUTONOMOUS TRANSACTION DO
> BEGIN
> xsqlcode=SQLCODE;
> xgdscode=GDSCODE;
> xSQLSTATE=SQLSTATE;
>
> sNote='Falha ao importar';
> INSERT INTO IMPORT_ERROR_LOG (
> SSOURCE_FILE,
> PPK_SOURCE,
> ISQLCODE,
> IGDSCODE,
> SSQLSTATE,
> NOTE)
> VALUES (
> :SDB,
> CAST(:wPESSOA_ID AS VARCHAR(50)),
> :xSQLCODE,
> :xGDSCODE,
> :XSQLSTATE,
> :sNOTE);
> END
>
>
> END
>
>
>
>
> END;
> Com os meus melhores cumprimentos
> Mário Agostinho Reis
> 919262146
>
> Esta mensagem contém informação de natureza confidencial e é
> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
> receber este email agradecemos que não o copie nem o reenvie e que nos
> notifique do ocorrido através do email de resposta.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>
Mais detalhes sobre a lista de discussão lista