Skip to content

Instantly share code, notes, and snippets.

@esasse
Created August 1, 2012 20:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save esasse/3230632 to your computer and use it in GitHub Desktop.
Save esasse/3230632 to your computer and use it in GitHub Desktop.
Stored procedure to generate UUID32 in Firebird 2.5+
CREATE OR ALTER PROCEDURE GEN_UUID32 RETURNS (RESULT CHAR(32))
AS
DECLARE VARIABLE UUID36 CHAR(36);
BEGIN
SELECT
UUID_TO_CHAR(GEN_UUID())
FROM RDB$DATABASE
INTO :UUID36;
SELECT
SUBSTRING(:UUID36 FROM 1 FOR 8) ||
SUBSTRING(:UUID36 FROM 10 FOR 4) ||
SUBSTRING(:UUID36 FROM 15 FOR 4) ||
SUBSTRING(:UUID36 FROM 20 FOR 4) ||
SUBSTRING(:UUID36 FROM 25)
FROM RDB$DATABASE
INTO :RESULT;
SUSPEND;
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment