ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling
complimentary technical Workshops on Database Security for the first 30
Oracle Database customers located anywhere in North America, EMEA, LATAM, or
APAC that send an email to
asra_us@oracle.com. Request a Workshop for
your organization today.
Owned by GSMADMIN_INTERNAL with EXECUTE granted to DATAPUMP_IMP_FULL_DATABASE, GGSYS, GSMADMIN_ROLE, GSMROOTUSER_ROLE. GSMUSER_ROLE, GSM_POOLADMIN_ROLE
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;
SQL> BEGIN
2 IF gsmadmin_internal.dbms_gsm_utility.databasePoolExists('UWDBPOOL') THEN
3 dbms_output.put_line('F');
4 ELSE
5 dbms_output.put_line('F');
6 END IF;
7 END;
8 / 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;
/
DECLARE
*
ERROR at line 1:
ORA-03739: The specified database is not configured to be a catalog.
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 266
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 170
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 261
ORA-06512: at line 4
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;
SELECT gsmadmin_internal.dbms_gsm_utility.getGDSONSConfig
FROM dual;
Returns a binary (KDK) representation of the current session key
dbms_gsm_utility.getSessionKeyRaw(
colidx IN NUMBER,
klevel IN NUMBER DEFAULT 0)
RETURN RAW;
SELECT gsmadmin_internal.dbms_gsm_utility.getSessionKeyRaw(42,
0)
FROM dual;
SELECT
gsmadmin_internal.dbms_gsm_utility.getSessionKeyRaw(42, 0)
*
ERROR at line 1:
ORA-02667: Root table required to perform this operation was not found.
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 2619
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 2637
ORA-06512: at line 1
Returns a human readable representation (not reversible) of the current session key
dbms_gsm_utility.getSessionKeyTexT(klevel IN NUMBER DEFAULT 0)
RETURN VARCHAR2;
SELECT gsmadmin_internal.dbms_gsm_utility.getSessionKeyText
FROM dual;
SELECT gsmadmin_internal.dbms_gsm_utility.getSessionKeyText
*
ERROR at line 1:
ORA-02667: Root table required to perform this operation was not found.
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 2969
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 2982
ORA-06512: at line 1
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)
FROM dual;
SELECT
gsmadmin_internal.dbms_gsm_utility.getShardSpaceIDbyText('SecretKey', 0)
*
ERROR at line 1:
ORA-02667: Root table required to perform this operation was not found.
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 2573
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 2582
ORA-06512: at line 1
BEGIN
IF gsmadmin_internal.dbms_gsm_utility.isGSMUp THEN
dbms_output.put_line('GSM Is Up');
ELSE
dbms_output.put_line('GSM Is Down');
END IF;
END;
/ GSM Is Down
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;
/
DECLARE
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 309
ORA-06512: at line 4
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;
/
DECLARE
*
ERROR at line 1:
ORA-45558: There are no database pools in this catalog.
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 625
ORA-06512: at line 4
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);
BEGIN
gsmadmin_internal.dbms_gsm_utility.raise_gsm_error('TestMsg', 999); END;
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("GSMADMIN_INTERNAL"."GSM_REQUESTS"."CHANGE_SEQ#")
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 2263
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 2244
ORA-06512: at line 1
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;
/
DECLARE
*
ERROR at line 1:
ORA-03739: The specified database is not configured to be a catalog.
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 297
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 170
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 286
ORA-06512: at line 4
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;
/
DECLARE
*
ERROR at line 1:
ORA-03739: The specified database is not configured to be a catalog.
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 3608
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 170
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 3595
ORA-06512: at line 4
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;
SQL> DECLARE
2 retVal NUMBER;
3 BEGIN
4 retVal := gsmadmin_internal.dbms_gsm_utility.reserveNextDBNum(3);
5 dbms_output.put_line(retVal);
6 END;
7 /
DECLARE
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_UTILITY", line 1817
ORA-06512: at line 4
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);