Oracle 查询库中所有表中匹配指定关键字的数据的总数量

CREATE OR REPLACE
PROCEDURE PRODUCE_QUERY_KEY_WORD_RECORD  (
  V_KEY_WORD IN VARCHAR2
) Authid Current_User  --加上该句是为解决存储过程中新建的表,进行访问时提示权限不足的问题
AS 
  V_SQL     VARCHAR2(4000);							
  V_TB_COL  VARCHAR2(512);
	
	--记录每个匹配列中含有关键字记录总数
  V_CNT     NUMBER(18,0);	
	
	--记录每个有匹配表的总匹配记录数
	V_COUNT_OF_TABLE NUMBER(18,0) DEFAULT 0;		
	
	--记录总的匹配记录条数
	V_TOTAL   NUMBER(18, 0);
	
	--记录上次查询字段所属表
	V_LASTTABLE VARCHAR2(150) DEFAULT 'null'; 
	
	--记录当前查询字段所属表
	V_CURTABLE  VARCHAR2(150) DEFAULT 'null';  
	
	--创建表语句
	V_SQL_CREATE_TMP_TABLE VARCHAR2(500);
	
	--临时表旧数据删除语句
	V_SQL_TRUNCATE_TMP_TABLE VARCHAR2(100);
	
	--单个表匹配数据总量
	V_TEP_TABLE_COUNT VARCHAR2(100);

  
  --使用游标,将所有表的每个字段的每行数据值与关键字匹配的查询拼接为sql
  CURSOR CUR_SQLS IS 
    SELECT 'SELECT ''' || X.TABLE_NAME || '.' || X.COLUMN_NAME || ''' AS COL_NAME, NVL(COUNT(' || X.COLUMN_NAME || '),0) AS CNT FROM ' || X.TABLE_NAME 
           || ' A WHERE A.' || X.COLUMN_NAME || ' LIKE ''%' || V_KEY_WORD || '%''' AS SQL_ST
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值