【问题标题】:Teradata UDF's in C++C++ 中的 Teradata UDF
【发布时间】:2017-05-12 19:09:00
【问题描述】:

我已经浏览了Teradata的官方文档。

我打算编写一个表函数(C++ 中的 UDF),它接受 2 列作为输入,处理输入并将其转换为 std::map< string,string >array of structs 并将其传递给其他接受 @ 输入的函数987654323@/std::map< string,string >。我的问题是:

  1. 如果我从表中传递 2 列,如何知道新临时表中的行数?如何接受从 Teradata 查询语句作为列传递到 UDF 中的值??
  2. 在文档附录中给出的东西,例如相位检查,如TBL_BUILDTBL_PRE_INIT 等,是否必须包含在代码中,用于构建表格和其他目的??李>

【问题讨论】:

    标签: teradata user-defined-functions table-functions


    【解决方案1】:

    您不能从表 UDF 中返回任何数据结构。对于每一行,您都有值堆栈条目来放置返回列的值。并且每个值都必须是 Teradata 可识别的数据类型。

    此外,您需要小心使用 STL 库。事实上,避免处理内存分配/释放,而是使用堆栈。这是因为如果您有任何内存泄漏或内存碎片,那么您将不得不不时重启您的服务器,这对生产系统不利。

    由于每个行和每个阶段都会调用表 UDF,因此保存数据的唯一方法是通过上下文。您也不希望花太多时间处理每一行,因为这将是一个主要的性能问题。

    如果你打算维护一个复杂的内存结构,你可能想看看表运算符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-20
      • 2023-03-07
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      相关资源
      最近更新 更多