PostgreSQL function in an insert statement


#1

Hi there,

I wont insert a picture in a PostgrSQL-DB via the function lo_import.
Therfore I modify the value of an ‘oid’ column.

@measurepoint = Measurepoint.new(params[:measurepoint])
@measurepoint.measurepoint_background =
“lo_import(’#{@params[‘measurepoint’][‘measurepoint_background’]’)”
@measurepoint.save

The result is an error like this:

PGError: ERROR: invalid input syntax for type oid:

because the function is quotet in the values of the insert statement.

‘lo_import(‘picture’)’
^ ^

These quotes are responsible for a wrong interpretation from the
database,
because a function in quotes is not a function, its a string.

Is it possible to give the modified insert statement without quotes to
the
insert statement.

Thank you for a solution and please apologize my bad english.


Torsten Senf


#2

I use extension for PostgreSQLAdapter to deal with PG large objects:
http://dev.rubyonrails.org/ticket/2090

And this to deal with functions and stored proc:
http://www.bigbold.com/snippets/posts/show/1008

HTH