oracle plsql 根据 值 查询 在某个表,某个字段 和 sql server 中根据 值 查询 在某个表某个字段

淡淡的烟草味﹌ 2023-10-18 11:12 105阅读 0赞

oracle plsql 根据 值 查询 在某个表,某个字段 和 sql server 中根据 值 查询 在某个表某个字段

Oracle 方式 :

  1. declare
  2. CURSOR cur_query IS
  3. select table_name, column_name, data_type from user_tab_columns;
  4. a number;
  5. sql_hard varchar2(2000);
  6. vv number;
  7. begin
  8. for rec1 in cur_query loop
  9. a:=0;
  10. if rec1.data_type ='VARCHAR2' or rec1.data_type='CHAR' THEN
  11. a := 1;
  12. end if;
  13. if a>0 then
  14. sql_hard := '';
  15. sql_hard := 'SELECT count(*) FROM '|| rec1.table_name ||' where '
  16. ||rec1.column_name|| ' like''00110000%'''; -- 改成我们要查询的值 如果是确定某个值的话,就直接用 =
  17. --dbms_output.put_line(sql_hard);
  18. execute immediate sql_hard INTO vv;
  19. IF vv > 0 THEN
  20. dbms_output.put_line(rec1.table_name||'--'||rec1.column_name);
  21. end if;
  22. END IF;
  23. end loop;
  24. end;

SQL Server 的方式 :

  1. declare @key varchar(30)
  2. set @key = 'ICG' --替换为要查找的字符串
  3. DECLARE @tabName VARCHAR(40),@colName VARCHAR(40)
  4. declare @sql VARCHAR(2000)
  5. declare @tsql varchar(8000)
  6. DECLARE tabCursor CURSOR FOR
  7. SELECT name From sysobjects WHERE xtype = 'u' AND name <> 'dtproperties'
  8. OPEN tabCursor
  9. FETCH NEXT FROM tabCursor INTO @tabName
  10. WHILE @@fetch_status = 0
  11. BEGIN
  12. set @tsql = ''
  13. DECLARE colCursor CURSOR FOR Select Name FROM SysColumns Where id=Object_Id(@tabName) and xtype=167
  14. OPEN colCursor
  15. FETCH NEXT FROM colCursor INTO @colName
  16. WHILE @@fetch_status = 0
  17. BEGIN
  18. SET @sql = 'if(exists(select * from ' + @tabName + ' where '
  19. SET @sql = @sql + @colName + ' like ''%' + @key + '%'')) begin select * from '
  20. set @sql = @sql + @tabName + ' where ' + @colName + ' like ''%' + @key + '%'';select '''
  21. + @tabName + ''' as TableName end'
  22. set @tsql = @tsql + @sql + ';'
  23. FETCH NEXT FROM colCursor INTO @colName
  24. END
  25. exec(@tsql)
  26. CLOSE colCursor
  27. DEALLOCATE colCursor
  28. FETCH NEXT FROM tabCursor INTO @tabName
  29. END
  30. CLOSE tabCursor
  31. DEALLOCATE tabCurso
  32. 转自:https://www.cnblogs.com/wuyifu/archive/2013/06/06/3120307.html 侵删

发表评论

表情:
评论列表 (有 0 条评论,105人围观)

还没有评论,来说两句吧...

相关阅读