INSERT NO FIREBIRD ENTRE TABELAS DE DOIS BANCOS
Estou precisando copiar os dados de uma tabela firebird de um banco para outra tabela com o mesmo nome e estrutura de outro banco, e não queria fazer um sistema para isto, e por tem campo imagem nao posso exportar para excel, ou txt para importar
Então criei uma procedure para importar os dados entre duas tabelas idênticas de bancos de dados diferentes, porem nao da erro mas nao copia
create or alter procedure INSERT_FOTOS_EXT (
CINI integer,
CFIM integer)
as
declare variable VCF integer;
declare variable SQLFOTO varchar(1000);
BEGIN
execute statement ('insert INTO fotos_pro values (SELECT * FROM FOTOS_PRO WHERE BETWEEN CODIGO '||:cini||' AND '||:cfim)
ON external DATA SOURCE ' 192.168.1.100:C:\DADOS\PATRIFOTOSPMJMSA.FDB'
AS USER 'SYSDBA' PASSWORD 'masterkey' ;
END
agradeço antecipadamente todos pela atenção
SDS
Então criei uma procedure para importar os dados entre duas tabelas idênticas de bancos de dados diferentes, porem nao da erro mas nao copia
create or alter procedure INSERT_FOTOS_EXT (
CINI integer,
CFIM integer)
as
declare variable VCF integer;
declare variable SQLFOTO varchar(1000);
BEGIN
execute statement ('insert INTO fotos_pro values (SELECT * FROM FOTOS_PRO WHERE BETWEEN CODIGO '||:cini||' AND '||:cfim)
ON external DATA SOURCE ' 192.168.1.100:C:\DADOS\PATRIFOTOSPMJMSA.FDB'
AS USER 'SYSDBA' PASSWORD 'masterkey' ;
END
agradeço antecipadamente todos pela atenção
SDS
Nilson Jr
Curtidas 0
Respostas
Thiago Irrazabal
02/06/2015
Bom dia, pelo que vi da tua procedure tem muita coisa estranha aí, começando pelo "WHERE BETWEEN", em qual versão do firebird aceita isso?
Outra coisa tu está dando insert no outro banco e não no que está a procedure, para tu fazer insert no teu banco, tu antes precisaria declarar todas variáveis da tabela, dai fazer um select no banco externo e então fazer um insert no teu banco, qualquer dúvida manda mensagem. Abraço
Att,
Thiago Irrazabal de Oliveira.
Outra coisa tu está dando insert no outro banco e não no que está a procedure, para tu fazer insert no teu banco, tu antes precisaria declarar todas variáveis da tabela, dai fazer um select no banco externo e então fazer um insert no teu banco, qualquer dúvida manda mensagem. Abraço
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Marcos P
02/06/2015
NIlson,
Qual versão do Firebird você está usando ?
Qual versão do Firebird você está usando ?
GOSTEI 0
Nilson Jr
02/06/2015
Estou usando a versão 2.5, quanto ao BETWEEN escrevi na ordem errada o certo seria
(SELECT * FROM FOTOS_PRO WHERE CODIGO BETWEEN '||:cini||' AND '||:cfim), mas também nao funcionou..
Consegui pelo Ibexpert com o seguinte comando:
insert INTO [PATRIFOTOSPMJM_FOTOS_JERONIMO].fotos_pro select * from FOTOS_PRO
Quanto a procedure usando um banco externo fica ainda sem solução.
SDS
(SELECT * FROM FOTOS_PRO WHERE CODIGO BETWEEN '||:cini||' AND '||:cfim), mas também nao funcionou..
Consegui pelo Ibexpert com o seguinte comando:
insert INTO [PATRIFOTOSPMJM_FOTOS_JERONIMO].fotos_pro select * from FOTOS_PRO
Quanto a procedure usando um banco externo fica ainda sem solução.
SDS
GOSTEI 0
Nilson Jr
02/06/2015
Estou usando a versão 2.5, quanto ao BETWEEN escrevi na ordem errada o certo seria
(SELECT * FROM FOTOS_PRO WHERE CODIGO BETWEEN '||:cini||' AND '||:cfim), mas também nao funcionou..
Consegui pelo Ibexpert com o seguinte comando:
insert INTO [PATRIFOTOSPMJM_FOTOS_JERONIMO].fotos_pro select * from FOTOS_PRO
Quanto a procedure usando um banco externo fica ainda sem solução.
SDS
(SELECT * FROM FOTOS_PRO WHERE CODIGO BETWEEN '||:cini||' AND '||:cfim), mas também nao funcionou..
Consegui pelo Ibexpert com o seguinte comando:
insert INTO [PATRIFOTOSPMJM_FOTOS_JERONIMO].fotos_pro select * from FOTOS_PRO
Quanto a procedure usando um banco externo fica ainda sem solução.
SDS
GOSTEI 0
Nilson Jr
02/06/2015
Estou usando a versão 2.5, quanto ao BETWEEN escrevi na ordem errada o certo seria
(SELECT * FROM FOTOS_PRO WHERE CODIGO BETWEEN '||:cini||' AND '||:cfim), mas também nao funcionou..
Consegui pelo Ibexpert com o seguinte comando:
insert INTO [PATRIFOTOSPMJM_FOTOS_JERONIMO].fotos_pro select * from FOTOS_PRO
Quanto a procedure usando um banco externo fica ainda sem solução.
SDS
(SELECT * FROM FOTOS_PRO WHERE CODIGO BETWEEN '||:cini||' AND '||:cfim), mas também nao funcionou..
Consegui pelo Ibexpert com o seguinte comando:
insert INTO [PATRIFOTOSPMJM_FOTOS_JERONIMO].fotos_pro select * from FOTOS_PRO
Quanto a procedure usando um banco externo fica ainda sem solução.
SDS
GOSTEI 0
Marcos P
02/06/2015
A partir da versão 2.5 é possível executar o acesso a outros bancos, através da cláusula "ON EXTERNAL" do comando "EXECUTE STATEMENT".
Execute Statement
Can I do multi-database or cross-database queries with Firebird?
Antes, contudo, de colocar isso em uma procedure, seria bom resolver isso via linha de comando...
Execute Statement
Can I do multi-database or cross-database queries with Firebird?
Antes, contudo, de colocar isso em uma procedure, seria bom resolver isso via linha de comando...
GOSTEI 0