Probablemente se haya planteado anteriormente el caso. Algunas veces uno modifica estructuras de una vista remota, para ello (cuando cambian los campos que la componen, por ejemplo) necesita eliminarla y volver a crearla. El problema se presenta si esa vista es utilizada en una función, ya que al borrarla no genera ninguna advertencia y luego al ejecutar la función nos devuelve un error sobre un objeto inexistente (adjunto un ejemplo). En bases de datos complejas de muchos objetos muchas veces a uno se les puede escapar alguna referencia y puede ser un dolor de cabeza. Es un postgres 8.2.6 compilado para linux 64 bits.
Welcome to psql 8.1.4 (server 8.2.6), the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit WARNING: You are connected to a server with major version 8.2, but your psql client is major version 8.1. Some backslash commands, such as \d, might not work properly. A=> CREATE TABLE _test AS SELECT 1::SMALLINT; SELECT A=> CREATE OR REPLACE VIEW _vtest AS SELECT * FROM _test; CREATE VIEW A=> CREATE FUNCTION _ftest() RETURNS void AS A-> $BODY$ A$> BEGIN A$> PERFORM 1 FROM _vtest; A$> RETURN; A$> END A$> $BODY$ A-> LANGUAGE 'plpgsql' VOLATILE; CREATE FUNCTION A=> SELECT * FROM _ftest(); _ftest -------- (1 row) A=> DROP VIEW _vtest; DROP VIEW A=> CREATE VIEW _vtest AS SELECT *, 2 FROM _test; CREATE VIEW A=> SELECT * FROM _ftest(); ERROR: relation with OID 4566408 does not exist CONTEXT: SQL statement "SELECT 1 FROM _vtest" PL/pgSQL function "_ftest" line 2 at perform Saludos, Alejandro -- TIP 2: puedes desuscribirte de todas las listas simultáneamente (envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])