DB2对数据库进行全库搜索
来源:互联网 发布:和社交网络类似的电影 编辑:程序博客网 时间:2024/06/08 03:23
客户要求对整个数据库进行搜索,找出敏感字。在网上搜索很久都没有好的解决办法,只好自己写存储过程来处理了。
边学边写可能还有地方不完善的。
--记录查找结果delete table CHECK_RESULT;create table CHECK_RESULT( check_result_id INTEGER, system_name VARCHAR(40), table_name VARCHAR(40), pk_name VARCHAR(40), pk_value VARCHAR(40), column_name VARCHAR(40), column_value VARCHAR(4000), keyword VARCHAR(100));--要查找的关键字delete table CHECK_WORDcreate table CHECK_WORD( word_id INTEGER, word_type VARCHAR(40), word_value VARCHAR(100));DROP PROCEDURE Sensitive_key;CREATE PROCEDURE Sensitive_key()LANGUAGE SQLBEGIN DECLARE SQL VARCHAR(5000); FOR TN AS C1 CURSOR FOR select table_name from SYSIBM.TABLES WHERE TABLE_SCHEMA='模式名' AND TABLE_TYPE='BASE TABLE'--找出所有表名 DO BEGIN FOR COL AS C2 CURSOR FOR SELECT NAME,(SELECT NAME FROM SYSIBM.SYSCOLUMNS where TBNAME=TN.TABLE_NAME AND KEYSEQ=1)ID FROM SYSIBM.SYSCOLUMNS where TBNAME=TN.TABLE_NAME--找出所有列名,以及主键列。由于库里只有主键有序列,所以用这个条件选择主键。 DO BEGIN FOR K AS C3 CURSOR FOR SELECT WORD_VALUE FROM CHECK_WORD --记录了要关键字的表 DO BEGIN SET SQL='INSERT INTO CHECK_RESULT(CHECK_RESULT_ID,TABLE_NAME,KEYWORD,column_name,COLUMN_VALUE) SELECT '|| COL.ID ||','''|| TN.TABLE_NAME ||''','''|| K.WORD_VALUE ||''','''|| CHAR(COL.NAME) ||''',CHAR('|| COL.NAME ||') FROM '|| TN.TABLE_NAME || ' WHERE CHAR('|| COL.NAME ||')LIKE ''%'|| K.WORD_VALUE ||'%'''||''; IF SQL <> '' THEN PREPARE st FROM SQL; EXECUTE st; end if; END; END FOR; END; END FOR; END; END FOR;END;CALL CMBBCD.Sensitive_key();
0 0
- DB2对数据库进行全库搜索
- MySQL 采用Xtrabackup对数据库进行全库备份
- MySQL 采用Xtrabackup对数据库进行全库备份
- [VB.NET]怎样对数据库中的所有记录进行搜索?
- 数据库全库搜索简单实现
- DB2 通用数据库进程全接触
- DB2数据库全量备份1
- DB2数据库全量备份2
- DB2数据库全量恢复1
- DB2通用数据库进程全接触
- 对DB2系统当前日期进行格式化
- SQL Server 全数据库搜索
- Sphinx对索引进行搜索
- DB2数据库自动备份详解--(DB2 任务中心进行配置)
- 对数据库进行CRUD
- 在SSMS(2008)中对数据库对象进行搜索和筛选
- 使用DB2 Text Search进行全文本搜索pdf
- 使用Lucene对数据库搜索
- string中c_str()、data()、copy(p,n)函数的用法
- Android中XLIFF标签的应用
- 水仙花数(2010)
- ubuntu设置自定义程序开机启动(本文以tomcat为例)
- 使用java代码提交图片到服务器
- DB2对数据库进行全库搜索
- hdu-4548-美素数。。。
- FullScreen JavaScript API 具体使用
- BZOJ1305 [CQOI2009]dance跳舞
- java代理实现domino web邮件下载
- 强行登陆远程桌面和切换帐号的方法
- 阶段总结 ———— linux shell 判断mysql数据库密码是否为空、是否正确
- 定时清除日志文件
- hdu 4864 Task