2016-03-27 6 views
-1

JavaコードからSTORED PROCEDUREを読み込み、DECLARATION、BODY部分をフェッチします。 特定のプロシージャのBodyおよび宣言部分をフェッチできるSQLクエリはありますか?それとも文字列としてトラバースする必要がありますか?SQLストアドプロシージャのテキストをJavaから読み取る

私は、データベースからプロシージャ・テキストを取得する方法を知っている:

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>') 

が、私は手続きの別のセクションを得ることに興味を持っています。プロシージャの詳細情報を取得するためにいくつかのユーティリティクエリを私に提案してください。

+0

*プロシージャの異なるセクションの意味* –

+0

プロシージャの本文、宣言セクションのテキスト、そのプロシージャで使用されるテーブル – user3035305

+0

T-SQL言語用のパーサが必要です。外部リソースの問い合わせは、StackOverflowのトピック外です。 –

答えて

1

ストアドプロシージャには、変数宣言専用のセクションがありません。 syntax for CREATE PROCEDURE statementを参照してください。 SPに関するさまざまな情報を取得する場合は、sys.objects/sys.procedures、sys.schemas、sys.sql_modules、sys.parametersというシステムビューを使用できます。さらに情報が必要な場合はTransact Script DOM APIを使用できます。

+0

これは役に立ちます。私はそれを通過します。 – user3035305

関連する問題