过滤关键字,在表TABLE_A 插入前,建立触发器,使用游标过滤关键字。postgresql
2014-10-31 12:44
435 查看
1.创建函数-gl_fun()过滤-使用游标
CREATE OR REPLACE FUNCTION gl_fun(refcursor, msgcontent character varying) RETURNS character varying AS$BODY$
DECLARE Msg varchar(50); --定义变量begin --定义游标 打开游标 ;open $1 FOR SELECT 字段A FROM 表名1 ; --查出需要的集合放到游标中 --打开游标 FETCH NEXT FROM $1 INTO Msg; while found loop msgcontent = replace(msgcontent,Msg,'');---将内容msgcontent 中,包含有关键字MSG 的替换为空 FETCH NEXT FROM $1 INTO Msg; --读取下一行数据 END loop; close $1;--关闭游标return msgcontent; end; $BODY$ LANGUAGE plpgsql VOLATILE COST 100;ALTER FUNCTION gl_fun(refcursor, character varying) OWNER TO postgres;
2.-创建触发器函数,并给表创建触发器
CREATE OR REPLACE FUNCTION A_insert_trigger_fun() RETURNS trigger AS$BODY$ BEGIN NEW.msgcontent := gl_fun('abc',NEW.msgcontent); ---调用刚才的过滤的方法 RETURN NEW; ---返回更新后的数据。END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100;ALTER FUNCTION A_insert_trigger_fun() OWNER TO postgres;
---给表TABLE_A 关联上触发器CREATE TRIGGER A_before_insert_trigger BEFORE INSERT ON TABLE_A FOR EACH ROW EXECUTE PROCEDURE A_insert_trigger_fun();
CREATE OR REPLACE FUNCTION gl_fun(refcursor, msgcontent character varying) RETURNS character varying AS$BODY$
DECLARE Msg varchar(50); --定义变量begin --定义游标 打开游标 ;open $1 FOR SELECT 字段A FROM 表名1 ; --查出需要的集合放到游标中 --打开游标 FETCH NEXT FROM $1 INTO Msg; while found loop msgcontent = replace(msgcontent,Msg,'');---将内容msgcontent 中,包含有关键字MSG 的替换为空 FETCH NEXT FROM $1 INTO Msg; --读取下一行数据 END loop; close $1;--关闭游标return msgcontent; end; $BODY$ LANGUAGE plpgsql VOLATILE COST 100;ALTER FUNCTION gl_fun(refcursor, character varying) OWNER TO postgres;
2.-创建触发器函数,并给表创建触发器
CREATE OR REPLACE FUNCTION A_insert_trigger_fun() RETURNS trigger AS$BODY$ BEGIN NEW.msgcontent := gl_fun('abc',NEW.msgcontent); ---调用刚才的过滤的方法 RETURN NEW; ---返回更新后的数据。END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100;ALTER FUNCTION A_insert_trigger_fun() OWNER TO postgres;
---给表TABLE_A 关联上触发器CREATE TRIGGER A_before_insert_trigger BEFORE INSERT ON TABLE_A FOR EACH ROW EXECUTE PROCEDURE A_insert_trigger_fun();
相关文章推荐
- 在table中插入多行,能使用与insertAdjacentHTML相似的功能吗?
- 关于批量插入时触发器的使用
- MySql 存储过程使用游标循环插入数据示例
- PostgreSQL游标使用举例
- 在table中插入多行,能使用与insertAdjacentHTML相似的功能
- 游标的使用-检索一个表的数据,插入到另一个表中
- Flex-DataGrid使用关键字过滤结果
- Oracle中使用触发器插入自增字段
- oracle使用游标进行循环数据插入
- SQL使用触发器避免记录重复插入
- oracle 使用游标批量分段插入数据
- 使用游标的触发器
- 关于使用Visual Studio 2008 建立Setup And Deployment Project(安装与部署项目)制作安装.net 安装程序,插入Custom Actions(自定义动作)的办法
- 触发器的简单使用(使用游标多行更新)
- ORACLE数据库中为每个数据表建立序列字段插入值的触发器的SQL脚本
- 使用ROS过滤网址和关键字
- SQL使用触发器避免记录重复插入
- PostgreSQL 中存储过程中使用多游标(refcursor)
- 使用Java代码控制ADF table列进行QBE方式的过滤
- oracle 触发器及游标的使用