Sybase IQ - wie gespeicherte Prozedur zeigen, ohne Textumbruch?
-
30-09-2019 - |
Frage
Mit Sybase IQ v12.7. Ausführen sp_helptext ProcedureName
zeigt den Text der gespeicherten Prozedur, die in Ordnung ist. Allerdings wickelt es Linien bei 80 Zeichen. Die Frage ist, wie Text Text einer gespeicherten Prozedur ohne Verpackung zeigen?
In Sybase Central Java Edition gibt es eine Funktion, um den Text einer gespeicherten Prozedur (Tranact-SQL) ohne Zeilenumbruch zu sehen. So ist die Frage in einer anderen Art und Weise angepasst werden kann: wie funktioniert Sybase Central den Text einer gespeicherten Prozedur erhalten, ohne den Text auf 80 Zeichen Einwickeln
Im Grunde genommen für eine programmatische Möglichkeit suchen, um gespeicherte Prozeduren auskippen für diff-ing und Versionskontrolle.
Dank irgendwelche Antworten!
Lösung
sp_helptext keine Verpackung tun - es bricht die Prozedur Definitionstext an den Zeilenumbrüche und gibt jede Zeile als eine Zeile. Wenn Sie das Ganze wieder als einzelne Zeichenfolge wollen, können Sie die Prozedur-Definition direkt aus der Systemtabelle wählen:
select proc_defn from SYS.SYSPROCEDURE where proc_name='<procedurename>'
Andere Tipps
Zur Zeit habe ich keinen Zugriff auf Sybase IQ oder ASA-Server, aber ich glaube, Sie suchen etwas wie ASE sp__helptext von
Wenn Sie isql verwenden den sp_helptext auszuführen, dann probbably hast du nicht die „-w“ Parameter liefern, die Sätze für aktuelle Sitzung column_width. Versuchen Sie, das gleiche zu tun mit isql -w999, um zu sehen, ob es noch hüllt. Für meine eigenen Zwecke nutzen, um gespeicherte Prozeduren vergleichen zu können, verwende ich das defncopy Dienstprogramm von Sybase, vorausgesetzt, dass Kolchanov bereits erwähnt.
Wenn Sie nicht haben defncopy (entweder von Sybase oder von FreeTDS) Sie dieses sqsh verwenden können und sed-basiertes Skript: https://gist.github.com/vjt/5920790