台灣最大程式設計社群網站
線上人數
1583
 
會員總數:239914
討論主題:186055
歡迎您免費加入會員
討論區列表 >> Oracle >> 如何在ORACLE資料庫內所有資料表之中搜尋資料
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何在ORACLE資料庫內所有資料表之中搜尋資料
價值 : 50 QP  點閱數:419 回應數:6

樓主

陳威瑄
初學者
5 9
294 22
發送站內信

有一個資料庫AA
資料表有3個,分別是A.B.C
而資料表裡又有很多欄位
要如何在這裡面找出有關鍵字"TEST"的欄位資料

我在網路上有找到MS SQL的方法
http://wp.mlab.tw/?p=1552
http://blog.miniasp.com/post/2010/07/12/Search-all-columns-of-all-tables-in-a-database-for-a-keyword.aspx
但是這方法在ORACLE資料庫無法執行

搜尋相關Tags的文章: [ SQL ] , [ ORACLE ] ,
本篇文章發表於2017-02-17 17:25
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

QOO
捐贈 VP 給 QOO 檢舉此回應
試試看,如果發生找不到資料表的錯誤,應該是沒有存取該table的權限


本篇文章回覆於2017-02-20 15:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

陳威瑄
檢舉此回應
不好意思
請問這個要如何使用
我知道searchdata給我要搜尋的字串
但是a.table_name要如何給?
資料庫裡有不少資料表
我測試先給確定有這個字串的資料表後讓他執行
跑完後沒出現任何訊息
也沒有列出資料
本篇文章回覆於2017-02-22 11:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

QOO
捐贈 VP 給 QOO 檢舉此回應
抱歉,因為我用dbms_output做輸出的關係,所以要先執行下面這個語法

SET SERVEROUTPUT ON

另外我調整了一下語法,原本的語法只會列出有你想的資料的table名稱及欄位名稱,看不到資料的內容

下面這個語法可以顯示資料的內容






本篇文章回覆於2017-02-22 16:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

陳威瑄
檢舉此回應
不好意思
我現在試這執行新的這一段
發現執行會出現相同指令10次
ex:
SELECT A01 FROM A WHERE A01 LIKE '%字串%'
SELECT A01 FROM A WHERE A01 LIKE '%字串%'
....10次
SELECT A02 FROM A WHERE A02 LIKE '%字串%'
SELECT A02 FROM A WHERE A02 LIKE '%字串%'
....10次
因為我用IN去找2個資料表(分別各1xx個欄位)
所以必須要設定FOR 3000次以上才能夠2個資料表全搜尋
請問哪一段迴圈需要修改
本篇文章回覆於2017-02-23 10:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

QOO
捐贈 VP 給 QOO 檢舉此回應
哎呀,不好意思

你直接把19行刪掉就好了,那個是我限制迴圈不要跑太多而加上的限制

把19行刪去,就可跑完所有的欄位了

然後27行是我debug用的,也可以刪掉,就不會跑出select ....的東西了
本篇文章回覆於2017-02-23 10:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

陳威瑄
檢舉此回應
謝謝QOO的幫忙
本篇文章回覆於2017-02-23 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.