Sie sind auf Seite 1von 2

CREATE OR REPLACE PROCEDURE prc_search_in_oracle(isearch IN VARCHAR2) IS

--------------------------------------------------------------------------
-- --
-- Author : Ozay AKDORA --
-- Create Date : 04.02.2009 --
-- --
--------------------------------------------------------------------------
lncount NUMBER;
lvsearch VARCHAR2(100) := lower(isearch);
BEGIN
-----------SEARCH IN ALL_SOURCE-------------------------------
DECLARE
CURSOR cur_src(p_search IN VARCHAR2) IS
SELECT *
FROM all_source t
WHERE lower(t.text) LIKE '%' || p_search || '%';

lrow_src cur_src%ROWTYPE;
BEGIN
OPEN cur_src(lvsearch);
LOOP
FETCH cur_src
INTO lrow_src;
EXIT WHEN cur_src%NOTFOUND;
--satiri yazdiriyoruz
dbms_output.put('Owner| lrow_src.owner);
dbms_output.put(' Name:' || lrow_src.NAME);
dbms_output.put(' Line:' || lrow_src.line);
dbms_output.put(' Text:' || lrow_src.text);
dbms_output.put_line('');

END LOOP;
lncount := cur_src%ROWCOUNT;
dbms_output.put_line('');
dbms_output.put_line(lncount ||
' record(s) was found in ALL_SOURCE table.');

CLOSE cur_src;
END;
dbms_output.put_line('');
dbms_output.put_line('-----------------------------------------------------');
dbms_output.put_line('');

------------SEARCH IN ALL_VIEWS----------------------------
DECLARE
CURSOR cur_views IS
SELECT * FROM all_views t;

lrow_views cur_views%ROWTYPE;
v_line VARCHAR2(4000);
BEGIN
lncount := 0;
OPEN cur_views;
LOOP
FETCH cur_views
INTO lrow_views;
EXIT WHEN cur_views%NOTFOUND;
--Convert LONG to VARCHAR2
v_line := substr(lrow_views.text, 1, 4000);
IF v_line LIKE '%' || lvsearch || '%'
THEN
dbms_output.put('Owner| lrow_views.owner);
dbms_output.put(' ViewName:' || lrow_views.view_name);
dbms_output.put(' Text:' || v_line);
dbms_output.put_line('');
lncount := lncount + 1;
END IF;

END LOOP;
dbms_output.put_line('');
dbms_output.put_line(lncount ||
' record(s) was found in ALL_VIEWS table.');

CLOSE cur_views;
END;
--————SEARCH IN ALL_TRIGGERS—————————-
DECLARE
CURSOR cur_trg IS
SELECT * FROM all_triggers t;
lrow_trg cur_trg%ROWTYPE;
v_line VARCHAR2(4000);

BEGIN
lncount := 0;
OPEN cur_trg;
LOOP
FETCH cur_trg
INTO lrow_trg;
EXIT WHEN cur_trg%NOTFOUND;
v_line := substr(lrow_trg.description,
1,
4000);
IF v_line LIKE '%' || lvsearch || '%'
THEN
dbms_output.put('Owner|| lrow_trg.owner);
dbms_output.put(' TriggerName :' || lrow_trg.trigger_name);
dbms_output.put(' text :' || v_line);
dbms_output.put_line('');
lncount := lncount + 1;
END IF;

END LOOP;
dbms_output.put_line('');
dbms_output.put_line(lncount || ' RECORD(s) was FOUND IN all_triggers
TABLE.');
CLOSE cur_trg;
END;END prc_search_in_oracle;

Das könnte Ihnen auch gefallen