Stored procedures 使用Snowflake JDBC API从Snowflake存储过程提取SQL查询

Stored procedures 使用Snowflake JDBC API从Snowflake存储过程提取SQL查询,stored-procedures,snowflake-cloud-data-platform,Stored Procedures,Snowflake Cloud Data Platform,我需要从snowflake存储过程中提取SQL查询。我决定通过Snowflake JDBC API提取SQL查询 我分析了Snowflake JDBC API的Java文档,但不幸的是,我找不到任何从存储过程中提取SQL查询的方法。我在Snowflake JDBC API中发现了一个类,即QueryExecDTO,它有getSqlText()方法,但在我看来它没有用(我必须从存储过程中提取SQL)。我还知道Snowflake JavaScript API的语句对象,它有方法getSqlText(

我需要从snowflake存储过程中提取SQL查询。我决定通过Snowflake JDBC API提取SQL查询

我分析了Snowflake JDBC API的Java文档,但不幸的是,我找不到任何从存储过程中提取SQL查询的方法。我在Snowflake JDBC API中发现了一个类,即
QueryExecDTO
,它有
getSqlText()
方法,但在我看来它没有用(我必须从存储过程中提取SQL)。我还知道Snowflake JavaScript API的
语句
对象,它有方法
getSqlText()
来获取SQL查询的文本,但它只能在JavaScript内部使用,因为它是JavaScript API的一部分


是否有任何方法可以使用Snowflake JDBC API从存储过程中提取SQL?

您需要运行以下操作:

select get_ddl('procedure', '*proc_name*(*arg list*)');
要获取SP的文本,然后需要解析该文本以提取SQL语句

如果您只想提取应该相对简单的SQL语句;但是,如果您想解析语句,例如列出正在使用的表,那么您将遇到困难


解析SQL非常复杂(考虑到该语言的灵活性),这一点可以从以下事实中得到说明:通用的SQL解析器非常少,而那些真正可以工作的并不便宜。

感谢@NickW的回复。我只需要在SP中使用的SQL语句