<cfquery>ColdFusion の-tagを介して MySQL5 でストアド プロシージャを作成することは可能でしょうか。以前にストアドプロシージャで何もしたことがありません...
MySQL のように置き換える関数を設定しようとしましたREPLACEが、大文字と小文字を区別しませんでした。ここで提供されている機能を使用したかったのです。
しかし、最初に、次のように 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 構文にエラーがあります。1行目の「DELIMITER $$ DROP FUNCTION IF EXISTS
replace_ci$$ CREATE FUNCTION」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
たとえばphpMyAdminでステートメントを直接実行すると成功しましたが。
この記事では、-tag を使用して storedprod を呼び出す方法のみを示して<cfstoredproc>いますが、これらのプロシージャがデータベース サーバーに対して宣言されている場所がわかりません。