mysql stored-procedures coldfusion cfquery

Crear un procedimiento almacenado en MySQL5 con<CFQUERY> de ColdFusion 9



stored-procedures (1)

tal vez estás haciendo esto más complicado como debería ser. La siguiente discusión me dice que no necesita la palabra clave DELIMIER : http://forums.mysql.com/read.php?39,130834,248556#msg-248556

<CFQUERY datasource="mysql_jdbc"> 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 </CFQUERY>

No olvides agregar allowMultiQueries=true a tu URL JDBC: http://www.bennadel.com/blog/1542-MySQL-3-4-com-mysql-jdbc-Driver-And-allowMultiQueries-true.htm

Me pregunto si es posible crear un procedimiento almacenado en MySQL5 a través de la <cfquery> ColdFusion. Nunca he hecho nada con procedimientos almacenados antes ...

Intentaba establecer una función que reemplaza a la de REPLACE de MySQL pero no a mayúsculas y minúsculas. Quería usar la función provista aquí .

Pero primero quiero crear esta función a través de Coldfusion como:

<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>

Esto arroja el siguiente error:

Usted tiene un error en su sintaxis SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a usar cerca de ''DELIMITER $$ DROP FUNCTION replace_ci EXISTS replace_ci $$ CREATE FUNCTION'' en la línea 1

Aunque ejecutar la declaración directamente en, por ejemplo, phpMyAdmin tuvo éxito.

Este artículo muestra solo cómo llamar a un <cfstoredproc> almacenado con <cfstoredproc> -tag pero no puedo ver dónde se declaran estos procedimientos al servidor de la base de datos.