0

我正在创建这个应该返回随机字符串的函数:

create function createRandomString() returns Text
        return concat( 
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25))
    );    

由于某种原因,这个函数什么都不返回......我不知道为什么......

当我在选择中使用完全相同的内容时concat()- 它可以工作。

4

1 回答 1

1

问题是您返回 0 到 25 之间的数值,这些数值不是放入字符串的普通字符。将 65 添加到它们以从“A”开始:

create function createRandomString() returns Text
        return concat( 
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65))
    );

您可能还想阅读 ASCII 编码,以便更好地了解您在做什么。

于 2013-11-03T17:52:38.070 回答