Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Consulta de Consulta

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Consulta de Consulta Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Primero que esta consulta tenía que haber ido al foro de bases de datos, pero bueno Smile

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.