(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