- 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
@L_502_0@本身,但您可以使用功能获得相同的结果.例如:
- 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驱动程序将为您翻译调用.