问题标签 [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 投票
2 回答
49108 浏览

vba - 在 Excel VBA 中创建自定义工作表函数

我对能够使用 VBA 函数在 Excel 中计算值有一个微弱的记忆,就像这样(作为单元格公式):

这可以做到吗?

编辑:

这是我的 VBA 函数签名:

该功能位于ThisWorkbook模块中。如果我尝试在上面显示的工作表中使用它,我会收到#NAME?错误消息。


解决方案(谢谢,codeape):该功能在定义ThisWorkbook模块时无法访问。它必须位于“正确”的模块中,该模块已手动添加到工作簿中。

0 投票
3 回答
2396 浏览

sql - sql函数返回给定查询字符串的名称和值表

任何人都有一个 t-sql 函数,它从 url 获取查询字符串并返回名称/值对表?

例如,我的数据库中存储了这样的值:

我想生成一个 2 列(键和 val)表(在本例中为 3 行),如下所示:

更新:我在 t-sql 函数中需要这个是有原因的;我不能在应用程序代码中做到这一点。也许我可以在函数中使用 CLR 代码,但我不想这样做。

更新:“查询字符串”是指“?”之后的网址部分。我并不是说查询的一部分会在 url 中。查询字符串仅用作数据。

0 投票
7 回答
1338 浏览

sql - 如何在 SQL Server 08 中优化这个极其低效的用户定义函数

无论如何,在 SQL Server 08 中优化这个可怕的低效 UDF。我对 UDF 相当陌生,特别是在寻找它们进行优化。

更新:如果我想在查询中的每一行和每一列上执行它,我应该将一列发送到这样的函数吗?有没有更好的方法来解决这个问题?

谢谢你

** @value(float) 和 @fieldname(varchar(40)) 是输入参数 **

0 投票
1 回答
1100 浏览

sql-server - 如何在数据库项目中使用 SqlFunctionAttribute 生成 SQL 以自行部署函数?视觉工作室失败

背景:

Visual Studio 无法部署数据库项目。它试图删除已经引用的函数(例如在检查约束中),而不是仅仅添加新函数并更新现有函数,因此部署总是失败。

因此,我正在编写自己的代码来更新程序集并添加/更新任何功能。

我假设编译器/部署器使用反射和 SqlFunction 属性的属性,所以我也使用反射来收集具有 SqlFunction 属性的静态方法的 MethodInfo 列表。

问题/任务:

我需要知道如何将 SqlFunctionAttribute 的属性(例如 IsDeterministic、DataAccess、Name、IsPrecise 等)和函数的方法签名转换为适当的 T-SQL“CREATE FUNCTION”语句。

我已经发现没有帮助的现有信息:

“创建函数”的文档令人困惑且不完整。在底部,它最后提到了一些 SqlFunction 属性,如 IsDeterministic,但它谈论它们就像它们是 C# 属性,而不是 T-SQL 参数,所以我不知道如何在创建函数语句中使用它们。

我希望该clr_function_option参数能够处理诸如 IsDeterministic 之类的事情,但它没有被列为选项。

同时,在 IBM DB2 的文档中,我看到类似以下的语句,而 MSDN 文档中没有任何类似的语句:

0 投票
1 回答
184 浏览

sql-server - 需要有关 Sql Server 全文搜索问题的帮助

我有一个Full Text Catalog单表,定义了三个字段:-

现在,目录似乎运行良好。

例如。

现在,当我运行它时,我得到以下结果:- Name = ma(无结果) Name = mat(无结果) Name = matt(1 个结果 - 正确)。

这是使用它的正确方法吗?我也试过用CONTAINSTABLE..FREETEXTTABLE同样的东西代替..没有结果。

任何想法,任何人?

编辑

我知道这可以在存储过程中实现。我希望将其作为表值函数来执行,因此我可以在某些 Linq2Sql 中使用它。如果它真的表现不佳,那么请说出来。

0 投票
2 回答
453 浏览

sql-server-2005 - 如何创建一个接受查询字符串并返回查询结果集的 UDF

我想创建一个存储过程,它采用简单的 SELECT 语句并将结果集作为 CSV 字符串返回。所以基本思想是从用户输入中获取 sql 语句,使用 EXEC(@stmt) 运行它并使用游标将结果集转换为文本。但是,由于 SQLServer 不允许:

  • 从存储过程中选择 *(@sqlStmt)
  • 带有 EXEC 的 UDF(@sqlStmt)

所以我尝试插入#tempTable EXEC(@sqlStmt),但这不起作用(错误=“无效的对象名称#tempTable”)。

我被困住了。您能否对此事有所了解?

非常感谢

编辑:

实际上输出(例如 CSV 字符串)并不重要。问题是我不知道如何将游标分配给 EXEC 返回的结果集。SP 和 UDF 不能与 Exec() 一起使用,而在不知道输入语句的情况下,在插入值之前创建临时表是不可能的。

我想到了 OPENQUERY,但它不接受变量作为其参数。

0 投票
3 回答
7259 浏览

entity-framework - 如何将实体框架与分层数据一起使用?

我正在使用 sql server 中的大型分层数据集 - 使用标准的“EntityID,ParentID”类型的方法建模。整个树中大约有 25,000 个节点。

我经常需要访问树的子树,然后访问挂在子树节点上的相关数据。几年前,我基于表值函数构建了一个数据访问层,在给定子树的根节点的情况下,使用递归查询来获取任意子树。

我正在考虑使用实体框架,但我看不到如何查询这样的分层数据。AFAIK 在 Linq 中没有递归查询,我无法在我的实体数据模型中公开 TVF。

是继续使用存储过程的唯一解决方案吗?有没有其他人解决了这个问题?

澄清:树中的 25,000 个节点是指分层数据集的大小,与对象或实体框架无关。

0 投票
5 回答
2300 浏览

sql-server - 在 TSQL 中将 PascalCase 字符串转换为“友好名称”

我有一个表,其中有一列的值来自枚举。我需要创建一个 TSQL 函数,以便在检索时将这些值转换为“友好名称”。

例子:

我需要一个直接的 TSQL UDF 解决方案。我没有安装扩展存储过程或 CLR 代码的选项。

0 投票
3 回答
6696 浏览

sql-server - CLR UDF 返回 Varbinary(MAX)

SQL CLR 用户定义函数是否可以返回数据类型 varbinary(MAX)?

在它提到的文档中:

“输入参数和从标量值函数返回的类型可以是 SQL Server 支持的任何标量数据类型,除了 rowversion、text、ntext、image、timestamp、table 或 cursor。” - 他们没有提到varbinary,但我不确定......

我有一些来自 .NET 端的字节数组数据,我需要从 CLR 返回到 SQL Server,并且我试图避免使用存储过程的输出参数来完成它(这就是我拥有它的方式现在正在测试中)。

谢谢!

0 投票
3 回答
966 浏览

python - Django中用户定义的派生数据

如何让我的用户将自己的自定义公式应用于数据表以派生新字段?

我正在开发一个Django应用程序,它将为开放网络上的订阅用户存储和处理大量数据。在一页请求中考虑 100-10,000 个传感器读数。我将使用这些数据绘制图表并显示包含它的表格。我希望我的用户定义传感器组,他们将在我的网站上注册自己(即它们对应于 django 模型)。

我想让用户能够创建从他们的传感器数据派生的字段(作为设置过程的一部分)。例如,用户可能知道他们的平均房屋温度为 (温度传感器 1 + 温度传感器 2) / 2,并希望将其显示在图表上。他们可能还想要一些更有趣的东西,比如太阳能热水加热是(温度输出 - 温度输入)* 流量 * 转换常数。然后,我将为他们以及查看此传感器数据页面的其他所有人保存这些定义的公式。

主要问题是如何定义系统中心的公式。我是否只有一个用户定义的字符串来定义公式(比如 100 个字符长)并自己解析它 - 用输入样本替换用户定义并将其命名为 toast?

更新

最后,我得到了我想要的答案:一种评估服务器上存储的用户功能的安全方法。在定义函数时也在客户端上评估相同的函数将是使 UI 直观的好方法。