0
我有一个表:如何通过OID参数PostgreSQL函数
CREATE TABLE public."Persons"
(
id_persons serial NOT NULL,
name_persons varchar(50) NOT NULL,
telephone_persons varchar(14) NOT NULL,
email_persons varchar(100),
address_persons integer NOT NULL,
photo_persons oid,
login_persons varchar(20) NOT NULL,
password_persons varchar(32) NOT NULL,
type_persons public."PersonTypes" NOT NULL DEFAULT 'Client',
CONSTRAINT "Persons_pkey" PRIMARY KEY (id_persons),
CONSTRAINT "Persons-email_ukey" UNIQUE (email_persons),
CONSTRAINT "Persons-login_ukey" UNIQUE (login_persons)
);
在本地PC我有一个photo.gif
文件,我需要这个文件中Person
表发送到photo_persons
列。
我想通过存储过程并使用cursor.callproc()
psycopg2方法来执行此操作。
我需要一些存储过程和psycopg2示例来获取此示例。
但我有一个postgresql存储过程,用于保存数据在一个名为'Person'的表中。这个函数预计会接收很多参数,其中一个是一个叫做'photo'的oid类型。 当我使用cursor.callproc()调用存储过程时,必须传递给'photo'参数吗? 这将是一个'lobject'对象?例如。 'cur.callproc(par1,par2,....,any_lobject)'? –
如果'photo'参数应该是现有'lobject'的'oid',那么你就像上面的例子那样通过'oid',例如, 'new_lob.oid'。 – yieldsfalsehood
在这种情况下,二进制文件必须预先存储在数据库中,它是正确的? 但在我的情况下,图像文件在本地PC上,需要通过存储过程发送到数据库。 –