tubadc 0 Denunciar post Postado Novembro 5, 2007 Estou tentando rodar a seguinte função num banco mysql Versão do Servidor: 5.0.37-community-nt / Versão do cliente MySQL: 4.1.22 CREATE FUNCTION AlfaNum(Texto VARCHAR(500)) RETURNS varchar(500) CHARSET latin1 BEGIN declare semAcento varchar(500); select lower(Texto) into semAcento; select replace(semAcento,'ã','a') into semAcento; select replace(semAcento,'á','a') into semAcento; select replace(semAcento,'â','a') into semAcento; select replace(semAcento,'à','a') into semAcento; select replace(semAcento,'ê','e') into semAcento; select replace(semAcento,'é','e') into semAcento; select replace(semAcento,'ë','e') into semAcento; select replace(semAcento,'ï','i') into semAcento; select replace(semAcento,'í','i') into semAcento; select replace(semAcento,'ó','o') into semAcento; select replace(semAcento,'ô','o') into semAcento; select replace(semAcento,'ö','o') into semAcento; select replace(semAcento,'ú','u') into semAcento; select replace(semAcento,'ü','u') into semAcento; select replace(semAcento,'ç','c') into semAcento; select replace(semAcento,'ñ','n') into semAcento; select upper(SemAcento) into semAcento; RETURN semAcento; END; e sempre me retorna o seguinte erro #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(500)' at line 4 alguem sabe oque estou fazendo de errado... pois jah testei nas versões 4.1.22 / 4.1.7 e 5.0.22 e nenhuma delas funcionou... rodei uma função simples hello world e vai... > CREATE FUNCTION hello( > sCHAR( 20 ) > ) RETURNS CHAR( 50 ) RETURN CONCAT( 'Hello, ', s, '!' ) ; estou usando o phpmyadmin. Obrigado PS: estou desesperado... :( Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Novembro 6, 2007 Acho que tem a ver com a lib. mysql. Tente pelo client. Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Novembro 6, 2007 O valor ser retornado pela função é DETERMINISTIC, ou seja, será determinado pela função...segue abaixo como deve ser: mysql> CREATE FUNCTION AlfaNum(Texto VARCHAR(500)) -> RETURNS varchar(500) CHARSET latin1 -> DETERMINISTIC -> BEGIN -> declare semAcento varchar(500); -> SELECT lower(Texto) INTO semAcento; -> SELECT REPLACE(semAcento,'ã','a') INTO semAcento; -> SELECT REPLACE(semAcento,'á','a') INTO semAcento; -> SELECT REPLACE(semAcento,'â','a') INTO semAcento; -> SELECT REPLACE(semAcento,'à','a') INTO semAcento; -> SELECT REPLACE(semAcento,'ê','e') INTO semAcento; -> SELECT REPLACE(semAcento,'é','e') INTO semAcento; -> SELECT REPLACE(semAcento,'ë','e') INTO semAcento; -> SELECT REPLACE(semAcento,'ï','i') INTO semAcento; -> SELECT REPLACE(semAcento,'í','i') INTO semAcento; -> SELECT REPLACE(semAcento,'ó','o') INTO semAcento; -> SELECT REPLACE(semAcento,'ô','o') INTO semAcento; -> SELECT REPLACE(semAcento,'ö','o') INTO semAcento; -> SELECT REPLACE(semAcento,'ú','u') INTO semAcento; -> SELECT REPLACE(semAcento,'ü','u') INTO semAcento; -> SELECT REPLACE(semAcento,'ç','c') INTO semAcento; -> SELECT REPLACE(semAcento,'ñ','n') INTO semAcento; -> SELECT upper(SemAcento) INTO semAcento; -> RETURN semAcento; -> END; -> // Query OK, 0 rows affected (0.09 sec) Um palavra emperrou a compilação!! ehehe Abração, nos dê um retorno se funfou ou não!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites