DML
//
// Demonstration of how to use the various MaxDB functions
//
//   -> system supplied functions (special register)
SELECT ROWNO
      ,NULL
      ,USER
      ,USERGROUP
      ,SYSDBA
      ,CURRENT_SCHEMA
      ,UID
      ,DATE
      ,TIME
      ,TIMESTAMP
      ,UTCDATE
      ,TIMEZONE
      ,UTCDIFF
      ,TRUE
      ,FALSE
      ,TRANSACTION
  FROM dual
//
//   -> one user defined function  (an example to generate random data)
DROP   FUNCTION RAND
//
CREATE FUNCTION RAND (weight SMALLINT) RETURNS FIXED(38,37) AS
  VAR randval FIXED(38,37);
  SELECT ((134775818 * MICROSECOND(TIMESTAMP) + :weight) MOD 231) / 230
     INTO :randval
     FROM dbadmin.dual;
  RETURN randval;
//
//   -> embedding UDF in SQL
SELECT 
       RAND(1)                        AS r0
     , FIXED(RAND(1)*10,1)            AS r1
     , FIXED(RAND(1)*100,2)           AS r2
     , FIXED(RAND(1)*1000,3)          AS r3
     , FIXED(RAND(1)*10000,4)         AS r4
     , FIXED(RAND(1)*100000,5)        AS r5
     , FIXED(RAND(1)*1000000,6)       AS r6
     , FIXED(RAND(1)*10000000,7)      AS r7
     , FIXED(RAND(1)*100000000,8)     AS r8
     , FIXED(RAND(1)*1000000000,9)    AS r9
     , FIXED(RAND(1)*10000000000,10)  AS r10
  FROM dual
//
Result
> SELECT ROWNO       ,NULL       ,USER       ,USERGROUP       ,SYSDBA       ,CURRENT_SCHEMA       ,UID       ,DATE       ,TIME       ,TIMESTAMP       ,UTCDATE       ,TIMEZONE       ,UTCDIFF       ,TRUE       ,FALSE       ,TRANSACTION   FROM dual
> | ROWNO            | EXPRESSION1              | EXPRESSION2                      | EXPRESSION3                      | EXPRESSION4                      | EXPRESSION5                      | EXPRESSION6        | EXPRESSION7 | EXPRESSION8 | EXPRESSION9                | EXPRESSION10               | EXPRESSION11        | EXPRESSION12         | EXPRE | EXPRE | EXPRESSION15               |
> | ---------------- | ------------------------ | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | ------------------ | ----------- | ----------- | -------------------------- | -------------------------- | ------------------- | -------------------- | ----- | ----- | -------------------------- |
> |                1 | ?                        | MONA                             | MONA                             | DBADMIN                          | MONA                             |                 29 | 2008-02-17  | 10:44:27    | 2008-02-17 10:44:27.953000 | 2008-02-17 09:44:27.953000 |               10000 |                 1.00 |  TRUE | FALSE | 0x0000000000BB             |
> DROP   FUNCTION RAND
> CREATE FUNCTION RAND (weight SMALLINT) RETURNS FIXED(38,37) AS   VAR randval FIXED(38,37);   SELECT ((134775818 * MICROSECOND(TIMESTAMP) + :weight) MOD 231) / 230      INTO :randval      FROM dbadmin.dual;   RETURN randval;
> SELECT        RAND(1)                        AS r0      , FIXED(RAND(1)*10,1)            AS r1      , FIXED(RAND(1)*100,2)           AS r2      , FIXED(RAND(1)*1000,3)          AS r3      , FIXED(RAND(1)*10000,4)         AS r4      , FIXED(RAND(1)*100000,5)        AS r5      , FIXED(RAND(1)*1000000,6)       AS r6      , FIXED(RAND(1)*10000000,7)      AS r7      , FIXED(RAND(1)*100000000,8)     AS r8      , FIXED(RAND(1)*1000000000,9)    AS r9      , FIXED(RAND(1)*10000000000,10)  AS r10   FROM dual
> | R0                                                      | R1     | R2     | R3      | R4       | R5         | R6          | R7           | R8             | R9              | R10              |
> | ------------------------------------------------------- | ------ | ------ | ------- | -------- | ---------- | ----------- | ------------ | -------------- | --------------- | ---------------- |
> |                 0.6695652173913043478261000000000000000 |      7 |     67 |     670 |     6696 |      66957 |      669565 |      6695652 |       66956522 |       669565217 |       6695652174 |