SQL存储过程文本从java读取

时间:2016-03-27 04:43:18

标签: java mysql sql sql-server stored-procedures

我想从我的java代码中读取一个STORED PROCEDURE并获取DECLARATION,BODY部分。 是否有任何SQL查询可以获取任何特定过程的Body和声明部分?或者我必须将其作为字符串遍历?

我知道如何从数据库中获取PROCEDURE TEXT:

SELECT * 
FROM information_schema.routines 
WHERE routine_type = 'PROCEDURE' AND ROUTINE_NAME = '<proc_name>'
and ROUTINE_SCHEMA = '<schema_name>' AND ROUTINE_CATALOG = '<db_name>'

EXEC sp_helptext '<proc name>';

SELECT definition
    FROM sys.sql_modules 
    WHERE object_id = OBJECT_ID('<procedure Name>')

但我有兴趣获得一个程序的不同部分。请建议我,一些实用程序查询以获取任何程序的详细信息。

1 个答案:

答案 0 :(得分:1)

在SQL Server中,存储过程没有用于变量声明的专用部分。见syntax for CREATE PROCEDURE statement。 如果要获取有关SP的不同信息,则可以使用以下系统视图:sys.objects / sys.procedures,sys.schemas,sys.sql_modules,sys.parameters。如果您需要更多信息,可以使用Transact Script DOM API