-- 
-- 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"."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"."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), 
"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), 
"SLA_XML" CLOB, 
"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)) 
 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, 
 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"."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";

