给定出现在 proc 中的文本字符串,在 db 中查找 Sybase 存储过程
给定出现在存储过程中某处的文本字符串,如何在 Sybase 数据库中查找存储过程? 我想看看数据库中的任何其他过程是否与我正在查看的过程具有类似的逻辑,并且我认为我有一个非常独特的搜索字符串(文字)
编辑:
我正在使用 Sybase 版本 11.2
How do I find a stored procedure in a Sybase database given a text string that appears somewhere in the proc? I want to see if any other proc in the db has similar logic to the one I'm looking at, and I think I have a pretty unique search string (literal)
Edit:
I'm using Sybase version 11.2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
Graeme 的答案有两个变体(所以这在 11.2 上也不起作用):
这也列出了存储过程的名称,但如果文本出现多次,将为每个存储过程返回多行:
这仅列出每个存储过程一次:
Two variations on Graeme's answer (So this also won't work on 11.2):
This lists the name of the sproc too, but will return multiple rows for each sproc if the text appears several times:
This lists each sproc just once:
在 SQL Anywhere 和 Sybase IQ 中:
我对 ASE 不太熟悉,但根据文档(可从 sybooks.sybase.com 获取),它类似于:
In SQL Anywhere and Sybase IQ:
I'm not that familiar with ASE, but according to the docs (available from sybooks.sybase.com), it's something like:
请记住,syscomments 中的文本列是 varchar(255),因此一个大过程可以由 syscomments 中的多行组成,因此,如果过程名称在 syscomments 中被拆分为 2 个文本行,则上述选择将找不到过程名称。
我建议使用以下选择,它将处理上述情况:
-- 对此的荣誉归于 ASEisql 的创建者
Please remember, that text column in syscomments is varchar(255), so one big procedure can consist of many lines in syscomments, thus, the above selects will not find the procedure name if it has been splitted into 2 text rows in syscomments.
I suggest the following select, which will handle the above case:
-- kudos for this go to the creator of ASEisql
多行用于存储数据库对象的文本,该值可能跨两行。 所以更准确的答案是:
Multiple rows are used to store text for database objects the value might be accross two rows. So the more accurate answer is: