问题标签 [roracle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 始终将 DATE 列的格式更改为 CHAR
在 RI 中接收来自 Oracle 数据库的表。但是,不幸的是,ROracle 中的转换出现了问题:日期被转换为 POSIXct,但由于某些奇怪的原因,相同的日期可能相差一小时(请参阅我的另一篇文章)。最后,我需要 R 中的日期作为字符串(出于与现有代码的一致性原因),格式为“dd/mm/yyyy”。例如,我将更改查询
至
但是,在 R 代码中,查询是动态构建的,并且预先我不知道表的哪些列是DATE
列。我怎样才能始终如一地修改查询,使其始终将DATE
列更改为如上所述的字符。
谢谢!
r - 将具有非常大字段(8000 个字符)的 R 数据集写入 Oracle
我需要使用 R 包 ROracle 版本 1.3-1、R 版本 3.4.1、Oracle OraClient 11g home 将 R 数据集写入 Oracle 数据库,并且是 R 新手。
该数据集包括几种不同数据类型和长度的变量,包括长达 8000 个字符的几种字符类型。
使用 dbWriteTable
我收到此错误:
或这个
或这个
返回这个
通过研究错误,第一个错误似乎表明较大的字段 - BLOB 字段 - 未被 Oracle 识别为 BLOB。
文档表明 ROracle 版本 1.3-1 应该能够处理更大的数据类型。它建议使用属性在 dbWriteTable 中正确映射 NCHAR、CLOB、BLOB、NCLOB 列。由于我不断收到相同的错误,因此我无法成功遵循此示例。也许我只需要一个与文档中提供的示例不同的示例?
最初,我使用的是 RODBC 包,但发现已知 RODBC 不处理大型数据类型 (BLOB)。
任何帮助或建议表示赞赏。
r - 让 ROracle 在 ubuntu 上运行
我已经从 Oracle 下载ROracle 1.3-1.tar.gz
了 Oracle 即时客户端 12.2 基本和开发 rpm。
如本文所述,我执行了以下命令:
我尝试安装 ROracle
然后输出说
我尝试导出这些环境变量,然后运行不带参数的命令,但我得到了同样的错误。
我还通过这里LD_LIBRARY_PATH
描述将其写入 conf 文件
不过,尝试从 Rstudio 加载 ROracle 时出现以下错误:
我设置了一个从 libclntsh.so.12.1 到 libclntsh.so.11.1 的链接,/usr/lib/oracle/12.2/client64/lib/
但在我看来,RStudio 正在错误的地方寻找我的 R - 即/usr/local/...
而不是usr/...
. 我该如何补救?
我也试过设置
但这也无济于事。
r - rstudioapi askForPassword 不屏蔽用户名输入
有没有办法在 rstudioapi::askForPassword 弹出窗口中禁用屏蔽,以便用户输入他们的用户名?
我正在构建一个可以与我的团队共享的函数,用于使用 ROracle pacakge 连接到我们的 Oracle 数据库实例
目前的解决方案,
这会弹出以下提示:( 链接中的图片)
这是使用 Rstudio api的 RStudio 数据库文档中描述的解决方案
想资助一个不掩盖密码但弹出相同提示的解决方案(如果可能的话,一行漂亮的代码......)
roracle - ROracle 编码问题
我正在使用 ROracle 库从 RStudio 访问 Oracle 数据库。请看下面的代码:
在我的专栏中,我得到了这样的词:Lørdag、søndag 等,其返回为:L?rdag、S?ndag。
R会话信息:
R 版本 3.4.2 (2017-09-28) 平台:x86_64-w64-mingw32/x64 (64-bit) 运行于:Windows >= 8 x64 (build 9200)
矩阵产品:默认
语言环境:[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C LC_TIME=English_United States.1252
附加的基础包:[1] 并行统计图形 grDevices utils 数据集方法基础
其他附加软件包:[1] stringi_1.1.5 doParallel_1.0.11 iterators_1.0.8 ROracle_1.3-1 DBI_0.7 foreach_1.4.3
通过命名空间加载(未附加):[1] compiler_3.4.2 tools_3.4.2 codetools_0.2-15
r - ROracle 未在 MacOS High Sierra 上加载 Instantclient 库
我已经安装了 Oracle Instant Client 12.1.0.2.0,现在正在尝试使用以下命令为 R 安装 ROracle 1.3-1:
Oracle Instant Client 安装在 /usr/local/oracle/instantclient12
不幸的是,我在 ROracle 安装结束时遇到了以下错误,并且很难弄清楚出了什么问题:
无论出于何种原因,无法找到 @rpath/libclntsh.dylib.12.1 并阻止 ROracle 完全安装。我尝试在 ~/lib 和 /usr/lib 中放置指向 libclntsh.dylib.12.1 的链接,但两个链接都不起作用。我还尝试使用环境变量 DYLD_FALLBACK_LIBRARY_PATH 和 DYLD_LIBRARY_PATH 指向包含 libclntsh.dylib.12.1 的目录,但这些都没有正常工作。
我正在使用 MacOS High Sierra (10.13) 和 R 3.4.2。
r - ROracle 绑定日期范围
我想通过带有绑定参数的 ROracle 查询发送到 oracle,其中包含日期列的日期范围。
我尝试运行:
但我得到错误:
“绑定数据与绑定规范不匹配”
r - 仅当查询返回的行数少于 n_max 时才收集
有时,当通过连接到我的Oracle
数据库时ROracle
,dbplyr
我会运行一个dplyr::collect
操作,该操作会获取比预期更多的数据,并且 R 可以处理。
这可能会使 R 崩溃,并且通常表明我应该在获取之前进一步过滤或聚合数据。
如果能够在选择是否获取结果之前检查结果的大小(无需运行两次查询),那就太好了。
让我们命名collect2
它的变体collect
将允许这样做:
预期行为:
这可能吗?
我也对使用ROracle
/DBI
不使用的解决方案持开放态度dplyr
,例如:
编辑:
请参阅下面作为答案发布的部分解决方案,这不是最佳解决方案,因为有些时间浪费在获取我没用的数据上。
r - 使用 ROracle 在 R 中执行存储的 oracle 过程
我无法通过 ROracle 在 R 中执行/调用 Oracle 过程。我尝试了许多不同的方法来调用该过程,但我不断收到相同的错误。我在执行 SELECT 查询时没有问题,但事实证明调用过程很困难。我已经使用了 oracleProc 和 dbSendQuery 函数,但无济于事。它们都不起作用。Roracle 文档对于调用过程的示例是可悲的。
假设 Oracle 过程在 MYSCHEMA 中称为 MYPROC。该过程非常简单,没有参数(它涉及读取几个表并写入一个表)
当我直接在Oracle Developer中执行程序时,没有问题:
以下适用于 Oracle Developer(但不适用于 R)
然后我尝试从 R(通过 ROracle)调用相同的过程并给我错误。我尝试了许多不同的调用程序的方法,但我得到了同样的错误:
这是我得到的错误:
.oci.oracleProc(conn, statement, data = data, prefetch = prefetch, 中的错误:
这是我得到的错误(与上面的有点不同):
.oci.oracleProc(conn, statement, data = data, prefetch = prefetch, : ORA-00900: 无效的 SQL 语句中的错误
这是我得到的错误(与第一个相同):
.oci.SendQuery(conn, statement, data = data, prefetch = prefetch, 中的错误:
我的程序没有任何参数。正如我提到的,它在 Oracle 开发人员中调用时工作得很好。我已经没有想法如何在 R 中获得如此可笑的简单查询了!不过,我只对通过 ROracle 完成这项工作感兴趣。