12198 - Comunicação entre dois bancos de dados (banco de dados de terceiros)
Problema: Como criar uma conectividade entre duas bases de dados (exemplo: ERP Senior com um sistema de terceiros) que possibilite execução de comandos e até mesmo criação de views?
Tela / Rotina: Conexão de banco de dados.
Solução: Esse tipo de configuração e utilização de recursos é específico de Banco de Dados e não de Sistema.
Existe a possibilidade de se configurar no Banco de Dados, um LinkedServer (para SQL Server) ou DBLink (para Oracle), para efetuar essa comunicação.
Ou seja, é criado um canal de comunicação entre uma base de Dados com outra base de Dados externa. Caso essa comunicação seja feita, e seja possível efetuar selects na outra Base de Dados, será possível executar outras operações como, por exemplo, criação de views.
Em alguns cenários, dependendo das configurações e estrutura do banco de dados pode ser necessária a criação de uma procedure que execute os comandos desejados. Neste caso, nos relatórios e regras que precisem acessar a base do outro sistema deverão chamar esta procedure customizada que tenha sido criada.
Ou seja, na procedure irá constar os comandos de select/insert/update/delete que irão conectar a base do sistema de terceiros.
Exemplo de comando utilizando DBLink Oracle: DELETE FROM BASE_EXTERNA@NOME_DA_TABELA.
Após criar a procedure, deve-se cadastrá-la no CBDS e então utiliza-la na regra com a função ExecSP.
Ainda dependendo do ambiente, pode ocorrer que a função de banco de dados "OPENQUERY" possa ser utilizada dentro de comandos para acessar outra base de dados. Exemplo de uma definição de cursor:
SQL_DefinirComando (Cursor, "SELECT * FROM OPENQUERY([CTMS_PROD], 'SELECT * FROM TABELA')
Por se tratar de uma situação envolvendo diretamente ambiente e banco de dados, caso haja necessidade de apoio da Senior, poderão ser contratadas horas de apoio de um de nossos DBAs.