sql Fisher-Yates在PL / SQL中进行了随机播放
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql Fisher-Yates在PL / SQL中进行了随机播放相关的知识,希望对你有一定的参考价值。
DECLARE
TYPE tab_t IS TABLE OF VARCHAR2(20);
tab tab_t
:= tab_t('11',
'22',
'33',
'44',
'55');
cnt NUMBER;
idx NUMBER;
tmp VARCHAR2(20);
BEGIN
DBMS_RANDOM.seed(TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
cnt := CEIL(DBMS_RANDOM.VALUE(0, tab.COUNT));
FOR i IN tab.FIRST .. cnt LOOP
idx := CEIL(DBMS_RANDOM.VALUE(i, tab.COUNT));
tmp := tab(idx);
tab(idx) := tab(i);
tab(i) := tmp;
DBMS_OUTPUT.put(tab(i) || ' ');
END LOOP;
DBMS_OUTPUT.new_line;
DBMS_RANDOM.terminate;
END;
以上是关于sql Fisher-Yates在PL / SQL中进行了随机播放的主要内容,如果未能解决你的问题,请参考以下文章
PL/SQL语法简介(匿名PL/SQL块)
PL/SQL编程_概述
PL/SQL概述
PL/SQL开发中动态SQL的使用方法
PL/SQL数据库开发那点事
PL/SQL 编程