我已浏览了 Teradata 的官方文档。
我打算编写一个表函数(C ++中的UDF),它接受2列作为输入,处理输入并将其转换为std::map< string,string >
或array of structs
并将其传递给其他函数接受输入为array of structs
/ std::map< string,string >
。我的问题是:
TBL_BUILD
,TBL_PRE_INIT
等,是否必须包含在代码中,用于构建表格和其他用途?? 答案 0 :(得分:0)
您无法从表UDF返回任何数据结构。对于每一行,您都有值堆栈条目来放置返回列的值。并且每个值必须是Teradata识别的数据类型。
此外,您需要小心使用STL库。实际上,避免处理内存分配/释放并改为使用堆栈。这是因为如果您有任何内存泄漏或内存碎片,那么您将不得不重新启动服务器,这对生产系统不利。
由于为每个行和阶段调用表UDF,因此保存数据的唯一方法是通过上下文。您也不希望花费太多时间处理每一行,因为这将是一个主要的性能问题。
如果您打算维护复杂的内存结构,您可能需要查看表运算符。