簡體   English   中英

從Sybase ASE 15.7數據庫讀取存儲過程的源代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM