【问题】
What is a best way to shuffle a database column using pl/sql. how to shuffle a database column eg first name with around 70000 of rows . TIA
针对此问题,有人给了下面的方案:
DECLARE
SUBTYPE Name IS VARCHAR2(200);
TYPE Names_tab IS TABLE OF Name;
--
tabOrigin Names_tab;
tabShuffled Names_tab;
vSwap Name;
idx BINARY_INTEGER;
BEGIN
\-\- Do simple play WITH DUAL instead of real data
WITH rs AS (
SELECT DBMS_RANDOM.STRING( 'A', 1) name FROM dual
UNION ALL
SELECT DBMS_RANDOM.STRING( 'A', 1) name FROM dual
UNION ALL
SELECT DBMS_RANDOM.STRING( 'A', 1) name FROM dual
UNION ALL
SELECT DBMS_RANDOM.STRING( 'A', 1) name FROM dual
UNION ALL
SELECT DBMS_RANDOM.STRING( 'A', 1) name FROM dual
UNION ALL
SELECT DBMS_RANDOM.STRING( 'A', 1) name FROM dual
)
SELECT name origin, name shuffle
BULK COLLECT INTO tabOrigin, tabShuffled
FROM rs
;
--
\-\- As