From: | Victor Lopez <v(dot)lopez(dot)s(at)ono(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | SELECT funciona ahora y nunca mas |
Date: | 2007-03-19 20:31:07 |
Message-ID: | 200703192131.07518.v.lopez.s@ono.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenas.
Puede (seguro) que hay una manera mas facíl de hacerlo, y si me lo decís os
lo agradeceré.
El caso es que tengo la siguiente secuencia ...
test=# CREATE DOMAIN domUsuario AS VARCHAR(16) NOT NULL CONSTRAINT usuarioChk
CHECK(VALUE ~ '^[a-zA-Z0-9]{8,}$');
CREATE DOMAIN
test=# CREATE OR REPLACE FUNCTION EsUsuario(VARCHAR(16)) RETURNS boolean AS
test-# $$
test$# BEGIN
test$# CREATE TEMP TABLE tblUsuario (usuario domUsuario) ON COMMIT DROP;
test$# INSERT INTO tblUsuario VALUES ($1);
test$# RETURN TRUE;
test$# EXCEPTION
test$# WHEN check_violation THEN
test$# RETURN FALSE;
test$# END;
test$# $$
test-# LANGUAGE plpgsql;
CREATE FUNCTION
test=# SELECT EsUsuario('usu');
esusuario
-----------
f
(1 fila)
Y hasta aquí me funciona (o eso creo) ... crea un dominio que me vale para
crear una tabla ¿temporal? -> ¿dentro de esa función?
Mediante "SELECT EsUsuario('usu')" hago funcionar esa función y me da un
resultado creo que correcto.
El problema viene justo despues ...
test=# SELECT EsUsuario('usu');
ERROR: no existe la relación con OID 16789
CONTEXT: sentencia SQL: «INSERT INTO tblUsuario VALUES ( $1 )»
PL/pgSQL function "esusuario" line 3 at SQL statement
repito la sentencia que me ha funcionado unas lineas antes y me falla ... :-(
Alguien sabe porque?
--
----o---( )---o----
Saludos de Victor Lopez Sabio
v(dot)lopez(dot)s(at)ono(dot)com
--------oooo--------
From | Date | Subject | |
---|---|---|---|
Next Message | Sonia Malave | 2007-03-19 20:48:57 | Re: Transacciones! |
Previous Message | Rubén Luna | 2007-03-19 20:27:59 | Campo tipo lo |