微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用postgresql中的存储过程将数据插入到表中

CREATE TABLE app_for_leave
(
  sno integer NOT NULL,eid integer,ename varchar(20),sd date,ed date,sid integer,status boolean DEFAULT false,CONSTRAINT pk_snoa PRIMARY KEY (sno)
)
;

基本插入是::

INSERT INTO app_for_leave(sno,eid,sd,ed,sid,status)
 VALUES(1,101,'2013-04-04',2,'f' );


INSERT INTO app_for_leave(sno,status)VALUES(?,?,?);

我的要求::如何使用存储过程将数据插入到表中?

Postgresql doesn’t support stored procedures本身,但您可以使用功能获得相同的结果.例如:
CREATE FUNCTION MyInsert(_sno integer,_eid integer,_sd date,_ed date,_sid integer,_status boolean)
  RETURNS void AS
  $BODY$
      BEGIN
        INSERT INTO app_for_leave(sno,status)
        VALUES(_sno,_eid,_sd,_ed,_sid,_status);
      END;
  $BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

你可以这样调用它:

select * from MyInsert(1,'f' );

与真实存储过程相比,Pg存储函数的主要限制是:

>无法返回多个结果集
>不支持自主交易(BEGIN,COMMIT和ROLLBACK在一个函数内)
>不支持sql标准CALL语法,尽管ODBC和JDBC驱动程序将为您翻译调用.

Example

原文地址:https://www.jb51.cc/postgresql/191659.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐