问题标签 [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.
sql-server - 从表值函数返回显式 Open XML 结果集
我正在尝试从 SQL Server (2008) 中的表值函数返回 Open XML 表单中的行。当我使用“for xml explicit”选择结果时,我偶尔会遇到错误,这表明结果的顺序不能保证与我插入 TVF 输出的顺序相同。
所以我的第一个问题是:是这样吗?
如果是这样,我的下一个问题是:有没有办法解决这个问题?到目前为止,我能想到的最好的方法是在 TVF 输出中包含一个 id 列,然后在我调用它时只选择其他列,并按 id 排序。这里的问题是,这意味着我每次都必须指定所有列,而不是只选择 *,这在这种情况下真的很尴尬(特别是因为我有 42 个这些 TVF - 都有不同的列)。
TVF 和 Explicit Open XML 是否不能混合使用(这将是一个真正的耻辱,因为它们似乎非常适合),还是我错过了一些有用的东西?
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
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 返回内置类型以外的类型。有什么办法可以做到这一点?我必须为非内置类型定义分配吗?
sql-server - 如何检索 sql server 内联表值函数的返回值的元数据?
它不在 INFORMATION_SCHEMA.COLUMNS 中,那么它在哪里呢?
这是一个模式绑定内联表值函数,因此它不存在存储过程可能存在的问题,即能够根据参数改变其输出模式。
sql - 即使 x 远高于所选行,使用 SELECT TOP x 的 SQL 也存在巨大的性能差异
我正在从表值函数中选择一些行,但通过将 SELECT TOP 放入查询中发现了莫名其妙的巨大性能差异。
需要 5 或 6 分钟以上才能完成。
然而
在大约 4 或 5 秒内完成。
如果返回的数据集很大,这不会让我感到惊讶,但所涉及的特定查询会返回 200,000 行中的约 5000 行。
因此,在这两种情况下,都会处理整个表,因为 SQL Server 会继续搜索它永远不会到达的 6000 行。那为什么会有巨大的差异呢?这是否与 SQL Server 在预期结果集大小时分配空间的方式有关(TOP 6000 从而使其要求较低,更容易在内存中分配)?有没有其他人目睹过这样的事情?
谢谢
sql - 表值函数我的查询计划去哪儿了?
我刚刚在 SQLServer 2000 上的表值函数中包装了一个复杂的 SQL 语句。在查看 SELECT * FROM dbo.NewFunc 的查询计划时,它只给了我创建的表的表扫描。
我猜这是因为表是在 tempdb 中创建的,我只是从中选择。
所以查询很简单:
我的问题是:
UDF 是否使用与复杂 SQL 语句相同的计划?
如何调整此 UDF 的索引?
我能看到真正的计划吗?
sql - SQL - 使用 LastIndex 的选择语句
我有一个存储了ProductURL的结果集:
我需要获取 URL 的最后部分,即出现在 URL 中的最后一个“/”之后的任何内容。
我有一个函数可以给我 LASTINDEX :
但是如何在子字符串中使用此函数运行 Select 语句:
这似乎不起作用?还有另一种方法可以做到这一点吗?
sql - UDF 在文本和 base64 xml 属性之间自动切换
我的应用程序将数据序列化为各种 XML 属性,并根据数据以文本或 base64 格式发送。在后一种情况下,属性名称将为“attribute-base64”。因此,在 SQL 服务器端,可以使用以下约定来解码 XML:
我正在尝试编写一个 UDF,它将接受 XML 和属性名称作为输入并输出一个字符串。如何生成 XQuery?我试过这样做,但它不起作用:
调用时:
返回结果不是值,而是 'root[1]/@v'... 显然,SQL 服务器将 sql:variable("@xquery") 理解为 XML 值,而不是 XQuery。任何想法我需要做什么?
c++ - 用于从通用磁盘格式设备或文件中读取的 C/C++ 库
是否有任何好的免费 C/C++ 库可以从具有 UDF 和 ISO9660 等文件系统的通用设备中读取并提取文件/元数据等?
到目前为止,我能找到的只有GNUs libcdio,它很有前途,还有一些“Magic UDF”,它有如此多的点击量,我很反感,在 Google 中推出了其他结果,并且带有一个非常极端的价格标签。
跨平台支持是可取的(当然是个人喜好),Windows 兼容性是一个不幸的要求。许可证限制越少越好,我还没有调查 libcdio 的 GPLv3 许可证的兼容性如何。
请注意,这个问题仍然悬而未决,如果有人找到这样的图书馆,我会接受另一个答案。
sql-server - SQL Server 如何评估包含用户定义函数的执行计划的成本?
我有一个存储过程,它根据DATEADD
函数的结果进行过滤 - 我的理解是,这类似于使用用户定义的函数,因为 SQL 服务器无法根据该函数的输出存储统计信息,因此难以评估执行计划。
查询看起来有点像这样:
(所以它不可能预先计算的结果DATEADD
)
我看到的是一个可怕的执行计划,我认为这是由于 SQL 服务器错误地估计从树的一部分返回的行数为 1,而实际上它约为 65,000。然而,当数据库中存在不同(不一定更少)数据时,我已经看到相同的存储过程在很短的时间内执行。
我的问题是——在这种情况下,查询优化器如何估计函数的结果?
更新:仅供参考,我更感兴趣的是了解为什么有时我会得到一个好的执行计划,而为什么其他时间我没有 - 我已经很清楚我将如何解决这个问题在长期。