簡體   English   中英

如何提取在函數/過程中使用的所有Oracle關鍵字

[英]How to extract all Oracle Keywords used In a Function/Procedure

是否有任何簡單的方法來提取函數/過程中使用的所有Oracle關鍵字?

讓我大吃一驚的是,基於空間將給定對象名稱的文本從user_source拆分出來,但這會發現一些未發現的情況,例如DBMS_OUTPUT.PUT_LINE('HELLO WORLD')等,

除了通過空格,點,偏括號拆分之外,還有其他方法嗎?

KG

您可以使用內置的ALL_STATEMENTS / ALL_IDENTIFIERS

ALL_STATEMENTS描述了用戶可訪問的已存儲PL / SQL對象中的所有SQL語句。

雲PL / SQL的強大功能

要在代碼庫中收集有關PL / SQL標識符和SQL語句的信息,請在會話中執行以下語句

ALTER SESSION SET plscope_settings='identifiers:all, statements:all';
-- function/package compilation

SELECT st.owner,
       st.object_name,
       st.line,
       s.text
  FROM all_statements st join all_source s
    ON ( st.owner = s.owner
   AND st.object_name = s.name
   AND st.line = s.line )
 WHERE st.TYPE IN ('EXECUTE IMMEDIATE', 'OPEN')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM