Bạn có thể thực hiện chức năng của riêng bạn. Đây là một tùy chọn:
create or replace function random_str(v_length number) return varchar2 is
my_str varchar2(4000);
begin
for i in 1..v_length loop
my_str := my_str || dbms_random.string(
case when dbms_random.value(0, 1) < 0.5 then 'l' else 'x' end, 1);
end loop;
return my_str;
end;
/
select random_str(30) from dual;
RANDOM_STR(30)
--------------------------------------------------------------------------------
pAAHjlh49oZ2xuRqVatd0m1Pv8XuGs
Bạn có thể muốn điều chỉnh 0.5
để tính đến các kích thước nhóm khác nhau - 26 cho l
so với 36 cho x
. (.419354839?
). Bạn cũng có thể sử dụng giá trị () và chuyển vào phạm vi bắt đầu và kết thúc của các giá trị ký tự, nhưng giá trị đó sẽ là ký tự cụ thể.
Tại sao ... Oracle cần một lý do? Việc sử dụng x
có thể gợi ý rằng nó ban đầu là hệ thập lục phân và đã được mở rộng để bao gồm tất cả các chữ hoa, mà không xảy ra với chúng để thêm một phiên bản chữ hoa hỗn hợp cùng một lúc.