Owned by GSMADMIN_INTERNAL with EXECUTE granted to GGSYS and the DATAPUMP_IMP_FULL_DATABASE, GSMADMIN_ROLE, GSMROOTUSER_ROLE. GSMUSER_ROLE, and GSM_POOLADMIN_ROLE roles
Determines if provided versions are compatible with each other
dbms_gsm_utility.compatibleVersion(
gdsctl_version IN NUMBER DEFAULT NULL,
catalog_version IN NUMBER DEFAULT NULL,
gsm_version IN NUMBER DEFAULT NULL,
db_version IN NUMBER DEFAULT NULL)
RETURN BOOLEAN;
BEGIN
IF gsmadmin_internal.dbms_gsm_utility.compatibleVersion THEN
dbms_output.put_line('Compatible');
ELSE
dbms_output.put_line('Not Compatible');
END IF;
END;
/ Compatible
Checks if the specified database pool exists in the cloud catalog
dbms_gsm_utility.databasePoolExists(database_pool_name IN VARCHAR2) RETURN BOOLEAN;
BEGIN
IF gsmadmin_internal.dbms_gsm_utility.databasePoolExists('UWDBPOOL') THEN
dbms_output.put_line('F');
ELSE
dbms_output.put_line('F');
END IF;
END;
/ F
dbms_gsm_utility.fedInsertCatalogDDL(
ddl_text IN CLOB,
schema_name IN VARCHAR2 DEFAULT NULL,
object_name IN VARCHAR2 DEFAULT NULL,
operation_type IN CHAR,
object_type IN VARCHAR2,
ddl_num OUT NUMBER);
Generates a description of a change and puts it into the change log queue
Overload 1
dbms_gsm_utility.generateChangeLogEntry(
adminId IN NUMBER,
changeId IN NUMBER,
target IN VARCHAR2,
poolName IN VARCHAR2 DEFAULT NULL,
params IN VARCHAR2 DEFAULT NULL,
updateRequestTable IN NUMBER DEFAULT updateTrue,
old_instances IN instance_list DEFAULT NULL,
ddl_num IN NUMBER DEFAULT NULL,
databases IN number_list DEFAULT NULL)
ACCESSIBLE BY (PACKAGE dbms_gsm_dbadmin,
PACKAGE dbms_gsm_pooladmin,
PACKAGE dbms_gsm_common,
PACKAGE dbms_gsm_cloudadmin,
PACKAGE ggsys.ggsharding);
TBD
Overload 2
dbms_gsm_utility.generateChangeLogEntry(
adminId IN NUMBER,
changeId IN NUMBER,
target IN VARCHAR2,
poolName IN VARCHAR2 DEFAULT NULL,
params IN VARCHAR2 DEFAULT NULL,
updateRequestTable IN NUMBER DEFAULT updateTrue,
old_instances IN instance_list DEFAULT NULL,
ddl_num IN NUMBER DEFAULT NULL,
databases IN number_list DEFAULT NULL,
parent_id IN NUMBER DEFAULT NULL,
seq_id OUT NUMBER)
ACCESSIBLE BY (PACKAGE dbms_gsm_dbadmin,
PACKAGE dbms_gsm_pooladmin,
PACKAGE dbms_gsm_common,
PACKAGE dbms_gsm_cloudadmin,
PACKAGE ggsys.ggsharding);
Gets the catalog lock prior to making a change to the cloud catalog
dbms_gsm_utility.getCatalogLock(currentChangeSeq OUT NUMBER);
DECLARE
outVal NUMBER;
BEGIN
gsmadmin_internal.dbms_gsm_utility.getCatalogLock(outVal);
dbms_output.put_line(TO_CHAR(outVal));
END;
/
*
ORA-03739: The specified database is not configured to be a catalog.
Gets the catalog lock prior to making a change to the cloud catalog
dbms_gsm_utility.getCatalogLockPrvt(
currentChangeSeq OUT NUMBER,
privs IN NUMBER,
gdsctl_version IN VARCHAR2 DEFAULT NULL,
gsm_version IN VARCHAR2 DEFAULT NULL,
gsm_name IN VARCHAR2 DEFAULT NULL,
catalog_vers OUT NUMBER,
update_mode IN NUMBER);
Obtains the GDS ONS config string based on region.
This is used by the mid-tier routing Java library to get ONS subscription information when connected to the catalog local service
dbms_gsm_utility.getGDSONSConfig(region_name IN VARCHAR2 default NULL) RETURN VARCHAR2;
Return shardspace id for the supershard key provided if the shardspace exists
dbms_gsm_utility.getShardSpaceIDbyText(
supersharding_key IN VARCHAR2,
b64flag IN NUMBER DEFAULT 0)
RETURN NUMBER;
SELECT gsmadmin_internal.dbms_gsm_utility.getShardSpaceIDbyText('SecretKey', 0);
*
ORA-02667: Root table required to perform this operation was not found.
dbms_gsm_utility.isShardedCatalog(stype OUT NUMBER) RETURN BOOLEAN;
DECLARE
outVal NUMBER;
BEGIN
IF gsmadmin_internal.dbms_gsm_utility.isShardedCatalog(outVal) THEN
dbms_output.put_line('T');
dbms_output.put_line(TO_CHAR(outVal));
ELSE
dbms_output.put_line('F');
dbms_output.put_line(TO_CHAR(outVal));
END IF;
END;
/
*
ORA-01403: no data found
dbms_gsm_utility.new_ddl_request(
ddl_text IN CLOB,
orig_ddl_text IN CLOB,
schema_name IN VARCHAR2 DEFAULT NULL,
object_name IN VARCHAR2 DEFAULT NULL,
operation_type IN VARCHAR2,
pwd_count IN NUMBER,
ddl_num OUT NUMBER);
dbms_gsm_utility.new_partition_set(
set_name IN VARCHAR2,
tsset_name IN VARCHAR2,
family_name IN VARCHAR2,
high_value_len IN NUMBER,
high_value IN LONG,
bin_high_value IN BLOB,
low_value_len IN NUMBER,
low_value IN LONG,
bin_low_value IN BLOB,
psorder IN NUMBER DEFAULT NULL);
dbms_gsm_utility.new_table(
table_name IN VARCHAR2,
schema_name IN VARCHAR2,
table_id IN NUMBER,
parent_name IN VARCHAR2 DEFAULT NULL,
ref_table_flag IN CHAR DEFAULT NULL);
Returns the database pool name to use on a dbms_gsm_* call when the database pool name in the routine call can be NULL
dbms_gsm_utility.prepareDBPoolName(
input_name IN VARCHAR2,
database_pool_name OUT VARCHAR2,
shardgroup_name IN VARCHAR2 DEFAULT NULL,
shardspace_name IN VARCHAR2 DEFAULT NULL)
RETURN BOOLEAN;
DECLARE
outVal VARCHAR2(128);
BEGIN
IF gsmadmin_internal.dbms_gsm_utility.prepareDBPoolName('UWPool', outVal) THEN
dbms_output.put_line('T: ' || outVal);
ELSE
dbms_output.put_line('F: ' || outVal);
END IF;
END;
/
*
ORA-45558: There are no database pools in this catalog.
Returns the region name to use on a dbms_gsm_* call when the region name in the routine call can be NULL
dbms_gsm_utility.prepareRegionName(
input_name IN VARCHAR2,
region_name OUT VARCHAR2)
RETURN BOOLEAN;
DECLARE
outVal VARCHAR2(128);
BEGIN
IF gsmadmin_internal.dbms_gsm_utility.prepareRegionName('SerVerS', outVal) THEN
dbms_output.put_line('T: ' || outVal);
ELSE
dbms_output.put_line('F: ' || outVal);
END IF;
END;
/ T: servers -- region names are always lower case
Causes a warning message to display on GDSCTL session. Use when error doesn't come directly from GDSCTL session but from another session generated by AQ
dbms_gsm_utility.raise_gsm_error(
errmesg IN VARCHAR2,
parent_req IN NUMBER DEFAULT NULL);
exec gsmadmin_internal.dbms_gsm_utility.raise_gsm_error('ORA-01400', 999);
*
ORA-01400: cannot insert NULL into ("GSMADMIN_INTERNAL"."GSM_REQUESTS"."CHANGE_SEQ#")
Checks if the specified region exists in the cloud catalog
dbms_gsm_utility.regionExists(
region_name IN VARCHAR2,
region_num OUT NUMBER)
RETURN BOOLEAN;
DECLARE
outVal NUMBER;
BEGIN
IF gsmadmin_internal.dbms_gsm_utility.regionExists('ZZYZX', outVal) THEN
dbms_output.put_line('The region number is: ' || TO_CHAR(outVal));
ELSE
dbms_output.put_line('Region Not Found');
END IF;
END;
/ Region Not Found
Releases the catalog lock and commits or rolls back the changes made under the lock
dbms_gsm_utility.releaseCatalogLock(
action IN NUMBER DEFAULT releaseLockCommit,
changeSeq OUT NUMBER);
DECLARE
outVal VARCHAR2(30);
BEGIN
gsmadmin_internal.dbms_gsm_utility.releaseCatalogLock(changeSeq => outVal);
dbms_output.put_line(TO_CHAR(outVal));
END;
/
*
ORA-03739: The specified database is not configured to be a catalog.
Releases the catalog lock and commits or rolls back the changes made under the lock
dbms_gsm_utility.releaseCatalogLockPrvt(
action IN NUMBER DEFAULT releaseLockCommit,
changeSeq OUT NUMBER);
DECLARE
outVal VARCHAR2(30);
BEGIN
gsmadmin_internal.dbms_gsm_utility.releaseCatalogLockPrvt(changeSeq => outVal);
dbms_output.put_line(TO_CHAR(outVal));
END;
/
*
ORA-03739: The specified database is not configured to be a catalog.
Reserve reserve_count database numbers from cloud: Only useful for PL/SQL calls, current value should be known already otherwise this function has no good use.
dbms_gsm_utility.reserveInstNums(reserve_count IN NUMBER);
Reserves the next available DB number for use, updates the cloud table, but does not commit
dbms_gsm_utility.reserveNextDBNum(reserve_count IN NUMBER DEFAULT NULL) RETURN NUMBER;
DECLARE
retVal NUMBER;
BEGIN
retVal := gsmadmin_internal.dbms_gsm_utility.reserveNextDBNum(3);
dbms_output.put_line(retVal);
END;
/
*
ORA-01403: no data found
Set the current session key as text value, columns separated by comma.
Base64 TEXT escaping for each column value is supported, ^ as the first character, e.g. : 1,abc,3 can be represented as ^MQ==,^YWJj,^Mw==
dbms_gsm_utility.setSessionKey(
sharding_k IN VARCHAR2,
supersharding_k IN VARCHAR2);