本文介紹了通過R/RJDBC的雪花-無法檢索JDBC結果集的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我安裝了使用Windows命令提示符檢查的最新Java
java --version
C:Userssweepydodo>java --version
java 17.0.1 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)
我已經運行了以下
library(RJDBC)
drv <- JDBC(driverClass = "net.snowflake.client.jdbc.SnowflakeDriver"
, classPath = "C:/Users/sweepydodo/Documents/R/snowflake-jdbc-3.13.9.jar"
, identifier.quote = "`"
)
con <- dbConnect(drv, "jdbc:snowflake://gs46004.eu-west-1.snowflakecomputing.com:443?warehouse=prd_wh&ROLE=prod_readonly&authenticator=externalbrowser&database=dwh_db", "[email protected]", "dummy password")
R控制臺隨后讀取
Nov 17, 2021 3:37:01 PM net.snowflake.client.core.CredentialManager fillCachedCredential
INFO: JNA jar files are needed for Secure Local Storage service. Please follow the Snowflake JDBC instruction for Secure Local Storage feature. Fall back to normal process.
Initiating login request with your identity provider. A browser window should have opened for you to complete the login. If you can't see it, check existing browser windows, or your OS settings. Press CTRL+C to abort and try again...
然后它將打開一個瀏覽器窗口,該窗口具有白色背景和一行內容:
您的身份已確認并傳播到Snowflake JDBC驅動程序。
您現在可以關閉此窗口,然后返回到開始的位置。
然后我返回R并運行
dbListTables(con) # list all tables
一切都很好,我看到了一個表格列表。我的問題出現在我運行實際查詢時:
dbGetQuery(con,
"
select *
from FACT_VISIT
limit 10
"
)
錯誤讀取
Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set", :
Unable to retrieve JDBC result set
JDBC ERROR: SQL compilation error:
Object 'FACT_VISIT' does not exist or not authorized.
Statement:
select *
from FACT_VISIT
limit 10
我發現很奇怪,我可以使用dbListTables(con)
查看表列表,但無法查詢任何表。我期待任何想法/解決方案。
推薦答案
經過一天的搜索和同事的幫助,我們發現罪魁禍首是JAVA的最新版本jdk-17_windows-x64_bin
和雪花的最新版本之一3.13.9的組合。
除了使用here和here中的snowflake-jdbc-3.10.3.jar
中的Java 11.0.12之外,一切都與原始帖子中描述的一樣。
Java和Snowflake的.jar
的最新版本一起將為您提供概述的問題here。
最后,正如@sergiu指出的那樣。在SQL查詢中,我還應該顯式指定數據庫和方案名稱。
dbGetQuery(con,
"
select *
from dwh_db.visitor.fact_visit
limit 10
"
)
這篇關于通過R/RJDBC的雪花-無法檢索JDBC結果集的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,