Oracle根據欄位值找到表名和列名
--Oracle 根據欄位值查詢其所在的表、欄位 DECLARE CURSOR cur_query IS SELECT table_name, column_name, data_type FROM user_tab_columns; a NUMBER; sql_hard VARCHAR2(2000); vv NUMBER; BEGIN FOR rec1 IN cur_query LOOP a:=0; IF rec1.data_type ='VARCHAR2' OR rec1.data_type='CHAR' THEN a := 1; END IF; IF a>0 THEN sql_hard := ''; sql_hard := 'SELECT count(*) FROM '|| rec1.table_name ||' where ' ||rec1.column_name|| ' like''吳芳''';--欄位值 dbms_output.put_line(sql_hard); EXECUTE IMMEDIATE sql_hard INTO vv; IF vv > 0 THEN dbms_output.put_line('[欄位值所在的表.欄位]:['||rec1.table_name||'].['||rec1.column_name||']'); END IF; END IF; END LOOP; END;
方法2:
DECLARE CURSOR cur_query IS SELECT table_name, column_name, data_type FROM user_tab_columns; a NUMBER; sql_hard VARCHAR2(2000); vv NUMBER; BEGIN FOR rec1 IN cur_query LOOP a:=0; IF rec1.data_type ='NUMBER' THEN a := 1; END IF; IF a>0 THEN sql_hard := ''; sql_hard := 'SELECT COUNT(*) FROM '|| rec1.table_name ||' WHERE ' ||rec1.column_name || '=123456';--欄位值 dbms_output.put_line(sql_hard); EXECUTE IMMEDIATE sql_hard INTO vv; IF vv > 0 THEN dbms_output.put_line('[欄位值所在的表.欄位]:['||rec1.table_name||'].['||rec1.column_name||']'); END IF; END IF; END LOOP; END;
SQLserver中如何實現
DECLARE @what varchar(800) SET @what='123456' --要搜尋的字串 DECLARE @sql varchar(8000) DECLARE TableCursor CURSOR LOCAL FOR SELECT sql='IF EXISTS ( SELECT 1 FROM ['+o.name+'] WHERE ['+c.name+'] LIKE ''%'[email protected]+'%'' ) PRINT ''[欄位值所在的表.欄位]:['+o.name+'].['+c.name+']''' FROM syscolumns c JOIN sysobjects o ON c.id=o.id -- 175=char 56=int 可以查 select * from sys.types WHERE o.xtype='U' AND c.status>=0 AND c.xusertype IN (175, 239, 231, 167 ) OPEN TableCursor FETCH NEXT FROM TableCursor INTO @sql WHILE @@FETCH_STATUS=0 BEGIN EXEC( @sql ) FETCH NEXT FROM TableCursor INTO @sql END CLOSE TableCursor -- 刪除遊標引用 DEALLOCATE TableCursor
本位轉載自:複製到這裡只是怕連線失效哦!!!
http://blog.csdn.net/yangyi22/article/details/7555662
相關推薦
Oracle根據欄位值找到表名和列名
方法1: --Oracle 根據欄位值查詢其所在的表、欄位 DECLARE CURSOR cur_query IS SELECT table_name, column_name, data_type FROM user_tab_columns;
Oracle 根據欄位值查詢其所在的表、欄位(只有欄位值資訊,連欄位型別都不知道)
今天一哥們求助,oracle的我只知道ziduan欄位的值,連型別,大小設定全都不知道,如何查詢到該欄位所在的表,以及該欄位名。以下是我編寫的實際指令碼: 1.假設該欄位是varchar2或者char型別 DECLARE CURSOR cur_hh IS SELECT tabl
查詢資料庫中帶有某個欄位的所有表名
mysql資料庫查詢帶有某個欄位的所有表名 SELECT * FROM information_schema.columns WHERE column_name='column_name'; ora
根據某一指定的表名、列名及列值來向前或向後N條查相關列值的SQL自定義標量值函式
有時需要根據某一指定的列的值來向前或向後N條查相關的列值,那麼用此SQL自定義標量值函式可以取得相關的SQL語句: ALTER FUNCTION GetPreviousNextCodeSql ( @tableName varchar(50), @codeFieldNam
mysql 在修改新增欄位(alter table 表名 add column 或者 modify column)且帶unique時提示duplicate entry for key的原因以及解決方案
今天在公司臨時維護一張表時,我作了一個小動作,新增一個欄位,並且設定為unique時,盡然無法新增欄位,我當時就納悶了,寫了這麼多sql,這麼奇怪的問題還是第一次見,不多說,直接看圖 【我的sql檔案如下】 【執行sql語句報錯:alter table smart_
Sqlserver根據欄位查詢表和根據欄位值查詢表的幾個方法
-------------Sqlserver根據欄位名稱查詢表(多個欄位值),例如查詢欄位名包含 ibatch和cbatch 的表 SELECT *FROM( SELECT t2.name FROM syscolumns t1,sysobjects t2 WHERE t1
全庫檢索包含某個值的表名和所在的列.
查詢整個資料庫中某個特定值所在的表和欄位的方法 當資料庫做的太龐大的時候,難免會出現忘記哪個值會存入哪個表的情況,於是在網上找到的如下解決辦法。 通過做一個儲存過程,只需要傳入一個想要查詢的值,即可查詢出這個值所在的表和欄位名。前提是要將這個儲存過程放在所查詢的資料庫。 CREATE PROCEDURE
Oracle 和 AWS Redshift 獲取 資料庫所有表名和列名的
Oracle select table_name from user_tables where table_name like '%plnsm%'; select OWNER, TABLE_NAME, COLUMN_NAME from all_tab_columns where COLU
oracle修改表名和列名的多種方式
重命名錶 對於已存在的表,還可以修改其名稱。重命名錶有兩種語法形式,一種 是使用ALTER TABLE語句,語法如下: ALTER TABLE table_name RENAME TO new_table_name; 另一種是直接使用RENAME語句,語法如下: RE
oracle資料庫中欄位值的型別blob和clob是什麼和兩者的區別
最近在觀察一個系統時,發現其資料庫的欄位上有一種CLOB型別,特地搜尋整理後,明白。 BLOB和CLOB屬於大欄位型別,BLOB是二進位制儲存,CLOB是可直接儲存文字。兩者可相互轉換,也可以直接用
MySQL 獲取資料庫中的所有表名和列名
sql語句在MySQL獲取資料庫裡的所有表名: select table_name from information_schema.tables where table_schema='資料庫名' sql語句在MySQL獲取資料庫表的所有列名: select column_name
oracle 一個表新增多個欄位,根據條件重新整理欄位值
2. Oracleupdate TA a set(name, remark)=(select b.name, b.remark from TB b where b.id=a.id) where exists(select 1 from TB b where b.id=a.
ORACLE——在所有表、欄位中查詢某個字串並輸出表名和欄位名
什麼都不想說,直接上乾貨 declare v_Sql varchar2(2000); v_count number; begin for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME from
Hibernate JPA 根據Java類獲取對應資料庫的表名和欄位名稱
專案中使用 Hibernate JPA, 需求是根據 Entity的java 類,來獲取所有的對應的資料庫欄位。 直接上程式碼。 使用者類,對應資料庫的user表 import org.hibernate.validator.constraints.NotBlank;
SQL Server 動態行轉列(引數化表名、分組列、行轉列欄位、欄位值)
一.本文所涉及的內容(Contents) 二.背景(Contexts) 其實行轉列並不是一個什麼新鮮的話題了,甚至已經被大家說到爛了,網上的很多例子多多少少都有些問題,所以我希望能讓大家快速的看到執行的效果,所以在動態列的基礎上再把表、分組欄位、行轉列欄位、值這四個行轉列固定需要的值變成真正意義的
oracle 將表名和欄位名變為大寫
begin for t in (select table_name tn from user_tables where table_name <> upper(table_name)) loop begin for c in (select column_
ArcGIS屬性表根據欄位條件賦值
問題描述:現需要根據某一欄位的不同值對另外一欄位賦值 示例1: Expression: Reclass(!WELL_YIELD!) Code Block: def Reclass(WellYi
sql根據某一欄位值的不同關聯不同的表(一)
一.資料庫資料資料 deed_records sport_records match_ticket_record 二.sql語句 SELECT d.integral , CASE WHEN d.deed_type=1 THEN (SELECT s.user_id FR
mysql的表名/欄位名/欄位值是否區分大小寫
1、mysql預設情況下是否區分大小寫,使用show Variables like '%table_names'檢視lower_case_table_names的值,0代表區分,1代表不區分。 2、mysql對於型別為varchar資料預設不區分大小寫,但如果該欄位以“*_bin”編碼的話會使mysql對其區
mysql資料庫批量修改表的欄位值根據關聯表資料修改
主要場景應用於A表的欄位cust_id是B表裡面的主鍵ID,根據已經A表中存有的cust_code值做關聯通步B表的cust_id儲存到A表中cust_id中,使用主鍵索引查詢提高查詢效率 UPDATE crm_cust_message_detail d SET d.cus