我有數以百計的存儲過程,我想找出它在查詢使用特定的列名程序的名稱如何在Oracle 11g中使用列名,找到存儲過程的名稱
7
A
回答
5
這將做到這一點,但可能產生誤報的通用列名
SELECT DISTINCT type, name
FROM dba_source
WHERE owner = 'OWNER'
AND text LIKE '%COLUMN_NAME%';
這裏所有人是擁有你想要搜索的存儲過程的架構和COLUMN_NAME的是,你要查找的列名。如果不使用混合大小寫列名,那麼你可以用
AND UPPER(text) LIKE '%COLUMN_NAME%';
取代的最後一行,並在資本輸入列名,以獲得不區分大小寫的搜索。
1
沒有保證的方法,但是您可以使用regexp_like
搜索user/all/dba_source來檢查整個單詞,並通過user/all/dba_dependencies交叉引用以縮小要檢查的軟件包列表。
select s.name, s.type, s.line, s.text
from user_source s
where ltrim(s.text,chr(9)||' ') not like '--%'
and regexp_like(lower(s.text),'\Wyour_column_name_here\W')
and (s.name, s.type) in
(select d.name, d.type
from user_dependencies d
where d.referenced_owner = user
and d.referenced_name = 'YOUR_TABLE_NAME_HERE');
,或者有可能是從其他模式對它的引用,
select s.owner, s.name, s.type, s.line, s.text
from all_source s
where ltrim(s.text,chr(9)||' ') not like '--%'
and regexp_like(lower(s.text),'\Wyour_column_name_here\W')
and (s.owner, s.name, s.type) in
(select d.owner, d.name, d.type
from all_dependencies d
where d.referenced_owner = user
and d.referenced_name = 'YOUR_TABLE_NAME_HERE');
你可能會使它只需使用select distinct s.owner, s.name, s.type ...
獲得對象進行調查的名單。
相關問題
- 1. Oracle存儲過程名稱
- 2. 規範化ORACLE中的列名稱11g
- 3. 在Oracle中獲取別名名稱存儲過程
- 4. oracle中的存儲過程11g
- 5. 如何找到最長存儲過程的名稱?
- 6. SQL Server在存儲過程中如何查找對象名稱?
- 7. 按名稱查找存儲過程
- 8. 在存儲過程中使用變量作爲列名稱?
- 9. 如何在調用sql存儲過程時獲取列名稱
- 10. 如何寫在Oracle 11g中的存儲過程
- 11. 從存儲過程名稱查找數據庫名稱
- 12. 「找不到存儲過程<過程名稱>」
- 13. 列出oracle存儲過程名稱與原始案例
- 14. 在Oracle中刪除存儲過程使用名稱中的一個點
- 15. 如何在Oracle中執行存儲過程11g
- 16. Get調用存儲過程的名稱
- 17. 使用BCP QueryOut獲取存儲過程的列名稱
- 18. Oracle 11g存儲過程參數問題
- 19. 如何在存儲過程中引用數據庫名稱?
- 20. 在存儲過程中調用列名稱
- 21. 在oracle中查找全局數據庫名稱11g
- 22. 如何按名稱查找存儲過程?
- 23. 如何在c#中獲取存儲過程的參數名稱
- 24. 動態表存儲過程的名稱
- 25. 使用Python中的Oracle存儲過程命名參數
- 26. 找到git存儲庫的名稱
- 27. Oracle - 在查詢中使用列名稱
- 28. Oracle存儲過程返回字段名稱的記錄集
- 29. 使用VB6調用Oracle 11g存儲過程
- 30. Oracle 11g:在過程中使用遊標
一個存儲過程沒有列 – 2011-03-25 13:32:46
他意味着在存儲過程中像這樣:從...中選擇COLUMN,所以你應該拿走你的-1。 – 2011-03-25 13:43:00