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本身,但您可以使用功能获得相同的结果.例如:
原文链接:/postgresql/191659.htmlCREATE 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驱动程序将为您翻译调用.