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 に答える