PLSQL ETA package - computes time remaining
Sets total count of work units total_work that have to be processed and stores timestamp of call as start of processing timestamp.
Parameters
- total_work - count of work units
Computes ETA interval based on total work and start timestamp set by eta.set_total_work
and value of sofar paramter - count of items processed so far.
Paramters
- sofar - count of items processed so far
Get ETA interval computed from start timestamp started_at, total count work of work items total_work and count of units processed so far sofar.
Parameters
- started_at - timestamp of start of the processing
- total_work - total count of work items to be processed
- sofar - count of work items already processed
Formats ETA interval as string based on total work and start timestamp set by eta.set_total_work
and sofar with days position for days and fractions positions for fractions of second.
Parameters
- sofar - count of work items already processed
- days - days positions
- fractions - fractions positions
Formats ETA interval as string computed from start timestamp started_at, total count of work items total_work and count of units processed so far sofar with days position for days and fractions positions for fractions of second.
Parameters
- started_at - timestamp of start of the processing
- total_work - total count of work items to be processed
- sofar - count of work items already processed
- days - days positions
- fractions - fractions positions
Connect as DBA or privileged user (SYS
is the best) and
Create schema for eta as configured in package.sql
SQL> @create configured
Or create in interactive mode
SQL> @create manual
Or you may wish to install eta in already existing schema. Then use the grant.sql
script to grant privileges required by eta package.
SQL> @grant <packageSchema>
Again either configured or manual. And it drops cascade. So be carefull. You have been warned
SQL> @drop configured
or
SQL> @drop manual
You can install either from some privileged deployer user or from within "target" schema.
Use this script to change current_schema
SQL> @set_current_schema <target_schema>
Installs module in current_schema
. (see set_current_schema
). Can be installed as
- public - grants required privileges on module API to
PUBLIC
(see/module/api/grant_public.sql
)
SQL> @install public
- peer - sometimes you may want to use package only by schema, where it is deployed - then install it as peer package
SQL> @install peer
Drops all objects created by install.
SQL> @uninstall
When you want to use eta from other schemas, you have basically 2 options
- either reference objects granted to
PUBLIC
with qualified name (<schema>.<object>
) - or create synonyms and simplify everything (upgrades, move to other schema, use other eta package, ...)
These scripts will help you with latter, by either creating or dropping synonyms for eta package API in that schema.
Creates depenency from reference owner.
SQL> conn <some_schema>
SQL> @set_dependency_ref_owner <schema_where_eta_is_installed>
Removes depenency from reference owner.
SQL> conn <some_schema>
SQL> @unset_dependency_ref_owner <schema_where_eta_is_installed>