Hier ein paar SQL Funktionen falls sie jemand brauchen kann
edit:
Der Include für den genuuid Header geht beim Posten immer kaputt, da sollte '#include (Kleiner-als-Zeichen)mih/genuuid.h(Größer-als-Zeichen)' stehen.
Code:CREATE TYPE UUID AS BINARY(16) WITH COMPARISONS; CALL QCMDEXC('CRTSRCPF FILE(QTEMP/TMP) MBR(TMP) RCDLEN(200)'); INSERT INTO QTEMP.TMP(SRCDTA) VALUES ('#include'), ('_UUID_Template_T uuid_template = { sizeof(_UUID_Template_T) };'), ('_GENUUID(&uuid_template);'), ('cpybytes(MAIN.RESULT, uuid_template.uuid, 16);'); CREATE OR REPLACE FUNCTION GENERATE_UUID() RETURNS UUID LANGUAGE SQL CONTAINS SQL NO EXTERNAL ACTION NOT DETERMINISTIC MAIN:BEGIN DECLARE RESULT BINARY(16) DEFAULT bx''; INCLUDE QTEMP/TMP(TMP); RETURN RESULT; END; CREATE OR REPLACE FUNCTION UUID_TO_STRING(UUID UUID) RETURNS CHAR(36) LANGUAGE SQL CONTAINS SQL NO EXTERNAL ACTION DETERMINISTIC RETURN LOWER( HEX(SUBSTR(CAST(UUID AS BINARY(16)), 1, 4)) CONCAT '-' CONCAT HEX(SUBSTR(CAST(UUID AS BINARY(16)), 5, 2)) CONCAT '-' CONCAT HEX(SUBSTR(CAST(UUID AS BINARY(16)), 7, 2)) CONCAT '-' CONCAT HEX(SUBSTR(CAST(UUID AS BINARY(16)), 9, 2)) CONCAT '-' CONCAT HEX(SUBSTR(CAST(UUID AS BINARY(16)), 11, 6)) ); CREATE OR REPLACE FUNCTION UUID_FROM_STRING(UUID_STRING VARCHAR(36)) RETURNS UUID LANGUAGE SQL CONTAINS SQL NO EXTERNAL ACTION DETERMINISTIC RETURN CAST(HEXTORAW( SUBSTR(UUID_STRING, 1, 8) CONCAT SUBSTR(UUID_STRING, 10, 4) CONCAT SUBSTR(UUID_STRING, 15, 4) CONCAT SUBSTR(UUID_STRING, 20, 4) CONCAT SUBSTR(UUID_STRING, 25, 12) ) AS UUID); VALUES GENERATE_UUID(); VALUES UUID_TO_STRING(GENERATE_UUID()); VALUES UUID_FROM_STRING(UUID_TO_STRING(GENERATE_UUID()));
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks