[英]Read stored procedure source code from Sybase ASE 15.7 database
我想訪問某些存儲過程的源代碼,這些存儲過程存儲在Sybase ASE 15.7數據庫中。 目前,我手動將文本復制到文本文件中,並通過磁盤上已執行的Java代碼讀取它。
現在,我的目標是改善這一過程:我將直接從執行的Java代碼中的數據庫中獲取源代碼。 那可能嗎? 對不起,我不知道。
我有Rapid SQL在數據庫上工作。
最好使用sp_showtext; 與sp_helptext相比,它提供了更好的格式化結果(沒有折斷的SQL行)
您可以運行一個調用存儲過程sp_helptext的ISQL腳本來獲取存儲過程的代碼。 希望這可以幫助。
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");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.