You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECL嵌入C++时传递数据集参数报错System error 99的问题排查

ECL嵌入C++函数调用外部数据集报错问题

正常运行场景:硬编码数据集

当将硬编码的数据集传入ECL嵌入的C++函数时,代码可正常执行,最终输出为4555。该数据集是包含十六进制数据的BLOB类型分片文件。

参考ECL与C++映射文档,示例代码如下:

inRec := { DATA1 id };
ds := DATASET([x'45', x'55'], inRec);

DATA traceDataset(DATASET(inRec) input) := EMBED(C++)
#include <stdio.h>
#include <unordered_map>
using namespace std;
#body
  __lenResult = 2;
  __result = (void *)(input+0);
ENDEMBED;

OUTPUT(traceDataset(ds)); // 最终输出为4555

报错场景:传入外部数据集

当传入外部数据集时,无法在C++嵌入函数内访问数据集的单个字节,报错信息为:

'System error: 99: Attempt to execute an activity that has not been created'

相关代码如下:

rawrec := RECORD
    DATA1 block
END;
rawds := DATASET('~.::bitcoinraw',rawrec,FLAT);

DATA traceDataset(DATASET(rawrec) input) := EMBED(C++)
#include <stdio.h>
#include <unordered_map>
using namespace std;
#body
  __lenResult = 2;
  __result = (void *)(input+0);
ENDEMBED;

OUTPUT(traceDataset(rawds));

内容的提问来源于stack exchange,提问作者ANAGHA ANAND

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 13:25:17