Issue
I am Using snowflake-jdbc-13.3.8.jar. while executing below code having unwrap call, I am getting exception. Pls guide what am I missing?
CallableStatement st = connection.prepareCall("CALL TEST_SP(?)");
st.setString(1, "Value1");
ResultSet resultSet = st.executeQuery();
String queryId = resultSet.unwrap(SnowflakeResultSet.class).getQueryId();
Net.snowflake.client.jdbc.SnowflakeCallableStatementV1 not unwrappable from net.snowflake.client.jdbc.SnowflakeStatement
Solution
You're calling getQueryId() rather than getQueryID(), observe ID is in capitals. The unwrap works, here is an example.
First I create a simple stored procedure:
CREATE or replace PROCEDURE TEST_SP(v varchar)
RETURNS VARCHAR
LANGUAGE javascript
AS
$$
return 'Done.';
$$;
I test it to see it works:
CALL TEST_SP('Value1');
It returns to me just the string "Done".
Then I create a simple Java class:
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.*;
import net.snowflake.client.jdbc.*;
public class SampleUnwrap {
public static void main(String[] args) {
String user = "<user>";
String password = "<pass>";
String account = "<account>";
String JDBC_DRIVER = "net.snowflake.client.jdbc.SnowflakeDriver";
String warehouse = "<wh>";
String role = "<role>";
String db = "<db>";
String schema = "PUBLIC";
String queryString = "SSL=on&tracing=ALL&database=" + db + "&role=" + role + "&warehouse=" + warehouse;
String connectionURL = "jdbc:snowflake" + "://" + account + ".snowflakecomputing.com" + "/?" + queryString;
Connection conn1;
try {
conn1 = DriverManager.getConnection(connectionURL, user, password);
CallableStatement stmt = conn1.prepareCall("CALL TEST_SP(?)");
stmt.setString(1, "Value1");
ResultSet resultSet = stmt.executeQuery();
String queryId = resultSet.unwrap(SnowflakeResultSet.class).getQueryID();
System.out.println(queryId);
resultSet.close();
conn1.close();
} catch (Exception e) {
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw, true));
System.out.println(sw);
}
}
}
When I run it I get the queryID back:
java -cp .:snowflake-jdbc-3.13.8.jar SampleUnwrap.java
01a166f7-0403-5054-0000-16490d51d2c2
Post the full class and details about environment if it's still not working for you.
Answered By - Sergiu
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.