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
Oracle 查询库中所有表中匹配指定关键字的数据的总数量
最新推荐文章于 2025-01-14 18:30:50 发布