sqlbook如何根据sql内容找到目录树

  使用配置
内容纲要

概要描述


本文主要介绍,如何根据sql中的关键字,排查出哪些目录树下的sql文件在使用。

测试版本:studio3.3.0-final

详细说明


构造2个sqlbook文件,分别在不同的目录树下

第一个sql文件,

  • 目录树层级为:sql文件夹01/sql文件夹02层/sql文件夹03层/底层sql文件
  • sql内容为:select * from emp_holo;

file

第二个sql文件,

  • 目录树层级为:lkw/底层sql文件02
  • sql内容为:SELECT * FROM EMP_HOLO LIMIT 100;

file

查找目录树结构

这里,正文开始,客户有这样一个诉求,“需要查找出,所有包含emp_holo表名的sqlbook文件的目录树”。

我们登录tds底层的元数据库,一般为kundb,执行如下查询:

WITH RECURSIVE cte AS (
    SELECT uuid, name, parent_uuid,name AS full_path FROM sqlbook_sqlbook1.navigator_navigation  
    WHERE category='SQL' 
    and uuid in (select UUID from sqlbook_sqlbook1.sqlbook_file where UPPER(CONTENT) like '%EMP_HOLO%')

    UNION all

    SELECT t.uuid, t.name, t.parent_uuid ,CONCAT(t.name,'/',cte.full_path ) AS full_path FROM  sqlbook_sqlbook1.navigator_navigation t
    JOIN cte
    ON t.uuid = cte.parent_uuid
)
SELECT full_path FROM cte 
where parent_uuid='-';

file

从截图可以看到full_path为包含sqlbook文件名的完整目录树结构。

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。