问题标签 [user-defined-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 投票
1 回答
540 浏览

sql-server - 从表值函数返回显式 Open XML 结果集

我正在尝试从 SQL Server (2008) 中的表值函数返回 Open XML 表单中的行。当我使用“for xml explicit”选择结果时,我偶尔会遇到错误,这表明结果的顺序不能保证与我插入 TVF 输出的顺序相同。

所以我的第一个问题是:是这样吗?

如果是这样,我的下一个问题是:有没有办法解决这个问题?到目前为止,我能想到的最好的方法是在 TVF 输出中包含一个 id 列,然后在我调用它时只选择其他列,并按 id 排序。这里的问题是,这意味着我每次都必须指定所有列,而不是只选择 *,这在这种情况下真的很尴尬(特别是因为我有 42 个这些 TVF - 都有不同的列)。

TVF 和 Explicit Open XML 是否不能混合使用(这将是一个真正的耻辱,因为它们似乎非常适合),还是我错过了一些有用的东西?

0 投票
3 回答
3903 浏览

excel - 在 Excel 单元格中返回用户定义的数据类型

我已经在网上搜索过,我已经在 stackoverflow 上搜索了这里的问题,但我一直无法找到解决方案。

这是我想做的:

假设我在名为“MyClass”的类模块中有以下代码

p>

然后我在带有代码的单独模块中有一个 UDF

p>

现在在单元格 A1 中有“=InitializeMyClass(3)”,在单元格 A2 中有“=GetMyVar(A1)”。我在两个单元格中都收到 #VALUE 错误。这当然是因为我试图将用户定义的数据类型返回到单元格 A1 中。我觉得这应该是可能的,但我不确定如何。

编辑:哦,是的,问题是,“我有没有办法将用户定义的数据类型返回到单元格中,然后在我上面给出的示例中可以从另一个 UDF 调用它?我不知道这是否是否需要 COM。如果需要,任何人都知道我该如何开始?理想情况下,如果有人能举例说明它是如何工作的,那就太好了!

另一个编辑:我们开始吧,现在我知道可以做到:阅读此描述,它不是定量的,但会让您了解他们的工作,http://www.quanttools.com/index.php ?option= com_content&task=view&id=19

0 投票
2 回答
188 浏览

excel - 如果我做不到,那么定义自己的对象有什么大智慧?

这适用于 Excel 和 VBA。假设 BondClass 已在类模块中正确定义。我得到一个#VALUE!当我在 Excel 单元格中键入“=GetBondPrincipal()”时。我是否在语法上做错了什么,或者这在 Excel/VBA 中是不可能的?我问是因为我真正想做的是: Return a User Defined Data Type in an Excel Cell

但我无法找到解决方案。所以至少,我想知道我想在下面做的事情是否可行。

p>

我知道在我提供的示例中,我不必调用 InitializeBond,只需键入“Call b.Initialize(.03,100)”即可。如果我这样做,代码将正常工作。但我似乎无法让 UDF 返回内置类型以外的类型。有什么办法可以做到这一点?我必须为非内置类型定义分配吗?

0 投票
2 回答
665 浏览

sql-server - 如何检索 sql server 内联表值函数的返回值的元数据?

它不在 INFORMATION_SCHEMA.COLUMNS 中,那么它在哪里呢?

这是一个模式绑定内联表值函数,因此它不存在存储过程可能存在的问题,即能够根据参数改变其输出模式。

0 投票
6 回答
30514 浏览

sql - 即使 x 远高于所选行,使用 SELECT TOP x 的 SQL 也存在巨大的性能差异

我正在从表值函数中选择一些行,但通过将 SELECT TOP 放入查询中发现了莫名其妙的巨大性能差异。

需要 5 或 6 分钟以上才能完成。

然而

在大约 4 或 5 秒内完成。

如果返回的数据集很大,这不会让我感到惊讶,但所涉及的特定查询会返回 200,000 行中的约 5000 行

因此,在这两种情况下,都会处理整个表,因为 SQL Server 会继续搜索它永远不会到达的 6000 行。那为什么会有巨大的差异呢?这是否与 SQL Server 在预期结果集大小时分配空间的方式有关(TOP 6000 从而使其要求较低,更容易在内存中分配)?有没有其他人目睹过这样的事情?

谢谢

0 投票
1 回答
2118 浏览

sql - 表值函数我的查询计划去哪儿了?

我刚刚在 SQLServer 2000 上的表值函数中包装了一个复杂的 SQL 语句。在查看 SELECT * FROM dbo.NewFunc 的查询计划时,它只给了我创建的表的表扫描。

我猜这是因为表是在 tempdb 中创建的,我只是从中选择。

所以查询很简单:

我的问题是:

UDF 是否使用与复杂 SQL 语句相同的计划?

如何调整此 UDF 的索引?

我能看到真正的计划吗?

0 投票
1 回答
856 浏览

sql - SQL - 使用 LastIndex 的选择语句

我有一个存储了ProductURL的结果集:

我需要获取 URL 的最后部分,即出现在 URL 中的最后一个“/”之后的任何内容。

我有一个函数可以给我 LASTINDEX :

但是如何在子字符串中使用此函数运行 Select 语句:

这似乎不起作用?还有另一种方法可以做到这一点吗?

0 投票
1 回答
353 浏览

sql - UDF 在文本和 base64 xml 属性之间自动切换

我的应用程序将数据序列化为各种 XML 属性,并根据数据以文本或 base64 格式发送。在后一种情况下,属性名称将为“attribute-base64”。因此,在 SQL 服务器端,可以使用以下约定来解码 XML:

我正在尝试编写一个 UDF,它将接受 XML 和属性名称作为输入并输出一个字符串。如何生成 XQuery?我试过这样做,但它不起作用:

调用时:

返回结果不是值,而是 'root[1]/@v'... 显然,SQL 服务器将 sql:variable("@xquery") 理解为 XML 值,而不是 XQuery。任何想法我需要做什么?

0 投票
4 回答
4245 浏览

c++ - 用于从通用磁盘格式设备或文件中读取的 C/C++ 库

是否有任何好的免费 C/C++ 库可以从具有 UDF 和 ISO9660 等文件系统的通用设备中读取并提取文件/元数据等?

到目前为止,我能找到的只有GNUs libcdio,它很有前途,还有一些“Magic UDF”,它有如此多的点击量,我很反感,在 Google 中推出了其他结果,并且带有一个非常极端的价格标签。

跨平台支持是可取的(当然是个人喜好),Windows 兼容性是一个不幸的要求。许可证限制越少越好,我还没有调查 libcdio 的 GPLv3 许可证的兼容性如何。

请注意,这个问题仍然悬而未决,如果有人找到这样的图书馆,我会接受另一个答案。

0 投票
3 回答
1319 浏览

sql-server - SQL Server 如何评估包含用户定义函数的执行计划的成本?

我有一个存储过程,它根据DATEADD函数的结果进行过滤 - 我的理解是,这类似于使用用户定义的函数,因为 SQL 服务器无法根据该函数的输出存储统计信息,因此难以评估执行计划。

查询看起来有点像这样:

(所以它不可能预先计算的结果DATEADD

我看到的是一个可怕的执行计划,我认为这是由于 SQL 服务器错误地估计从树的一部分返回的行数为 1,而实际上它约为 65,000。然而,当数据库中存在不同(不一定更少)数据时,我已经看到相同的存储过程在很短的时间内执行。

我的问题是——在这种情况下,查询优化器如何估计函数的结果?

更新:仅供参考,我更感兴趣的是了解为什么有时我会得到一个好的执行计划,而为什么其他时间我没有 - 我已经很清楚我将如何解决这个问题在长期。