跳转到内容


如何执行 postgresql 存储过程


2 replies to this topic

#1 jinfengpu

    新手上路

  • 注册用户
  • 点子
  • 1 帖子数:

发表于 2008/08/06 18:25:38

--如果数据库存在就删除表
drop table personinfo
--创建表
CREATE TABLE personinfo
(
creditid character varying NOT NULL,
sex smallint,
CONSTRAINT personinfo_pkey PRIMARY KEY (creditid)
)
--追加数据
insert into personinfo(creditid,sex) values('a001',1);
--追加数据
insert into personinfo(creditid,sex) values('a002',0);
--查询已追加的数据信息
select * from personinfo
--创建数据过程,返回游标作为结果集
create or replace function transf() returns refcursor as $$
--声明游标
declare ref refcursor;
--begin end 成对存在。开始
begin
--打开游标
open ref for select * from personinfo where creditId='a001';
if not found then
--作处理
end if;
--返回游标
return ref;
--关闭游标
Close ref;
--结束
end;

$$
language plpgsql;


请各位前辈看看,我上面这个例子怎么调用阿?在线等

#2 Tanya

    管理员

  • 总版主
  • 946 帖子数:

发表于 2008/09/26 08:40:02

你是想在哪个语言里面调用此存储过程呢?

#3 Tanya

    管理员

  • 总版主
  • 946 帖子数:

发表于 2008/09/26 08:45:41

比如调用postgresql在Delphi中的调用:
一般类型的存储过程:
ADOStoredProc1.Close;
ADOStoredProc1.Parameters[0].Value :=value0;
ADOStoredProc1.Parameters[1].Value :=Value1;
ADOStoredProc1.Parameters[2].Value :=value2;
ADOStoredProc1.ExecProc;

有返回数据集的调用:
ADOStoredProc1.Open;