日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 在所有表中查某个值,oracle需要查询某个字段的值在其他某个表中有没的值有相同...

發布時間:2024/7/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 在所有表中查某个值,oracle需要查询某个字段的值在其他某个表中有没的值有相同... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用場景:知道某個字段的值(例如:“張三”),需要查詢在其他某個表中有沒有相同的值,常用于搜索關聯表等。

對于oracle數據庫:

Pl\sql沒有搜索功能,需借助存儲過程,完成搜索,搜索結果是將表名插入到一個表中。

[if !supportLists]1、[endif]創建臨時表:

create table TMPTABLE

(

NAME VARCHAR2(500)

);

[if !supportLists]2、[endif]存儲過程如下

create or replace procedure QUERY_KEY

(

keyword in varchar2

)

as

v_SQLStatement varchar2(300);

v_startRecord Number;

begin

FOR reInfo IN (select table_name from user_tables) LOOP

FOR colInfo IN (SELECT column_name, DATA_TYPE FROM all_tab_cols WHERE table_name=reInfo.table_name) LOOP

IF (colInfo.DATA_TYPE='VARCHAR2') THEN

v_SQLStatement := 'select count(*) from '|| reInfo.table_name || ' where ' || colInfo.column_name || ' = ''' || keyword|| '''';

-- dbms_output.put_line(v_SQLStatement);

execute immediate v_SQLStatement into v_startRecord;

IF(v_startRecord > 0) THEN

-- ?dbms_output.put_line(reInfo.table_name);

insert into TMPTABLE values (reInfo.table_name);

commit;

END IF;

END IF;

END LOOP;

END LOOP;

END QUERY_KEY;

[if !supportLists]3、[endif]在pl\sql中command窗口執行如下命令,其中“123”為要查詢的數據

[if !supportLists]4、[endif]然后在TMPTABLE中即可查詢到包含此字段的數據

對于mysql數據庫:

選擇數據庫,右鍵“在數據庫中查找...”,在下方“查找”輸入需要查詢的字段,點擊查找,右側即顯示查找結果

總結

以上是生活随笔為你收集整理的oracle 在所有表中查某个值,oracle需要查询某个字段的值在其他某个表中有没的值有相同...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。