Array
(
)

Procedure SQL-Server

Marcio Morando
   - 09 dez 2013

Boa Tarde,
Preciso fazer um Procedure que busque dados de um Tabela no SQL server e escreva em outra tabela no ORACLE. Alguma sugestão de como devo proceder?
Obrigado

Faabiianooc
   - 09 dez 2013

Busque sobre realizar link oracle com sql server ou vice versa.

Marcio Morando
   - 09 dez 2013

Não sim. Isso eu já fiz. Tenho dúvida na criação da PROCEDURE mesmo.
Montei um select com os campos que quero que a procedure busque e escreva no ORACLE.
Mas agora como devo criar esta procedure?
Devo colocar parametros antes do Select para dai especificar no insert todos os campos?

Mariana Carvalho
   - 09 dez 2013


Citação:
Busque sobre realizar link oracle com sql server ou vice versa.


não sabia que era possivel. é o mesmo esquema do linked server?

Marcio Morando
   - 09 dez 2013

é sim Mariana, o mesmo esquema.

Isaac Jose
   - 09 dez 2013

boa tarde.
desculpe mas não consegui entender direito.
de qualquer forma espero que o link ajude
http://msdn.microsoft.com/pt-br/library/ms187926.aspx

Marcio Morando
   - 10 dez 2013

Preciso fazer uma procedure que faça primeiramente um SELECT em uma base sql e depois um INSERT em uma base Oracle.
Já foi feito o LinkedServer e está funcionando.
Segue a minha Procedure:

CREATE PROCEDURE NomeProcedure
AS
BEGIN
INSERT INTO NomeTabelaOracle(Campos da Tabela)
SELECT (Campos da Tabela SQL) FROM TabelaSQL
END

O que pode estar errado?

Isaac Jose
   - 10 dez 2013

o select do sql nao tem () somente os campos

select campo1,campo2 from table

acho q deve ser isso

Marcio Morando
   - 10 dez 2013

Procedure está Ok.

E como faço para colocar para executar a PROCEDURE sempre que houver um novo registro na tabela do SQL?

Faabiianooc
   - 10 dez 2013

Crie uma trigger.

Marcio Morando
   - 10 dez 2013

CREATE TRIGGER NomeTrigger
ON Tabela
AFTER INSERT
AS
BEGIN
EXECUTE Procedure
END

Como eu defino que deve ser executada somente apos um insert na tabela?

Jefferson Santos
   - 10 dez 2013

Utilize INSERTED que ele pega o ultimo insert sempre.

Marcio Morando
   - 10 dez 2013

CREATE TRIGGER NomeTrigger
ON Tabela
AFTER INSERT
AS
BEGIN
EXECUTE Procedure
END

Aonde eu defino que após o Insert na tabela do SQL vai rodar a proc?

Faabiianooc
   - 10 dez 2013

AFTER INSERT

Marcio Morando
   - 10 dez 2013

Ok está tudo funcionando. Muito Obrigado.

Somente mais uma dúvida. Quando a procedure é executada ela esta trazendo todos os campos, e quero que traga somente os novos inseridos.

Como posso fazer isso?

Jefferson Santos
   - 10 dez 2013

Mano substitua o INSERT por INSERTED

Marcio Morando
   - 10 dez 2013

Vou criar um Job no Oracle mano para executar esta procedure, não vou mais utilizar TRIGGER,então precisaria de uma solução na própria Procedure.

Mariana Carvalho
   - 10 dez 2013


Citação:
é sim Mariana, o mesmo esquema.


então posso "linkar" qualquer SGBD?

Jefferson Santos
   - 10 dez 2013


Citação:
Vou criar um Job no Oracle mano para executar esta procedure, não vou mais utilizar TRIGGER,então precisaria de uma solução na própria Procedure.


Marcio o INSERTED - Pega o Ultimo Insert, toda vez que for inserida qualquer informação na tabela ela dispara a trigger.
Uma outra opção é o Job ou agendamento de tarefas do windows ultilizando arquivo .BAT

Marcio Morando
   - 10 dez 2013


Citação:

Citação:
Vou criar um Job no Oracle mano para executar esta procedure, não vou mais utilizar TRIGGER,então precisaria de uma solução na própria Procedure.


Citação:
Marcio o INSERTED - Pega o Ultimo Insert, toda vez que for inserida qualquer informação na tabela ela dispara a trigger.
Uma outra opção é o Job ou agendamento de tarefas do windows ultilizando arquivo .BAT


Jeferson, não vou usar Trigger para executar a Procedure.
Vou usar um Job do Oracle.
Queria ver se tem como buscar o ultimo insert na propria procedure entendeu?

Marcio Morando
   - 11 dez 2013

?????????????