来自字符串集的Oracle SQL随机值

时间:2015-05-19 00:30:41

标签: sql plsql oracle11g

在Oracle SQL 11g中,我尝试使用过程填充表。对于某些列,我需要从预定义的字符串集中随机获取数据。如何定义这样的集合并按随机顺序从中获取数据?

2 个答案:

答案 0 :(得分:2)

您可以使用cte和dbms_random.value。类似的东西:

with strings as (
      select 'string1' as s from dual union all
      select 'string2' as s from dual union all
      select 'string3' as s from dual union all
      select 'string4' as s from dual
     )
select <col1>,
       (select s
        from (select s from strings order by dbms_random.value) s
        where rownum = 1
       ) as RandomString
from dual;

答案 1 :(得分:0)

你能试一试吗,它正在发挥作用。

1.在表格中插入字符串列表(字符串)。

2.创建一个函数(RANDOM)来生成随机数。

3.创建一个过程(PROC_STRING),使用从函数(RANDOM)生成的随机数从(STRINGS)表中选择一个字符串名称,然后插入(NEW_TABLE)

计划:

--After executing the procedure for 3 times
SQL> exec proc_string(1);                                                                                                   
insert successfully completed 
PL/SQL procedure successfully completed.                                                                                    

-- Random string names got inserted into newtable                                                                                                                           
SQL> select * from new_table;                                                                                        


STRING_ID STRING_NAME
5             def 1
3             ghi 
1             abc   

执行:

dict[]

如果您有疑问,请告诉我。