我有一个与此主题相关的查询: https ://developer.jboss.org/thread/277610
在到达逗号分隔值阶段之前,这些值实际上存储为一个 blob。有一个函数 fetchBlobtoString(Blob, string, VARIADIC start_end integer) 返回 String,它实际上接受 blob 输入,然后转换为逗号分隔的值,如帖子所示。
这个问题是字符串被限制为 4000 个字符,因此它会抽取数据并且不会显示所有值。提取双精度值并将其转换为类似于帖子的行的最佳方法是什么。
使用以下函数作为示例,将其转换为对象而不是字符串会提高性能:
fetchElementValueFromBlob(protobufBlob Blob, origName string) 返回对象
我曾尝试使用 getItem 函数迭代 blob 中的项目,添加到临时表,但速度很慢,如果我进行超过 15-20 次迭代,则会出现以下错误:
错误:TEIID30504 远程 org.teiid.core.TeiidProcessingException:TEIID30504 petrelDS:TEIID60000 javax.resource.ResourceException:IJ000453:无法获取 java:/petrelDS SQLState 的托管连接:50000 错误代码:30504
BEGIN
DECLARE integer VARIABLES.counter = 0;
DECLARE integer VARIABLES.pts = 100;
WHILE (VARIABLES.counter < VARIABLES.pts)
BEGIN
select wellbore_uwi,getItem(fetchBlob(data, 'md'),VARIABLES.counter) INTO TEMP from DirectionalSurvey where wellbore_uwi='1234567890';
VARIABLES.counter = (VARIABLES.counter + 1);
END
SELECT TEMP.wb_uwi,TEMP.depth FROM TEMP;
END
如果我删除 getItem() 函数,错误就会消失。