Postgres Function y Cursores
El Gran Elefante.
Bueno la pregunta es como programar una buena function en postgres y mas aun como obtener los datos. En este caso estoy evaluando function y cursores. Veamos como funciona esto.
1.- La tabla y código de la function.
CREATE TABLE public.parametros (
codigo VARCHAR NOT NULL,
valor VARCHAR NOT NULL,
descripcion VARCHAR NOT NULL,
dominio VARCHAR NOT NULL,
CONSTRAINT parametros_pk PRIMARY KEY (codigo)
)
2.- La cabecera de la function.
CREATE OR REPLACE FUNCTION public.get_lst_dominio(
IN p_dominio character varying,
IN p_count integer DEFAULT 0,
OUT p_cod_err integer,
OUT p_desc_err character varying,
OUT ref refcursor)
Aquí tengamos presente que los parámetros de entrada están con un IN/OUT
2.- Código Java.
Muy importante que al utilizar cursores en postgresql el autocommit debe estar deshabilitado.
getConexion().setAutoCommit(false);
// TODO : Con el Manejo de cursores es importante manejar el auto commit en falso.
String sql = "{ call public.get_lst_dominio(?, ?, ?, ?, ?) }";
CallableStatement pre = getConexion().prepareCall(sql);
pre.setString(1, dominio);
pre.setInt(2, 0);
pre.registerOutParameter(3, java.sql.Types.INTEGER);
pre.registerOutParameter(4, java.sql.Types.VARCHAR);
pre.registerOutParameter(5, java.sql.Types.OTHER);
pre.execute();
ResultSet resSet = (ResultSet) pre.getObject(5);
Fuentes en GIT : https://github.com/FrankSeguel/Postgresql
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario