Llamado desde Ruby on Rails de procedimientos almacenados de PostgreSQL

46 views
Skip to first unread message

July Campos

unread,
Sep 3, 2020, 8:28:04 AM9/3/20
to ror-es

Hola a todos,

Estoy trabajando con la BD PostgreSQL, tengo instaladas las gemas siguientes:
gem 'pg', '~> 1.2', '>= 1.2.3'
gem 'activerecord-postgresql-adapter', '~> 0.0.1' 

Debo hacer el llamado de procedimientos almacenados - funciones que se encuentran en la BD PostgreSQL y no he encontrado la forma aún.
  
Por ejemplo, con Oracle realizando la siguiente configuración/instalación puedo hacer el llamado a funciones, procedimientos creados en la BD de Oracle:
1- En el archivo Gemfile.yml:
gem 'ruby-plsql' 
gem 'ruby-oci8' 
gem 'activerecord-oracle_enhanced-adapter'

2- Inicializador que lo conecte a su conexión ActiveRecord , esto se hace creando un archivo plsql.rb en la carpeta config(config/plsql.rb), el inicializador es el siguiente:
 plsql.activerecord_class = ActiveRecord::Base

Con esta configuración en Oracle puedo hacer el llamado a una función de la siguiente forma:

plsql.Nombre_Paquete.Nombre_Funcion( nombre_parametro1, nombre_parametro2 )

Estoy buscando hacer el llamado pero esta vez con PostgreSQL.

Un saludo y gracias.

Ancor Cruz

unread,
Sep 3, 2020, 6:39:49 PM9/3/20
to ror-es
Hola July,

Quizá con 'execute' [1] puedas ejecutar esos procedimientos almacenados en SQL. Sería algo así...

ActiveRecord::Base.connection.execute("procedimiento (params)")



--
--
You received this message because you are subscribed to the Google
Groups "ror-es" group.
To post to this group, send email to ror...@googlegroups.com
To unsubscribe from this group, send email to
ror_es+un...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/ror_es?hl=en
Rails no escala.

---
You received this message because you are subscribed to the Google Groups "ror-es" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ror_es+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ror_es/e0c93308-3698-48c1-b42a-3b0fe00c421bn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages