Name

registry_set — Associates a value to the name in the Database registry

Synopsis

registry_set ( in name varchar ,
  in value varchar ,
  in force integer );
 

Description

This associates a value to the name in the Database registry. The name should be a string and the value must be also string.

Registry settings are kept in Database, therefore they are persistent.

Some registry variables are used solely by internal server routines so they should not be set by any application. Some of these "protected" variables can be updated by DBA only (in built-in Virtuoso/PL routines) whereas some can not be updated by any Virtuoso/PL routine at all. If the function is called by DBA then a third argument can be specified to indicate how the function should try to update such a variable, but you will probably never use this feature.

Parameters

name

VARCHAR name to associate the value with.

value

value to be stored. Must be of VARCHAR type. Also if needs to be stored some other datatype it needs to be serialized (see serialize and deserialize functions).

force

Flag to indicate how the function should try to update protected variables. The value 0 is to signal an error on such an attempt, 1 is to try to update and signal an error if failed, 2 is to try to update and silently return 0 if failed.

Return Values

The function returns 1 if success, 0 if a (protected) variable value cannot be changed.

Errors

Table 24.74. Errors signalled by registry_set

SQLState Error Code Error Text Description
22023 SR014 Function registry_set needs a string as argument 2, not an arg of [datatype]  
42000 SR483 Function registry_set needs nonzero third argument to modify registry variable [name].  
42000 SR484 Function registry_set can not modify protected registry variable [name].  

Examples

Example 24.315. Setting and Retrieving Registry Setting

From SQL

SQL> select registry_get('var_demo');
callret
VARCHAR
__________________________________________________________________

NULL

SQL> registry_set('var_demo', 'some arb data');

SQL> select registry_get('var_demo');
callret
VARCHAR
__________________________________________________________________

some arb data