2010-10-14 14 views
7

Verwenden von Sybase IQ v12.7. Die Ausführung von sp_helptext ProcedureName zeigt den Text der gespeicherten Prozedur, der in Ordnung ist. Allerdings werden Zeilen mit 80 Zeichen umbrochen. Die Frage ist, wie kann man Texttext einer gespeicherten Prozedur ohne Umbruch anzeigen?Sybase IQ - wie gespeicherte Prozedur angezeigt wird, ohne Text zu umhüllen?

In Sybase Central Java Edition gibt es eine Funktion, die den Text einer gespeicherten Prozedur (Tranact-SQL) ohne Zeilenumbruch anzeigt. Die Frage könnte also anders formuliert werden: Wie erhält Sybase Central den Text einer gespeicherten Prozedur, ohne den Text mit 80 Zeichen zu umhüllen?

Im Grunde suchen nach einer programmatischen Möglichkeit, gespeicherte Prozeduren für diff-und Versionskontrolle auszugeben.

Dank allen Antworten!

Antwort

10

sp_helptext führt keinen Umbruch durch - es zerlegt den Prozedurdefinitionstext an den Zeilenumbruchzeichen und gibt jede Zeile als Zeile zurück. Wenn Sie das Ganze als eine einzelne Zeichenfolge zurückgegeben werden soll, können Sie die Prozedur-Definition direkt aus dem Systemtabelle:

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

Ausgezeichnet, danke. Genau das habe ich gesucht. Wenn sp_helptext in einem Client wie sqldbx ausgeführt wird, werden lange Zeilen in der gespeicherten Prozedur mit 80 Zeichen umbrochen. Vielleicht ist das ein Problem mit dem Client oder einer Einstellung auf der Client-Verbindung. In jedem Fall führt die Abfrage der Tabelle SYS.SYSPROCEDURE die Aufgabe direkt aus. – FuzzyWuzzy

1

Zur Zeit habe ich keinen Zugriff auf Sybase IQ oder ASA-Server, aber ich glaube, Sie suchen etwas wie ASE sp__helptext von http://www.edbarlow.com/gem/procs_only/

Versuchen Sie dieses für ASA-Server neu zu schreiben.

Update:

Blick auf defncopy Dienstprogramm.

0

Wenn Sie isql verwenden den sp_helptext auszuführen, dann probbably hast du nicht die „liefern - w "Parameter, der column_width für die aktuelle Sitzung setzt. Versuchen Sie dasselbe mit isql -w999 zu tun, um zu sehen, ob es noch umgebrochen wird.

Für meine eigenen Zwecke, Stored Procedures zu vergleichen, verwende ich das defncopy Dienstprogramm von Sybase, vorausgesetzt, dass Kolchanov bereits erwähnt.