dmp導入未有xyptguid解決辦法

根據考覈的八大類數據,經常從部門那裏拿到的dmp文件,裏面並沒有xyptguid的隨機數字段。會出現xyptguid爲空的情況。但是從我們平臺裏面導入的Excel表格會產生xyptguid的隨機數。

這時候我們自己就需要自己建立隨機數並插入到表中。

信用平臺裏面的xyptguid隨機數是符合rfc 4122的標準(http://tools.ietf.org/html/rfc4122)

所以我們建立的隨機數也需要遵循這種。

首先創建函數

CREATE OR REPLACE

FUNCTION get_uuid

RETURN VARCHAR

IS

guid VARCHAR (50);

BEGIN

guid := lower(RAWTOHEX(sys_guid()));

RETURN

substr(guid,1,8)||'-'||substr(guid,9,4)||'-'||substr(guid,13,4)||'-'||substr(guid,17,4)||'-'||substr(guid,21,12);

END get_uuid;

這時候我們測試該函數產生的隨機數:

select` `get_uuid ``from` `dual ;

該隨機數和目前數據交換系統產生的隨機數格式是一致的。

後面的問題就是如何將產生的隨機數,循環的插入到表中?

這時候我們就需要用到遊標:(測試語句如下)

declare

   *--**定義遊標並且賦值(is 不能和cursor分開使用)*

   cursor cur_1 is select get_uuid from dual;

   *--**定義rowtype*

   cur_stu T_GYSYJFXX%rowtype;

   begin

   *--**開啓遊標*

   for cur_stu in cur_1 loop

​    *--**執行操作sql*

​    update T_GYSYJFXX set xyptguid= get_uuid where xyptguid is null;

​    *--**結束循環*

​    end loop;

   */***結束執行\*/*

   end;

測試更新的表T_GYSYJFXX數據量爲40萬條,循環插入隨機數後不重複且符合交換系統要求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章