2010-10-14 79 views
7

使用Sybase IQ v12.7。执行sp_helptext ProcedureName显示存储过程的文本很好。但它包装80个字符的行。问题是,如何在没有包装的情况下显示存储过程的文本文本?Sybase IQ - 如何在不打包文本的情况下显示存储过程?

在Sybase Central Java Edition中,有一项功能可以查看没有换行的存储过程(Tranact-SQL)的文本。因此,可以用不同的方式重新提出问题:Sybase Central如何获取存储过程的文本而不将文本包装为80个字符?

基本上寻找一种编程方式来转储出差异和版本控制的存储过程。

感谢任何回应!

回答

10

sp_helptext不会做任何包装 - 它会在换行符处分解过程定义文本并将每行返回为一行。如果你想返回一个字符串整个事情,你可以直接从系统表中选择的过程定义:

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

非常好,谢谢。这正是我所期待的。当像sqldbx这样的客户端运行sp_helptext时,存储过程中的长行会被包装在80个字符处。所以也许这是客户端连接问题或客户端连接的一些问题。在任何情况下直接查询SYS.SYSPROCEDURE表即可完成这项工作。 – FuzzyWuzzy 2010-10-15 14:52:47

0

如果使用isql来执行存储过程sp_helptext,然后probbably你没有提供“ - w“参数,它为当前会话设置column_width。试着用isql -w999来做同样的事情,看它是否仍然包装。

为了我自己的目的,为了比较存储过程,我使用Sybase提供的defncopy实用程序,kolchanov已经提到过。

相关问题