`
li.feixiang
  • 浏览: 118422 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

查找Oracle数据库中包含指定值的字段

阅读更多

SET SERVEROUTPUT ON
ACCEPT ROW_ID PROMPT '请输入要查询的字符串 :'

DECLARE
  SQL_STMT VARCHAR2(200);
  V_TBLNAME VARCHAR2(30);
  V_COLNAME VARCHAR2(30);
  REC_COUNT NUMBER(7):=0;
  CURSOR WT_TABLES IS
    SELECT TABLE_NAME,COLUMN_NAME FROM USER_TAB_COLUMNS
    WHERE DATA_TYPE='VARCHAR2'
    ORDER BY TABLE_NAME,COLUMN_NAME;
BEGIN
  FOR COLREC IN WT_TABLES LOOP
    V_TBLNAME:= COLREC.TABLE_NAME;
    V_COLNAME:= COLREC.COLUMN_NAME;
--    DBMS_OUTPUT.PUT_LINE ('TABLE: '||
--                              V_TBLNAME||' ,COLUMN: '||V_COLNAME);
--    DBMS_OUTPUT.PUT_LINE (V_TBLNAME);
    SQL_STMT:='SELECT COUNT(*) FROM '||COLREC.TABLE_NAME||' WHERE '||COLREC.COLUMN_NAME||' LIKE :1';
    EXECUTE IMMEDIATE SQL_STMT INTO REC_COUNT USING '&ROW_ID';           
--    DBMS_OUTPUT.PUT_LINE (V_TBLNAME||'  '||REC_COUNT);
    IF REC_COUNT>=1 THEN
      DBMS_OUTPUT.PUT_LINE ('TABLE: '||
                              V_TBLNAME||' ,COLUMN: '||V_COLNAME);
    END IF;
  END LOOP;
  
  DBMS_OUTPUT.PUT_LINE ('以上表中的字段包含该数据');
  
END;
/
-----******************-----------

执行示例:
SQL> @querystring.sql
请输入要查询的字符串 :TestString
原值   18:     EXECUTE IMMEDIATE SQL_STMT INTO REC_COUNT USING '&ROW_ID';
新值   18:     EXECUTE IMMEDIATE SQL_STMT INTO REC_COUNT USING 'qq';
TABLE: CABINET ,COLUMN: NAME
TABLE: CSC_GENERATEDNUMBER ,COLUMN: GN_REQUESTOR
TABLE: ELECTRONICSIGNATURE ,COLUMN: NAME
TABLE: LIFECYCLEHISTORY ,COLUMN: ACTORNAME
TABLE: LOCATIONCHANGERECORD ,COLUMN: USERID
TABLE: PERSONRESOURCE ,COLUMN: NAME
TABLE: PUBLISHINGSUMMARY ,COLUMN: USERNAME
TABLE: RECENTUPDATE ,COLUMN: NAME
TABLE: WORKITEM ,COLUMN: COMPLETEDBY
TABLE: WTUSER ,COLUMN: NAME
以上表中的字段包含该数据

PL/SQL 过程已成功完成。

SQL>

分享到:
评论

相关推荐

    oracle遍历数据库查找字符串

    自己工作时写的oracle搜索数据库,查找想要找的字符串.配置简单,省去单独写sql的时间.运行需要jre运行环境.

    Oracle数据库查找替换工具

    Oracle 数据库 查找替换工具 (*目前只支持Oracle) 在整个数据库中查找某个字符串。 支持字符串、CLOB、BLOB字段类型。 支持字符串替换功能。 可定义查找的表、字段、字段类型。 可同时查询多个字符串。

    更改Oracle表中字段的顺序的终极方法

    想要调整字段顺序非常不容易,网上的方法竟然都是备份表之后删除再重建,这样整的话不是麻烦而是忒麻烦。查找了一些资料,发现有办法可以解决,而不用那么大费周章,如果更改的话需要SYS的权限,废话少说了

    Oracle 数据库查找替换工具

    可以在整个数据库中查找某个字符串。 支持 CHAR,VARCHAR NVARCHAR,CLOB,BLOB字段类型。 可批量查找,批量替换。 http://db.okof.net/dbr/

    oracle-查找硬解析问题SQL语句

    在数据库中硬解析是万恶之源,为大家提供一个查找并且定位oracle硬解析问题SQL语句脚本

    ORACLE数据库智能化管理系统2012

    ORACLE数据库智能化管理系统2012 软件介绍 序言 ORACLE数据库管理们: 你们还在为处理日常大量数据,天天写过多的SQL语句而烦恼吗? 还在为由于没有面面具到的软件来汇制想要的日常数据报表而烦恼吗? 还在为查找...

    查找oracle数据库表中是否存在系统关键字的方法

    今天在工程中遇到“ORA-01747: user.table.column, table.column 或列说明无效”的报错情况,查了一下是由于数据库列名起的不好引起的,名字用到了数据库的关键字。 select * from v$reserved_words where keyword ...

    ORACLE数据库智能化管理系统2008演示

    ORACLE数据库智能化管理系统2009 软件介绍 序言 ORACLE数据库管理们: 1. 你们还在为处理日常大量数据,天天写过多的SQL语句而烦恼吗? 2. 还在为由于没有面面具到的软件来解决日常数据报表而烦恼吗? 3. 还在为查找...

    Oracle绿色版免安装数据库客户端管理工具

    一般数据库中,同一个字段名可能在多张表里使用,大部分情况下,其类型,长度,备注基本一致.但是设计的时候往往会疏忽大意,把同一个字段名设置了不同的类型长度备注,所以我做了一个 ―同名字段检查‖的功能,可以检查出...

    数据库表查找工具

    当软件数据库表很多而且我们不清楚数据字典设计的情况下,需要知道某个操作会影响到哪些表,这时候可以用这个工具将所涉及的表查找出来。

    使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名

    本文例出了使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名的SQL语句,有需要的可以参考下

    知道某个字段的值(例如:“张三”),需要查询在其他某个表中有没有相同的值

    Oracle 存储过程实现字段值查询 Oracle 存储过程是 ...相比之下,MySQL 数据库中可以使用右键“在数据库中查找...”功能来查询字段值,该功能可以快速地查询字段值,但不具备 Oracle 存储过程的灵活性和可扩展性。

    Oracle函数:根据自定义分隔符拆分字段SPLIT-STR()然后查询检索数据库表数据

    4、易于集成:函数设计简洁,易于集成到现有的Oracle数据库系统中,无需复杂的配置和改造。 5、优化查询性能:通过避免复杂的子查询和嵌套循环,我们的函数显著提升了数据处理的速度,减少了数据库资源的消耗,让您...

    Oracle数据库设计规范建议.doc

    Oracle数据库设计规范建议 1 目的 本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生 的麻烦;同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很 好的保证。 ...

    Oracle中查找和删除重复记录方法

    删除重复记录的方法原理:在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会...

    oracle实验报告

    使用DESCRIBE(缩写DESC)可以列出指定表的基本结构,包括各字段的字段名以及类型、长度、是否非空等信息。 4. 使用SQL*PLUS显示数据库中EMP表的内容 输入下面的查询语句: SQL>SELECT * FROM emp; 按下回车键执行...

    获取拼音首码和五笔首码

    获取拼音首码,五笔首码,支持所有数据库,通过数据库字典进行查询

    oracle截取表字段中带分号的信息的存储过程

    Oracle 存储过程是 Oracle 数据库中的一种程序单元,它可以实现复杂的业务逻辑和数据处理。在本文中,我们将讨论如何使用 Oracle 存储过程来截取表字段中带分号的信息。 存储过程的基本概念 在 Oracle 中,存储...

    Oracle数据库rownum和row_number的不同点

    明确对于rownum 来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是二,以此类推,这个为字段可以用于限制查询的返回的总行数,因为rownum总是从1开始,但是1以上的自然数在rownum...

    关于oracle中clob字段查询慢的问题及解决方法

    最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。 blob字段直接用 select * from table_name where column like ‘%%'查找的时候是不能实现...

Global site tag (gtag.js) - Google Analytics