【发布时间】:2012-03-04 12:15:37
【问题描述】:
我想知道是否可以通过 ColdFusion 的<cfquery>-tag 在 MySQL5 中创建存储过程。我以前从未对存储过程做过任何事情......
我试图设置一个函数来替换 MySQL 的 REPLACE 但不区分大小写。我想使用here提供的功能。
但首先我想通过 Coldfusion 创建这个函数,例如:
<CFQUERY datasource="#dsn#">
DELIMITER $$
DROP FUNCTION IF EXISTS `replace_ci`$$
CREATE FUNCTION `replace_ci` ( str TEXT,needle CHAR(255),str_rep CHAR(255))
RETURNS TEXT
DETERMINISTIC
BEGIN
DECLARE return_str TEXT;
SELECT replace(lower(str),lower(needle),str_rep) INTO return_str;
RETURN return_str;
END$$
DELIMITER ;
</CFQUERY>
这会引发以下错误:
您的 SQL 语法有错误;检查与您的 MySQL 对应的手册 'DELIMITER $$ DROP FUNCTION IF EXISTS 附近使用正确语法的服务器版本
replace_ci$$ CREATE FUNCTION' 在第 1 行
虽然直接在 e.g. 中执行语句phpMyAdmin 成功。
这个article 仅显示如何使用<cfstoredproc>-tag 调用存储产品,但我看不到这些过程在哪里声明到数据库服务器。
【问题讨论】:
标签: mysql stored-procedures coldfusion cfquery