April 2015
M T W T F S S
« Aug   Aug »
 12345
6789101112
13141516171819
20212223242526
27282930  

Crear Tabla con función en Postgres 8.4 y 9.x

Al realizar una funcion que cree autoamticamente una tabla con parametros, me econtre con un error que decia  ERROR:  syntax error at or near “NOT”
LINE 1: CREATE TABLE  IF NOT EXISTS

Esto no funciono en un postgres 8.4 y la funcion que realice era en 9.x asi que realice dos funciones para que funcione en mi servidor de aplicaciones en 8.4

8.4 9.1
CREATE OR REPLACE FUNCTION myEsquema.crear_tabla(text, text)
RETURNS void AS
$BODY$
DECLARE
nombre_tabla ALIAS FOR $1;
iniciales ALIAS FOR $2;
i boolean;
BEGIN
EXECUTE ‘SELECT EXISTS ( SELECT *   FROM   pg_catalog.pg_tables  WHERE  schemaname = ”myEsquema”  AND    tablename  = ”’||nombre_tabla||”’ )’ INTO    i;
IF i THEN
ELSE
EXECUTE ‘CREATE TABLE myEsquema.rol_’ || nombre_tabla || ‘(‘
||iniciales ||’_id integer  null,’
||iniciales ||’_cedula character varying(10) not null,’
||iniciales ||’_periodo date default null,’
||iniciales ||’_orden int null,’
||iniciales ||’_estado int default 2,’
||iniciales ||’_reg_fecha timestamp without time zone DEFAULT now(),’
||iniciales ||’_reg_usu integer) ‘;
END IF;END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION myEsquema.crear_tabla(text, text)
OWNER TO postgres;
CREATE OR REPLACE FUNCTION myEsquema.crear_tabla(text, text)
RETURNS void AS
$BODY$
DECLARE
nombre_tabla ALIAS FOR $1;
iniciales ALIAS FOR $2;BEGIN
execute ‘CREATE TABLE  IF NOT EXISTS myEsquema.rol_’ || nombre_tabla || ‘(‘
||iniciales ||’_id integer  null,’
||iniciales ||’_cedula character varying(10) not null,’
||iniciales ||’_periodo date default null,’
||iniciales ||’_orden int null,’
||iniciales ||’_estado int default 2,’
||iniciales ||’_reg_fecha timestamp without time zone DEFAULT now(),’
||iniciales ||’_reg_usu integer)’;

END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION myEsquema.crear_tabla(text, text)
OWNER TO postgres;

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

javaprograma
wine
base de datos
php
Cannot send session cache limiter – headers already sent
Warning: Cannot send session cache limiter – headers already sent (output started at /home/httpd/vhosts/martinalia.com/httpdocs/inc-public.php3(20) : eval()’d code:7) in /home/httpd/vhosts/martinalia.com/httpdocs/inc-public.php3(20) :
Read more.
Particionar tabla postgres, y llenar automaticamente con registros
El siguiente script es para crear una tabla fragmentada horizontalmente y llenar automaticamente con un procedimiento almacenado. –Postgres create table
Read more.
Particionar tabla Oracle, y llenar automaticamente con registros
Para fragmentar horizontal una tabla y llenar automaticamente . create table tablanormal ( llave integer,dato varchar(10) ); create table tablaparticionada
Read more.
Particionar tabla SQL Server, y llenar automaticamente con registros
CREATE TABLE tablanormal ( llave bigint primary key, dato varchar(15) );
Read more.
WMI error al desinstalar Sqlserver 2008
Detenga el servicio WMI: Ir a Inicio / Ejecutar, escriba cmd en la pantalla que se abre tipo: net stop
Read more.
Violation of PRIMARY KEY constraint
Violation of PRIMARY KEY constraint ‘PK_TABLA’. Cannot insert duplicate key in object ‘dbo.TABLA’. The statement has been terminated.
Read more.
INSTALAR JBOSS 7 EN CENTOS 6.4
INSTALAR JBOSS 7 REALIZAR LO SIGUIENTE ]#yum install java-1.7.0-openjdk ]#java -version ]#cd lx-jboss71-jdk7-jdbcpg84/ ]#cp /usr/share/ ]#cp jboss-as-7.1.1.Final.zip /usr/share/ ]#cd /usr/share/
Read more.
Crear Tabla con función en Postgres 8.4 y 9.x
Al realizar una funcion que cree autoamticamente una tabla con parametros, me econtre con un error que decia  ERROR:  syntax
Read more.
CONFIGURAR APACHE CON JBOSS 7.1
Observar que Jboss este añadido el apj en el Administrador, si no esta añadirlo.  Instalar apache en tu centos ]#yum
Read more.
Crear y asignar autoincremental a columna campo tipo serial
Cuando necesites crear un campo y quieres abregale un secuencial.   CREATE SEQUENCE esquema.tabla_tbl_id_seq; ALTER TABLE esquema.tabla ADD COLUMN tbl_id
Read more.