Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Utilizar sinonimos de Oracle en Delphi (https://www.clubdelphi.com/foros/showthread.php?t=56521)

elorza 20-05-2008 08:49:15

Utilizar sinonimos de Oracle en Delphi
 
Hola,
tengo una pequeña duda.
He creado un sinonimo en Oracle "CREATE SYNONIM P_ALTA FOR PAQ.P_ALTA".
Bien, ahora necesito utilizar ese sinonimo desde la aplicación Delphi, exactamente desde un "TOraStoredProc". Es decir, a la hora de definir el storedProc Name en vez de poner elorza.PAQ.P_ALTA, necesito utilizar el sinonimo y poner: elorza.P_ALTA.

¿Es esto posible?

Espero tu respuesta,

Gracias,

elorza 20-05-2008 09:55:10

Me he dado cuenta de que lo que da error es la creación del sinonimo.
Es decir, CREATE SYNONYM P_ALTA FOR PAQ.P_ALTA; (no es posible)
Entonces, mi duda es la siguiente. Cómo crear un sinonimo para una procedure de un paquete. ¿Eso es posible? (PAQ es el nombre de mi paquete y P_ALTA es el procedure de ese paquete)

El problema que tengo es la siguiente:
Tengo una aplicación hecha en Delphi y utiliza directamente unas proceduras de la base de datos Oracle. Ahora, esos procedures las he metido en un paquete. Entonces, para que la aplicación siga funcionando tendría que modificar uno por uno y cambiar en todos los sitios que pone P_ALTA, por PAQ.P_ALTA; Por ello, he pensado en crear un sinonimo de ello, y así no tendría que modificarlos.

Espero una ayuda,

Gracias,

poliburro 20-05-2008 14:57:02

Cita:

Empezado por elorza (Mensaje 287954)
Hola,
tengo una pequeña duda.
He creado un sinonimo en Oracle "CREATE SYNONIM P_ALTA FOR PAQ.P_ALTA".
Bien, ahora necesito utilizar ese sinonimo desde la aplicación Delphi, exactamente desde un "TOraStoredProc". Es decir, a la hora de definir el storedProc Name en vez de poner elorza.PAQ.P_ALTA, necesito utilizar el sinonimo y poner: elorza.P_ALTA.

¿Es esto posible?

Espero tu respuesta,

Gracias,


Amigo, disculpa que responsda tu hilo con otra pregunta,

¿Cuál es la ventaja de meter los Procedimientos almacenados en un paquete?.

Hasta ahora solo los he usado para dar salida a los recorsets.

Saludos.

elorza 20-05-2008 18:32:14

Tengo una aplicación que utiliza 2 procedimientos de la base de datos definidas en Oracle.
Ahora, estos procedimientos he tenido que convertirlos a servicios web para poder ofrecerlos vía web. Para ello, es necesario (creo) meter los procedimientos es un package y es ese paquete el que se publica como servicio web.

¿Sabes cómo puedo definir un sinomimo de un procedure de ese paquete?

-El paquete se llama: PAQ
-Y por ejemplo un procedure: P_ALTA

Necesito definir un sinonimo (ejemplo ALTAS) que sustituya a PAQ.P_ALTA.

__hector 06-06-2008 19:11:05

Si, claro que es posible crear un sinonimo para un paquete:

http://www.softics.ru/docs/oracle10r...ments_7001.htm

Gambito 07-06-2008 19:20:46

segun entiendo tienes un paquete llamado PAQ dentro del cuals tienes varios procedimientos, entre ellos uno llamado P_ALTA.

pues bien te cuento que hasta donde yo se, no es posible crear un sinonimo para un procedimiento que se encuentra dentro de un paquete, lo que puedes hacer es crear un sinonimo para el paquete, y la forma de utilizar el procedimiento seria PAQ.P_ALTA.

segun te entiendo de esta forma te serviria para los servicios web que tienes publicasdos.

el problema esta en que no quieres cambiar tu codigo en delphi pora invocar los procedimientos del paquete, lo que podrias hacer crear un procedimiento P_ALTA que internamente realiza el llamado a PAQ.P_ALTA obviamente recibiendo los mismos parametros. asi no tendrias que cambiar tu aplicacion delphi.

espero haberte ayudado en algo. :)

SpyO_O 11-09-2008 15:36:01

Sinonimos en oracle
 
Hola, mira no es posible hace lo que tu necesitas , pero lo que puede hacer es crear procedimientos con el mismo nombre de tu antigua version y llamarlos desde desde ahi los paquetes.
por ejemplo:

Procedure A1(A varchar2) is
begin
--llamar al paquete
end;

suponiendo que A1 es tu anterior procedimiento
espero que te ayude
suerte

gatosoft 17-09-2008 19:19:29

Buen dia Elorza... Si es posible... pero como dice SpyO_O....

Yo tuve que hacerlo para una interfaz con otro sistema

Crea el procedure P_ALTA. con lá misma definición del procedure dentro de tu paquete PAQ.P_ALTA.

Y este nuevo procediemiento solo tendría el llamado a tu procediemitno en el paquete:

Procedure P_ALTA (Param1 Tipo, Param 2 Tipo....) is
Begin
PAQ.P_ALTA(Param1, Param2...);
end;


Saludos,


La franja horaria es GMT +2. Ahora son las 09:53:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi