问题标签 [table-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
42 浏览

sql-server - SQL Server 2012:当我使用参数调用其中的函数时,过程需要很长时间才能执行,但如果传递原始值则不会

我想知道你们中的任何人是否可以帮助我提出想法。你看,我正在调整一个存储过程,称之为 proc1,它在内部调用一个表函数。该过程有一个表输入参数(idk 为什么,但它是这样构建的),然后它执行表函数:

调用前端正在执行的过程:

在过程中调用表函数。

令人毛骨悚然的是,我调整了表函数以减少执行时间,但是,它所采取的过程大致相同。然后我试图找出问题并简化问题。最后,我将表函数的原始执行与值放在一起。它可以工作。所以如果程序得到了这个,它会在 1 秒内执行,但如果我用变量改变它,它需要很长时间(8 分钟)。我多次检查并验证我绑定的值与我输入的值相同。

光速执行:

蜗牛执行缓慢:

这个问题快把我逼疯了,太疯狂了。为什么同一个电话有如此不同的时间?只是在一个中,我输入了值,我发誓我验证了输入参数,我在执行之前放置了以下语句,所以我知道它们:

任何想法?也许与sp_executesql?有没有人有类似的问题?

在此先感谢和亲切的问候!

0 投票
0 回答
46 浏览

sql-server - 修改表值函数中的参数 - 日期时间 - 本地到 UTC

我正在使用 2 类数据保险库,目前正在开发一个功能,以尝试模拟数据立方体,以便某些用户从特定快照中快速提取数据。

目前,我可以通过转换连接(或 where 子句)上的参数来修改代码以使其工作,但这会导致 100,000 条记录的性能降低 3 秒。

对于性能是否可以执行

在 return 语句之前的某个地方,或者在一开始的时候。

代码块 - 如果 UTC 值通过则工作

什么是所需的查询形式,因为转换只需要执行一次,而不是针对每条记录。

0 投票
2 回答
202 浏览

sql-server - 为什么表值函数的性能比select直接语句好?

一只忙碌的猫

我使用 AdventureWorks2012 并进行测试。还有我的问题:为什么 SELECT 语句的性能直接低于表值函数。我只将 SELECT statemnt 放入表值函数和完全相反的性能。

0 投票
2 回答
5386 浏览

stored-procedures - DB2 - 如何调用在另一个用户定义的表函数中返回结果集的存储过程

我有一个 db2 存储过程,它接受一些参数,从某个地方获取一些数据,然后通过游标返回一个结果集。

现在我想在 db2 中编写一个表函数,它将调用这个存储过程,从结果集中读取并将结果集中的数据作为表返回(最终我想在连接中使用这个表函数)。

我想知道这在 db2 中是否允许(我们使用的是 DB2 v10.5),即在表函数中执行存储过程并从存储过程的结果集中获取和读取。如果是这样,调用存储过程和读取 db2 中表函数内的结果集的正确语法是什么?谢谢!

0 投票
2 回答
750 浏览

sql - 用于 Tableau 的动态 Oracle 表函数

我们在 Oracle 11g 服务器中有大量数据。大多数工程师使用 Tableau 来可视化数据,但由于数据库的结构,目前还没有一个很好的解决方案可以直接从 Oracle 服务器进行可视化。不幸的是,这无法更改,因为它与我们的其他系统非常紧密地集成在一起。有一个“字典”表,我们称之为tab_keys

还有实际包含数据的表。中的每个条目tab_keys都有一个相应的数据表,通过在键前面加上标识符来命名,在这种情况下,我们将使用“dat_”。因此 AB-7 会将其所有数据存储在一个名为dat_19756. 这些密钥不为用户所知,仅用于“幕后”跟踪。用户只知道 AB-7 的绰号。

Tableau 允许使用标准 SQL 选择语句与 Oracle 服务器进行通信,但由于用户不知道键值,他们无法编写 SQL 语句来查询数据。

Tableau 最近增加了用户查询 Oracle 表函数的能力,所以我开始写一个表函数来查询键,并返回一个结果表供 Tableau 使用。问题是每个 dat_ 表基本上是唯一的,具有不同数量的列、标签、记录数和下一个 dat_ 表的数据类型。

处理这个问题的正确方法是什么?我可以吗:

1)编写一个函数(哪个tableau可以在常规SQL中调用内联)来返回一个动态生成的bonified表名?我试过这个:

然后SELECT * from TABLE(TEST_FUNC('AB-7'));但我得到:

我想不出一种将表格转换为我需要的表格类型的好方法。这可以在返回之前在函数中完成吗?

2)写一个表函数?据说 Tableau 可以查询这些类似的表,但后来我遇到了动态生成类型的问题(我理解这并不容易),但是这增加了需要多个用户同时使用的复杂性,所以每个用户都需要一个每次连接到表时为他们生成的数据类型(如果我理解正确的话)。

我不得不认为我错过了一些简单的东西。如何将此查询的返回转换为其他表的数据类型?

0 投票
1 回答
33 浏览

r - 有没有办法在 R 中调用 PostgreSQL tablefunc 模块?

我有一些我想在 R 环境中调用的 PostgreSQL/PostGIS tablefunc 查询。有什么办法可以做到这一点?

前任 :

0 投票
1 回答
534 浏览

oracle - 从存储过程中使用 Oracle 表函数

我正在使用一个将大量数据存储在多年表中的 ERP 数据库。(每个新年都会创建一个新表来保存该年的数据)我们需要能够查询和报告其中一些表。我目前正在使用视图,但视图只是年复一年地变得越来越大,而且速度越来越慢。我创建了一个流水线表函数,它执行一些动态 sql 并根据作为参数传入的 from 和 to date 查询适当的表。我可以从普通 SQL 调用流水线函数,它工作正常。但是,目标是能够在许多不同的存储过程中重用表函数并与其他数据连接。我们使用的报告系统要求我们使用返回引用游标的存储过程。

我创建了一个测试函数和测试存储过程(为简洁起见的简化版本)以尝试将表函数作为游标返回,但是当我执行该过程时出现错误(PLS-00382:表达式类型错误)。我什至不确定过程是否可以访问管道函数,但我在 SQL Server 中做过类似的事情,所以必须有一些方法。我已经搜索过 hi 和 low 但真的找不到任何有完全相同情况的人。请看我的代码。

以下是我在架构中创建的用户定义类型:

以下是函数和过程声明。我在函数 GL101Txx 中选择的表有很多列,所以我只选择前 2 个以保持简单。前两列与我的用户定义对象“wo_trans_type”中定义的列具有相同的定义

这是我尝试使用该功能的过程:

有谁知道这是否可以通过存储过程实现?是否可以使用非流水线表函数?对于实现这一目标和保持性能的最佳方法的任何建议或意见,我们将不胜感激。

这是我尝试执行该过程时 TOAD 返回的完整错误:

这是我在 TOAD 中的称呼方式:

0 投票
1 回答
37 浏览

postgresql - 如何在 Postgres 函数中检索多个结果行?

实际上,我只想使用下面的代码返回多个结果行。但是在调用函数时我只收到了一行结果集(日期不是问题,因为我在普通的选择查询中检查了相同的日期——它检索了多个结果行)。

如何使用以下函数检索多个结果行?

0 投票
1 回答
34 浏览

sql - 获取列的每个不同值的最后输入的行

设 a 表为:

我想创建一个显示最后购买的产品行的视图。话虽如此,这将是这张桌子:

我很乐意提供我的代码尝试,但他们没有为这个问题添加任何内容,因为它们与实际解决方案相去甚远。但是,我已经在互联网上广泛搜索了几分钟。我知道它必须通过一个函数来完成。

0 投票
1 回答
331 浏览

sql - 如何克服 HANA 表 UDF 不支持的 grouping() 函数?

我在 HANA 匿名块中编写了一些自定义逻辑。我在中间某处使用了分组功能作为核心。它运作良好,结果令人满意。

一旦我尝试通过移动到 HANA 表函数来将其工业化,激活过程很顺利,但是函数在尝试从中选择时开始抛出如下错误。

无法执行“udf_foo()”SAP DBTech JDBC:[7]:不支持功能:grouping_id() 或 grouping() 函数应与分组集一起使用

您能否告诉 HANA 上的表 UDF 是否正式不支持 grouping() 操作?
我正在使用 HANA 1.0 SPS 12。作为一种解决方法,我使用了 case 语句。

重现方式:

附言。我发现https://answers.sap.com/questions/11570257/sap-hana-usage-of-grouping.html中报告的所有错误在 SPS 12 中仍未修复。