Tema: Funcion
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/02/2007, 07:39
Fabian olmos
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 11 meses
Puntos: 0
Mensaje Funcion

buenos dias a todos, desde ayer estoy elaborando una funcion en postgres con lengueje plpgsql me da un error con relacion a los OIDS me dice lo siguiente:

ERROR: relation with OID 30069 does not exist
CONTEXT: SQL statement "SELECT (temp.total=0)"
PL/pgSQL function "registro2" line 9 at if



la funcion es la siguiente:

Código PHP:
CREATE OR REPLACE FUNCTION acceso.registro2(int8date"time",varchar)  RETURNS void AS'
BEGIN
     IF (select count(*) from pg_tables where tablename=$4) THEN     
    
    EXECUTE \'DROP TABLE \' || $4;
     END IF;
    SELECT COUNT(a.cedula) AS total INTO temp  FROM acceso.acceso a WHERE a.cedula=$1 AND 
    a.fecha=$2;
    
    IF (temp.total=0) THEN
        INSERT INTO acceso.acceso (cedula,fecha,hora_i) VALUES ($1,$2,$3);
      ELSE
        IF ((SELECT a.hora_ii FROM acceso.acceso a WHERE a.cedula=$1 AND a.fecha=$2) IS NULL)THEN
            UPDATE acceso.acceso SET hora_ii=$3 WHERE cedula=$1 AND fecha=$2;
           ELSE
             IF ((SELECT a.hora_iii FROM acceso.acceso a WHERE a.cedula=$1 AND a.fecha=$2) IS NULL)THEN
                UPDATE acceso.acceso SET hora_iii=$3 WHERE cedula=$1 AND fecha=$2; 
            ELSE
                IF ((SELECT a.hora_iv FROM acceso.acceso a WHERE a.cedula=$1 AND a.fecha=$2) IS NULL)THEN
                    UPDATE acceso.acceso SET hora_iv=$3 WHERE cedula=$1 AND fecha=$2; 
                END IF;    

             END IF;
        END IF;
      END IF;
 RETURN;
END;'
  
LANGUAGE 'plpgsql'

gracias ......