給定一個(gè)Oracle數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程或觸發(fā)器,由程序分析出該過(guò)程所用到的數(shù)據(jù)表名和字段名.要求能夠解析出語(yǔ)句中別名所代表的實(shí)際意義.包括SQL語(yǔ)句中子查詢(xún)中所用到的數(shù)據(jù)表名和字段名.總之,就是凡是該過(guò)程或觸發(fā)器所使用到的數(shù)據(jù)表名及字段都需要統(tǒng)計(jì)出來(lái),形成的結(jié)果為表名,字段名,使用次數(shù).輸出結(jié)果格式可以是二維的文本文件,也可以存儲(chǔ)到一個(gè)數(shù)據(jù)表中.可以由開(kāi)發(fā)者自己定義.
舉例:
源程序:
create or replace procedure test(n1 in varchar2,n2 in varchar2) is
v_var emp.col1%type
begin
select a.column1 into v_var from (select column_XXX column1 from table_source) a;
end test;
分析結(jié)果:
emp col1 1
table_source column_XXX 1
而a,和column1實(shí)際上是實(shí)際資源中的表和字段的別名,分析結(jié)果要追蹤到源,即"table_source column_XXX 1",不需要顯示.