我正在写一个函数,它将从大对象读取数据,并将其与作为arg提供的数据进行比较。(我想确保我写的是正确的,这是一次post write健全性检查)
我已经解决了如何分块读取大对象的问题
fd := lo_open(looid,x'40000'::int);
loop
buff := loread(fd, 1000);
len := octet_length(buff);
raise NOTICE 'buff %', len;
if len = 0 then
exit;
end if;
end loop;
return 0;但是我被看似简单的操作卡住了,就是将每个块与我的输入的等价分片进行比较(比如indata)。我甚至不知道从哪里开始,广泛的收集狂欢没有线索
发布于 2018-12-13 10:47:14
使用substring(string [from int] [for int])。
循环可能如下所示:
offst := 1;
loop
buff := loread(fd, 1000);
len := octet_length(buff);
raise NOTICE 'buff %', len;
if buff <> substring(indata from offst for 1000) then
return false;
end if;
if len = 0 then
return true;
end if;
offst := offst + len;
end loop;https://stackoverflow.com/questions/53754062
复制相似问题