 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
seth Cmdr

Registrado: 16 Nov 2003Mensajes: 129
|
Publicado: Mar 15 Jul, 2008 10:52 pm Asunto: Consulta de Consulta |
|
|
Buenas Tardes
Tengo 2 dudas, necesito de toda su ayuda para resolverlas.
1. Tengo que realizar una insercion de Registros en uan base de datos de Interbase *.gbd, la fuente de los datos
es una Base de Datos de Oracle. En este momento ya hago la consulta en la base de datos de Oracle y luego recorro
todo el Query para ir relizando las inserciones en la base de datos de interbase, se puede utilizar otro metodo
realizar la insercion de los registros por que son muchos y toma mucho tiempo realizar esta labor..
2. Se puede realizar una consulta de unas consultas... Es decir quiero realizar la consulta en un Query de dos
Querys que se ejecutan sobre bases de datos diferentes, Un Query realiza una consulta de 3 tablas diferentes de una
base de datos en Oracle y el Otro realiza un Query sobre una Tablas de Foxpro *.dbf, como puedo unir estas consultas
en una sola.
Cualquier sugerencia sera bienvenida
Saludos Seth |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 16 Jul, 2008 7:13 am Asunto: |
|
|
Primero que esta consulta tenía que haber ido al foro de bases de datos, pero bueno
Mi opinión:
1. Me temo que no. Salvo que algún "gurú" del foro te dé la solución me parece que no puedes hacer una sentencia del tipo INSERT INTO ... SELECT FROM ... a partir de dos motores de bases de datos diferentes.
2. ¿Te has planteado dar privilegios (GRANT) a una base de datos para que consulte otra diferente? Podrías hacer la consulta contra dos bases de datos diferentes desde un mismo query.
Supongamos dos bases de datos Base1 (Tabla11 y Tabla12) y Base2 (Tabla21y Tabla22).
a. Damos permiso a los usuarios de Base2 para hacer consultas en Tabla11 de Base1.
| Código: | GRANT SELECT ON Tabla11 TO Base2 |
QUE PERMISO (SELECT) se da, en QUE TABLA (Tabla11) y a QUE BASE DE DATOS (Base2). Los permisos son SELECT, INSERT, DELETE y UPDATE y si tienes que dar todos se usa ALL PRIVILEGES.
b. Montas el query que te haga falta como siempre, con la excepción que las tablas de la "otra" base de datos les antecedes el nombre de esta con dos puntos. Me explico mejor: la consulta la haces desde la base de datos a la que has dado permisos (privilegios), en este base sería Base2 contra BAse1:
| Código: | SELECT A.Campo1, A.Campo2, B.Campo3 FROM Tabla21 A, Base1:Tabla11 B |
Estamos dentro de Base2 y estamos llamando a una tabla que está en Base1; por eso las tablas de Base2 se ponen como siempre y las de Base1 indicando cual es la suya.
c. Si necesitas retirar los permisos se usa el comando REVOKE:
| Código: | REVOKE SELECT ON Tabla11 FROM Base2 |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|