prompt Package Header : jr_registration create or replace package jr_registration is ----------------------------------------------------------------------------------------- -- Procedure : register -- -- Read in a definition of a schema and store it in the RM model -- -- Parameters : -- schema_name : Name of schema to be registered, eg. 'scott' -- -- gen_api : Set to true if a 'cdapi' plsql style interface is required. -- eg. jrowidget.ins/upd/del etc (cd cdapi 'o' code) -- -- populate_logical_model must be set to 'Y' if this is set -- -- Set to false when registering Designer model as -- configuration will do this. -- -- gen_api_callout : Set to true if callouts are required from api (above) -- to call user defined code -- eg. jrhwidget.pre_process etc -- -- gen_api must be set to true if this is set -- -- gen_api_callout_stub : Set to true if callout stubs are required for user -- defined code -- eg. package spec and body for jrhwidget with methods -- pre_process etc (cf. cdapi 'hcode') -- -- gen_api must be set to true if this is set -- -- log_file_location : Location of file on server to write a log of -- what gets processed (must be named in init.ora -- file as value of utl_file_dir parameter) -- -- log_file_name : Name of log file (location must also be set) -- -- autocommit : Commits each Table, View, Sequence, Synonym, -- Stored Object after its definition has been read -- into the RM model -- -- pks_updateable : Are Primary Keys updateable ? -- This will avoid generating code to check for child -- records when a PK is updated ----------------------------------------------------------------------------------------- procedure register ( schema_name varchar2 , gen_api boolean default true , gen_api_callout boolean default false , gen_api_callout_stub boolean default false , log_file_location varchar2 default null , log_file_name varchar2 default 'jr_reg.log' , autocommit boolean default false , pks_updateable boolean default true ); ----------------------------------------------------------------------------------------- -- Procedure : generate -- -- Generate a version resolved schema to implement a schema defined in the -- RM model -- -- Parameters : -- schema_name : Name of schema to be generated. -- -- log_file_location : Location of file on server to write a log of -- what gets processed (must be named in init.ora -- file as value of utl_file_dir parameter) -- -- ddl_file_location : Directory on server to write a log of what gets -- processed (must be named in init.ora file as -- value of utl_file_dir parameter) -- -- log_file_name : Name of log file (location must also be set) -- -- tables_file : Name of ddl file for tables (generated only) -- indexes_file : Name of ddl file for indexes (generated and user defined) -- constraints_file : Name of ddl file for constraints (generated and user defined) -- triggers_file : Name of ddl file for triggers (generated and user defined) -- functions_file : Name of ddl file for functions (generated only) -- views_file : Name of ddl file for views (generated and user defined) -- stored_objs_file : Name of ddl file for packages, -- procedures and functions (generated and user defined) -- synonyms_file : Name of ddl file for synonyms (user defined only) -- sequences_file : Name of ddl file for sequences (user defined only) ----------------------------------------------------------------------------------------- procedure generate ( schema_name varchar2 , log_file_location varchar2 default null , ddl_file_location varchar2 default null , log_file_name varchar2 default 'jr_gen.log' , tables_file varchar2 default 'jrtable.sql' , indexes_file varchar2 default 'jrindex.sql' , constraints_file varchar2 default 'jrcon.sql' , triggers_file varchar2 default 'jrtrig.sql' , functions_file varchar2 default 'jrfunc.sql' , views_file varchar2 default 'jrview.sql' , stored_objs_file varchar2 default 'jrstor.sql' , synonyms_file varchar2 default 'jrsyn.sql' , sequences_file varchar2 default 'jrseq.sql' ); ----------------------------------------------------------------------------------------- -- Procedure : gen_plsql_api -- -- Generate a cdapi style plsql interface for registered types -- -- Parameters : -- schema_name : Name of schema to generate api for. -- -- log_file_location : Location of file on server to write a log of -- what gets processed (must be named in init.ora -- file as value of utl_file_dir parameter) -- -- ddl_file_location : Directory on server to write ddl files of the objects that are -- created (must be named in init.ora file as value of utl_file_dir -- parameter) -- -- log_file_name : Name of log file (location must also be set) -- -- plsql_api_file : Name of ddl file for plsql api (generated only) -- -- regenerate : Generate api even if its already been generated ? -- ----------------------------------------------------------------------------------------- procedure gen_plsql_api ( schema_name varchar2 , log_file_location varchar2 default null , ddl_file_location varchar2 default null , log_file_name varchar2 default 'jr_plgen.log' , plsql_api_file varchar2 default 'jrplsapi.sql' , regenerate boolean default false ); -------------------------------------------------------------------------------------------- -- Procedure : drop_schema -- -- Drop a generated schema and (optionally) meta data for a schema -- -- Parameters : -- schema_name : Name of schema to be dropped. -- -- log_file_location : Location of file on server to write a log of -- what gets processed (must be named in init.ora -- file as value of utl_file_dir parameter) -- -- ddl_file_location : Directory on server to write ddl files of the objects that are -- created (must be named in init.ora file as value of utl_file_dir -- parameter) -- -- log_file_name : Name of log file (location must also be set) -- -- drop_ddl_file : Name of ddl file for ddl for dropping objects -- -- delete_meta_data : Delete repository meta data relating to the schema being deleted -- (ie. the result of 'register') -- This deletes data in rm_sql_tables, rm_element_types etc -- -------------------------------------------------------------------------------------------- procedure drop_schema ( schema_name varchar2 , log_file_location varchar2 default null , ddl_file_location varchar2 default null , log_file_name varchar2 default 'jr_del.log' , drop_ddl_file varchar2 default 'jrdel.sql' , delete_meta_data boolean default true ); -------------------------------------------------------------------------------------------- -- Procedure : drop_all_schemas -- -- Drop all schemas that have been registered -- -- Parameters : see parameters above for 'drop_schema' procedure -------------------------------------------------------------------------------------------- procedure drop_all_schemas ( log_file_location varchar2 default null , ddl_file_location varchar2 default null , log_file_name varchar2 default 'jr_del.log' , drop_ddl_file varchar2 default 'jrdel.sql' , delete_meta_data boolean default true ); -------------------------------------------------------------------------------------------- -- Procedure : migrate_schema -- -- Migrate instance data from a registered schema into repository -- -- Pre-requisite : The schema must have been registered and generated in the repository -- -- Parameters : see parameters above for 'gen_migrate_table' procedure -- -------------------------------------------------------------------------------------------- procedure migrate_schema ( schema_name varchar2 , workarea_name varchar2 , folder_name varchar2 , log_file_location varchar2 default null , migrate_file_location varchar2 default null , log_file_name varchar2 default 'jrmig.log' , migrate_file varchar2 default 'jrmig.sql' ); -------------------------------------------------------------------------------------------- -- Exceptions -------------------------------------------------------------------------------------------- -- NO_REGISTER_SCHEMA_PRIVILEGE : raised by any registration method if user does not have -- REGISTER_SCHEMA system privilege -- SCHEMA_DOES_NOT_EXIST : Raised by register if schema does not exist in current -- database -- SCHEMA_NOT_REGISTERED : Raised by generate if schema not registered -- SCHEMA_NOT_GENERATED : Raised by gen_plsql_api, drop_schema, drop_all_schemas and -- migrate_schema if schema not generated -------------------------------------------------------------------------------------------- NO_REGISTER_SCHEMA_PRIVILEGE exception; SCHEMA_DOES_NOT_EXIST exception; SCHEMA_NOT_REGISTERED exception; SCHEMA_NOT_GENERATED exception; end jr_registration; /