Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Acceder a un package de un usuario

Estas en el tema de Acceder a un package de un usuario en el foro de Oracle en Foros del Web. Hola, Tengo una BBDD montada llamada ALMACEN y otra llamada GESTIONES. Resulta que la BBDD ALMACEN tiene un package llamado PEDALM con una serie de ...
  #1 (permalink)  
Antiguo 03/06/2008, 17:31
 
Fecha de Ingreso: abril-2008
Mensajes: 87
Antigüedad: 16 años, 7 meses
Puntos: 0
Acceder a un package de un usuario

Hola,

Tengo una BBDD montada llamada ALMACEN y otra llamada GESTIONES.
Resulta que la BBDD ALMACEN tiene un package llamado PEDALM con una serie de procedimientos y funciones.
Lo que quiero hacer es lo siguiente: tengo una aplicación montada en forms (me conecto en el forms con la BBDD de GESTIONES) y quiero utilizar un procedimiento que se encuentra en el package de la BBDD ALMACEN.

Cómo puedo hacer para utilizar los packages de otras BBDD que no sea la misma a la que estoy conectado?.

Saludos!!

Última edición por prosi; 04/06/2008 a las 01:34 Razón: Mala expresión
  #2 (permalink)  
Antiguo 03/06/2008, 20:56
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Respuesta: Acceder a un package de un usuario

dandoles privilegios al usuario que quieres

grant execute on "paquete" to "usuario"

despues puedes llamarlo de la forma

usuario.paquete

o crearte un sinonimo para llamarlo mas facil
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 04/06/2008, 01:35
 
Fecha de Ingreso: abril-2008
Mensajes: 87
Antigüedad: 16 años, 7 meses
Puntos: 0
Sonrisa Respuesta: Acceder a un package de un usuario

No me refería a eso kikolice.

Gracias. He editado el mensaje.

Saludos!!!
  #4 (permalink)  
Antiguo 04/06/2008, 06:09
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Acceder a un package de un usuario

Utiliza un DB_LINK
  #5 (permalink)  
Antiguo 05/06/2008, 05:13
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Acceder a un package de un usuario

Hola,

Sip, un database link es la opcion para ejecutar un paquete que esta en otra base de datos, nada mas queria comentar que habra que tener en mente el concepto de transacciones distribuidas de Oracle, esto es importante si el procedimiento que se llama en la base de datos remota hace modificacion de datos.

Saludos
  #6 (permalink)  
Antiguo 05/06/2008, 08:26
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Acceder a un package de un usuario

Buen añadido.
Si no se tiene muy claro ese concepto, eso puede generar problemas.

Un saludo, compi
  #7 (permalink)  
Antiguo 05/06/2008, 13:31
 
Fecha de Ingreso: abril-2008
Mensajes: 87
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Acceder a un package de un usuario

En qué consiste un DB_Link?
  #8 (permalink)  
Antiguo 06/06/2008, 02:59
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Acceder a un package de un usuario

Hola,

Para responder a tu pregunta te dejaria un link a la documentacion, pero todo el sitio de Oracle parece no funcionar, o talvez los nodos de Telefonica nos estan haciendo pasar un mal dia (otra vez).

En fin, con un db_link puedes conectar dos bases de datos Oracle, te dejo un pequeño ejemplo con la ejecucion de un procedimiento.

1. En mi base de datos 9I creo una tabla T1 y un procedimiento P1.

Código:
oracle@9I> create table t1 (id number(8));

Tabla creada.

oracle@9I> insert into t1 values (1);

1 fila creada.

oracle@9I>

oracle@9I> create or replace procedure p1
  2  as
  3  begin
  4  insert into t1 values (1);
  5  end;
  6  /

Procedimiento creado.
2. En mi base de datos 10G creo un database link que me conecta con 9I, lo que me permite hacer un select sobre la tabla T1 y ejecutar el procedimiento P1.

Código:
oracle@10G> create database link ora9i
  2  connect to oracle
  3  identified by xxx
  4  using '9I';

Enlace con la base de datos creado.

oracle@10G> select * from t1@ora9i;

        ID
----------
         1

oracle@10G>
oracle@10G> exec p1@ora9i;

Procedimiento PL/SQL terminado correctamente.

oracle@10G> select * from t1@ora9i;

        ID
----------
         1
         1

oracle@10G>
Un poco mas de info, que por supuesto encontraras en la documentacion

connect to usuario_de_base_de_datos_remota
identified by password_de_usuario
using 'entrada_del_tnsnames.ora';

Ten en mente la configuracion del tnsnames.ora de la base de datos donde se crea el db_link, ahi debe estar la informacion de como conectarse a la base de datos remota.

Saludos

Última edición por matanga; 07/06/2008 a las 10:10
  #9 (permalink)  
Antiguo 06/06/2008, 03:23
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Acceder a un package de un usuario

Ufffffff, si que estás verdecito.

DB_LINK : DataBase Link, enganche de base de datos. Sirve para enganchar entre si dos bases de datos diferentes, estén en la misma máquina o en máquinas diferentes.
Te enganchas desde la BBDD 1 a un usuario de la BBDD 2, heredando los permisos del usuario de la BBDD 2. Pueden ser públicos ( Accesible a todos los usuarios de la BBDD 1 ) ó privados ( Solo para un ususario de la BBDD 1 ).

La sintaxis es mas o menos esta ( lo pongo de corrido ) :

CREATE [PUBLIC] DATABASE LINK MI_DB_LINK CONNECT TO USUARIO_BBDD_2 IDENTIFIED BY PASSW_USUARIO_BBDD_2 USING 'IDENTIFICADOR QUE TIENES EN EL TNSNAMES'

Esto : [PUBLIC] es opcional.

Luego para acceder a las tablas remotas tienes dos maneras :

1-) Accediendo directamente poniendo el nombre del db_link

Select * from tabla_remota@nombre_del_db_link;

2-) Creando un sinonimo sobre la tabla remota y accediendo por el sinonimo :
CREATE PUBLIC SYNONYM nombre_Del_sinonimo for usuario_remoto.tabla@nombre_del_db_link

Select * from sinonimo;
  #10 (permalink)  
Antiguo 07/06/2008, 08:52
 
Fecha de Ingreso: abril-2008
Mensajes: 87
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Acceder a un package de un usuario

Muchas gracias a los 2.

Saludos!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:16.