Хранитованная процедура снежинки не возвращает результатов через JDBC, но работает в веб -интерфейсеJAVA

Программисты JAVA общаются здесь
Anonymous
Хранитованная процедура снежинки не возвращает результатов через JDBC, но работает в веб -интерфейсе

Сообщение Anonymous »

Я пытаюсь вызвать хранимую процедуру снежинки из моего приложения Java, но я последовательно получаю следующую ошибку: < /p>
"Stored procedure execution error on line 1 position 20: Missing rowset from response. No results found."
< /code>
Интересно, что та же процедура выполняется правильно и возвращает ожидаемые результаты при запуске непосредственно в пользовательском интерфейсе снежинки. Я также попытался преобразовать результаты в JSON в рамках процедуры, но ошибка сохраняется. Как я могу правильно получить табличный вывод из хранимой процедуры в приложении Java?SELECT * FROM TABLE(MY_DB.MY_SCHEMA.MY_PROCEDURE());
< /code>
java code: < /p>
public List fetchResults() throws SQLException {
List results = new ArrayList();

Properties props = new Properties();
props.put("user", username);
props.put("password", password);

try (Connection conn = DriverManager.getConnection(url, props)) {
try (Statement stmt = conn.createStatement()) {
stmt.execute("ALTER SESSION SET JDBC_QUERY_RESULT_FORMAT='JSON'");
}

try (PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM TABLE(MY_DB.MY_SCHEMA.MY_PROCEDURE());")) {
ResultSet rs = pstmt.executeQuery();

while (rs.next()) {
ResultDTO dto = new ResultDTO();
dto.setFlagA(rs.getBoolean("FLAG_A"));
dto.setLimitExceeded(rs.getBoolean("LIMIT_EXCEEDED"));
dto.setMessage(rs.getString("MESSAGE"));
results.add(dto);
}
}
}

return results;
}
< /code>
Процедура снежинки: < /p>
CREATE OR REPLACE PROCEDURE MY_DB.SCHEMA.DETECT_PROC()
RETURNS TABLE (
"FLAG_A" BOOLEAN,
"LIMIT_EXCEEDED" BOOLEAN,
"MESSAGE" VARCHAR
)
LANGUAGE PYTHON
RUNTIME_VERSION = '3.11'
PACKAGES = ('numpy==2.3.1','scikit-learn==1.6.1','snowflake-snowpark-python==*')
HANDLER = 'main'
IMPORTS = (
'@MY_DB.SCHEMA.UTILS/processor.py',
'@MY_DB.SCHEMA.UTILS/analyzer.py'
)
EXECUTE AS OWNER
AS '
//Python Code
';


Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-web-ui

Вернуться в «JAVA»