(Oracle官方文档)Oracle R Enterprise 执行嵌入式脚本

前置条件

RQADMIN角色
在安装ORE时,ORE安装包会自动创建RQSYS用户和RQADMIN角色,创建和删除脚本的用户需要被授权RQADMIN角色。

注意事项:RQSYS用户需要改密码,RQADMIN角色默认没有被授权给任何用户!

R客户端

ore.doEval()
ore.tableApply()
ore.groupApply()
ore.rowApply()
ore.indexApply()
ore.scriptCreate()
ore.scriptDrop()

常用场景:

library("ORE")    #引入ORE库
con2 <- dbConnect(Oracle(), "rqsys", "123456")    #配置连接信息建立连接
res2 <- dbGetQuery(con2, "select * from price_data")    #获取结果集,传值给一个R对象
res2 <- data.frame(res2 = res2)    #将上文的R对象转化成数据框,理由:Oracle端的ORE返回值类型必须是数据框

Oracle客户端

sys.rqScriptCreate()
sys.rqScriptDrop()
rqTableEval()
rqEval()
rqRowEval()
rqGroupEval()
rqDropDataStore()
rquser_DataStoreList
rquser_DataStoreContents

常用场景(写成存储过程,便于系统跑批):

begin 
  sys.rqscriptdrop('test');    --删除嵌入式脚本
  sys.rqscriptcreate(    --创建嵌入式脚本
    'test',    --脚本名称
    '                   --脚本内容
      function(){ 
        library("ORE")    --引入ORE库
        library(ROracle)
        con2 <- dbConnect(Oracle(), "rqsys", "123456")    --配置连接信息建立连接
        res2 <- dbGetQuery(con2, "select * from price_data")    --获取结果集,传值给一个R对象
        res2 <- data.frame(res2 = res2)    --将上文的R对象转化成数据框,理由:Oracle端的ORE返回值类型必须是数据框
        --对res2这个R对象进行计算处理……
        res2    --返回值,同 return res2;
      }
    '
  );
end;
/

select *
  from table(rqEval(    --rqEval()函数包含三个参数
        NULL,    --作用未知
       'select 1 PRICE from dual',    --通用查询语句,这里的 PRICE 就是结果集的列名,作用相当于别名
       'test'));    --脚本名称

转载于:https://www.cnblogs.com/keyboardone/p/7641503.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值