How to generate a GUID in Oracle?

前端 未结 9 586
悲哀的现实
悲哀的现实 2020-12-04 10:49

Is it possible to auto-generate a GUID into an Insert statement?

Also, what type of field should I use to store this GUID?

9条回答
  •  失恋的感觉
    2020-12-04 11:17

    you can use function bellow in order to generate your UUID

    create or replace FUNCTION RANDOM_GUID
        RETURN VARCHAR2 IS
    
        RNG    NUMBER;
        N      BINARY_INTEGER;
        CCS    VARCHAR2 (128);
        XSTR   VARCHAR2 (4000) := NULL;
      BEGIN
        CCS := '0123456789' || 'ABCDEF';
        RNG := 15;
    
        FOR I IN 1 .. 32 LOOP
          N := TRUNC (RNG * DBMS_RANDOM.VALUE) + 1;
          XSTR := XSTR || SUBSTR (CCS, N, 1);
        END LOOP;
    
        RETURN SUBSTR(XSTR, 1, 4) || '-' ||
            SUBSTR(XSTR, 5, 4)        || '-' ||
            SUBSTR(XSTR, 9, 4)        || '-' ||
            SUBSTR(XSTR, 13,4)        || '-' ||
            SUBSTR(XSTR, 17,4)        || '-' ||
            SUBSTR(XSTR, 21,4)        || '-' ||
            SUBSTR(XSTR, 24,4)        || '-' ||
            SUBSTR(XSTR, 28,4);
    END RANDOM_GUID;
    

    Example of GUID genedrated by the function above:
    8EA4-196D-BC48-9793-8AE8-5500-03DC-9D04

提交回复
热议问题