如何在mysql UDF中返回一个字符串(varchar)

时间:2016-07-04 08:31:54

标签: mysql

如何返回参数?以及如何返回单个字符串?我试过这些但得到错误

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 'DETERMINISTIC
RETURN 'a'' at line 2

我不认为"决定因素"是问题。 要返回参数:

DROP FUNCTION IF EXISTS `test_foo`;
CREATE FUNCTION test_foo (a VARCHAR(1))
RETURNS VARCHAR DETERMINISTIC
RETURN a

返回单个字符串:

DROP FUNCTION IF EXISTS `test_foo`;
CREATE FUNCTION test_foo ()
RETURNS VARCHAR DETERMINISTIC
RETURN 'a'

1 个答案:

答案 0 :(得分:0)

您无法使用VARCHAR而无法使用其长度。

根据文件:

The CHAR and VARCHAR Types

  

CHAR和VARCHAR类型声明的长度表示   要存储的最大字符数。例如,   CHAR(30)最多可容纳30个字符。

因此,如下所示更改您的功能定义,它应该正常工作。

DROP FUNCTION IF EXISTS test_foo;

CREATE FUNCTION test_foo ( a VARCHAR( 1 ) )
RETURNS VARCHAR( 1 ) DETERMINISTIC
RETURN a;