用下面的过程产生的 是乱码望达人解惑create or replace function getRanWords return varchar2 as
out_name varchar2(100);
i integer;
begin
for i in 1..10 loop
--out_name:=out_name||chr(33344+mod(dbms_random.random(),28095));
out_name:=out_name||chr(33343+trunc(dbms_random.value(1,28095)));
end loop;
return out_name;
end;
out_name varchar2(100);
i integer;
begin
for i in 1..10 loop
--out_name:=out_name||chr(33344+mod(dbms_random.random(),28095));
out_name:=out_name||chr(33343+trunc(dbms_random.value(1,28095)));
end loop;
return out_name;
end;
区位码 一级汉字从1601-1694,1701-1794,.....5401-5494,5501-5589,共94*40-5=3755 个汉字字符集默认的乱码是部分。综上改了下:
create or replace function getRanWords return varchar2 as
out_name varchar2(100);
m integer;
n integer;
i integer;
begin
for i in 1..10 loop
m:=mod(abs(dbms_random.random()),39)+16;
n:=mod(abs(dbms_random.random()),94)+1;
out_name:=out_name||chr((m+160)*16*16+n+160);
end loop;
return out_name;
end;可用,揭帖
out_name varchar2(100);
i integer;
begin
for i in 1..10 loop
--out_name:=out_name||chr(33344+mod(dbms_random.random(),28095));
out_name:=out_name||chr(trunc(dbms_random.value(176,248))*256+trunc(dbms_random.value(161,255)));
end loop;
return out_name;
end;