本文介紹了通過(guò)R/RJDBC的雪花-無(wú)法檢索JDBC結(jié)果集的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我安裝了使用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)
我已經(jīng)運(yùn)行了以下
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", "sweepydodo@abc.com", "dummy password")
R控制臺(tái)隨后讀取
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...
然后它將打開(kāi)一個(gè)瀏覽器窗口,該窗口具有白色背景和一行內(nèi)容:
您的身份已確認(rèn)并傳播到Snowflake JDBC驅(qū)動(dòng)程序。
您現(xiàn)在可以關(guān)閉此窗口,然后返回到開(kāi)始的位置。
然后我返回R并運(yùn)行
dbListTables(con) # list all tables
一切都很好,我看到了一個(gè)表格列表。我的問(wèn)題出現(xiàn)在我運(yùn)行實(shí)際查詢時(shí):
dbGetQuery(con,
"
select *
from FACT_VISIT
limit 10
"
)
錯(cuò)誤讀取
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
我發(fā)現(xiàn)很奇怪,我可以使用dbListTables(con)
查看表列表,但無(wú)法查詢?nèi)魏伪怼N移诖魏蜗敕?解決方案。
推薦答案
經(jīng)過(guò)一天的搜索和同事的幫助,我們發(fā)現(xiàn)罪魁禍?zhǔn)资荍AVA的最新版本jdk-17_windows-x64_bin
和雪花的最新版本之一3.13.9的組合。
除了使用here和here中的snowflake-jdbc-3.10.3.jar
中的Java 11.0.12之外,一切都與原始帖子中描述的一樣。
Java和Snowflake的.jar
的最新版本一起將為您提供概述的問(wèn)題here。
最后,正如@sergiu指出的那樣。在SQL查詢中,我還應(yīng)該顯式指定數(shù)據(jù)庫(kù)和方案名稱。
dbGetQuery(con,
"
select *
from dwh_db.visitor.fact_visit
limit 10
"
)
這篇關(guān)于通過(guò)R/RJDBC的雪花-無(wú)法檢索JDBC結(jié)果集的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,