在定义函数时碰到不能覆盖已存在函数的异常

发布于 2022-09-12 03:30:45 字数 1216 浏览 18 评论 0

我想在DolphinDB database中实现历史数据回放功能,然后写了如下所示的代码:

// 定义回放函数
def replayData(productCode, startTime, length, rate){
   // 登录以获取权限
   login("admin", "123456")
    // 载入数据创建表
   sw = loadTable('dfs://huobiDB', 'sw');
   //获取表结构中的两列构成新表
   schSw = select col1,col3 as type from sw.schema().colDefs;
   //创建流数据表,并共享   
   share(streamTable(100:0, schSw.col1, schSw.col3), `outSw);
   //停止持久化,然后删除磁盘上表的内容,但是保留表的结构。
   //如果新建的共享表在硬盘上已经有持久化的数据,则自动读入
   clearTablePersistence(objByName(`outSw));
   // 把共享的流计算表持久化到硬盘上
   enableTablePersistence(objByName(`outSw), true,true, 100000);
   // 计算结束时间
   endTime = temporalAdd(startTime, length, "m")
   //sql语句
   sqlSw = sql(sqlCol("*"), tick,  [<product=productCode>, <server_time between timestamp(pair(startTime, endTime))>]);
   cutCount = length * 60 / 20
   // 构建Range分区方式
   trs = cutPoints(timestamp(startTime..endTime), cutCount);
   // 构建回放数据源
   rds = replayDS(sqlSw, `col2 , , trs);
   // 提交批处理任务
   return submitJob('replay_shuiwen',  replay, rds,  `outSw,`col2 ,, rate);
}
// 授予执行该函数的权限
addFunctionView(replayData)

我在GUI中调试上述代码时,系统提示:Not allowed to overwrite existing functions/procedures by system users.请问这是怎么一回事?谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最佳男配角 2022-09-19 03:30:45

这个是因为replayData这个函数视图已存在,你可以用getFunctionViews()查询一下。若要重新定义函数视图,请先用dropFunctionView函数删除。例子如下:

dropFunctionView(`replayData)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文