The storage files (*.storage) defines schema objects such as tables, indexes, objects, sequences etc. This file type is not directly deployable into the database and has to pass through the code generator which produces database deployable CRE files. The core storage file can be empty if no additions or changes to the template generated base storage file exist.
Note: All CRE files generated from storages files should be re-runnable without giving hard errors. Creating objects using the Foundation1 framework methods, i.e. calling
methods beginning with Database_SYS.Create_
In the Base storage file the following are defined:
The Base storage file is generated and cannot be changed.
layer Base; -------------------- TABLE DEFINITIONS -------------------------------------- TABLE person_info_tab IS ( person_id VARCHAR2(20) NOT NULL, name VARCHAR2(100) NOT NULL, ... assigned_car VARCHAR2(10) NULL, TEXT_ID$ VARCHAR2(50) DEFAULT sys_guid() NOT NULL, rowversion NUMBER NOT NULL, rowkey VARCHAR2(50) DEFAULT NULL); PRIMARY KEY person_info_pk IS person_info_tab ( person_id); UNIQUE CONSTRAINT person_info_rk IS person_info_tab ( rowkey); UNIQUE INDEX person_info_sx1 IS person_info_tab ( text_id$); -------------------- OTHER DEFINITIONS --------------------------------------
In the core storage files, R&D add additional database objects. In this type of file it is possible to:
TABLE transaction_sys_status_tab IS ( id NUMBER NOT NULL, line NUMBER NOT NULL, text VARCHAR2(2000) NULL, status_type VARCHAR2(10) NOT NULL, rowversion NUMBER NOT NULL, ROWKEY VARCHAR2(50) NULL); UNIQUE CONSTRAINT transaction_sys_status_rk IS transaction_sys_status_tab (rowkey); PRIMARY KEY transaction_sys_status_pk IS transaction_sys_status_tab ( id, line); SEQUENCE transaction_sys_seq IS MINVALUE 1; INDEX transaction_sys_local_ix IS transaction_sys_local_tab ( state, queue_id); INDEX transaction_sys_local_ix1 IS transaction_sys_local_tab(posted,id); OBJECT Search_Domain_State_Type IS ( search_domain VARCHAR2(50), index_name VARCHAR2(30), text_key VARCHAR2(100), text VARCHAR2(4000), Timestamp DATE); COLLECTION Search_Domain_States_Type IS TABLE OF Search_Domain_State_Type; BEGIN Ctx_Ddl.Create_Section_Group('APPLICATION_SEARCH', 'AUTO_SECTION_GROUP'); BEGIN Ctx_Ddl.Drop_Preference('APPLICATION_SEARCH_LEXER'); EXCEPTION WHEN OTHERS THEN NULL; END; Ctx_Ddl.Create_Preference('APPLICATION_SEARCH_LEXER', 'BASIC_LEXER'); Ctx_Ddl.Set_Attribute('APPLICATION_SEARCH_LEXER', 'PRINTJOINS', '_'); BEGIN Ctx_Ddl.Drop_Preference('APPLICATION_SEARCH_STORAGE'); EXCEPTION WHEN OTHERS THEN NULL; END; Ctx_Ddl.Create_preference('APPLICATION_SEARCH_STORAGE', 'BASIC_STORAGE'); Ctx_Ddl.Set_attribute('APPLICATION_SEARCH_STORAGE','FORWARD_INDEX','TRUE'); Ctx_ddl.Set_attribute('APPLICATION_SEARCH_STORAGE','SAVE_COPY','PLAINTEXT'); END;
In any extension/localization file, then extension/localization specific extra information, additional to the storage file is written.
In these files it is possible to:
In the customization storage file, customization specific extra information to the storage is written. In these files it is possible to: