RE:Como definir un campo de imagen para Postgres
Postgresql tiene tres tipos de datos para los objetos largos, en Oracle es del tipo Long, en Postgresql tienes:
oid
bytea
y creo que el otro es bit
los dos primeros funcionan perfecto, puedes almacenar archivos de cualquier tipo, lo que puedes hacer es crear tu tabla y adicional ponerle un campo con el nombre del archivo y la extensión porque cuando lo exportas para que recuperes el archivo tiene que ser con la extensión que lo subiste.
Postgresql con PB no tiene la misma funcionalidad que con SQL Server (cuando utilizas el updateblob()), por el contrario, el Postgresql utiliza funciones dentro del PLPGSQL que esl lo_import y el lo_export, para importar o subir tus imagenes y recuperarlas en un directorio especifico respectivamente.
Ahora bien, lo que tienes que hacer, es crear un procedimiento almacenado en tu base de datos postgresql donde recibas como parametro la ruta completa de tu archivo, y el nombre del archivo, en la ruta tienes que reemplazar los "\" por "\\" porque Postgresql toma este caracter como si fuera un dato en blanco.
Desde tu PB tienes que copiar el archivo o imagen a tu servidor donde se encuentra alojado tu base de datos, luego donde copiaste tu archivo, tienes que copiar esa ruta Y luego llamar a tu SP para que levantes tu imagen.
Espero te haya servido, mas documentación sobre como levantar imagenes o archivos grandes en Postgresql:
http://www.varlena.com/varlena/GeneralBits/44es.php
Saludos desde Perú