我正在尝试找到使用trig_tab
变量的触发器名称。我在没有dbms_lob函数的情况下尝试了以下查询,它给了我
ORA-00997:非法使用LONG数据类型
错误。
所以我尝试使用dbms_lob.instr
函数,但仍然给出了同样的错误。
Trigger_body字段是一种长数据类型。使用oracle 10g数据库。我该如何使它发挥作用。
SELECT *
FROM dba_triggers a
WHERE owner = 'BOR'
AND table_name = 'MAP_VIEW'
AND dbms_lob.Instr(a.trigger_body, 'mv_pkg.trig_tab') > 0
ORDER BY status,
trigger_name;
答案 0 :(得分:3)
考虑查询dba_source
/ user_source
以搜索源中令牌的出现次数
SELECT name,
line
FROM dba_source
WHERE owner = 'BOR'
AND TYPE = 'TRIGGER'
AND Lower(TEXT) LIKE '%trig_tab%'
ORDER BY name;
SELECT name,
line
FROM user_source
WHERE TYPE = 'TRIGGER'
AND Lower(TEXT) LIKE '%trig_tab%'
ORDER BY name;