Buscando una manera mas sencilla de poder llamar a procedimientos almacenados de Oracle pl/sql, encontré la gema ruby-plsql que es una simple API para procedimientos almacenados en oracle, su uso es muy sencillo como el siguiente:
Si tenemos el siguiente paquete:
CREATE OR REPLACE PACKAGE BODY scott.pck_prueba IS
PROCEDURE LeeDatos(p_in VARCHAR2, p_out OUT VARCHAR2) IS
BEGIN
p_out := 'Se introdujo: ' || p_in;
END;
END;
Ahora dentro del código, como ejemplo dentro del controlador:
require “ruby_plsql”
class UsuariosController < ApplicationController
def index
@usuarios = Usuario.all
plsql.connection = OCI8.new(”SCOTT”, “PASS”)
@hola = plsql.pck_prueba.LeeDatos(”Hola desde Oracle”)
plsql.logoff
end
end
Y para mostrar el dato, en la vista:
<%= @hola[:p_out] %>
Para poder instalar la gema solamente teclee:
[sudo] gem install ruby-plsql
Realmente me facilito bastante el trabajo, me gusta el concepto y el uso que engloba la metaprogramacion.
Nota.- Trabajando con la gema note que no trabaja en procedimientos con variables de entrada y salida, sino solamente de entrada o salida.