Saludos, Cristina. Te respondo entre líneas

On 21/04/15 03:47, Cristina Pedroviejo wrote:
Buenos días.
Estoy empezando con postgresql y valorando si puedo sustituir mi base de datos actual que es oracle, por postgresql.
Existe una utilidad llamada ora2pg que permite migrar una buena parte de las funciones propias de Oracle, a una similar en PostgreSQL. En el caso de dbms_pipe/dbms_aq, creo que ambas están dentro de ora2pg.
Hay una característica de oracle que necesito es el dbms_pipe o dbms_aq, en enterprisedb hay algo similar, estoy intentando averiguar si bien con el notify/lister se puede sustituir o bien llamando a alguna función en c desde postgresql.
PostgreSQL está desarrollado en C, por lo que puedes escribir funciones directamente en C, por supuesto con una sintáxis determinada. Hay varias formas de conectarte a PostgreSQL desde C:

1- libpq la cual es la API de C para PostgreSQL. Básicamente permite a programas clientes pasar consultas al backend de PostgreSQL y recibir los resultados de las mismas.

2- ECPG: SQL Embebido en C, donde se mezcla C con SQL para construir programas clientes

3- SPI (Server Programming Interface), el cual brinda a los desarrolladores funciones en C definidas por el usuario que tienen la habilidad de ejecutar comandos SQL dentro de las mismas.

No he visto muchos ejemplos del tema, si alguno pudiera ayudarme estaría muy agradecida.
Busca el sitio oficial de ora2pg y ahí encontrarás varios ejemplos de cómo migrar una función desarrollada en Oracle, a cómo se traduciría a PostgreSQL. Para los ejemplos de SPI, puedes consultar la documentación, en el Capítulo 44 específicamente (Sección 44.5). Para los ejemplos de C, puedes usar la sección 31.21.
Parte del código está en C y estoy tratando de "escribir" una librería similar a la que utilizamos para la conexión con oracle, para que así no haya que tocar los programas. De momento, desde C y siguiendo ejemplos si que consigo conectar y leer los datos, pero me queda enviarlos tal y como lo hacíamos con oracle.
Buscar los ejemplos de la última sección que te dije, y ahí encontrarás todo lo que necesitas.

Un saludo





Antes de imprimir este mensaje considere su responsabilidad con el medio ambiente.

Este e-mail y cualquiera de sus ficheros anexos son confidenciales y pueden incluir información privilegiada. Si usted no es el destinatario adecuado o responsable, debe remitirlo a la persona indicada, agradeceríamos lo notificase/reenviase inmediatamente al emisor. No revele estos contenidos a ninguna otra persona, no los utilice para otra finalidad, ni almacene y/o copie esta información en medio alguno. Opiniones, conclusiones y otro tipo de información relacionada con este mensaje que no sean relativas a la actividad propia de LOGÍSTICA Y TELECOMUNICACIÓN, S.L, deberán ser entendidas exclusivas del emisor.

Logística y Telecomunicación, S.L
Tf: 91-8871260
Fax: 91-8831011
Avd. Punto Es, 4 Alcalá de Henares (Madrid) 28805
http://logytel.es/



-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a