-- 
-- Licensed to the Apache Software Foundation (ASF) under one
-- or more contributor license agreements.  See the NOTICE file
-- distributed with this work for additional information
-- regarding copyright ownership.  The ASF licenses this file
-- to you under the Apache License, Version 2.0 (the
-- "License"); you may not use this file except in compliance
-- with the License.  You may obtain a copy of the License at
--   
--     http://www.apache.org/licenses/LICENSE-2.0
--   
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-- 

# please replace "OOZIEDB" to your schema name

 CREATE TABLE "OOZIEDB"."COORD_ACTIONS" 
   (	"ID" VARCHAR2(255) NOT NULL ENABLE, 
	"ACTION_NUMBER" NUMBER, 
	"ACTION_XML" CLOB, 
	"CONSOLE_URL" VARCHAR2(255), 
	"CREATED_CONF" CLOB, 
	"ERROR_CODE" VARCHAR2(255), 
	"ERROR_MESSAGE" VARCHAR2(255), 
	"EXTERNAL_STATUS" VARCHAR2(255), 
	"MISSING_DEPENDENCIES" CLOB, 
	"RUN_CONF" CLOB, 
	"TIME_OUT" NUMBER, 
	"TRACKER_URI" VARCHAR2(255), 
	"JOB_TYPE" VARCHAR2(255), 
	"BEAN_TYPE" VARCHAR2(31), 
	"CREATED_TIME" TIMESTAMP (6), 
	"EXTERNAL_ID" VARCHAR2(255), 
	"JOB_ID" VARCHAR2(255), 
	"LAST_MODIFIED_TIME" TIMESTAMP (6), 
	"NOMINAL_TIME" TIMESTAMP (6), 
	"PENDING" NUMBER, 
	"RERUN_TIME" TIMESTAMP (6), 
	"SLA_XML" CLOB, 
	"STATUS" VARCHAR2(255), 
	 PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB" 
 LOB ("ACTION_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("CREATED_CONF") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("MISSING_DEPENDENCIES") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("RUN_CONF") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("SLA_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;

  CREATE TABLE "OOZIEDB"."COORD_JOBS" 
   (	"ID" VARCHAR2(255) NOT NULL ENABLE, 
	"APP_NAME" VARCHAR2(255), 
	"APP_PATH" VARCHAR2(255), 
	"BUNDLE_ID" VARCHAR2(255), 
	"CONCURRENCY" NUMBER, 
	"CONF" CLOB, 
	"EXTERNAL_ID" VARCHAR2(255), 
	"FREQUENCY" NUMBER, 
	"GROUP_NAME" VARCHAR2(255), 
	"LAST_ACTION_NUMBER" NUMBER, 
	"TIME_OUT" NUMBER, 
	"TIME_ZONE" VARCHAR2(255), 
	"USER_NAME" VARCHAR2(255), 
	"BEAN_TYPE" VARCHAR2(31), 
	"AUTH_TOKEN" CLOB, 
	"CREATED_TIME" TIMESTAMP (6), 
	"END_TIME" TIMESTAMP (6), 
	"EXECUTION" VARCHAR2(255), 
	"JOB_XML" CLOB, 
	"LAST_ACTION" TIMESTAMP (6), 
	"LAST_MODIFIED_TIME" TIMESTAMP (6), 
	"NEXT_MATD_TIME" TIMESTAMP (6), 
	"ORIG_JOB_XML" CLOB, 
	"PAUSE_TIME" TIMESTAMP (6), 
	"PENDING" NUMBER, 
	"SLA_XML" CLOB, 
	"START_TIME" TIMESTAMP (6), 
	"STATUS" VARCHAR2(255), 
	"SUSPENDED_TIME" TIMESTAMP (6), 
	"TIME_UNIT" VARCHAR2(255), 
	"MAT_THROTTLING" NUMBER, 
	"DONE_MATERIALIZATION" NUMBER, 
	"APP_NAMESPACE" VARCHAR2(255), 
	 PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB" 
 LOB ("CONF") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("AUTH_TOKEN") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("JOB_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("ORIG_JOB_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("SLA_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;

  CREATE TABLE "OOZIEDB"."SLA_EVENTS" 
   (	"EVENT_ID" NUMBER NOT NULL ENABLE, 
	"ALERT_CONTACT" VARCHAR2(255), 
	"ALERT_FREQUENCY" VARCHAR2(255), 
	"ALERT_PERCENTAGE" VARCHAR2(255), 
	"APP_NAME" VARCHAR2(255), 
	"DEV_CONTACT" VARCHAR2(255), 
	"GROUP_NAME" VARCHAR2(255), 
	"JOB_DATA" CLOB, 
	"NOTIFICATION_MSG" CLOB, 
	"PARENT_CLIENT_ID" VARCHAR2(255), 
	"PARENT_SLA_ID" VARCHAR2(255), 
	"QA_CONTACT" VARCHAR2(255), 
	"SE_CONTACT" VARCHAR2(255), 
	"SLA_ID" VARCHAR2(255), 
	"UPSTREAM_APPS" CLOB, 
	"USER_NAME" VARCHAR2(255), 
	"BEAN_TYPE" VARCHAR2(31), 
	"APP_TYPE" VARCHAR2(255), 
	"EVENT_TYPE" VARCHAR2(255), 
	"EXPECTED_END" TIMESTAMP (6), 
	"EXPECTED_START" TIMESTAMP (6), 
	"JOB_STATUS" VARCHAR2(255), 
	"STATUS_TIMESTAMP" TIMESTAMP (6), 
	 PRIMARY KEY ("EVENT_ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB" 
 LOB ("JOB_DATA") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("NOTIFICATION_MSG") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("UPSTREAM_APPS") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;

  CREATE TABLE "OOZIEDB"."WF_ACTIONS" 
   (	"ID" VARCHAR2(255) NOT NULL ENABLE, 
	"CONF" CLOB, 
	"CONSOLE_URL" VARCHAR2(255), 
	"CRED" VARCHAR2(255), 
	"DATA" CLOB, 
	"ERROR_CODE" VARCHAR2(255), 
	"ERROR_MESSAGE" CLOB, 
	"EXTERNAL_ID" VARCHAR2(255), 
	"EXTERNAL_STATUS" VARCHAR2(255), 
	"NAME" VARCHAR2(255), 
	"RETRIES" NUMBER, 
	"TRACKER_URI" VARCHAR2(255), 
	"TRANSITION" VARCHAR2(255), 
	"TYPE" VARCHAR2(255), 
	"BEAN_TYPE" VARCHAR2(31), 
	"END_TIME" TIMESTAMP (6), 
	"EXECUTION_PATH" VARCHAR2(255), 
	"LAST_CHECK_TIME" TIMESTAMP (6), 
	"LOG_TOKEN" VARCHAR2(255), 
	"PENDING" NUMBER, 
	"PENDING_AGE" TIMESTAMP (6), 
	"SIGNAL_VALUE" VARCHAR2(255), 
	"SLA_XML" CLOB, 
	"START_TIME" TIMESTAMP (6), 
	"STATUS" VARCHAR2(255), 
	"WF_ID" VARCHAR2(255), 
	 PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB" 
 LOB ("CONF") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("DATA") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("ERROR_MESSAGE") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("SLA_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;

  CREATE TABLE "OOZIEDB"."WF_JOBS" 
   (	"ID" VARCHAR2(255) NOT NULL ENABLE, 
	"APP_NAME" VARCHAR2(255), 
	"APP_PATH" VARCHAR2(255), 
	"CONF" CLOB, 
	"GROUP_NAME" VARCHAR2(255), 
	"PARENTID" VARCHAR2(255), 
	"RUN" NUMBER, 
	"USER_NAME" VARCHAR2(255), 
	"BEAN_TYPE" VARCHAR2(31), 
	"AUTH_TOKEN" CLOB, 
	"CREATED_TIME" TIMESTAMP (6), 
	"END_TIME" TIMESTAMP (6), 
	"EXTERNAL_ID" VARCHAR2(255), 
	"LAST_MODIFIED_TIME" TIMESTAMP (6), 
	"LOG_TOKEN" VARCHAR2(255), 
	"PROTO_ACTION_CONF" CLOB, 
	"SLA_XML" CLOB, 
	"START_TIME" TIMESTAMP (6), 
	"STATUS" VARCHAR2(255), 
	"WF_INSTANCE" BLOB, 
	"PARENT_ID" VARCHAR2(255), 
	 PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB" 
 LOB ("CONF") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("AUTH_TOKEN") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("PROTO_ACTION_CONF") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("SLA_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("WF_INSTANCE") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;

  CREATE TABLE "OOZIEDB"."BUNDLE_JOBS" 
   (	"ID" VARCHAR2(255) NOT NULL ENABLE, 
	"APP_NAME" VARCHAR2(255), 
	"APP_PATH" VARCHAR2(255), 
	"CONF" CLOB, 
	"EXTERNAL_ID" VARCHAR2(255), 
	"GROUP_NAME" VARCHAR2(255), 
	"TIME_OUT" NUMBER, 
	"USER_NAME" VARCHAR2(255), 
	"BEAN_TYPE" VARCHAR2(31), 
	"AUTH_TOKEN" CLOB, 
	"CREATED_TIME" TIMESTAMP (6), 
	"END_TIME" TIMESTAMP (6), 
	"JOB_XML" CLOB, 
	"KICKOFF_TIME" TIMESTAMP (6), 
	"LAST_MODIFIED_TIME" TIMESTAMP (6), 
	"ORIG_JOB_XML" CLOB, 
	"PAUSE_TIME" TIMESTAMP (6), 
	"PENDING" NUMBER, 
	"START_TIME" TIMESTAMP (6), 
	"STATUS" VARCHAR2(255), 
	"SUSPENDED_TIME" TIMESTAMP (6), 
	"TIME_UNIT" VARCHAR2(255), 
	 PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB" 
 LOB ("CONF") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("AUTH_TOKEN") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("JOB_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) 
 LOB ("ORIG_JOB_XML") STORE AS BASICFILE (
  TABLESPACE "OOZIEDB" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION 
  NOCACHE LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;

  CREATE TABLE "OOZIEDB"."BUNDLE_ACTIONS" 
   (	"BUNDLE_ACTION_ID" VARCHAR2(255) NOT NULL ENABLE, 
	"BUNDLE_ID" VARCHAR2(255), 
	"COORD_ID" VARCHAR2(255), 
	"COORD_NAME" VARCHAR2(255), 
	"CRITICAL" NUMBER, 
	"LAST_MODIFIED_TIME" TIMESTAMP (6), 
	"PENDING" NUMBER, 
	"STATUS" VARCHAR2(255), 
	"BEAN_TYPE" VARCHAR2(31), 
	 PRIMARY KEY ("BUNDLE_ACTION_ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "OOZIEDB" ;

  CREATE TABLE "OOZIEDB"."VALIDATE_CONN" 
   (	"ID" NUMBER NOT NULL ENABLE, 
	"DUMMY" NUMBER, 
	 PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION DEFERRED 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  TABLESPACE "OOZIEDB" ;

  CREATE TABLE "OOZIEDB"."OPENJPA_SEQUENCE_TABLE" 
   (	"ID" NUMBER NOT NULL ENABLE, 
	"SEQUENCE_VALUE" NUMBER, 
	 PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  TABLESPACE "OOZIEDB"  ENABLE
   ) SEGMENT CREATION DEFERRED 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  TABLESPACE "OOZIEDB";
  
  CREATE SEQUENCE  "OOZIEDB"."EVENT_SEQ"
  MINVALUE 1 MAXVALUE 9999999999999999999999999999
  INCREMENT BY 1 START WITH 351 CACHE 50 NOORDER  NOCYCLE;
