GBase 8a提供了存储过程元数据表gbase.proc,其中的body和body_uft8里保存了存储过程的正文主体,通过对该字段的like查询可以找到哪些存储过程用到了某张表。
该方法只能查找写死在存储过程内的,不能找到动态生成的,比如游标。
查询样例
加上trim是为了显示方便。
gbase> select trim(db),trim(name) from gbase.proc where body_utf8 like '%audit_log%';
+------------+-------------------+
| trim(db) | trim(name) |
+------------+-------------------+
| gclusterdb | audit_log_archive |
+------------+-------------------+
1 row in set (Elapsed: 00:00:00.00)body字段是longblob类型的,如果某些版本不支持直接查询,则需要临时将这个数据转到express类型的表里。
gbase> create table testdb.tmp_proc(db varchar(100),name varchar(100),body_utf8 longtext);
Query OK, 0 rows affected (Elapsed: 00:00:00.59)
gbase> set _gbase_query_path=1;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> insert into testdb.tmp_proc select db,name,body_utf8 from gbase.proc;
Query OK, 4 rows affected (Elapsed: 00:00:00.30)
Records: 4 Duplicates: 0 Warnings: 0
gbase> select trim(db),trim(name) from testdb.tmp_proc where body_utf8 like '%audit_log%';
+------------+-------------------+
| trim(db) | trim(name) |
+------------+-------------------+
| gclusterdb | audit_log_archive |
+------------+-------------------+
1 row in set (Elapsed: 00:00:00.00)「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




