当前位置: 首页 > 知识库问答 >
问题:

遇到SQL错误:net。雪花。客户jdbc。SnowflakeSQLException:语句已关闭

单于智
2023-03-14

我正在使用snowflake jdbc驱动程序(版本:3.12.9)以编程方式执行查询。在snowflake客户端中执行查询正在工作。如果以编程方式执行相同的查询,则会出现以下异常,

select count(*) as total_record_count from TABLE_NAME

    
WARNING|02-10 04:14:25|SessionErrorInterceptor.retrieveSessionId|Trying to reconnect, due to error getting session id: SQL compilation error: error line 1 at position 7
invalid identifier 'CURRENT_SID'
SEVERE|02-10 04:14:26|SessionErrorInterceptor.retrieveSessionId|Error determining session id
net.snowflake.client.jdbc.SnowflakeSQLException: SQL compilation error: error line 1 at position 7
invalid identifier 'CURRENT_SID'
    at net.snowflake.client.jdbc.SnowflakeUtil.checkErrorAndThrowExceptionSub(SnowflakeUtil.java:153)
    at net.snowflake.client.jdbc.SnowflakeUtil.checkErrorAndThrowException(SnowflakeUtil.java:77)
    at net.snowflake.client.core.StmtUtil.pollForOutput(StmtUtil.java:503)
    at net.snowflake.client.core.StmtUtil.execute(StmtUtil.java:380)
    at net.snowflake.client.core.SFStatement.executeHelper(SFStatement.java:582)
    at net.snowflake.client.core.SFStatement.executeQueryInternal(SFStatement.java:266)
    at net.snowflake.client.core.SFStatement.executeQuery(SFStatement.java:202)
    at net.snowflake.client.core.SFStatement.execute(SFStatement.java:877)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:273)
    at net.snowflake.client.jdbc.SnowflakePreparedStatementV1.executeQuery(SnowflakePreparedStatementV1.java:181)
    
WARNING|02-10 04:14:26|SessionErrorInterceptor.createDecorator|Could not determine session information for statement: com.nielsen.datalink.common.jdbc.pool.SessionErrorInterceptor$StatementProxy[Proxy=243720187; Connection=ProxyConnection[PooledConnection[net.snowflake.client.jdbc.SnowflakeConnectionV1@22bf6bee]]; Delegate=net.snowflake.client.jdbc.SnowflakeStatementV1@c32145; Sql=null]
INFO|02-10 04:14:26|SessionErrorInterceptor$StatementProxy.invoke|[session=null] Executing SQL: 

select count(*) as total_record_count from RIM

WARNING|02-10 04:14:26|SessionErrorInterceptor$StatementProxy.invoke|Encountered SQL error: net.snowflake.client.jdbc.SnowflakeSQLException: Statement is closed.
    at net.snowflake.client.jdbc.SnowflakeStatementV1.raiseSQLExceptionIfStatementIsClosed(SnowflakeStatementV1.java:152)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeUpdateInternal(SnowflakeStatementV1.java:214)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeLargeUpdate(SnowflakeStatementV1.java:206)
    at net.snowflake.client.jdbc.SnowflakeStatementV1.executeUpdate(SnowflakeStatementV1.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    

谷歌了这个例外,没有找到一个链接。

我也得到了这些错误代码:[0A00020024]

这是我的连接url:jdbc:snowflake://account.xxx.azure.snowflakecomputing.com/?db=DB_NAME

我正在传递上述URL中的所有有效名称,并且我正在传递正确的用户名和密码。

我正在使用JDK 1.8

共有1个答案

华星驰
2023-03-14

当查询在Snowflake Web UI上运行正常并且在使用连接器(JDBC、ODBC、Python等)时遇到问题时,要检查的事情之一是网络上的数据包检查器等是否干扰了来自连接器的HTTPS流量。您可以下载并运行SnowCD(连接诊断)来检查此问题。

https://docs.snowflake.com/en/user-guide/snowcd.html

如果SnowCD报告任何问题,您可以运行select system$whitelist() 要获得所有DNS条目的列表,网络团队需要绕过数据包检查。

https://docs.snowflake.com/en/sql-reference/functions/system_whitelist.html

 类似资料:
  • 我正在尝试连接(Pypark Snowflake)不断收到错误。 我正在使用PySpark 3.1,JDBC和Spark_Snowflakejar文件也放置在Classpath中。不确定为什么我会得到以下错误。 代码: 错误: Py4JJavaError:调用o37时出错。负载:网雪花。客户jdbc。SnowflakeSQLException:JDBC驱动程序遇到通信错误。消息:HTTP请求遇到异

  • 我对雪花+JMeter是新手。当我尝试使用以下配置来配置和运行Jmeter时,我收到以下错误。 null 我不确定,我在这里遗漏了什么。请帮帮我。 *来自Jemter结果视图的错误信息**响应消息:java.sql.sqlException:无法创建PoolableConnectionFactory(JDBC驱动程序遇到通信错误。消息:HTTP请求遇到异常:连接到

  • 问题内容: 我有一个使用Tomcat JDBC连接池的服务器应用程序。 这是我用来创建数据源的代码: 然后我有一种方法可以从池中获得连接 每当我想执行一条语句时,我都会调用以下代码: 这是对先前代码的调用示例: 我面临的问题是,每隔X秒在线程中执行一次调用时,就会时不时地收到“语句已关闭”的异常。我不确定为什么会这样。我在想这可能是驱动程序错误或与数据库(在不同服务器上运行)的连接失败。 我没主意

  • 我有一个使用Tomcat JDBC连接池的服务器应用程序。 这是我用来创建数据源的代码:

  • 下面给出一个例子来演示一下如何使用JDBC来执行各种SQL语句,其中包括DDL语句(建立数据库和数据表)、INSERT语句和SELECT语句。 1.程序分析说明 本程序首先创建一个mydb数据库(如果存在就不创建),然后创建一个用于保存图书信息的表t_books(如果存在,删除后再创建),最后向表中插入两条记录,并查询和显示其中的第2条记录。 2.代码编写 本程序使用了Statement接口的ex