ORACLE 模擬資料之 從指定表中的指定欄位時隨機出一個值

self_control發表於2015-09-18
最近在專案中要模擬很多有外來鍵關聯的資料。寫了工具方法,發現很好用,記錄一下。
例如:隨機從 T_USER表中得到一個USERID.
select getColValue('T_USER','USERID') from dual;

函式如下:

點選(此處)摺疊或開啟

  1.     --隨機取得中某表中的某個欄位的值
  2.     function getColValue(p_table varchar,p_column varchar) return varchar is
  3.       t_str varchar(50);
  4.       v_sql varchar2(1000);
  5.      begin
  6.        v_sql :='with base as (select '||p_column ||',rownum line from '||p_table ||' a)
  7.        select '||p_column ||'
  8.        from base t
  9.        where t.line = (select max(floor(DBMS_RANDOM.VALUE(1,(select count(*) from '||p_table ||')))) from dual)';
  10.       execute immediate v_sql into t_str;
  11.       return t_str;
  12.      end;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30066956/viewspace-1803330/,如需轉載,請註明出處,否則將追究法律責任。

相關文章