Sybase IQ-テキストを包むことなくストアドプロシージャを表示する方法は?

StackOverflow https://stackoverflow.com/questions/3931338

質問

Sybase IQ V12.7を使用します。実行 sp_helptext ProcedureName 正常なストアドプロシージャのテキストが表示されます。ただし、80文字でラインをラップします。問題は、包装せずにストアドプロシージャのテキストを表示する方法ですか?

Sybase Central Java Editionでは、ラインラップなしのストアドプロシージャ(Tranact-SQL)のテキストを参照してください。そのため、質問は別の方法で修正できます。SybaseCentralは、80文字でテキストを包むことなく、ストアドプロシージャのテキストをどのように取得しますか?

基本的に、Diff-ingとバージョンの制御のためのストアドプロシージャを捨てるプログラム的な方法を探しています。

応答に感謝します!

役に立ちましたか?

解決

sp_helptextはラッピングを行いません - newline文字で手順定義テキストを分割し、各行を列として返します。全体を単一の文字列として返したい場合は、システムテーブルから手順定義を直接選択できます。

select proc_defn from SYS.SYSPROCEDURE where proc_name='<procedurename>'

他のヒント

現在、私はSybase IQまたはASAサーバーにアクセスしていませんが、あなたはase sp__helptextのようなものを見ていると思います http://www.edbarlow.com/gem/procs_only/

これをASAサーバーに書き換えてみてください。

アップデート:

defncopyユーティリティを見てください。

ISQLを使用してSP_HELPTEXTを実行している場合、おそらく現在のセッションに列_WIDTHを設定する「-W」パラメーターを提供しませんでした。 ISQL -W999で同じことをして、まだラップするかどうかを確認してみてください。

私自身の目的のために、ストアドプロシージャを比較するために、コルチャノフがすでに述べたSybaseが提供するDefncopyユーティリティを使用しています。

defncopy(sybaseまたはfreetdsから)がない場合は、このSQSHとSEDベースのスクリプトを使用できます。 https://gist.github.com/vjt/5920790

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top