PDA

Ver la Versión Completa : Actualizar simultaneamente oracle-mysql


Igna
20-02-2004, 16:55:30
Hola.

Mi duda es si hay alguna manera de actualizar una tabla de mysql (por ejemplo) cuando se actualize una tabla de Oracle.

Me explico, yo tengo una tabla en Oracle, y quiero que cuando se introduzcan una nueva fila, mediante un trigger o lo que sea, se introduzca también esa fila en una tabla de mysql.

Un saludo.

jachguate
20-02-2004, 17:09:50
Claro que podes hacerlo desde un trigger after insert/after update, por ejemplo.

Para ello tenes que tener configurado el Oracle Transparent Gateway (que supongo debe existir para MySQL), configurar un DBLink hacia tu base de datos de MySQL y luego hacer un simple insert en la tabla que te interesa.

Para conseguirlo te recomiendo que leas alguno de los siguientes manuales (dado que no indicas la versión de la BD que utilizas):

En Oracle 9 Release 2 (9.2):

Heterogeneous Connectivity Administrator's Guide
es el Part Number A96544-01, específicamente la
sección 4.1 "Using Heterogeneous Services Agents: Setting Up Access to
Non-Oracle Systems".

En Oracle 8.0, el manual es el "Oracle8 Distributed Database Systems", Part
Number A58247-01, sección 7.1, "Administering Oracle Heterogeneous Services:
Setting up access to Non-Oracle Systems ".

Estos documentos los podes hallar en tus cd's de oracle, o en la otn.
Saludos y hasta luego!

Juan Antonio Castillo

Igna
20-02-2004, 17:34:43
Gracias por tu respuesta.

Voy a mirar los documentos que dices.

Un saludo.

Igna
23-02-2004, 18:36:59
Hola.

He intentado conectar las dos bbdd, pero sigo sin poder conseguirlo(algo estoy haciendo mal).

He instalado el driver odbc de MySql (Myodbc, de la página mysql.com) en mi máquina.

He configuardo los archivos de la siguiente forma:

LISTENER.ORA:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = PICA)
(ORACLE_HOME = C:\oracle\ora81)
(SID_NAME = PICA)
)
(SID_DESC=
(SID_NAME=hsodbc)
(ORACLE_HOME=c:\oracle\ora81)
(PROGRAM=hsodbc)
)

)

TNSNAMES.ORA:

hsodbc = (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SID=hsodbc))
(HS= OK)
)

INITHSODBC.ORA:

HS_FDS_CONNECT_INFO = web
HS_FDS_TRACE_LEVEL = 0

Cuando creo el DBLink, e intento hacer una consulta, me da el siguiente error:

SQL> CREATE DATABASE LINK prueba
2 USING 'hsodbc';

Database link created.

SQL> select * from usuarios_web@prueba;
select * from usuarios_web@prueba
*
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Generic Connectivity Using ODBC][Microsoft][ODBC Driver Manager] Data source
name not found and no default driver specified (SQL State: IM002; SQL Code: 0)
ORA-02063: preceding 2 lines from PRUEBA

Creo que el problema es que no le digo en ningún sitio que tiene que utilizar el driver MyOdbc, pero voy un poco perdido. Agradecería una mínima orientación.

Un saludo.