esProc
esProc copied to clipboard
计算结果为空时如何返回带结构的空序表
如果spl最后计算结果为空,就会return null,应用调用时由于没有结构引用字段时就会出错。还要专门创建一个空序表返回。这块能否改进,或有什么更好的办法?
这个不太好搞。SPL有空序表对象,可以create一个返回。 但通常出现这种情况是计算结果就是空集(比如select后是空的),没有记录也就没有数据结构了。而且SPL支持混合数据结构,不像SQL那样要求结果集的数据结构是唯一的,也就不合适指定某种数据结构。 不过,大部分情况直接返回null问题也不大的,null可以继续后面的各种操作(new,derive,.... ),也不会报错,反正进一步结果还是null,只是没法有一个标题出现了。
感谢回复。似乎是不太好弄,可能中间某步就没数据了。现在主要是报表,如果没有结构报表就会报错,看来只能create空序表返回了
注意到select函数增加了一个@t选项可以保留结构