sql - 在 Coldfusion 中执行 SQL 函数

标签 sql function coldfusion

我的 MS SQL(2005) 中有一个用户定义的函数,我想通过 Coldfusion (8) 执行它。
知道如何让这个工作吗?

[它不是一个存储过程,所以 cfstoredproc 已失效]。

先感谢您。

最佳答案

您可以在常规 CFQUERY 块中直接调用 SQL UDF,假设您的 Coldfusion 数据源对所需的 UDF 具有适当的 EXECUTE 权限。您不必在 CFQuery 中返回 select 语句。如果您将任何 Coldfusion 变量传递给数据库,请记住为了安全起见使用 CFQUERYPARAM。

要调用 UDF,您需要包含其架构*。在我们的例子中,我们使用了默认模式,因此我们的 UDF 以“dbo”为前缀。如 dbo.FunctionName()。

下面是一个例子:

<!--- We want to convert this numeric category into its English name.
      Thankfully our database administrator has a simple function to 
      resolve it without extra work on our part. --->

<cfset myCategory = 100428>

<!--- We call this Coldfusion variable using CFQUERYPARAM to prevent SQL Injection --->

<cfquery datasource="mydatasource" name="test">
  SELECT dbo.CategoryAsString(<cfqueryparam cfsqltype="cf_sql_integer" value="#myCategory#">) AS CategoryString
</cfquery>

<!--- And output the result here --->
<cfdump var="#test.CategoryString#">

*如果您不包含 UDF 的架构,您将收到“错误执行数据库查询。
[Macromedia][SQLServer JDBC Driver][SQLServer]'[FUNCTION NAME]' 不是公认的内置函数名称。”(CF 8)

关于sql - 在 Coldfusion 中执行 SQL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10454241/

相关文章:

sql - 插入并选择组合不起作用

php - MySQL 按文件名、标签、文件类别和作者搜索文件

java - 'where clause' 中未知的列用户名

java - 在特定步长间隔内逼近连续函数的导数

c - 如何在c中用参数声明数组大小

coldfusion - 使用 Coldfusion 创建登录系统

coldfusion - cfexecute 命令行

c# - 无法在对象中插入重复的键 - 如何在 Entity Framework Core 中创建复合键

javascript - 单击表格单元格上的功能

coldfusion - 生成多个文件,将它们添加到 zip,然后将 zip 作为文件下载发送。