暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a查看哪些存储过程用到了某张表

墨天轮DB 2022-09-23
1551

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论