0

関数を開発しようとしていますが、間違いがあります。この間違いはどこにありますか?ありがとう。これはコードです:

mysql> DELIMITER //
mysql> CREATE FUNCTION anumero (cadena varchar(20)) returns INT
-> DETERMINISTIC
-> BEGIN
-> DECLARE LARGO,I int DEFAULT 0;
-> DECLARE N VARCHAR(20) DEFAULT "";
-> SET I =1;
-> SET LARGO = LENGTH(CADENA);
-> REPEAT
-> IF INSTR('0123456789',SUBSTRING(CADENA,I,1))>0 THEN
-> SET N= CONCAT(N,SUBSTRING(CADENA,I,1));
-> END IF;
-> SET I = I+1;
-> UNTIL I > LARGO
-> END REPEAT;
-> return CAST (N as binary);
-> END //

エラー1064(42000):SQL構文にエラーがあります。'binaryの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。15行目でEND'

4

1 に答える 1

0

MySQLでは、関数名とその引数の間に文字を記述してはなりません。
したがって、returnステートメントは次のようになります。

    return CAST(N as binary);

于 2013-01-23T13:39:46.523 に答える