我希望能够访问存储在Sybase ASE 15.7数据库中的某些存储过程的源代码。 目前,我在文本文件中手动复制文本,并通过磁盘中执行的java代码读取它。
现在我的目标是改进这个过程:我将在我执行的java代码中直接从数据库中获取源代码。 那可能吗? 对不起,我不知道。
我有Rapid SQL来处理数据库。
答案 0 :(得分:2)
最好使用sp_showtext;它提供了比sp_helptext
更好的格式化结果(没有损坏的SQL行)答案 1 :(得分:1)
您可以运行调用存储过程sp_helptext的ISQL脚本来获取存储过程的代码。希望这会有所帮助。
答案 2 :(得分:1)
Vince的提示是使用存储过程sp_helptext。这个存储过程产生了多个结果集,给我带来了困难。
RobV的回答是使用存储过程sp_showtext。这似乎是更好的解决方案,因为它只返回一个结果集。但是我用jdbc尝试了它并且它抛出了一个sql异常("必须返回一个结果集")。
在我失败后,我找到另一个解决方案,只需执行一个select语句就需要另外两个答案。这适合我!这是代码:
StringBuffer sbSP = new StringBuffer();
String query = "select c.text "
+"from syscomments c, sysobjects o "
+"where o.id=c.id and o.name='"+spName+"' order by c.colid";
PreparedStatement stmt = connection.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
//loop over every row of the stored procedure
sbSP.append(rs.getString("text") + "\n");
}