title: Use function as default value for column in Oracle11g
body: <p>We are testing out Oracle at my work and im in charge of building all of the database objects (tables, procs, trigger, etc) on Oracle, and we currently use Microsoft SQL Server 2008 R2. We use uniqueidentifier's for almost all of our ID column's. I used this function to create GUID's:</p>
  
  <pre><code>CREATE OR REPLACE FUNCTION NEWID RETURN CHAR IS guid CHAR(36) ;
  BEGIN
      SELECT SYS_GUID() INTO guid FROM DUAL;
      guid :=
                 SUBSTR(guid,  1, 8) ||
          '-' || SUBSTR(guid,  9, 4) ||
          '-' || SUBSTR(guid, 13, 4) ||
          '-' || SUBSTR(guid, 17, 4) ||
          '-' || SUBSTR(guid, 21);
      RETURN guid;
  END NEWID;
  /
  </code></pre>
  
  <p>But now I cant figure out how to use it as the default value on columns when creating tables. Here is a non-working example: </p>
  
  <pre><code>CREATE TABLE "NonWorkingExample"
  (   
    "ID"                              CHAR(36)      NOT NULL DEFAULT   NEWID(),
    "UnitNumber"                      NUMBER(38)    NOT NULL,
    "StartDateTime"                   TIMESTAMP     NOT NULL,
    "EndDateTime"                     TIMESTAMP     NULL,
  
    CONSTRAINT PK_RentalAgreements  PRIMARY KEY ("ID")
  );
  </code></pre>
  
  <p>And the error:</p>
  
  <pre><code>Error starting at line 1 in command:
  CREATE TABLE "NonWorkingExample"
  (   
    "ID"                          CHAR(36)      NOT NULL DEFAULT NEWID(),
    "UnitNumber"                  NUMBER(38)    NOT NULL,
    "StartDateTime"               TIMESTAMP     NOT NULL,
    "EndDateTime"                 TIMESTAMP     NULL,
  
    CONSTRAINT PK_RentalAgreements  PRIMARY KEY ("ID")
  )
  Error at Command Line:3 Column:58
  Error report:
  SQL Error: ORA-00907: missing right parenthesis
  00907. 00000 -  "missing right parenthesis"
  *Cause:    
  *Action:
  </code></pre>
  
  <p>Any help would be much appreciated. Thank you.</p>