簡體   English   中英

如何在 Java 中獲取 SQL 服務器存儲過程的 output

[英]How to get output of an SQL Server stored procedure in Java

我有一個通過各種 PRINT 語句生成 output 的存儲過程。 想在Java中搶到那個output,不知道怎么弄。 這完全可以做到嗎?

打印語句的 output 可通過 SQLWarnings 獲得,例如:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;

public class SQLDatabaseConnection {
    public static void main(String[] args) {
        String connectionUrl =
                "jdbc:sqlserver://YourServerName:1433;"
                        + "database=SomeDB;"
                        + "user=SomeUsername;"
                        + "password=S0meM4gic4lP4ssw0rd;"
                        + "encrypt=true;"
                        + "trustServerCertificate=true;"
                        + "loginTimeout=30;";

        ResultSet resultSet = null;

        try (Connection connection = DriverManager.getConnection(connectionUrl);
            Statement statement = connection.createStatement();) {

            resultSet = statement.executeQuery("print 'Hello, world!'; select getdate() as [Something]");
            while (resultSet.next()) {
                System.out.format("Result set: %s\n", resultSet.getString(1));
            }

            SQLWarning warning = statement.getWarnings();
            while (warning != null)
            {
                System.out.format("Warning: %s\n", warning.getMessage());
                warning = warning.getNextWarning();
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

哪個輸出...

Result set: 2021-06-04 00:38:27.567
Warning: Hello, world!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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