% Librarian I01-42`BvBvJ 5G CDO_CommandsCDO_Command_ProceduresCDO_Edit_Stringsi Expressions:File_Area_Key_Propertiesfld-propertiesPGlossaryz Logical_Names+rec-propertiesL Start-up-infoDSystem-propertiesnUser-properties Bv1 CDO_CommandsA CDO commands allow you to define, modify, delete, display, andA manipulate some elements in the repository. These elements are; contexts, collections, partitions, and data definitions.< CDO command descriptions do not define terms and conceptsA described in the Oracle CDD/Repository Architecture Manual and6 the Using Oracle CDD/Repository on OpenVMS Systems. 2 @_At_Sign Format @file-spec 3 Parameters 4 file-spec@ Specifies the CDO command file to execute. File-spec can be a@ fully qualified path name, a relative path name, or a logical' name. The default file type is .CDO. 3 Description> The @ (at sign) command reads and executes the CDO commands> contained in the specified file as if you had entered these? commands at the terminal. The file can contain any valid CDO( commands, including other @ commands.C By default, CDO does not echo commands and comments i n your fileA to the standard output location. You can override this defaultC by including the SET VERIFY command as the first command in your file.B By default, CDO exits the file when it encounters an error. You@ can override this default by including the ON command in your file.D When CDO executes an EXIT command in the file, or reaches the endB of the file, control returns to the command stream that invokedB the file. That command stream can be the terminal or a previousC file containing CDO commands. You can issue the @ command at theD CDO prompt (CDO>). After the CDO commands execute, the CDO prompt returns.A You can issue the @ command as a foreign command at the systemA level. You can append the @ command to the REPOSITORY OPERATORB command. You can also include the REPOSITORY OPERATOR @ command# in an OpenVMS command procedure.A To execute a CDO command procedure with a default file type of2 .CDO, you do not need to specify the file type.@ If the file type for a CDO command procedure is not .CDO, you? must specify the file type to execute the command procedure.@ After the CDO commands execute, the system prompt returns. IfB you intend to use your file as an initialization file, you need@ not issue the @ command. Instead, name your file CDO$INIT.CDO? and place it in the directory from which you invoke CDO. CDOA then automatically executes this file at the start of each CDO session.> You can also define CDO$INIT as a logical name specifying aD device, directory, and file name. If you use such a logical name,B the file does not need to be in your default directory when you invoke CDO. 3 Examples- 1.$ DEFINE CDO$INIT SYS$LOGIN:CDO$INIT.CDO $ SET VERIFY' $ SET DEFAULT USER$DISK:[BOB.DICT] $ SHOW DEFAULT CDO> DIRECTORY? In this example, the CDO$INIT.CDO initialization file sets= your default repository directory. Oracle CDD/RepositoryC automatically executes the initialization file when you invoke5 CDO from the OpenVMS directory that contains it. 2.CDO> @START* CDO> SET DEFAULT USER$DISK:[BOB.DICT] CDO> DIRECTORY# Directory USER$DISK:[BOB.DICT]/ CDDPLUS DIRECTORY CDO>? The START.CDO command procedure in this example places you< in the [BOB.DICT] directory, then lists the definitions> in that directory. The SET VERIFY command in the previous@ example instructs CDO to display each subsequent command on* the terminal screen before execution. 3.CDO> @EMPLOYEES.PROCEDURE> In this example, the @ (at sign) command executes the CDO; commands in the EMPLOYEES.PROCEDURE command procedure.9 4.CDO> @CDDNODE::SYS$DISK:[SMITH.REP]CHANGE.PROCEDUREA In this example, the file specification incorporates a fullyA qualified path name and a user-supplied file type. The @ (at6 sig n) command executes the CHANGE.PROCEDURE file. 5.CDO> @START@ In this example, the file specification incorporates a fileC name and the default file type (.CDO). The @ (at sign) command! executes the START.CDO file.- 6.$ DEFINE CDO$INIT SYS$LOGIN:CDO$INIT.CDO" $ TYPE SYS$LOGIN:CDO$INIT.CDO $ SET VERIFY( $ SET DEFAULT device:[CDDPLUS]MYDIR $ SHOW DEFAULT $ REPOSITORY OPERATORD In this example, when CDO is invoked, SYS$LOGIN:CDO$INIT.CD!O is= executed immediately before the CDO prompt is displayed. 2 ATTACH_command Format ATTACH process-name 3 Parameters 4 process-nameB Specifies the process to which control passes. The process must? be an existing process. If the process name contains blanks,A lowercase characters, or other special characters, enclose the( name in double quotation marks (" "). 3 DescriptionB The ATTACH command passes control from the curren"t process to a" parent process or a subprocess. 3 Examples 1.CDO> ATTACH JIM SMITH $@ In this example, the ATTACH command passes control from the> current parent process at the CDO prompt to the JIM SMITH% subprocess at the system prompt. 2.CDO> ATTACH "Jim Smith" $@ In this example, the ATTACH command passes control from the> current parent process at the CDO prompt to the Jim SmithA process at the system prompt. The process n#ame is entered inA lowercase characters, which requires double quotation marks. 3.CDO> SPAWN $ SHOW DEFAULT USER1:[SMITH] $ ATTACH Smith CDO> SHOW DEFAULT USER1:[SMITH.REP] CDO> ATTACH Smith_1 $SHOW DEFAULT9 %DCL-S-RETURNED, control returned to process SMITH_1A In this example, the SPAWN command creates a subprocess, and@ the ATTACH commands pass control back and forth between the/ spawned subprocess and the parent p$rocess.# 4.CDO> SPAWN RUN SYS$SYSTEM:SQL$ SQL> SQL> COMMIT SQL> $ATTACH SMITH CDO> CDO> ATTACH SMITH_29 %DCL-S-RETURNED, control returned to process SMITH_2 SQL>? In this example, the SPAWN command creates a subprocess to> invoke SQL and a secondary subprocess that runs SQL. When@ you are in CDO and want to reattach to your SQL subprocess,B you can avoid subprocess quotas by attaching to the secondary subprocess. %2 ATTACH_TO_COMPOSITE Format( { COLLECTION }( { FIELD }I ATTACH { FILE_ELEMENT type-name } [ qualifier ] element-name ,...( { GENERIC type-name }( { }( { RECORD }5 TO composite-name [ AUDIT IS /*text*/ ] 3 Parameters 4 type-nameA Specifies the type of file or generic element to which you are attachi&ng. 4 element-name< Specifies the element to which you are attaching. You can: substitute an asterisk (*) wildcard character for this parameter. 4 composite-nameD Specifies the collection, field, record, file, or generic element to which you are attaching. 4 textC Adds information to the history list entry. Valid delimiters are) /* */ or double quotation marks (" ").D You can use Japanese to document comments in the AUDIT clause forB ' a field. To do this, use the SET CHARACTER_SET command, and set1 the character_set of the session to DEC_KANJI. 3 Qualifiers 4 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text identifying each element as the element is attached. 3 DescriptionC The ATTACH TO COMPOSITE command attaches a controlled element toA the composite you specify. The element then becomes a child of, the composite to which you (are attaching.B Before you issue the ATTACH TO COMPOSITE command, you must haveD set a context and reserved a composite. The SHOW CONTEXT and SHOWA RESERVATIONS commands indicate whether these conditions exist.= You can use the ATTACH TO COMPOSITE command in conjunctionA with the DEFINE, RESERVE, REPLACE, and DETACH commands to linkC collections in collection hierarchies. See the DEFINE COLLECTION4 command for an example of a collection hierarchy.; You can also use th)e DETACH FROM COMPOSITE and ATTACH TO? COMPOSITE commands to move between lines of descent. See theD Oracle CDD/Repository Architecture Manual for more information on lines of descent. 3 Examples4 1.CDO> DEFINE PARTITION FIRST_QUARTER AUTOPURGE. CDO> DEFINE CONTEXT SALES* cont> BASE_PARTITION FIRST_QUARTER. CDO> SET CONTEXT SALES0 CDO> DEFINE COLLECTION SALES_EACH_PRODUCT.& CDO> CONSTRAIN FIELD PART_NUMBER0 CDO> RESERVE COLLECTION SALE *S_EACH_PRODUCT9 CDO> ATTACH FIELD PART_NUMBER TO SALES_EACH_PRODUCT0 CDO> REPLACE COLLECTION SALES_EACH_PRODUCTB In this example, the ATTACH TO COMPOSITE command attaches the< PART_NUMBER field to the SALES_EACH_PRODUCT collection.. 2.CDO> RESERVE COLLECTION EMPLOYEE_RECORDSD CDO> DETACH FIELD FIRST_NAME(2:BRANCH:2) FROM EMPLOYEE_RECORDS9 CDO> ATTACH FIELD FIRST_NAME(2) TO EMPLOYEE_RECORDS. CDO> REPLACE COLLECTION EMPLOYEE_RECORDS@ In this examp+le, the ATTACH TO COMPOSITE command attaches a? version in the main line of descent, FIRST_NAME(2), to theC EMPLOYEE_RECORDS collection. This allows you to create furtherC versions in the main line, instead of in the branch line where you had been working. 2 CHANGE 3 COLLECTION Format( CHANGE COLLECTION collection-name( [ DESCRIPTION IS /*text*/ ]A [ NODESCRIPTION ] [ AUDIT IS /*text*/ ] .( [, ] 4 Parameters 5 collection-name. Specifies the collection you are modifying. 5 text? Modifies information. Within the DESCRIPTION clause, this isC information documenting the collection; within the AUDIT clause,C it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARA -CTER_SETB command, and set the character_set of the session to DEC_KANJI. 4 DescriptionD The CHANGE COLLECTION command modifies a collection by performingC a change in place. CDO changes the values you specify, and other values remain the same.? Before you can issue the CHANGE COLLECTION command, you mustB issue the RESERVE COLLECTION command to reserve the collection.= The SHOW COLLECTION or SHOW RESERVATIONS command indicatesA whether a condition is reserved. Th.e RESERVE command creates a new version of the element.C Since a collection is a controlled element, CDO freezes previous= versions and allows you to modify only the highest visible version. 4 Examples 1.CDO> SET CONTEXT* CDO> DEFINE COLLECTION REGIONAL_SALES3 cont> DESCRIPTION IS "COLLECTION IS REGION_5"., CDO> RESERVE COLLECTION REGIONAL_SALES+ CDO> CHANGE COLLECTION REGIONAL_SALESA cont> DESCRIPTION IS "COLLECTION DIRECTORY IS WEST_/COAST"., CDO> REPLACE COLLECTION REGIONAL_SALES@ In this example, the CHANGE COLLECTION command modifies the9 description clause of the REGIONAL_SALES collection.( 2.CDO> RESERVE COLLECTION COMPILER_C' CDO> CHANGE COLLECTION COMPILER_C cont> NODESCRIPTION% cont> AUDIT IS "PHASE REVIEW".( CDO> REPLACE COLLECTION COMPILER_C? In this example, the CHANGE COLLECTION command removes the, description clause and adds audit text. 3 CON0TEXT Format" CHANGE CONTEXT context-name( [ DESCRIPTION IS /*text*/ ]? [ NODESCRIPTION ] [ AUDIT IS /*text*/ ]( [ ]' [ TOP IS collection-name ]' [ NOTOP ]' [ ]; [ {SPECIFIC_VERSION } ]> [ DEFAULT_ATTACHMENT IS {LATEST_CHECKIN } ] .; [ {LA1TEST } ]; [ { } ] 4 Parameters 5 context-name+ Specifies the context you are modifying. 5 text? Modifies information. Within the DESCRIPTION clause, this is@ information documenting the context; within the AUDIT clause,C it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT c2lause for a field. To do this, use the SET CHARACTER_SETA command and set the character_set of the session to DEC_KANJI. 5 collection-nameD Specifies a new collection as the top collection for the context. 4 Description@ The CHANGE CONTEXT command modifies a context by performing aA change in place. CDO changes the values you specify, and other values remain the same.C Because a context is a nonversioned element, CDO does not accept@ a branch designation or 3 a version number in the context name.? The TOP clause redefines the top collection property for the> context. An error occurs if you attempt to redefine the topB collection while you have any element reserved to your context.B The SHOW CONTEXT or SHOW RESERVATIONS command indicates whether this condition exists.? The NOTOP keyword sets the top collection property to a null value.A The DEFAULT_ATTACHMENT clause redefines the default attachment@ property for the 4context. This property refers to the defaultA behavior that occurs when you issue the UPDATE command. Choose! one of the following keywords: DEFAULT_ ATTACHMENT Keyword BehaviorC SPECIFIC_ Does not detach the currently attached version. VERSION? LATEST_CHECKIN Detaches the currently attached version andB attaches the most recently checked in version.? LATEST Detaches the currently attached version and? 5 attaches the lastest version, whether it isC checked in or is a ghost. The LATEST keyword is the default. 4 Examples) CDO> CHANGE CONTEXT DEVELOPMENT_CONTEXT0 cont> DESCRIPTION IS "ARCHIVING THIS CONTEXT", cont> "VERSION 5.0 DEVELOPMENT COMPLETED" cont> NOTOP0 cont> DEFAULT_ATTACHMENT IS SPECIFIC_VERSION.= In this example, the CHANGE CONTEXT command modifies theA DEFAULT_ATTACHMENT clause, the description 6text, and the TOP/ clause in the DEVELOPMENT_CONTEXT context. 3 DATABASE Format( CHANGE DATABASE rms-database-name) [ DESCRIPTION IS /*text*/ ]@ [ NODESCRIPTION ] [ AUDIT IS /*text*/ ]) [ ] [ ON file-name ] . 4 Parameters 5 rms-database-name9 Specifies the physical RMS database you are modifying. 5 text? Modifies information. Within the 7DESCRIPTION clause, this isA information documenting the database; within the AUDIT clause,C it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 file-nameD Specifies a new disk location for the physical RMS database. This@ OpenVMS f 8ile name is a character string having from 1 to 1024 characters. 4 Description? The CHANGE DATABASE command modifies a physical RMS databaseB element by performing a change in place. CDO changes the values1 you specify, and other values remain the same.A If an RMS database element is controlled, CDO freezes previous= versions and allows you to modify only the highest visible@ version. If an RMS database is uncontrolled, CDO modifies the= highest version unless yo 9u specify another version number.A If an RMS database element is controlled, you must reserve theA database before you can issue the CHANGE DATABASE command. TheD SHOW DATABASE or SHOW RESERVATIONS command indicates whether this condition exists.C The ON clause moves a physical RMS database to a new location onC disk. When you specify the ON clause, CDO issues a notice askingA you to confirm that you want to move the database. This notice cannot be suppressed.A : If the CHANGE DATABASE command succeeds, Oracle CDD/RepositoryA moves the physical file on disk and updates the pointer to theB physical file in the repository. If the CHANGE DATABASE command; fails, Oracle CDD/Repository does not move the database. 4 Examples$ 1.CDO> CHANGE DATABASE DISG_FILE? cont> DESCRIPTION "INFORMATION ON DIS SECTION EMPLOYEES"- cont> "PERSONNEL CONTACT IS JIM SMITH"= cont> AUDIT "JIM SMITH ACCEPTS THIS ACCOUNT 06/30/90".> ; In this example, the CHANGE DATABASE command modifies theA description clause and adds an AUDIT clause to the DISG_FILE database.$ 2.CDO> CHANGE DATABASE DISG_FILE/ cont> ON DISK1:[SMITH.PERSONNEL]EMP.DAT.A In this example, the CHANGE DATABASE command moves the DISG_% FILE database to a new location. 3 FIELD Format CHANGE FIELD field-name( [ DESCRIPTION IS /*text*/ ]? [ NODESCRIPTION ] [ AUDIT IS< /*text*/ ]( [ ]! [ field-property ]' [ NOfield-property ] ... .! [ ] 4 Parameters 5 field-name1 Specifies the field element you are modifying. 5 text? Modifies information. Within the DESCRIPTION clause, this isA information documenting the field; within the AUDIT clause, it@ is a history list entry. Valid delimiters are /* */ or double quotation marks= (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 field-property; Changes the value of an existing property, or adds a new? property, in the field element. You specify removal with the> NO keyword. See fld-properties for the field properties CDO provides. 4 DescriptionB The CHANGE FIELD command modifi >es a field element by performingC a change in place. CDO changes the values you specify, and other values remain the same.B If a field element is controlled, CDO freezes previous versionsB and allows you to modify only the highest visible version. If aB field element is uncontrolled, CDO modifies the highest version- unless you specify another version number.? If a field element is controlled, you must reserve the field@ before you can issue the CHANGE FIELD command. Th?e SHOW FIELD@ or SHOW RESERVATIONS command indicates whether this condition exists.D When you change a field element that an Oracle Rdb database uses,B you may need to integrate the database with the repository. CDOB automatically sends a notice with the name of the database when this is necessary. 4 Examples# 1.CDO> CHANGE FIELD POSTAL_CODE= cont> DESCRIPTION "A 5 DIGIT POSTAL_CODE: NOTE AUDIT"= cont> AUDIT "CHANGED TO 9 DIGIT POSTAL_CODE 6/30/9@0".; In this example, the CHANGE FIELD command modifies the? description clause and adds an audit clause to the POSTAL_ CODE field element. 2.CDO> CHANGE FIELD TOTAL cont> NOINITIAL_VALUE.C In this example, the CHANGE FIELD command removes the INITIAL_. VALUE field property with the NO keyword. 3 FILE_ELEMENT Format2 CHANGE FILE_ELEMENT type-name element-name( [ DESCRIPTION IS /*text*/ ]? [ NODESCRAIPTION ] [ AUDIT IS /*text*/ ]( [ ]3 [ {n } ]9 [ property-name IS {quoted-string } ] ... .3 [ { } ]3 [ NOproperty-name ]> END [ FILE_ELEMENT element-name ] [ type-name ] . 4 Parameters 5 type-nameB Specifies the type (MCS_BINARY or an MCS_BINARY subtype) of the@ file element yoBu are modifying. See the Oracle CDD/Repository9 Information Model for more information on these types. 5 element-name0 Specifies the file element you are modifying. 5 text? Modifies information. Within the DESCRIPTION clause, this is= information documenting the file element; within the AUDITA clause, it is a history list entry. Valid delimiters are /* */# or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orCB AUDIT clause for a field. To do this, use the SET CHARACTER_SETA command and set the character_set of the session to DEC_KANJI. 5 property-nameD Specifies the property you are adding, changing, or removing. You' specify removal with the NO keyword. 5 n5 Modifies the value (numerical) set for a property. 5 quoted-stringD Modifies the value (a string enclosed in quotation marks) set for a property. 4 Description= The CHANGE FILE_ELEMENT D command modifies a file element byD performing a change in place. CDO changes the values you specify,$ and other values remain the same.> Because a file element is a controlled element, CDO freezes> previous versions and allows you to modify only the highest visible version.A Before you can issue the CHANGE FILE_ELEMENT command, you mustB reserve the file element with the RESERVE FILE_ELEMENT command.B If you add, change, or delete a property from the file element,CE the property you specify must be a defined or inherited property= for the file element's type. See the Oracle CDD/Repository4 Information Model for a list of these properties.B Errors occur if you attempt to delete the MCS_STOREDIN property@ from a file element whose STORETYPE is EXTERNAL. CDO requires$ this property for external files. 4 Examples4 CDO> RESERVE FILE_ELEMENT MCS_BINARY PARSER_TABLES3 CDO> CHANGE FILE_ELEMENT MCS_BINARY PARSER_TABLES8 cont> DESCRFIPTION IS "PARSER TABLES FOR VERSION 5.0". cont> END MCS_BINARY.4 CDO> REPLACE FILE_ELEMENT MCS_BINARY PARSER_TABLES: In this example, the CHANGE FILE_ELEMENT command adds8 description text to the file element PARSER_TABLES. 3 GENERIC Format- CHANGE GENERIC type-name element-name( [ DESCRIPTION IS /*text*/ ]? [ NODESCRIPTION ] [ AUDIT IS /*text*/ ]( [ ]3 [ G {n } ]: [ property-name IS {quoted-string } ] ... .3 [ { } ]3 [ NOproperty-name ]: [ DEFINE relationship-name relationship-mbr3 [ {n } ]: [ property-name IS {quoted-string } ] ... .3 [ { } ]3 [ NOproperty-name ]1 END relatioHnship-name DEFINE . ] ...B [ DELETE relationship-name relationship-mbr . ] ...- END [ element-name ] type-name . 4 Parameters 5 type-name? Specifies the type of the generic element you are modifying.@ This type cannot be MCS_BINARY, a subtype of MCS_BINARY, MCS_< COLLECTION, MCS_CONTEXT, or MCS_PARTITION. See the OracleB CDD/Repository Information Model Volume I for more information. 5 element-name3 Specifies the genericI element you are modifying. 5 text? Modifies information. Within the DESCRIPTION clause, this is@ information documenting the generic element; within the AUDITD clause, it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 propertJy-nameD Specifies the property you are adding, changing, or removing. You' specify removal with the NO keyword. 5 n5 Modifies the value (numerical) set for a property. 5 quoted-stringD Modifies the value (a string enclosed in quotation marks) set for a property. 5 relationship-nameD Specifies the relationship type that you are defining or deletingB in the generic element. The type must be a subtype of RELATION. 5 relationship-mbrB S Kpecifies the generic element that you are defining or deletingB as a member of the relationship type. The element must exist in. the repository; otherwise, an error occurs. 4 Description; The CHANGE GENERIC command modifies a generic element byD performing a change in place. CDO changes the values you specify,$ and other values remain the same.> If a generic element is a controlled versioned element, CDO> freezes previous versions and allows you to modify only theC h Lighest visible version. If a generic element is an uncontrolledA versioned element, CDO modifies the highest version unless you" specify another version number.C If a generic element is controlled, you must reserve the elementD before you can issue the CHANGE GENERIC command. The SHOW GENERIC@ or SHOW RESERVATIONS command indicates whether this condition exists.C You can modify generic elements that are based on types supplied? through Oracle CDD/Repository or on user- Msupplied (extended)A types. If you do most of your work with extended types, OracleD recommends that you should work through the Oracle CDD/RepositoryD callable interface. The CDO GENERIC commands are useful to modifyB and display on a spot basis, but extensibility is not supported through CDO.< If you add, change, or delete a property from the genericC element, the property you specify must be a defined or inherited> property for the element's type. Likewise, any relati Nonship> member you specify must be compatible with the relationship? name's type. See the Oracle CDD/Repository Information Model? Volume I for more information on valid properties and types.C If the generic element you are modifying is based on an extended< type and errors occur when you attempt to add or delete a? relationship, you may not have specified the processing nameD property as a required property for your type. The property takes a quoted string value.' O CAUTION6 Specify the MCS_processingName property, not the? CDD$PROCESSING_NAME property, when you work with extendedA types. Otherwise, you experience performance degradation in3 the Oracle CDD/Repository callable interface.< The type on which the generic element definition is based= determines whether an attribute is required or optional inC instances of the type. If the type definition specifies that theB CDD$DESCRIPTION att Pribute can be used in instances of the type,B you can add documentation text to the generic entity definition> or remove existing documentation text. You can display text@ entered with the DESCRIPTION clause by using the SHOW GENERIC/ command with the /BRIEF or /FULL qualifiers.= If the type definition specifies that the CDD$HISTORY_LIST= relationship can be used in instances of the type, you can= add explanatory history list entries to the generic entity? definition. YouQ can display history list entries for generic@ entity definitions by using the SHOW GENERIC command with the /AUDIT or /ALL qualifiers. 4 Examples9 1.CDO> CHANGE GENERIC CDD$EXECUTABLE_IMAGE MY_PROGRAM. cont> MCS_PROCESSINGNAME "OUR_PROGRAM"./ cont> END MY_PROGRAM CDD$EXECUTABLE_IMAGE.= In this example, the CHANGE GENERIC command modifies the= MCS$PROCESSING_NAME (MCS_processingName property) of the; generic element MY_PROGRAM. MY_PROGRAM is basRed on the; type CDD$EXECUTABLE_IMAGE, which is supplied by Oracle CDD/Repository.3 2.CDO> CHANGE GENERIC BOOK CDO_REFERENCE_MANUAL- cont> LIBRARY_NUMBER IS "AA-KL45A-TF".) cont> END BOOK CDO_REFERENCE_MANUAL.= In this example, the CHANGE GENERIC command modifies the@ LIBRARY_NUMBER of the CDO_REFERENCE_MANUAL generic element.B CDO_REFERENCE_MANUAL is based on the user-supplied type BOOK. 3 PARTITION Format% CHANGE PARTITION parStition-name( [ DESCRIPTION IS /*text*/ ]> [ NODESCRIPTION ] [ AUDIT IS /*text*/ ]( [ ]@ [ LOOKASIDE_PARTITION IS look-partition-name ,... ]@ [ NOLOOKASIDE_PARTITION ]@ [ ]: [ PARENT_PARTITION IS parent-partition-name ] [ AUTOPURGE ] [ NOAUTOPURGE ] . [ T ] 4 Parameters 5 partition-name- Specifies the partition you are modifying. 5 text? Modifies information. Within the DESCRIPTION clause, this isB information documenting the partition; within the AUDIT clause,C it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB comUmand, and set the character_set of the session to DEC_KANJI. 5 look-partition-name? Modifies the list of partitions that is visible through this; partition. Each partition must be an existing partition. 5 parent-partition-nameB Modifies the partition hierarchy by naming a parent (owner) for( an existing parent (owner) partition. 4 DescriptionB The CHANGE PARTITION command modifies a partition by performingC a change in place. CDO changes the values you sVpecify, and other values remain the same.> Because a partition is a nonversioned element, CDO does notC accept a branch designation or a version number in the partition name.A The LOOKASIDE_PARTITION clause modifies the list of partitions; whose contents are visible through the partition you are modifying.B The PARENT_PARTITION clause modifies the partition hierarchy byA naming an owner for an existing parent (owner) partition. This? clause can be specifiedW only once during the lifetime of the@ partition, in either the DEFINE PARTITION or CHANGE PARTITION command.@ The AUTOPURGE and NOAUTOPURGE keywords redefine the autopurgeC property for the partition. The value of this property indicatesC whether or not CDO automatically purges intermediate versions ofA elements in the partition when you promote the latest version. 4 Examples6 1.CDO> DEFINE PARTITION FIRST_BASELEVEL AUTOPURGE.% CDO> DEFINE PARTITION FRON XT_END; cont> PARENT_PARTITION IS FIRST_BASELEVEL AUTOPURGE.$ CDO> DEFINE PARTITION BACK_END0 cont> PARENT_PARTITION IS FIRST_BASELEVEL8 cont> LOOKASIDE_PARTITION IS FRONT_END AUTOPURGE.% CDO> CHANGE PARTITION FRONT_END- cont> LOOKASIDE_PARTITION IS BACK_END.D In this example, the CHANGE PARTITION command adds a LOOKASIDE_A PARTITION clause to the FRONT_END partition element. You addB this clause in a CHANGE PARTITION command, rather than in Y theB initial DEFINE PARTITION command, because the partition namedC in a LOOKASIDE_PARTITION clause must be an existing partition.3 2.CDO> DEFINE PARTITION FINAL_REPORT AUTOPURGE.: CDO> DEFINE PARTITION PUBLICATION_RELEASE AUTOPURGE.( CDO> CHANGE PARTITION FINAL_REPORT5 cont> PARENT_PARTITION IS PUBLICATION_RELEASE.A In this example, the CHANGE PARTITION command adds a PARENT_< PARTITION clause to the FINAL_REPORT partition element.9 3.CDO> DEFIZNE PARTITION FIRST_TESTBASELEVEL AUTOPURGE.. CDO> CHANGE PARTITION FIRST_TESTBASELEVELB cont> AUDIT IS "LET'S PROMOTE ALL TEST VERSIONS" NOAUTOPURGE.@ In this example, the CHANGE PARTITION command adds an AUDIT/ clause and modifies the AUTOPURGE keyword. 3 PROTECTION Format2 { DIRECTORY }2 { FIELD }E CHANGE PROTECTION FOR { RECORD } element-name ,...2 [ { }2 { GENERIC type-name }+ [ POSITION n ]@ [ id1+... ] ACCESS right+ ... .+ [ ]B { REPOSITORY anchor-name }B CHANGE PROTECTION FOR { GENERIC MCS_CONTEXT context-name }B { }+ [ POSITION n ]/\ { ACCESS }< { DEFAULT_ACCESS } right+ ... ./ { } 4 Parameters 5 type-name> Specifies the type of the generic element whose ACE you are modifying. 5 element-nameA Specifies the element whose ACE you are modifying. You can use$ wildcard characters in this name. 5 nB Specifies the relative position (a positive integer) in the ACLD of ]the ACE you are modifying. If you omit this parameter and also; the id1 parameter, CDO changes the first ACE by default. 5 id@ Specifies the identifier of the ACE you are modifying. If you@ omit this parameter and also the n parameter, CDO changes the first ACE by default. 5 right< Specifies the access rights you are granting to the users specified in the ACE. 5 anchor-nameB Specifies the anchor directory for the repository whose ACE you are m^odifying. 5 context-nameA Specifies the context for which you are modifying protections. 4 Description> The CHANGE PROTECTION command modifies access rights for anB access control list entry (ACE) in an access control list (ACL)B for an element. When you specify FOR GENERIC MCS_CONTEXT or FORC REPOSITORY, this command can also add an ACE to a default access control list.? CHANGE PROTECTION affects a change in place. CDO changes the8 values you specify, _ and other values remain the same.B You must have CONTROL access rights to change protection for an element or a repository.= The POSITION clause identifies the ACE you are changing by> its relative position within the ACL. For example, POSITION@ 3 indicates the third ACE in the ACL. If you specify a numberA greater than the number of existing ACEs, CDO changes the last ACE in the ACL.? The id parameter specifies the user or users affected by the@ ACE you are cha `nging. The clause consists of one or more UIC,, general, or system-specified identifiers.A If you specify more than one identifier, a user's process must? hold all the identifiers before CDO grants the access rights indicated in the ACE.A The ACCESS clause specifies access rights provided by the ACE.C See the DEFINE PROTECTION command for more information on access rights.C The ACCESS clause is especially useful when you need to restrictD access to a context or ato a repository. For example, by modifyingC this clause you can restrict access to a single user for OpenVMS BACKUP or VERIFY operations.B The DEFAULT_ACCESS clause is only valid for contexts (specified@ as GENERIC MCS_CONTEXT) or repositories. The clause specifies= the default access rights for each new element you create.? If a context is set, the new element receives default access@ rights defined for this context. If a context is not set, theA new element receives thbe default access rights defined for the repository. 4 Examples' 1.CDO> CHANGE PROTECTION FOR RECORD1 cont> PAYROLL, PROMOTION [JONES]+INTERACTIVE! cont> ACCESS CONTROL+READ.? In this example, the CHANGE PROTECTION command affects theA access rights for the PAYROLL and PROMOTION record elements.C CDO locates the ACE containing [JONES]+INTERACTIVE identifiers8 and adds additional CONTROL and READ access rights.& 2.CDO> CHANGE PROTECTION F cOR FIELD1 cont> EMP_DATE POSITION 3 ACCESS NOALL+READ.? In this example, the CHANGE PROTECTION command affects theB access rights for the EMP_DATE field element. CDO locates the? third ACE in the field's ACL and removes all access rights except READ access.: 3.CDO> CHANGE PROTECTION FOR RECORD SALARY ACCESS NONE.? In this example, the CHANGE PROTECTION command changes the> first ACE in the ACL for the SALARY record element. After@ the command execu dtes, the users whose identifiers match theD identifiers in the first ACE will not have access to the SALARY record element.5 4.CDO> CHANGE PROTECTION FOR REPOSITORY PERSONNEL< cont> POSITION 3 DEFAULT_ACCESS READ+NOWRITE+CONTROL.7 CDO> DEFINE FIELD NEW_FIELD DATATYPE TEXT SIZE 5.; In this example, the CHANGE PROTECTION command changes> the default access rights for the PERSONNEL repository toB READ+NOWRITE+CONTROL. If a context has not been set, CDO wiell? then grant the newly created field, NEW_FIELD, with accessB rights that are equivalent to these repository default access rights. 3 RECORD_Command Format CHANGE RECORD record-name( [ DESCRIPTION IS /*text*/ ]= [ NODESCRIPTION ] [AUDIT IS /*text*/]( [ ]. [ constraint-clause ]. [ DELETE CONSTRAINT constr-name ]4 [ record-propertyf ] ... .. [ ]. [ NOrecord-property ]" [ DELETE name . ] ..., [ included-name-change-clause ], [ local-field-clause ]0 [ record-change-clause ] ..., [ structure-change-clause ], [ ], [ variants-change-clause ]+ END [ record-name ] RECORD . 4 Parametergs 5 record-name2 Specifies the record element you are modifying. 5 text? Modifies information. Within the DESCRIPTION clause, this isB information documenting the record; within the AUDIT clause, it@ is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of t hhe session to DEC_KANJI. 5 constraint-clauseB Adds a condition, known as a constraint, that affects adding orD modifying data in a database table (record). Supported constraintC types are NOT NULL, PRIMARY KEY, FOREIGN KEY, UNIQUE, and CHECK.< Each constraint can be named and supplied with evaluationB attributes DEFERRABLE or NOT DEFERRABLE. The default evaluation@ time for constraints in CDO is NOT DEFERRABLE (the constraintA is evaluated at statement time). For morei information, see the$ DEFINE RECORD_Constraint command. 5 constr-name& Specifies the name of a constraint. 5 record-propertyC Changes the value of an existing property or adds a new propertyA in record, structure, variants, and variant definitions withinA a record element. You specify removal with the NO keyword. See9 rec-properties for the record properties CDO provides. 5 nameD Specifies the name of a record, structure, or field that you wantj to delete from the record. 5 included-name-change-clauseD Allows you to change existing field and record definitions within8 record elements. For more information, see the CHANGE' RECORD_Included_Name_Change command. 5 local-field-clauseB Specifies the definition of the locally defined field. For more: information, see the DEFINE RECORD_Local_Field command. 5 record-change-clauseC Adds field, record, structure, variants, and variant definitionskB within an existing record definition. For more information, see+ the CHANGE RECORD_Record_Change command. 5 structure-change-clause> Allows you to change a structure definition within a record0 element. For more information, see the CHANGE# RECORD_Structure_Change command. 5 variants-change-clause? Allows you to change a variant definition, which is a set ofC two or more definitions that map to the same portion of a record0 element. For more informatilon, see the CHANGE" RECORD_Variants_Change command. 4 DescriptionD The CHANGE RECORD command modifies a record element by performingC a change in place. CDO changes the values you specify, and other values remain the same.C If a record element is controlled, CDO freezes previous versionsB and allows you to modify only the highest visible version. If aC record element is uncontrolled, CDO modifies the highest version- unless you specify another version number.A m If a record element is controlled, you must reserve the record> element before you can issue the CHANGE RECORD command. TheB SHOW RECORD or SHOW RESERVATIONS command indicates whether this condition exists.? When you change a record element that an Oracle Rdb databaseD uses, you may need to integrate the database with the repository.A CDO automatically sends a notice with the name of the database when this possibility occurs.C To remove a field, record, or structure n definition from a recordB element, if the definition is not contained within a variant or@ structure definition, specify the DELETE keyword, followed byD the appropriate name or clause for the type of definition you are removing.C To remove a definition from within a variant definition, use theA NOVARIANTS and VARIANT keyword, followed by the DELETE clause.= To remove a definition from within a structure definition,A specify the CHANGE RECORD Structure Change Clause. oSpecify theA DELETE keyword, followed by the name of the definition you are removing.8 If you are deleting a constraint, you must delete theA constraint before you delete the field; they cannot be deleted< simultaneously using the CHANGE RECORD command. To update= the change in the database, you must integrate each change separately. 4 Examples$ 1.CDO> CHANGE RECORD SUPPLIER_REC cont> ROW_MAJOR ARRAY 1:20. cont> END RECORD.@ This example uspes the CHANGE RECORD command to add an array, clause to a record called SUPPLIER_REC.. 2.CDO> CHANGE RECORD EMPLOYEE_WORK_SCHEDULE cont> NONAME COBOL. cont> END RECORD.C In this example, the CHANGE RECORD command uses the NO keywordD to remove the NAME FOR COBOL record property from the EMPLOYEE_% WORK_SCHEDULE record definition.$ 3.CDO> CHANGE RECORD EMP_ADDRESS. cont> DELETE DEPT_CODE. cont> END RECORD.A In this example, the CHANGE RECqORD command deletes the DEPT_ CODE field definition.$ 4.CDO> CHANGE RECORD EMP_ADDRESS. cont> DEFINE EMP_NAME. cont> END EMP_NAME DEFINE. cont> END RECORD.A In this example, the CHANGE RECORD command adds the EMP_NAME9 record definition to the EMP_ADDRESS record element.$ 5.CDO> CHANGE RECORD EMPLOYEE_REC> cont> /* Adding new fields WAGE_STATUS and CLASS_CODE */. cont> DEFINE WAGE_STATUS. cont> END DEFINE. cont> DEFINE CLASS_COrDE. cont> END DEFINE.# cont> END EMPLOYEE-REC RECORD.C To include an additional field in a record definition, use theA CHANGE command with the DEFINE record property. The included@ field becomes the last field in the record definition. This> example adds the fields WAGE_STATUS and CLASS_CODE to the$ record definition EMPLOYEE_REC. 3 RECORD_Included_Name_Change Format global-field-name9 [ {BIT } s ]9 [ {BYTE } ]9 [ ALIGNED ON {WORD } BOUNDARY ]9 [ {LONGWORD } ]9 [ {QUADWORD } ]; [ {OCTAWORD } ] .9 [ NOALIGNED ]9 [ [ ] ]9 [ CONSTRAINT constr-name NOT NULL [DEFERRABLE ] ]9 [ t [NOT DEFERRABLE ] ]9 [ ] 4 Parameters 5 global-field-nameA Specifies the global field whose alignment you are creating or modifying. 5 constr-name( Specifies a constraint for the field. 4 DescriptionD The Included Name Change Clause modifies or cancels the alignment: of field or record definitions within a record element.C To modify or cancel the alignment of field or u record definitions> within a structure definition, specify the Structure Change0 Clause, then the Included Name Change Clause.C To modify or cancel the alignment of field or record definitionsC within a variant definition, specify the Variants Change Clause,D then the Included Name Change Clause. To indicate the position ofB the variant, insert as many VARIANT and END VARIANT keywords as6 necessary, so each preceding variant is referenced. & v NOTEA When the CHANGE RECORD command is used to change a variants: or variant definition or an entity inside a variants= or variant definition, you must use the Variants ChangeA Clause to refer to each variants or variant definition that+ precedes the entity you are changing. 4 Examples+ 1.CDO> CHANGE RECORD PRODUCT_INVENTORY.0 cont> PART_NUMBER ALIGNED ON BYTE BOUNDARY.( cont> END PRODUCT_INVENTORY RECORD.> In this example, thwe ALIGNED keyword in the CHANGE RECORDA command realigns the PART_NUMBER field definition within the) PRODUCT_INVENTORY record definition.* 2.CDO> CHANGE RECORD PRODUCT_INVENTORY.% cont> HOME_APPLIANCES NOALIGNED.( cont> END PRODUCT_INVENTORY RECORD.@ In this example, the NOALIGNED keyword in the CHANGE RECORDB command cancels the explicit alignment of the HOME_APPLIANCES: record definition within the PRODUCT_INVENTORY record definition. 3 RECxORD_Record_Change Format& { included-name-clause }& { local-field-clause }= DEFINE { structure-name-clause } END [ name ] DEFINE .& { }& { variants-clause } 4 Parameters 5 included-name-clause= Includes existing field and record definitions in a record< element. See DEFINE RECORD_Included_Name command for more information. 5 local-field-clause3 Adds the deyfinition of a local field. See DEFINE3 RECORD_Local_Field command for more information. 5 structure-name-clause@ Adds a structure definition within a record element. For more= information, see the DEFINE RECORD_Structure_Name command. 5 variants-clauseD Specifies a variants definition that you want to change. For more7 information, see the DEFINE RECORD_Variants command. 5 name? Specifies the definition you are adding or removing within a recorzd element. 4 DescriptionC Adds field, record, structure, variants, and variant definitions( within an existing record definition.@ You cannot remove a variant definition from a record with the@ Record Change Clause. Use the Variants Change Clause instead.B If you want to add a definition to a record element, but you doC not want the definition to be added within an existing structureA or variant definition, specify the DEFINE keyword, followed byD the appropriate{ clause for the type of definition you are adding:@ o To add a field or record definition, use the Included Name' Clause or the Local Field Clause.A o To create a structure definition, use the Structure Clause.? o To create a variants definition, use the Variants Clause.C Any definition you add becomes the last definition in the record you are changing.A If you want to remove a field, record, or structure definition> from a record element, and these are no |t contained within a? structure or variant definition, specify the DELETE keyword,D followed by the appropriate clause for the type of definition you are removing.A To add a definition within a structure definition, specify theC Structure Change Clause. This clause contains an embedded RecordB Change Clause where you specify the DEFINE keyword, followed by< the appropriate clause for the definition you are adding.= To remove a definition from within a structure definiti }on,C specify the Structure Change Clause. Specify the DELETE keyword,; followed by the name of the definition you are removing.? To add a definition within a variant definition, specify theB Variants Change Clause. This clause contains an embedded Record? Change Clause where you specify the DEFINE keyword, followedB by the appropriate clause for the definition you are adding. ToC indicate the position of the variant, insert as many VARIANT andB END VARIANT keywords as n~ecessary, so each preceding variant is referenced.> To remove a definition within a variant definition, use the= NOVARIANTS or the NOVARIANT keyword of the Variants Change Clause.& NOTEA When the CHANGE RECORD command is used to change a variants: or variant definition or an entity inside a variants= or variant definition, you must use the Variants ChangeA Clause to refer to each variants or variant definition that+  precedes the entity you are changing. 4 Examples% 1.CDO> CHANGE RECORD EMP_ADDRESS. cont> DEFINE EMP_NAME.! cont> END EMP_NAME DEFINE. cont> END RECORD.= With the Record Change Clause, the CHANGE RECORD commandB adds the EMP_NAME record definition to the EMP_ADDRESS record definition.% 2.CDO> CHANGE RECORD EMP_ADDRESS. cont> DELETE DEPT_CODE. cont> END RECORD.= With the Record Change Clause, the CHANGE RECORD command, deletes the DEPT_CODE field definition.* 3.CDO> DEFINE RECORD COMPANY_INVENTORY. cont> STOCK STRUCTURE.H cont> DESCRIPTION IS /* RECORD_IDENTIFIER determines field type: */$ cont> /* S = In-stock record */& cont> /* B = Back-order record */) cont> /* O = Out-of-stock record. */ cont> RECORD_IDENTIFIER. cont> VARIANTS. cont> IN_STOCK STRUCTURE. cont> PRODUCT_NO. cont> DATE_ORDERED. cont> STATUS_CODE. cont> QUANTITY. cont> LOCATION. cont> UNIT_PRICE." cont> END IN_STOCK STRUCTURE. cont> END VARIANT.% cont> VARIANT EXPRESSION IS "B". cont> BACK_ORDER STRUCTURE. cont> PRODUCT_NO. cont> DATE_ORDERED. cont> STATUS_CODE. cont> QUANTITY. cont> SUPPLIER. cont> UNIT_PRICE.$ cont> END BACK_ORDER STRUCTURE. cont> END VARIANT. % cont> VARIANT EXPRESSION IS "O"." cont> OUT_OF_STOCK STRUCTURE. cont> PRODUCT_NO. cont> DATE_LAST_SOLD.& cont> END OUT_OF_STOCK STRUCTURE. cont> END VARIANT. cont> END VARIANTS. cont> END STOCK STRUCTURE.( cont> END COMPANY_INVENTORY RECORD. CDO>+ CDO> CHANGE RECORD COMPANY_INVENTORY. cont> STOCK STRUCTURE. cont> RECORD_IDENTIFIER. cont> VARIANTS.% cont> VARIANT EXPRESSION IS "S". cont> IN_STOCK STRUCTURE. cont> DELETE STATUS_CODE." cont> END IN_STOCK STRUCTURE. cont> END VARIANT.% cont> VARIANT EXPRESSION IS "B". cont> BACK_ORDER STRUCTURE. cont> PRODUCT_NO. cont> DATE_ORDERED. cont> DEFINE DATE_PROMISED$ cont> END DATE_PROMISED DEFINE.$ cont> END BACK_ORDER STRUCTURE. cont> END VARIANT.% cont> VARIANT EXPRESSION IS "O"." cont> OUT_OF_STOCK STRUCTURE.& cont> END OUT_OF_STOCK STRUCTURE. cont> END VARIANT. cont> END VARIANTS. cont> END STOCK STRUCTURE.( cont> END COMPANY_INVENTORY RECORD.> This example shows how to use the Record Change Clause to< define or delete entities within a structure or variant8 definition. The first part of the example shows the@ COMPANY_INVENTORY record definition. The second part of theC example shows how you would use the appropriate syntax and the@ Record Change Clause to add and remove definitions within aA structure and variant. The STATUS_CODE field is removed fromC the IN_STOCK structure and the DATE_PROMISED field is added to the BACK_ORDER structure. 3 RECORD_Structure_Change Format structure-name STRUCTURE0 [ DESCRIPTION IS /*text*/ ]0 [ NODESCRIPTION ]0 [ ]* [ record-property ]0 [ NOrecord-property ] ... .* [ ]* [ DELETE name . ] ...4 [ included-name-change-clause ]4 [ local-field-clause ]8 [ record-change-clause ] ...4 [ structure-change-clause ]4 [ ]4 [ variants-change-clause ]9 END [ structure-name ] STRUCTURE . 4 Parameters 5 structure-name7 Specifies the structure definition you are changing. 5 textD Documents the structure definition. Valid delimiters are /* */ or double quotation marks (" ").? You can use Japanese to document comments in the DESCRIPTION< clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 record-property; Changes the value of an existing property, or adds a newB property, in the structure definition. You specify removal withC the NO keyword. See rec-properties for the record properties CDO provides. 5 nameD Specifies the name of a record, structure, or field that you want to delete from the record. 5 included-name-change-clauseA Changes the alignment of a field or record definition within a? structure definition. See CHANGE RECORD_Included_Name_Change command for more information. 5 local-field-clause6 Changes the definition of a local field. See DEFINE3 RECORD_Local_Field command for more information. 5 record-change-clauseC Adds field, record, structure, variants, and variant definitions< within a structure definition. Removes field, record, and@ structure definitions from within a structure definition. See< CHANGE RECORD_Record_Change command for more information. 5 structure-change-clause@ Changes a structure definition within a structure definition.8 (This section describes the Structure Change Clause.) 5 variants-change-clauseC Specifies a variant definition that you want to change or removeA from a structure definition. See CHANGE RECORD_Variants_Change command for more information. 4 Description> The Structure Change Clause adds or modifies field, record,D structure, and variant definitions within a structure definition.7 It removes field, record, and structure definitions.: You cannot remove a variant definition from a structure@ definition with the Structure Change Clause. Use the Variants Change Clause instead.A To add a definition within a structure definition, specify theD Structure Change Clause, which contains an embedded Record Change> Clause. Use the DEFINE keyword of the Record Change Clause,@ followed by the appropriate clause for the definition you are adding.D For example, to add a field or record definition to the structure> definition, specify the Included Name Clause or Local Field? Clause. To add a structure definition, specify the StructureD Change Clause. To add a variants definition, specify the Variants Change Clause.< The definition you add becomes the last definition in the structure definition.= To remove a definition from within a structure definition,@ specify the Structure Change Clause and the DELETE keyword of@ the embedded Record Change Clause, followed by the definition name.& NOTEA When you use the CHANGE RECORD command to change a variants: or variant definition or an entity inside a variants= or variant definition, you must use the Variants ChangeA Clause to refer to each variants or variant definition that+ precedes the entity you are changing. 4 Examples CDO> CHANGE RECORD HOUSEHOLD. cont> DELETE ADDRESS.1 cont> DEPENDENTS STRUCTURE OCCURS 1 TO 4 TIMES: cont> DEPENDING ON NUMBER_OF_DEPENDENTS IN HOUSEHOLD." cont> END DEPENDENTS STRUCTURE. cont> END HOUSEHOLD RECORD.C In this example, the CHANGE RECORD comman d removes the ADDRESSB field definition and changes the OCCURS...DEPENDING clause in% the HOUSEHOLD record definition. 3 RECORD_Variant_Change FormatD { [[ EXPRESSION IS cond-expr ] ] }D { [[ ] . ] }D { [[ NOEXPRESSION ] ] }D { [[ DELETE name . ] ... ] }D { [[ included-name-change-clause ]  ] }D { [[ ] ] }D { VARIANT [[ local-field-clause ] ] END VARIANT . }D { [[ ] ] }D { [[ record-change-clause ] ... ] }D { [[ ] ] }D { [[ structure-change-clause ] ] }D { [[ variants-change-clause ] ]  }D { [ ] } 4 Parameters 5 cond-exprC Specifies an expression that represents the relationship betweenB two value expressions. The value of a conditional expression isC true, false, or null. If one definition uses an expression, each@ definition in the variant definition must have an expression.C Each expression in the Variant Change Clause must be unique. For@ more information on conditional expressions, see Expressions. 5 nameD Specifies the name of a record, structure, or field that you want to delete from the record. 5 included-name-change-clauseA Changes the attribute of a field or record definition within aC record element. See CHANGE RECORD_Record_Change command for more information. 5 local-field-clause6 Changes the definition of a local field. See DEFINE3 RECORD_Local_Field command for more information. 5 record-change-clause@ Adds field, record, structure, and variant definitions within? a structure definition. Removes field, record, and structure= definitions from within a structure definition. See CHANGE5 RECORD_Record_Change command for more information. 5 structure-change-clause> Changes a structure definition within a record element. See? CHANGE RECORD_Structure_Change command for more information. 5 variants-change-clauseD Specifies a variants definition that you want to change or remove from a record definition. 4 Description: The Variant Change Clause modifies or removes a variant+ definition within a variants definition.: When you change or add a variant definition to a record> definition, you must tell CDO its position. To indicate theC position of a variant definition to CDO, you use the VARIANT andA END VARIANT keywords, so each preceding variant is referenced.B If you specify a conditional expression, the expres sion must beB valid for the layered product that uses your definition. If one@ definition uses an expression, each definition in the variantD definition must use an expression. Each expression in the Variant Change Clause must be unique.? To add a definition to a variants or variant definition, use? the Variant Change Clause to specify the variants or variant@ you want to modify. Then use the DEFINE keyword of the RecordB Change Clause and the appropriate clause for the ty pe of entity definition you are adding.& NOTE> You must include a structure definition for each variant? contained in a CDO record if developing a new application: that will use a 3GL language and DIGITAL DATATRIEVE.C For example, to add a field or record definition to the variants> or variant definition, use the Included Name Change Clause.> To create a structure definition in the variants or variant( definition, use the Str ucture Clause.B To create another variant or variant definition in the variants8 or variant definition, use the Variant Change Clause.< To remove a field, record, or structure definition from a@ variants or variant definition, use the Variant Change ClauseC or the Variants Change Clause to specify the variants or variantA definition you are changing. Then remove the field, record, or? structure definition by specifying the DELETE keyword of the0 Record Change Clause and the definition name.? To remove a variant definition, use the NOVARIANT keyword of@ the Variants Change Clause to specify the definitions you are removing.D When you add a new definition it becomes the last definition in a variant definition. 4 Examples% CDO> CHANGE RECORD EMPLOYEE_RECORD. cont> VARIANTS. cont> VARIANT. cont> END VARIANT. cont> VARIANT. cont> END VARIANT. cont> VARIANT. cont> DELETE RATE. cont> E ND VARIANT. cont> END VARIANTS. cont> END EMPLOYEE_REC RECORD.= In this example, the keyword DELETE in the CHANGE RECORD7 command removes the RATE field definition from theA EMPLOYEE_RECORD record definition. The CHANGE RECORD command= does not affect the other two definitions in the variant definition.? To indicate that the RATE field definition is in the third@ variant definition, you must use the Variants Change ClauseC as shown in this example. The keywords VARIANT and END VARIANTD serve as placeholders for those variant definitions that you do not want to change. 3 RECORD_Variants_Change FormatA { {variant-change-clause } }A { VARIANTS. {NOVARIANT. } ... END VARIANTS . }A { { } }A { NOVARIANTS. } 4 Parameters 5 variant-change-clauseC Specifies a variant definition that you want to change or removeA from a record definition. See the CHANGE RECORD_Variant_Change command for more information. 4 Description< The Variants Change Clause modifies or removes a variants) definition within a record definition.? The NOVARIANTS clause removes a group of variant definitionsD from a record definition. The NOVARIANT clause removes a specific/ variant definition from a record definition.A To remove a variants definition, use the NOVARIANTS keyword of@ the Variants Change Clause to specify the definitions you are removing.& NOTEA When the CHANGE RECORD command is used to change a variants: or variant definition or an entity inside a variants= or variant definition, you must use the Variants ChangeA Clause to refer to each variants or variant definition that+ precedes the entity you are changing. 4 Examples% CDO> CHANGE RECORD EMPLOYEE_RECORD. cont> VARIANTS. cont> VARIANT. cont> END VARIANT. cont> VARIANT. cont> END VARIANT. cont> VARIANT. cont> DELETE RATE. cont> END VARIANT. cont> END VARIANTS. cont> END EMPLOYEE_REC RECORD.= In this example, the keyword DELETE in the CHANGE RECORD7 command removes the RATE field definition from theA EMPLOYEE_RECORD record definition. The CHANGE RECORD command= does not affect the other two definitions in the variant definition.? To indicate that the RATE field definition is in the third@ variant definition, you must use the Variants Change ClauseC as shown in this example. The keywords VARIANT and END VARIANTD serve as placeholders for those variant definitions that you do not want to change. 2 CLEAR_NOTICES Format5 CLEAR NOTICES [ qualifier ] element-name ,... 3 Parameters 4 element-nameD Specifies the element whose notices you are removing. You can use+ wildcard characters in the element name. 3 Qualifiers 4 /CURRENT= Clears notices at the element you specify. /CURRENT is the default qualifier. 4 /DOWN3 Clears notices at elements owned by the element. 4 /UP3 Clears notices at elements that own the element. 3 DescriptionA The CLEAR NOTICES command removes notices that CDO has sent toC an element. Use the SHOW NOTICES command to confirm that CDO has cleared notices. 3 Examples CDO> CLEAR NOTICES DEPT5C In this example, the CLEAR NOTICES command removes notices for# the DEPT5 database definition. 2 CLOSE_FILE_ELEMENT Format1 CLOSE FILE_ELEMENT type-name element-name 3 Parameters 4 type-name? Specifies the type (MCS_BINARY or MCS_BINARY subtype) of the> file element you are closing. See the Oracle CDD/RepositoryB Information Model Volume I for more information on these types. 4 element-nameD Specifies the file element you are closing. You can substitute an7 asterisk (*) wildcard character for this parameter. 3 DescriptionB The CLOSE FILE_ELEMENT command closes an internal file that you@ have previously opened. See the OPEN FILE_ELEMENT command for& more information on opening a file.B Since a file element is a versioned element, CLOSE FILE_ELEMENT@ closes the highest visible version unless you specify another version number. 3 Examples$ CDO> CLOSE FILE_ELEMENT MCS_BINARY cont> PARSER_TABLES> In this example, CDO closes the binary file named PARSER_ TABLES. 2 COMMIT Format COMMIT 3 Description@ The COMMIT command ends a transaction and makes permanent any> changes you made during that transaction. This command also= releases all locks and closes all open streams. It affectsA all databas es participating in the currently open transaction.A See the START_TRANSACTION command description for restrictionsA that apply when using START_TRANSACTION . . . COMMIT stream of commands. 3 RestrictionsC o When you delete a record, local fields within that record areA marked for deletion at the end of the transaction, providedB that they remain unused at the end of the transaction. UsingB CDO, there is no way to reuse those local fields. But, it isB possible to use them through the Oracle CDD/Repository APIs.D Therefore, the local fields cannot be automatically deleted at6 the same point in the transaction as the record.= You must either delete the record and field in separateE transactions (outside the START_TRANSACTION . . . COMMIT streamA of commands) or, to accomplish this in one transaction, useD the ENTER command to enter the local field, delete the record,? delete the local field, and then delete the global field.A o Usually, if Oracle CDD/Repository issues any errors between> the START_TRANSACTION and COMMIT commands, it forces youA to roll back the transaction. In some cases, such as in theD CHANGE or DELETE commands, Oracle CDD/Repository allows you to4 commit the transaction. The general rules are:@ - If you receive an Oracle CDD/Repository error of E or FD severity, such as a CDD-E-NODNOTFND message, you must abort the transaction.A - If you receive a CDO error of E or F severity, such as aC CDO-E-NOTFOUND message, you can continue to operate in the current transaction. 3 Examples CDO> START_TRANSACTION. CDO> DEFINE RECORD REC2. cont> FLD1. END RECORD. CDO> COMMIT CDO> SHOW RECORD REC2 Definition of record REC2" | Contains field FLD1 . . .? In this example, the COMMIT command ends a session started@ with the START_TRANSACTION command. When you use the START_: TRANSACTION and COMMIT commands, the overhead that is; associated with these commands is incurred once in theC repository and once in the database, rather than once for eachC CDO command between the START_TRANSACTION and COMMIT commands.? The repository is already attached to the database and has) already loaded the type definitions. 2 CONSTRAIN Format& { FIELD }H CONSTRAIN { RECORD  } [qualifier] ... element-name ,...& { GENERIC type-name }& { }B [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ] 3 Parameters 4 type-nameB Specifies the type of the generic element you are constraining. 4 element-nameD Specifies the element you are constraining. You can substitute an6 asterisk (*) wildcard character for this parameter. 4 text< Documents the element within the DESCRIPTION clause. AddsA information to the history list entry within the AUDIT clause.> Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 3 Qualifiers 4 /CLOSURE Format options: /CLOSURE=TO_BOTTOM /NOCLOSURE (default)> Specifies whether CDO constrains additional elements. UsingA the /CLOSURE=TO_BOTTOM qualifier constrains all children of an! element that are uncontrolled. 4 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text identifying each element as the element is constrained. 3 Description@ The CONSTRAIN command moves an uncontrolled element to a baseB partition, the first level of approval. An uncontrolled element can be one of the following:? o A field, record, or generic element that you created with0 Oracle CDD/Repository Version 4.0 or later? o A field, record, or generic element that you created with. Oracle CDD/Repository, outside a context< Since fields, records, and generic elements are versionedA elements, the CONSTRAIN command constrains the highest visible5 version unless you specify another version number.< Before you issue the CONSTRAIN command, you must create aA partition and a context for the uncontrolled element and issue+ the SET CONTEXT command to this context.@ The element you are constraining must be a versioned element.C When you constrain one version of an element, CDO constrains all versions of the element.A An error occurs if you attempt to constrain an element that isA reserved. The SHOW RESERVATIONS command indicates whether this condition exists.A An error occurs if you attempt to constrain an element that i s@ a parent of an uncontrolled element. Constrain the parent andD children simultaneously by issuing the CONSTRAIN command with the /CLOSURE=TO_BOTTOM qualifier.D After you constrain an element, you issue the ATTACH TO COMPOSITEC command to explicitly attach the element to a collection, field,$ record, file, or generic element.& NOTEA The CONSTRAIN command is irreversible. A controlled elementB cannot be changed to an uncontrolled element. All subsequent- versions of the element are controlled.B To create subsequent versions, issue the RESERVE command rather than the DEFINE command. 3 ExamplesB CDO> DEFINE CONTEXT SUBSCRIPTIONS BASE_PARTITION FOURTH_QUARTER. CDO> SET CONTEXT SUBSCRIPTIONS$ CDO> DEFINE COLLECTION MAIL_LABEL. CDO> CONSTRAIN FIELD *? In this example, the CONSTRAIN command controls all fieldsB in the current default directory. See the ATTACH_TO_COMPOSITEB command for commands to attach the constrained fields to this collection. 2 CONVERT Format4 { source-name ,... destination-name }4 CONVERT { /REPOSITORY repository-anchor-name }4 { } 3 Parameters 4 source-name; Specifies the Oracle Dictionary Management Utility (DMU)B definition you are converting. The Oracle Dictionary ManagementD Utility (DMU) definition must be a definition of type CDD$RECORD.? You can use either a full or relative DMU path name with the; CONVERT command. You can also substitute an asterisk (*)) wildcard character for this parameter. 4 destination-nameB Specifies the name that you select for the converted definition: in the CDO repository. If you specify more than one DMU@ definition in the source name, the destination name must have$ a wildcard character in its name. 4 repository-anchor-name: Specifies the device and directory specification of theB repository to be upgraded using the CONVERT/REPOSITORY command. 3 Qualifiers 4 /REPOSITORY4 Specifies that the repository should be upgraded. 3 DescriptionB The CONVERT command copies a DMU format definition from the DMU@ side of the dictionary to the CDO side of the dictionary. The? CONVERT command leaves the definition in the DMU side of the dictionary.? The CONVERT/REPOSITORY command allows you to perform a minorA upgrade (from a Version 5.n repository to a later Version 5.n,B a Version 6.1, or a Version 7.0 repository). Using this commandD requires SYSPRV or BYPASS privilege. Be sure you have an adequate8 backup of the repository before issuing this command.& NOTE0 The CONVERT command is not the same as the? CONVERT/REPOSITORY command, which allows you to perform a= minor upgrade of a repository. For details on upgrading< repo sitories using the CONVERT/REPOSITORY command, see: the Upgrade_Procedure topic in DCL level help or the; instructions for upgrading a dictionary or repositoryA provided in Using Oracle CDD/Repository on OpenVMS Systems.@ Unless you specify a different path name, the CONVERT command; copies a DMU definition into your default CDO directory.D When you convert a DMU definition, unless you specify the version> number, CDO converts the highest version of the definition. @ An error occurs if you specify a destination name that is theC name of an existing definition in the CDO destination directory.? If you convert an Oracle Dictionary Management Utility (DMU)@ record definition that consists of a single field description? statement, CDO converts the record definition to a CDO field definition.A When you convert an Oracle Dictionary Management Utility (DMU)? format definition that includes a description clause for theC definition and another description clause for a structure withinC the definition, only the structure description clause appears in the CDO format definition.C If you have a version of DIGITAL DATATRIEVE prior to Version 5.0D installed on your system, and you are converting a DMU definition? that contains a VALID FOR DATATRIEVE IF field attribute or aA COMPUTED BY DATATRIEVE field attribute clause, CDO omits these- clauses from the resulting CDO definition.< If the DMU record t hat you are converting has a differentB processing name from the DMU directory name, then the resultingB CDO record definition retains the old processing name. However,B if both the processing and directory names are the same for theC DMU definition, then the resulting CDO record definition retains= the same name for both the processing and directory names.A When you convert an Oracle Dictionary Management Utility (DMU)A definition, CDO creates a default ACL for it. See Using OracleD CDD/Repository on OpenVMS Systems for more information on default protection.= To display or manipulate a converted field within a recordA description with a CDO command, you must assign it a directory3 name. Use the ENTER command to assign this name.A When you convert an Oracle Dictionary Management Utility (DMU)> definition to a CDO definition, CDO converts the DMU access? rights to CDO access rights. However, because DMU protection? is different from C DO protection, there is no CDO equivalentC for some DMU access rights. Therefore, CDO must convert some DMU* rights to the closest CDO access right.B Conversion of Oracle Dictionary Management Utility (DMU) Access@ Rights to CDO Access Rights shows how CDO converts DMU accessC rights to the closest CDO equivalent. DMU access rights that areC not listed in the table are not translated because no equivalent# CDO access right is appropriate.? Table 1-1 Conversion of Oracle Dictionary Management Utility5 (DMU) Access Rights to CDO Access Rights Oracle Dictionary Management Utility (DMU)1 Access Right Equivalent CDO Access Right CONTROL CONTROL DELETE DELETE Local or global@ DTR MODIFY MODIFY (confirms that CHANGE access can be granted)< DTR READ READ (confirms that SHOW access can be granted)? DTR WRITE WRITE (confirms that DEFINE access can be granted) SEE SHOW% UPDATE CHANGE + DEFINE 3 Examples? 1.CDO> CONVERT CDD$TOP.PERSONNEL.BADGE_NUMBER BADGE_NUMBERA In this example, the CONVERT command converts the DMU BADGE_B NUMBER record definition (and any embedded field definitions)@ to a CDO BADGE_NUMBER record definition in your default CDO directory.5 2.CDO> CONVERT CDD$TOP.SHIPMENTS.CUSTOMER_ RECORD,0 cont> CDD$TOP.SHIPMENTS.INVENTORY_RECORD *= In this example, CDO converts the DMU record definitionsB CUSTOMER_RECORD and INVENTORY_RECORD into your CDO directory.A Because the asterisk (*) wildcard character was used in the? destination-name, the DMU record definitions keep the same names after the conversion.. 3.DEFINE RECORD CDD$TOP.HARBORMASTER.YACHTS DESCRIPTION ISA /* This record contains the manufacturer, model, and> dock number of each yacht in the harbor, along* with the owner's name. */. YACHTS STRUCTURE.1 MANUFACTURER DATATYPE IS TEXT7 SIZE IS 30 CHARACTERS.1 MODEL DATATYPE IS TEXT7 SIZE IS 30 CHARACTERS.1 DOCK_NUMBER DATATYPE IS TEXT6 SIZE IS 2 CHARACTERS. NAME STRUCTURE.1 LAST_NAME DATATYPE IS TEXT7 SIZE IS 15 CHARACTERS.1 FIRST_NAME DATATYPE IS TEXT7 SIZE IS 10 CHARACTERS.1 MIDDLE_INITIAL DATATYPE IS TEXT5 SIZE IS 1 CHARACTER. END NAME STRUCTURE. END YACHTS STRUCTURE. END YACHTS RECORD.C In this example, YACHTS is the name of a DMU record definitionA and also of the STRUCTURE field description statement within the record definition. $ 4.CDO> CONVERT YACHTS YACHTS_NEW& CDO> SHOW RECORD/FULL YACHTS_NEW$ Definition of record YACHTS_NEW. | Contains field MANUFACTURER@ | | Datatype text size is 30 characters' | Contains field MODEL@ | | Datatype text size is 30 characters- | Contains field DOCK_NUMBER? | | Datatype te xt size is 2 characters& | Contains record NAME/ | | Contains field LAST_NAMED | | | Datatype text size is 15 characters0 | | Contains field FIRST_NAMED | | | Datatype text size is 10 characters4 | | Contains field MIDDLE_INITIALC | | | Datatype text size is 1 characters CDO>= When you convert the DMU record definition YACHTS to the? CDO record definition YACHTS_NEW, the resulting CDO recordD definition has YACHTS_NEW for its directory name and processing name. 2 COPY Format, COPY source-name ,... destination-name 3 Parameters 4 source-nameB Specifies the element you are copying. The source name can be aA path name, directory name, or a name with wildcard characters.D Oracle CDD/Repository does not support passwords in name strings.C When you issue the COPY command, do not include your password in= the name string because a CDO-E-KWSYNTAX error will occur. 4 destination-nameA Specifies the destination to which the element will be copied.@ The destination name can be a path name, directory name, or a$ name with one wildcard character. 3 DescriptionC The COPY command copies an element and the relationships it ownsC within the same directory, from one CDO directory to another, or+ from one physical repository to another.B If the element is a versioned element, and you do not specify a: version number, CDO copies all versions of the element.? The COPY command preserves relationships. If you copy both a> parent and child, CDO copies the relationship between them.; If you copy the parent, CDO copies the relationship from? the new parent to the child. CDO also maintains the previous relationship.= If you copy the child, CDO does not copy the relationship.A If you subs titute a wildcard character for a destination name,A CDO copies the element into your current default CDO directory and keeps the same name.A If you specify only a directory name for the destination name,D CDO copies the element into that CDO directory and keeps the same element name.A If you specify both a directory name and a new processing name= for the destination name, CDO copies the element into that: directory and gives the element the name you specified.D Oracle CDD/Repository does not support passwords in name strings.A When you issue the COPY command and include your password, you1 get an error message similar to the following:; %CDO-E-KWSYNTAX, syntax error in command line at or near% password"::DISK$[CDDPLUS]some.userB Rules for Using Wildcard Characters With the COPY Command listsA the rules for using wildcard characters with the COPY command.> Table 1-2 Rules for Using Wildcard Characters With the COPY  Command If Source Name9 Includes Destination Name Can Include More= One Than One No Wildcard< Asterisk Asterisk Ellipsis Characters4 Asterisk (*) Yes No Yes No4 More Than Yes No Yes No One Asterisk4 Percent (%) Yes No Yes No4 Ellipsis Yes No Yes No (...)5 No Wildcard Yes No Yes Yes CharactersC In addition to the information in the table, the following rulesD also apply to the use of wildcard characters in the COPY command:B o If you use a wildcard character in the source name, you must7 use a wildcard character in the destination name.D o You can only use one wildcard character in a destination name.< o You can only use one ellipsis ( . . . ) in a source or destination name.D o You can only use multiple asterisk (*) wildcard characters in the source name.C o You can only use percent sign (%) wildcard characters in the source name. 3 Examples5 1.CDO> COPY DISK1:[JONES.DICT]PERSONNEL.LAST_NAME. cont> DISK2:[BOB.SHOP]WORKERS.LAST_NAME? This example uses the full path name to copy the LAST_NAMED field element from the DISK1:[JONES.DICT]PERSONNEL directory to+ the DISK2:[BOB.SHOP]WORKERS directory. / 2.CDO> COPY CORPORATE.LAST_NAME, FIRST_NAME* cont> DISK1:[JONES.DICT]PERSONNEL.*< In this example, the COPY command with the asterisk (*)A wildcard character copies the LAST_NAME and FIRST_NAME field7 elements into the [JONES.DICT]PERSONNEL directory.! 3.CDO> COPY CORPORATE.ADDRESS3 cont> [JONES.DICT]PERSONNEL.EMPLOYEE_ADDRESS@ In this example, the COPY command copies the ADDRESS recordD element into the [JONES.DICT]PERSONNEL directory and gives it a new name, EMPLOYEE_ADDRESS.2 4.CDO> COPY DISK1:[CORPORATE.DICT]CORP_DEFS.... cont> DISK1:[SMITH.DICT]DEVELOPMENT...; This example uses the ellipsis (...) to copy an entireB subhierarchy from the CORPORATE repository (starting with theC CORP_DEFS directory) into the DEVELOPMENT directory of Smith's repository. 2 DEFINE 3 COLLECTION Format' DEFINE COLLECTION collection-nameB [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ] . 4 Parameters 5 collection-name- Specifies the collection you are creating. 5 text; Adds information. Within the DESCRIPTION clause, this isC information documenting the collection; within the AUDIT clause,C it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 4 DescriptionC The DEFINE COLLECTION command creates a collection. A collection@ allows you to view and manipulate a group of related elements1 that make up a particular system or subsystem.C Because a collection is a controlled element, you use the DEFINED COLLECTION command to create the initial version of a collection.? Use the RESERVE and REPLACE commands to create new versions.B Before you issue the DEFINE COLLECTION command, you must createD and set a context. The SHOW CONTEXT command indicates whether you have completed these steps.> Because all elements in a collection hierarchy are children@ of the top collection, you can issue commands that affect theA entire hierarchy with the /DESCENDANTS or /CLOSURE qualifiers.D Because most elements in a collection hierarchy are also children@ of smaller subcollections beneath the top collection, you canA also is sue commands that affect only one subcollection and its children.@ To create a collection hierarchy, issue the DEFINE COLLECTIONA command immediately after the SET CONTEXT command. SET CONTEXTB implicitly sets the collection you define as the top collectionC in the hierarchy, provided that you did not set a top collection% within the DEFINE CONTEXT command.D To extend the hierarchy beneath the top collection, you issue the following commands:B 1. DEFINE COLLECTIO N to create the collections that participateD in the hierarchy. This command attaches all collections in the- first level beneath the top collection.D 2. DETACH FROM COMPOSITE to detach those collections destined forD lower levels in the hierarchy from the first level beneath the top collection.D 3. RESERVE and ATTACH TO COMPOSITE to reserve collections in each; successive level and attach their immediate children.D 4. REPLACE to store in a partition the elements you have created. 4 Examples, 1.CDO> DEFINE COLLECTION REGIONAL_SALES.? In this example, the DEFINE COLLECTION command creates the REGIONAL_SALES collection.7 2.CDO> DEFINE PARTITION FIRST_BASELEVEL. 1- CDO> DEFINE CONTEXT DEVELOPMENT_CONTEXT, cont> BASE_PARTITION FIRST_BASELEVEL.* CDO> SET CONTEXT DEVELOPMENT_CONTEXT7 CDO> DEFINE COLLECTION COMPILER_C. 2( CDO> RESERVE COLLECTION COMPILER_C7 CDO > DEFINE COLLECTION FRONT_END. 3& CDO> DEFINE COLLECTION BACK_END.$ CDO> DEFINE COLLECTION PARSER.7 CDO> DEFINE FILE_ELEMENT MCS_BINARY PARSER_TABLES cont> STORETYPE EXTERNALA cont> MCS_STOREDIN IS "CDD$DISK:[SMITH]PARSER_TABLES.DAT".7 cont> END FILE_ELEMENT MCS_BINARY PARSER_TABLES.7 CDO> DETACH COLLECTION PARSER FROM COMPILER_C 41 CDO> DETACH FILE_ELEMENT PARSER_TABLES FROM cont> COMPILER_C' CDO> RESERVE C OLLECTION FRONT_END7 CDO> ATTACH COLLECTION PARSER TO FRONT_END 5$ CDO> RESERVE COLLECTION PARSER6 CDO> ATTACH FILE_ELEMENT PARSER_TABLES TO PARSER4 CDO> REPLACE COLLECTION /CLOSURE=TO_TOP PARSER> The successive DEFINE COLLECTION commands in this example; participate in the creation of a collection hierarchy.B 1 DEFINE PARTITION, DEFINE CONTEXT, and SET CONTEXT commands& allow you to control elements.> 2 DEFINE COLLECTION command crea tes the collection; thisB command also sets COMPILER_C as the top collection becauseA the current context, DEVELOPMENT_CONTEXT, does not have a top collection defined.C 3 DEFINE COLLECTION commands create subcollections FRONT_END,A BACK_END, and PARSER and file element PARSER_TABLES under collection COMPILER_C.; 4 DETACH commands detach PARSER and PARSE_TABLES from collection COMPILER_C.C 5 ATTACH commands attach PARSER under subcollection FRONT_END4 and PARSE_TABLES under subcollection PARSER. 3 CONTEXT Format! DEFINE CONTEXT context-name@ [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ]- BASE_PARTITION IS partition-name' [ TOP IS collection-name ]; [ {SPECIFIC_VERSION } ]= [ DEFAULT_ATTACHMENT IS {LATEST_CHECKIN } ] .; [ {LATEST } ]; [ { } ] 4 Parameters 5 context-name* Specifies the context you are creating. 5 text; Adds information. Within the DESCRIPTION clause, this is@ information documenting the context; within the AUDIT clause,C it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 partition-name; Specifies the base partition of the partition hierarchy. 5 collection-name< Specifies the top collection of the collection hierarchy. 4 DescriptionA The DEFINE CONTEXT command creates a context. A context allows@ you to restrict or expand your view of the system and set the9 characteristics associated with your work environment.@ The BAS E_PARTITION clause sets the base partition property toC the partition name you specify. Use the DEFINE PARTITION command? to create this partition prior to issuing the DEFINE CONTEXT command.D The TOP clause sets the top collection property to the collection: name you specify. Include this clause only when you areB redefining the top collection property for an existing context.D See the DEFINE COLLECTION command for more information on setting# this property for a new context.? The DEFAULT_ATTACHMENT clause defines the default attachment@ property for the context. This property refers to the defaultA behavior that occurs when you issue the UPDATE command. Choose! one of the following keywords: DEFAULT_ ATTACHMENT Keyword Behavior? LATEST Detaches the version currently attached andD attaches the lastest version, whether checked in or ghost.? LATEST_CHECKIN Detaches the version currently attached andB attaches the version most recently checked in.C SPECIFIC_ Does not detach the version currently attached. VERSIONC If you do not specify the DEFAULT_ATTACHMENT clause, CDO creates: the context with LATEST default attachment, by default. 4 Examples CDO> DEFINE CONTEXT SALES( cont> BASE_PARTITION IS FIRST_QUARTER. cont> DEFAULT_ATTACHMENT IS LATEST_CHECKIN.B In this example, the DEFINE CONTEXT command creates the SALES? context. The BASE_PARTITION clause sets the base partitionD property to the previously defined FIRST_QUARTER partition. TheA keyword LATEST_CHECKIN in the DEFAULT_ATTACHMENT clause setsC the default attachment property for the context to the version most recently checked in.> See the DEFINE COLLECTION command for more information on7 setting the top collection property for a context. 3 DATABASE Format# DEFINE DATABASE database-nameA [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ]C USING rms-database-name ON file-name [ qualifier ] . 4 Parameters 5 database-name3 Specifies the database element you are creating. 5 text; Adds information. Within the DESCRIPTION clause, this isA information documenting the database; within the AUDIT clause,C it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 rms-database-nameA Specifies an existing logical RMS database element. It must be4 the name of an existing CDD$RMS_DATABASE element. 5 file-nameC Specifies the location on disk of the physical OpenVMS file thatC holds the physical RMS database. It is a character string having from 1 to 1024 characters. 4 Qualifiers 5 /EXISTING_FILE< Specifies that an RMS file exists and does not need to be created. 4 DescriptionA The DEFINE DATABASE command creates a physical RMS database on? disk using an RMS database element. If the command completes? successfully, DEFINE DATABASE creates a CDD$DATABASE element@ (with the database name you specified) and a CDD$FILE element@ (with the OpenVMS file name you specified) in your directory.? If the RMS database element is a controlled element, you useA the DEFINE DATABASE command to create the initial version of a? database. Use the RESERVE and REPLACE commands to create new versions.> If the RMS database element is an uncontrolled element, youA use the DEFINE DATABASE command to create both initial and new versions.D If you supply a database name that is already used for a database= element in your specified directory , you will create a new/ version of the existing database definition.@ This command allows you to create many different physical RMSA databases using the same logical RMS database element. You canA specify a different location on disk for each database with an OpenVMS file name.? As of Oracle CDD/Repository Version 6.1, the DEFINE DATABASEB command supports unsigned numeric and ADT fields as keys in RMS databases.> If the database name does not specify a full path name, CDO: creates the database definition in your current defaultD directory. CDO attempts to translate the database name you supplyA to determine if it is a valid logical name. If it is a logicalA name and CDO cannot translate the logical name to a valid path name, the operation fails. 4 Examples; 1.CDO> DEFINE DATABASE DISG_FILE USING EMPLOYEE_STORAGE$ cont> ON DISK1:[DISG]EMP.DAT.= In this example, the DEFINE DATABASE command creates theC physical DISG_FILE RMS database in the OpenVMS EMP.DAT file onC disk, using the logical EMPLOYEE_STORAGE RMS database element.$ 2.CDO> DEFINE DATABASE EMPLOYEES> cont> AUDIT IS /* INFORMATION ON CURRENT "EMPLOYEES" */C cont> USING EMPLOYEE_DATABANK ON DISK2:[SMITH]MORE_EMP.DATA.= In this example, the DEFINE DATABASE command creates the; physical EMPLOYEES RMS database on disk in the OpenVMSA MORE_EMP.DATA file, using the EMPLOYEE_DATABANK RMS database  element. 3 DICTIONARY% See the DEFINE REPOSITORY command. 3 DIRECTORY Format( DEFINE DIRECTORY directory-name . 4 Parameters 5 directory-name, Specifies the directory you are creating. 4 DescriptionC The DEFINE DIRECTORY command creates a CDO repository directory.> DEFINE DIRECTORY evaluates the directory name you supply to@ determine if it is a logical name. If the directory name is a? logical name, CDO translates it. If the translation is not aA valid name for a directory, CDO does not create the directory.D CDO automatically creates any directories in the path name of the6 directory-name parameter that do not already exist. 4 Examples6 1.CDO> DEFINE DIRECTORY NODE::DISK1:[BOB.DICT]TOP.: In this example, the DEFINE DIRECTORY command creates7 a directory called TOP under the repository anchor NODE::DISK1:[BOB.DICT].? Or, you can define the directory TOP by setting default toC the repository anchor DISK1:[BOB.DICT] then issuing the DEFINE DIRECTORY command.I 2.CDO> DEFINE DIRECTORY DISK1:[BOB.DICT]PERSONNEL.EMPLOYEES.BENEFITS.> In this example, the DEFINE DIRECTORY command creates theD BENEFITS directory three levels below the CDO repository anchor DISK1:[BOB.DICT].C Oracle CDD/Repository will create the intermediate directories" if they do not already exist. 3 FIELD Format DEFINE FIELD field-name@ [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ]% [ field-property ] ... . 4 Parameters 5 field-name0 Specifies the field element you are creating. 5 text; Adds information. Within the DESCRIPTION clause, this is> information documenting the field element; within the AUDITA clause, it is a history list entry. Valid delimiters are /* */# or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 field-propertyC Adds a property to the field element. See fld-properties for the! field properties CDO provides. 4 Description4 The DEFINE FIELD command creates a field element.? If the field element is controlled, you use the DEFINE FIELD@ command to create the initial version of the element. Use the7 RESERVE and REPLACE commands to create new versions.= If the field element is uncontrolled, use the DEFINE FIELD3 command to create both initial and new versions.@ You can create a field element in a directory other than your= default directory by specifying the appropriate path name.> If you supply a field name that is already used for a field? element in your default directory, CDO creates a new version$ of the existing field definition.B The DEFINE FIELD command evaluates the field name you supply toD determine if it is a logical name. If the field name is a logicalA name, CDO translates it. In some cases, the translation of the@ logical name for the field name may not be a valid name for aB field definition, and CDO will not create the field definition.> For example, if you have defined JOE as a logical name thatA translates to MYNODE::[RICHIE], CDO translates the symbol JOE.D The following DEFINE FIELD command fails because MYNODE::[RICHIE] is not a valid field name: CDO> DEFINE FIELD JOE.* %CDO-F-ERRDEFINE, error defining objectB -CDD-F-NOTADIC, Does not contain an Oracle CDD/Plus dictionary: MYNODE::@ If this error occurs, deassign the logical name with the same@ name as the object, and perform the operation again. To avoidB this logical name conflict, use unique names that represent the! type of entity you are naming. 4 Examples# 1.CDO> DEFINE FIELD POSTAL_CODE7 cont> DESCRIPTION IS /* A 5 DIGIT POSTAL_CODE */B cont> AUDIT IS /* WILL BE CHANGED TO 9 DIGITS EVENTUALLY */* cont> DATATYPE IS UNSIGNED LONGWORD cont> SIZE IS 5 DIGITS.B In this example, the DEFINE FIELD command creates the POSTAL_ CODE field element. 2.CDO> DEFINE FIELD SEX' cont> DATATYPE IS TEXT SIZE IS 1- cont> VALID IF SEX = "M" OR SEX = "F".D In this example, the DEFINE FIELD command creates the SEX fieldA element. The VALID IF field property returns an error if youA attempt to store a value other than M or F in the field that refers to this element. 3 FILE_ELEMENT Format2 DEFINE FILE_ELEMENT type-name element-name? [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ]B [ STORETYPE INTERNAL ]B [ STORETYPE EXTERNAL MCS_STOREDIN IS quoted-string ]B [  ]0 [ MCS_IMPORTED FROM quoted-string ]3 [ {n } ]: [ property-name IS {quoted-string } ] ... .3 [ { } ]? END [ FILE_ELEMENT ] type-name [ element-name ] . 4 Parameters 5 type-nameB Specifies the type (MCS_BINARY or an MCS_BINARY subtype) of the? file element you are creating. See the Oracle CDD/RepositoryB Information Model Volume I for more information on these types. 5 element-name/ Specifies the file element you are creating. 5 text; Adds information. Within the DESCRIPTION clause, this is= information documenting the file element; within the AUDITA clause, it is a history list entry. Valid delimiters are /* */# or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 quoted-string@ Sets the value (a string enclosed in quotation marks) for the property you are specifying. 5 property-name6 Specifies the property whose value you are setting. 5 n) Sets the numeric value for a property. 4 Description: The DEFINE FILE_ELEMENT command creates a file element.D Before you issue the DEFINE FILE_ELEMENT command, you must defineD and set a context. The SHOW CONTEXT command indicates whether you have completed these steps.C You control file element definitions as soon as you define them.D To do this, issue the following commands before you define a file element:1 1. DEFINE PARTITION, which creates a partition< 2. DEFINE CONTEXT, which associates this partition with a specific context? 3. SET CONTEXT, which identifies this context as the current@ context and implicitly controls all subseq uent definitionsA Since a file element is a controlled element, the DEFINE FILE_C ELEMENT command creates the initial version of the file element.8 The RESERVE and REPLACE commands create new versions.C The STORETYPE clause indicates whether or not the file is storedA internally (in Oracle CDD/Repository) or externally. If you do2 not specify STORETYPE, the default is external.B If you add, change, or delete a property from the file element,C the property you specify must be a defined or inherited property= for the file element's type. See the Oracle CDD/Repository> Information Model, Volume I for a list of these properties.C Errors occur if you do not specify the MCS_STOREDIN property for@ a file element whose STORETYPE is EXTERNAL. CDO requires this property for external files. 4 Examples3 CDO> DEFINE FILE_ELEMENT MCS_BINARY PARSER_TABLES cont> STORETYPE EXTERNAL= cont> MCS_STOREDIN IS "CDD$DISK:[SMITH]PARSER_TABLES.DAT".1 cont> END FILE_ELEMENT MCS_BINARY PARSER_TABLES.@ In this example, the DEFINE FILE_ELEMENT command includes aD STORETYPE EXTERNAL clause. CDO creates an external file element? PARSER_TABLES stored in CDD$DISK:[SMITH]PARSER_TABLES.DAT. 3 GENERIC_Command Format+ DEFINE GENERIC type-name element-name5 [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ]) [ {n } ]/ [ property-name IS {quoted-string } ] ... .) [ { } ]9 [RELATIONSHIPS. ]9 [ {RELATIONSHIP relationship-name } ]9 [ { } ]9 [ { relationship-mbr-options } ]9 [ { [ {n }] } ]9 [ { [property-name IS {quoted-string}] ... . } ... ]9 [ { [ { }] } ]9 [ {  } ]9 [ { END relationship-name RELATIONSHIP . } ]9 [ END RELATIONSHIPS . ]9 [ ]. END [ GENERIC type-name element-name ] . 4 Parameters 5 type-name> Specifies the type of the generic element you are defining. 5 element-name2 Specifies the generic element you are defining. 5 text; Adds information. Within the DESCRIPTION clause, this is@ information documenting the generic element; within the AUDITD clause, it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 property-name Specifies a property. 5 n) Sets the numeric value for a property. 5 quoted-string> Sets the value (a string enclosed in quotation marks) for a property. 5 relationship-nameC Specifies the relationship that you are defining for the generic3 element. The type must be a subtype of RELATION. 5 relationship-mbr-optionsB Allows you to specify a relationship member. This member can beC an existing element in a repository, or it can be an element you7 create within the DEFINE GENERIC command. See DEFINED GENERIC_Relationship_Memb er_Options command for more information. 4 DescriptionC The DEFINE GENERIC command creates a generic element definition.C You can create generic elements that are based on types suppliedD by Oracle CDD/Repository or on user-supplied (extended) types. IfB you do most of your work with extended types, it is recommended; that you work through the Oracle CDD/Repository callable? interface. The CDO GENERIC commands are useful to modify and> display on a spot basis, but exte nsibility is not supported through CDO.D If the generic element is a controlled versioned element, you useA the DEFINE GENERIC command to create initial versions. Use the7 RESERVE and REPLACE commands to create new versions.? If the generic element is an uncontrolled versioned element,@ use the DEFINE GENERIC command to create both initial and new versions.A By default, CDO automatically assigns a directory name that is? the same as the element name of the gener ic element that youA define. However, you can assign a processing name to a generic5 element that is different from its directory name.A When you define a property for a generic element, the property> you specify must be a defined or inherited property for the? element's type. Any values you specify for the property mustB be compatible with the data type indicated in the property typeA definition. Likewise, any relationship member you specify mustB be compatible with th e relationship name's type. See the OracleD CDD/Repository Information Model Volume I for more information on valid properties and members.D When you work with extended types, include the MCS_processingName= property in your type definition. If you omit one of theseA properties, your type definition does not allow you to specify@ a processing name for generic elements based on it. Without aD processing name, you cannot use the CHANGE GENERIC command to add@ or delete properties and relationships for a generic element.' CAUTION6 Specify the MCS_processingName property, not the? CDD$PROCESSING_NAME property, when you work with extendedA types. Otherwise, you experience performance degradation in3 the Oracle CDD/Repository callable interface. 4 Examples< 1.CDO> DEFINE GENERIC CDD$SOURCE_MODULE INPUT_MODULE_COB3 cont> MCS_PROCESSINGNAME "INPUT_MODULE_COB".2 cont> END CDD$SOURCE_MODU LE INPUT_MODULE_COB.: In this example, the DEFINE GENERIC command creates a= generic element named INPUT_MODULE_COB based on the type9 CDD$SOURCE_MODULE supplied by Oracle CDD/Repository.< 2.CDO> DEFINE GENERIC CDD$SOURCE_MODULE OUTPUT_MODULE_COB4 cont> MCS_PROCESSINGNAME "OUTPUT_MODULE_COB".3 cont> END CDD$SOURCE_MODULE OUTPUT_MODULE_COB.B In this example, the DEFINE GENERIC command creates a genericB element named OUTPUT_MODULE_COB based on the product-supplied$ CDD$SOURCE_MODULE element type.3 3.CDO> DEFINE GENERIC BOOK CDO_REFERENCE_MANUAL9 cont> MCS_PROCESSINGNAME IS "CDO_REFERENCE_MANUAL"- cont> LIBRARY_NUMBER IS "AA-KL45A-TE".) cont> END BOOK CDO_REFERENCE_MANUAL.B In this example, the DEFINE GENERIC command creates a genericB element named CDO_REFERENCE_MANUAL based on the user-supplied type BOOK. &3 GENERIC_Relationship_Member_Options FormatF {relationship-mbr-name  }F {GENERIC }F { [ ]}F { [[ DESCRIPTION IS /*text*/ ] ]}F { [ ]}F { [ [ {n }] ]}F { [ [property-name IS {quoted-string }] ... . ]}F { [ [  { }] ]}F { [ ]}F { [[ ]]}F { [[RELATIONSHIPS . ]]}F { [[ {RELATIONSHIP relationship-name } ]]}F { type-name [[ { } ]]}F { [[ { relationship-mbr-options } ]]}F { [[ { [  {n }] } ]]}F { [[ { [property-name IS {quoted-string}] ... .} ...]]}F { [[ { [ { }] } ]]}F { [[ { } ]]}F { [[ {END relationship-name RELATIONSHIP. } ]]}F { [[ ]]}F { [[ END RELATIONSHIPS. ]]}F { [[  ]]}F { [ ]}F { }F {END [ GENERIC type-name ] . } 4 Parameters 5 relationship-mbr-nameB Specifies an existing element that can be a valid member of the" relationship type that you use. 5 type-name; Specifies the type of the generic element member you areD defining.  The type must be compatible with the relationship type. 5 text; Documents the generic element that you are creating as a> relationship member. Within the DESCRIPTION clause, this isB information documenting the member definition. Valid delimiters- are /* */ or double quotation marks (" ").? You can use Japanese to document comments in the DESCRIPTION< clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 property-name Specifies a property. 5 n) Sets the numeric value for a property. 5 quoted-string@ Sets the value (a string enclosed in quotation marks) for the property you are specifying. 5 relationship-nameC Specifies the relationship type you are defining for the generic: element member. The type must be a subtype of RELATION. 5 relationship-mbr-optionsB Specifies a relationship member. This member can be an exis tingC element in a repository, or it can be an element you create with9 the DEFINE GENERIC Relationship Member Options clause. 4 Description> The Relationship Mbr Options clause allows you to specify aA relationship member. This member can be an existing element in@ the repository, or it can be an element you create within the5 DEFINE GENERIC Relationship Member Options clause.C To specify an existing element as a relationship member, include= only the element's name in the Relationship Member OptionsD clause. To define a new element as a relationship member, specifyD the Generic clause within the Relationship Member Options clause.9 The Generic clause does not create directory names for= relationship members. Without a directory name, you cannotA display elements with the DIRECTORY command or include element$ definitions in other definitions.B To display relationship members, issue the SHOW GENERIC command> with the /FULL qualifier. To provide a directory name for a0 relationship member, issue the ENTER command.: If you use the Generic clause, you can nest a series of relationship members. 4 Examples= 1.CDO> DEFINE GENERIC CDD$EXECUTABLE_IMAGE MY_PROGRAM_EXE1 cont> MCS_PROCESSINGNAME "MY_PROGRAM_EXE". cont> RELATIONSHIPS.0 cont> RELATIONSHIP CDD$IMAGE_DERIVED_FROM* cont> GENERIC CDD$COMPILED_MODULE5 cont> MCS_PROCESSINGNAME "INPUT_MODULE_OBJ". cont>  RELATIONSHIPS.9 cont> RELATIONSHIP CDD$COMPILED_DERIVED_FROM& cont> INPUT_MODULE_COB.> cont> END CDD$COMPILED_DERIVED_FROM RELATIONSHIP.# cont> END RELATIONSHIPS.8 cont> END CDD$COMPILED_MODULE INPUT_MODULE_OBJ.5 cont> END CDD$IMAGE_DERIVED_FROM RELATIONSHIP.0 cont> RELATIONSHIP CDD$IMAGE_DERIVED_FROM* cont> GENERIC CDD$COMPILED_MODULE6 cont> MCS_PROCESSINGNAME "OUTPUT_MODULE_OBJ". cont>  RELATIONSHIPS.9 cont> RELATIONSHIP CDD$COMPILED_DERIVED_FROM' cont> OUTPUT_MODULE_COB.> cont> END CDD$COMPILED_DERIVED_FROM RELATIONSHIP.# cont> END RELATIONSHIPS.9 cont> END CDD$COMPILED_MODULE OUTPUT_MODULE_OBJ.5 cont> END CDD$IMAGE_DERIVED_FROM RELATIONSHIP. cont> END RELATIONSHIPS.3 cont> END CDD$EXECUTABLE_IMAGE MY_PROGRAM_EXE.8 In this example, the following steps are performed:2 a. Defines the generic entity MY_PROGRAM_EXE.< b. Specifies the processing name MY_PROGRAM_EXE for the& CDD$PROCESSING_NAME attribute.A c. Defines the list of relationships that the definition MY_ PROGRAM_EXE includes.= d. Specifies a relationship type CDD$IMAGE_DERIVED_FROM,B supplied by Oracle CDD/Repository, that the definition MY_ PROGRAM_EXE owns.8 e. The GENERIC clause creates a generic entity as a9 relationship member of the CDD$IMAGE_D ERIVED_FROMC relationship, based on the CDD$COMPILED_MODULE entity type.D f. Specifies the processing name INPUT_MODULE for the attributeD type CDD$PROCESSING_NAME, supplied by Oracle CDD/Repository.@ g. Begins the list of relationships that the generic entity- definition INPUT_MODULE_OBJ includes.= h. Specifies the relationship type CDD$COMPILED_DERIVED_> FROM, which is supplied by Oracle CDD/Repository, as aB relationship owned by the  generic entity INPUT_MODULE_OBJ.B This relationship type specifies the generic entity INPUT_B MODULE_COB (based on the entity type CDD$SOURCE_MODULE) as its relationship member.A i. Ends the relationship definition of CDD$COMPILED_DERIVED_ FROM.D j. Ends the list of relationships the generic entity definition INPUT_MODULE_OBJ owns.C k. Ends the definition of the generic entity INPUT_MODULE_OBJ.D l. Ends the CDD$IMAGE_DERIVED_FRO M relationship definition that MY_PROGRAM_EXE owns.= m. Specifies a relationship type CDD$IMAGE_DERIVED_FROM,B supplied by Oracle CDD/Repository, that the generic entity' definition MY_PROGRAM_EXE owns.8 n. The GENERIC clause creates a generic entity as a9 relationship member of the CDD$IMAGE_DERIVED_FROMC relationship, based on the CDD$COMPILED_MODULE entity type.? o. Specifies the processing name OUTPUT_MODULE_OBJ for the@ at tribute type CDD$PROCESSING_NAME, which is supplied by Oracle CDD/Repository.D p. Begins the list of relationships that the new generic entity. definition OUTPUT_MODULE_OBJ includes.B q. Specifies the relationship type CDD$COMPILED_DERIVED_FROM,B supplied by Oracle CDD/Repository, as a relationship ownedB by the generic entity OUTPUT_MODULE_OBJ. This relationshipB type specifies the generic entity OUTPUT_MODULE_COB (based@ on the entity ty pe CDD$SOURCE_MODULE as its relationship member.A r. Ends the relationship definition of CDD$COMPILED_DERIVED_ FROM.> s. Ends the list of relationships that the generic entity* definition OUTPUT_MODULE_OBJ owns.D t. Ends the definition of the generic entity definition OUTPUT_ MODULE_OBJ.D u. Ends the CDD$IMAGE_DERIVED_FROM relationship definition that MY_PROGRAM_EXE owns.= v. Ends the list of relationships the generic e ntity MY_ PROGRAM_EXE owns.A w. Ends the definition of the generic entity MY_PROGRAM_EXE.= Because the GENERIC clause of the DEFINE GENERIC commandA creates the INPUT_OBJ and OUTPUT_OBJ generic entities, these= entities do not have directory names. You can view their? definitions only with the SHOW GENERIC/FULL command, which2 displays their owner (MY_PROGRAM_EXE entity).? 2.CDO> SHOW GENERIC CDD$EXECUTABLE_IMAGE/FULL MY_PROGRAM_EXEA Definit ion of MY_PROGRAM_EXE (Type : CDD$EXECUTABLE_IMAGE)) | Contains CDD$IMAGE_DERIVED_FROMN | | INPUT_MODULE_OBJ (Type : CDD$COMPILED_MODULE)4 | | | Contains CDD$COMPILED_DERIVED_FROMO | | | | INPUT_MODULE_COB (Type : CDD$SOURCE_MODULE)) | Contains CDD$IMAGE_DERIVED_FROMN | | OUTPUT_MODULE_OBJ (Type : CDD$COMPILED_MODULE)4 | | | Contains CDD$COMPILED_DERIVED_FROMO | |  | | OUTPUT_MODULE_COB (Type : CDD$SOURCE_MODULE)< In this example, the DEFINE GENERIC command creates the< generic element definition MY_PROGRAM_EXE, based on the> type CDD$EXECUTABLE_IMAGE. The first relationship defined? is the CDD$IMAGE_DERIVED_FROM relation, supplied by OracleA CDD/Repository, which in turn owns the CDD$COMPILED_DERIVED_? FROM relation, also supplied by Oracle CDD/Repository. The< second relationship defined is a CDD$IMAGE_DERIVED_FROM? relation, which in turn owns another CDD$COMPILED_DERIVED_ FROM relation.> The first relationship links the executable image and itsA compiled modules. The second relationship links the compiled# modules and the source module.7 3.CDO> DEFINE GENERIC BOOK CDD_PLUS_REFERENCE_MANUAL< cont> MCS_processingName IS "CDD_PLUS_REFERENCE_MANUAL"+ cont> LIBRARY_NUMBER IS "AA-KL45A-TE".. cont> END BOOK CDD_PLUS_REFERENCE_MANUAL.C This ex ample creates an entity named CDD_PLUS_REFERENCE_MANUAL based on the BOOK protocol./ 4.CDO> DEFINE GENERIC LIBRARY ORACLE_LIBRARY1 cont> MCS_processingName IS "ORACLE_LIBRARY"# cont> ADDRESS IS "NASHUA, NH". cont> RELATIONSHIPS.A cont> RELATIONSHIP BOOK_IN_LIBRARY CDD_PLUS_REFERENCE_MANUAL, cont> END BOOK_IN_LIBRARY RELATIONSHIP. cont> END RELATIONSHIPS.& cont> END LIBRARY ORACLE_LIBRARY.A This example creates an entity named ORACLE_LIBRARY based on the LIBRARY protocol./ 5.CDO> DEFINE GENERIC LIBRARY ORACLE_LIBRARY2 cont> MCS_processingName IS "ORACLE_LIBRARY". cont> RELATIONSHIPS.= cont> RELATIONSHIP BOOK_IN_LIBRARY CDO_REFERENCE_MANUAL., cont> END BOOK_IN_LIBRARY RELATIONSHIP. cont> RELATIONSHIPS." cont> GENERIC BOOK USER_GUIDE. cont> MCS_processingName IS "USER_GUIDE". cont> END RELATIONSHIPS.& cont> END LIBRARY ORACLE_LIBRARY.@ This command creates a relationship member using the DEFINE GENERIC command./ 6.CDO> DEFINE GENERIC LIBRARY ORACLE_LIBRARY4 cont> MCS_processingName IS "ORACLE_LIBRARY"& cont> ADDRESS IS "NASHUA, NH". cont> RELATIONSHIPS., cont> RELATIONSHIP BOOK_IN_LIBRARY cont> GENERIC BOOK4 cont> MCS_processingName IS "USER_GUIDE" cont> END RELATIONSHIPS.& cont> END LIBRARY ORACLE_LIBRARY.? This example uses the DEFINE GENERIC command to define theA  relationship member USER_GUIDE. Note that the keyword DEFINEA and the relationship member's entity name have been omitted./ 7.CDO> DEFINE GENERIC LIBRARY ORACLE_LIBRARY4 cont> MCS_processingName IS "ORACLE_LIBRARY"& cont> ADDRESS IS "NASHUA, NH". cont> RELATIONSHIPS., cont> RELATIONSHIP BOOK_IN_LIBRARY cont> GENERIC BOOK4 cont> MCS_processingName IS "USER_GUIDE"& cont> LIBRARY_NUMBER IS 1. cont> END GENE RIC.1 cont> END BOOK_IN_LIBRARY RELATIONSHIP. cont> END RELATIONSHIPS.& cont> END LIBRARY ORACLE_LIBRARY.? This example uses the DEFINE GENERIC command to define theA relationship member USER_GUIDE. Note that the keyword DEFINEA and the relationship member's entity name have been omitted.- 8.CDO> SHOW GENERIC LIBRARY ORACLE_LIBRARYC To view the definition of the relationship member created withD the DEFINE GENERIC command in the previous example, you need to@ use the SHOW GENERIC command for its owner, ORACLE_LIBRARY.C 9.CDO> DEFINE GENERIC CDD$RDB_DATABASE PERSONNEL DESCRIPTION ISJ cont> "DEFINE RDB_DATABASE PERSONNEL, CONTAINING RECORD EMPLOYEE_REC". cont> CDD$PROCESSING_NAME IS "PERSONNEL". cont> RELATIONSHIPS./ cont> RELATIONSHIP CDD$RDB_DATA_AGGREGATE7 cont> GENERIC CDD$DATA_AGGREGATE DESCRIPTION ISI cont> "DEFINE DATA AGGREGATE EMPLOYEE_REC CONTAINING FIRST_NAME,"! cont>  "LAST_NAME, EMP_ID"4 cont> CDD$PROCESSING_NAME IS "EMPLOYEE_REC". cont> RELATIONSHIPS.: cont> RELATIONSHIP CDD$DATA_AGGREGATE_CONTAINS; cont> GENERIC CDD$DATA_ELEMENT DESCRIPTION ISG cont> "DEFINE DATA ELEMENT FIRST_NAME = FIELD FIRST_NAME"7 cont> CDD$PROCESSING_NAME IS "FIRST_NAME"0 cont> CDD$DATA_ELEMENT_DATATYPE 14/ cont> CDD$DATA_ELEMENT_LENGTH 10.4 cont> END CDD$DATA_ELEMENT  FIRST_NAME.0 cont> CDD$DATA_SEQUENCE_NUMBER IS 1.? cont> END CDD$DATA_AGGREGATE_CONTAINS RELATIONSHIP.: cont> RELATIONSHIP CDD$DATA_AGGREGATE_CONTAINS; cont> GENERIC CDD$DATA_ELEMENT DESCRIPTION ISE cont> "DEFINE DATA ELEMENT LAST_NAME = FIELD LAST_NAME"6 cont> CDD$PROCESSING_NAME IS "LAST_NAME"0 cont> CDD$DATA_ELEMENT_DATATYPE 14/ cont> CDD$DATA_ELEMENT_LENGTH 15.3 cont> END CD D$DATA_ELEMENT LAST_NAME.0 cont> CDD$DATA_SEQUENCE_NUMBER IS 2.? cont> END CDD$DATA_AGGREGATE_CONTAINS RELATIONSHIP.: cont> RELATIONSHIP CDD$DATA_AGGREGATE_CONTAINS; cont> GENERIC CDD$DATA_ELEMENT DESCRIPTION IS? cont> "DEFINE DATA ELEMENT EMP_ID = FIELD EMP_ID"3 cont> CDD$PROCESSING_NAME IS "EMP_ID"0 cont> CDD$DATA_ELEMENT_DATATYPE 4.0 cont> END CDD$DATA_ELEMENT EMP_ID.0 cont> CD D$DATA_SEQUENCE_NUMBER IS 3.? cont> END CDD$DATA_AGGREGATE_CONTAINS RELATIONSHIP." cont> END RELATIONSHIPS.2 cont> END CDD$DATA_AGGREGATE EMPLOYEE_REC.4 cont> END CDD$RDB_DATA_AGGREGATE RELATIONSHIP. cont>END RELATIONSHIPS.) cont>END CDD$RDB_DATABASE PERSONNEL.> This example defines an Oracle Rdb database PERSONNEL and; creates a CDD$RDB_DATABASE entity PERSONNEL in the CDO@ repository. This database contains one record EMPLOYEE_REC,=  which in turn contains three fields that were defined byA nesting the GENERIC clauses: FIRST_NAME, LAST_NAME, and EMP_C ID. (It is recommended that you define Oracle Rdb databases inA the CDO repository through the SQL. See Oracle Rdb7 Guide toB Database Design and Definition for more information on how to( use CDO with Oracle Rdb databases.)< 10 CDO> SHOW GENERIC CDD$RDB_DATABASE/AUDIT=ALL PERSONNEL9 Definition of PERSONNEL (Type : CDD$RDB_DATABASE)4  | | History entered by SMITH ([CDD,SMITH]) | | using CDO V1.0> | | to CREATE definition on 15-DEC-1987 10:31:11.59) | Contains CDD$RDB_DATA_AGGREGATEI | | EMPLOYEE_REC (Type : CDD$DATA_AGGREGATE)6 | | | Contains CDD$DATA_AGGREGATE_CONTAINSO | | | | FIRST_NAME (Type : CDD$DATA_ELEMENT)6 | | | Contains CDD$DATA_AGGREGATE_CONTAINSO | | | | LAST_NAME  (Type : CDD$DATA_ELEMENT)6 | | | Contains CDD$DATA_AGGREGATE_CONTAINSO | | | | EMP_ID (Type : CDD$DATA_ELEMENT) CDO>B This example displays the history list of every element ownedA by the PERSONNEL database by using the SHOW GENERIC command. 3 KEY Format= DEFINE KEY [ qualifier ] ... key-name key-equivalence 4 Parameters 5 key-name& Specifies the key you are defining. 5 key-equivalenceC Specifies the character string you want processed when you pressD the key. Enclose the string in quotation marks to preserve spaces and lowercase characters. 4 Qualifiers 5 /ECHO Format options: /ECHO (default) /NOECHO@ Specifies whether CDO displays the equivalence string on yourD terminal screen after you press a key. The default is ECHO, which# displays the equivalence string.= You cannot use the /NOECHO qualifier with the /NOTERMINATE qualifier. 5 /IF_STATE Format options: /IF_STATE=state-name /NOIF_STATE (default)B Specifies the state that must be in effect for a key definitionA to work. If you omit the /IF_STATE qualifier or use the /NOIF_A STATE qualifier, CDO uses the current state. The state name isB an alphanumeric string. The /SET_STATE qualifier or the SET KEY! command establishes the state. 5 /LOCK_STATE Format options:  /LOCK_STATE /NOLOCK_STATE (default)> Specifies whether the state set by the /SET_STATE qualifierD remains in effect until a user explicitly changes it. By default,D the /SET_STATE qualifier is in effect only for the next definable@ key you press or the next read-terminating character that you type.B If you specify the /LOCK_STATE qualifier, you must also specify the /SET_STATE qualifier. 5 /PROTECTED Format options: /PROTECTED !/NOPROTECTED (default)C Specifies whether CDO protects a key against later redefinition.5 The default is no protection against redefinition. 5 /SET_STATE Format options: /SET_STATE=state-name /NOSET_STATE (default)@ Specifies a new state for CDO to set when you press a key; by@ default, CDO resets the current locked state. If you have notC included this qualifier in a key definition, you can use the SETA KEY command to change the current state. "The state name can be any alphanumeric string. 5 /TERMINATE Format options: /TERMINATE /NOTERMINATE (default)A Specifies whether CDO immediately processes the key definition> when you press the key (equivalent to typing the string and pressing the Return key).C The default is NOTERMINATE, which allows you to press other keysB before CDO processes the definition. The /NOTERMINATE qualifier= allows you to create key definitions that insert te#xt into@ command lines, after prompts, or into other text that you are typing.= You cannot use the /NOTERMINATE qualifier with the /NOECHO qualifier. 4 DescriptionD The DEFINE KEY command assigns definitions to the peripheral keysD on certain terminals. These definitions can direct CDO to perform one of the following actions: o Execute a CDO command) o Append a qualifier to a CDO command; o Append a text string to a CDO or system-level command $9 When you define a key to insert a text string, use theC /NOTERMINATE qualifier so that you can continue typing more data after CDO inserts the string.C You should take advantage of the echo feature in most instances.@ With /ECHO set, CDO displays the key definition on the screen each time you press the key.A You can use the /SET_STATE qualifier to increase the number of? key definitions available on your terminal keyboard. You can@ assign the same key any num %ber of definitions, as long as youD associate each definition with a different state. State names canB contain alphanumeric characters, dollar signs, and underscores.= See the SET KEY command for information on changing keypad states.B Redefineable Key Names and Terminal Designations lists the keys: you can define on the keyboards of different terminals.= Table 1-3 Redefineable Key Names and Terminal Designations; Key Name VT100-series VT200- and VT300-ser&ies' PF1 PF1 PF1' PF2 PF2 PF2' PF3 PF3 PF3' PF4 PF4 PF40 KP0, KP1, ..., 0, 1, ..., 9 0, 1, ..., 9 KP9% PERIOD . .% COMMA , ,% MINUS - -) ENTER ENTER ENTER' LEFT < - < -' RIGHT - > - >( E1 - ' FIND/ E2 - INSERT HERE* E3 - REMOVE* E4 - SELECT/ E5 - PREV SCREEN/ E6 - NEXT SCREEN( HELP - HELP& DO - DO4 F6, F7, ..., - F6, F7, ..., F20 F20 4 Examples/ CDO> DEFINE KEY /TERMINATE PF3 "SHOW DEFAULT"A In this example, the DEFINE( KEY command assigns the CDO SHOWB DEFAULT command to the PF3 key. CDO executes the SHOW DEFAULT( command when you press the PF3 key. 3 PARTITION Format& DEFINE PARTITION partition-nameB [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ]@ [ PARENT_PARTITION IS parent-partition-name ]C [ LOOKASIDE_PARTITION IS look-partition-name ,... ]...@ [ ] ) [ AUTOPURGE ] [ NOAUTOPURGE ] . [ ] 4 Parameters 5 partition-name, Specifies the partition you are creating. 5 text; Adds information. Within the DESCRIPTION clause, this isB information documenting the partition; within the AUDIT clause,C it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT c*lause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 parent-partition-name> Specifies the parent partition, which must currently exist. 5 look-partition-name= Specifies a related partition that is visible through this9 partition. The related partition must currently exist. 4 DescriptionC The DEFINE PARTITION command creates a partition. Partitions are+ the means by which you control +elements.D When you control an element, you identify the partition, which isB called the base partition, in which a public, immutable copy ofC this element resides. CDO provides two ways to control elements, as follows:A o On an element-by-element basis, with the CONSTRAIN command.? CDO controls the element that appears within the command.? o Through a context with the DEFINE CONTEXT and SET CONTEXT: commands. Once you set the context, CDO controls all7 , subsequent elements until the context is changed.? Once an element has been controlled, you use the RESERVE andC REPLACE commands to create subsequent versions. This reservation4 system prevents uncontrolled changes to elements.@ You can link partitions together to control change in various? stages of a project. Each partition then represents a higher= level of approval, or completion, in the overall partitionB hierarchy. The PROMOTE command moves elements higher within - the hierarchy.> The PARENT_PARTITION clause in the DEFINE PARTITION commandC creates a partition hierarchy by linking partitions in a parent-B child relationship. The first, or root, partition does not have@ a parent partition. The second partition in the hierarchy hasC the first partition as its parent, and so on down the hierarchy.@ This clause can be specified only once during the lifetime ofD the partition, in either the DEFINE PARTITION or CHANGE PARTITION comma.nd.? The LOOKASIDE_PARTITION clause makes the contents of another@ partition visible, provided that you have read privileges forC the partition. You can read, but you cannot reserve, replace, or change the contents.> The AUTOPURGE keyword ensures that CDO automatically purges> intermediate versions of elements in the partition when you? promote the latest version. The NOAUTOPURGE keyword prevents this automatic purging. 4 Examples9 CDO> DEFINE PARTITION /FINAL_RELEASE AUTOPURGE. 19 CDO> DEFINE PARTITION FIELDTEST_RELEASE 25 cont> PARENT_PARTITION IS FINAL_RELEASE AUTOPURGE.( CDO> DEFINE PARTITION SECOND_BASELEVEL9 cont> PARENT_PARTITION IS FIELDTEST_RELEASE AUTOPURGE.' CDO> DEFINE PARTITION FIRST_BASELEVEL8 cont> PARENT_PARTITION IS SECOND_BASELEVEL AUTOPURGE.! CDO> DEFINE PARTITION FRONT_END7 cont> PARENT_PARTITION IS FIRST_BASELEVEL AUTOPURGE.9 CDO> DEFINE PARTITION BACK_END 30, cont> PARENT_PARTITION IS FIRST_BASELEVEL4 cont> LOOKASIDE_PARTITION IS FRONT_END AUTOPURGE.9 CDO> CHANGE PARTITION FRONT_END 4) cont> LOOKASIDE_PARTITION IS BACK_END. . . .9 CDO> DEFINE CONTEXT BILL_CONTEXT 5% cont> BASE_PARTITION IS FRONT_END.# CDO> DEFINE CONTEXT BETSY_CONTEXT$ cont> BASE_PARTITION IS BACK_END. CDO> DEFINE CONTEXT QA_CONTEXT- cont> BASE_PARTITION IS FIELDTEST_RELEASE.C In this e1xample, successive DEFINE PARTITION commands create a partition hierarchy., 1 The root partition is FINAL_RELEASE.B 2 Each successive partition in the hierarchy is the child of the previous partition.@ 3 A partition hierarchy can include multiple children of aB previous partition; LOOKASIDE_PARTITION makes the contents) of FRONT_END visible to BACK_END.C 4 The CHANGE PARTITION command makes the contents of BACK_END visible to2 FRONT_END.C 5 The base partition, or lowest visible partition, is set for! three different contexts. 3 PROTECTION Format DEFINE PROTECTION FOR# { DIRECTORY }# { FIELD }5 { RECORD } element-name ,...# { }# { GENERIC type-name } [ POSITION n ]; [ AFTER id1+ ... ] IDENTIFIER id2+... ACCESS 3 [ ] right+ ... .A { REPOSITORY anchor-name }A DEFINE PROTECTION FOR { GENERIC MCS_CONTEXT context-name }A { }, [ POSITION n ] IDENTIFIER id2 { ACCESS }- { DEFAULT_ACCESS } right+ ... . { } 4 Parameters 5 type-name> Specifies the type of the generic ele4ment whose ACE you are defining. 5 element-name@ Specifies the element whose ACE you are defining. You can use$ wildcard characters in this name. 5 nB Specifies the relative position (a positive integer) in the ACL? of the ACE you are defining. If you omit the position or theD identifier, the ACE you are defining becomes the first ACE in the ACL. 5 id1C Specifies the identifier or identifiers of the existing ACE that5 will immediately prec5ede the ACE you are defining. 5 id2? Specifies the identifier or identifiers of those users whoseD access to the element or repository you are defining in this ACE. 5 rightD Specifies the access rights CDO grants to the users you specified in id2. 5 anchor-nameA Specifies the anchor directory of the repository whose ACE you are defining. 5 context-name Specifies the context. 4 Description< The DEFINE PROTECTION command add 6s an access control list@ entry (ACE) to the access control list (ACL) of an element or> repository. When you specify FOR GENERIC MCS_CONTEXT or FORC REPOSITORY, this command can also add an ACE to a default access? control list. To define protection, you need CONTROL access.B The ACEs in an ACL determine which users can access the elementB or repository and what operations each user can perform. An ACE' consists of the following two parts:D o One or more identifiers th 7at specifies a user or set of users:& UIC, general, and system-defined> o A set of access rights: READ, WRITE, EXECUTE, and DELETEB The POSITION clause specifies the relative position CDO assigns< your ACE in the ACL. ACEs are numbered in ascending orderC starting with number one. If you specify a number that is larger? than the number of ACEs in the ACL, the ACE you are creating% becomes the last entry in the ACL.@ The AFTER clause specifies the identifiers of an 8existing ACE? that will immediately precede the ACE that you are defining.A The IDENTIFIER clause specifies the identifiers of the user orC users whose access to the element or repository you are defining> in this ACE. If an ACE contains more than one identifier, a@ user's process must hold all the identifiers specified in the7 ACE to receive the access rights granted by the ACE.@ The ACCESS clause specifies the rights that the ACE provides.D This clause is especially u 9seful when you need to restrict accessB to a context or to a repository. For example, by modifying this? clause, you can restrict access to a single user for OpenVMS BACKUP or VERIFY operations.B The DEFAULT_ACCESS clause is only valid for contexts (specified@ as GENERIC MCS_CONTEXT) or repositories. The clause specifies= the default access rights for each new element you create.? If a context is set, the new element receives default access@ rights defined for this conte:xt. If a context is not set, theA new element receives the default access rights defined for the repository.D For complete information on defining protection, see Using Oracle% CDD/Repository on OpenVMS Systems. 4 Examples- 1.CDO> DEFINE PROTECTION RECORD PERSONNEL cont> POSITION 26 cont> IDENTIFIER [JONES,DICT]+LOCAL+INTERACTIVE& cont> ACCESS READ+WRITE+DELETE.A In this example, the DEFINE PROTECTION command creates a new? second AC ;E for the PERSONNEL record. The former second ACE becomes the new third ACE.1 2.CDO> DEFINE PROTECTION FOR RECORD PERSONNEL1 cont> AFTER [JONES,DICT]+LOCAL+INTERACTIVE0 cont> IDENTIFIER [CDD,SMITH] ACCESS READ.A In this example, the DEFINE PROTECTION command inserts a new? ACE with the identifier [CDD,SMITH] after the ACE with the0 [JONES,DICT]+LOCAL+INTERACTIVE identifiers.? 3.CDO> DEFINE PROTECTION FOR RECORD BENEFITS.*;* POSITION 42 cont> < IDENTIFIER [PERSONNEL,*] ACCESS SHOW.D In this example, the DEFINE PROTECTION command creates a fourthD ACE for all current records in the BENEFITS directory. This ACED does not become the default protection for definitions that are subsequently created.1 4.CDO> DEFINE PROTECTION FOR RECORD PERSONNEL* cont> IDENTIFIER [*,*] ACCESS NONE.B In this example, the DEFINE PROTECTION command creates an ACE@ that denies all access rights to all users. CDO pla =ces thisD ACE first in the ACL, because the user did not specify either aD POSITION clause or an AFTER clause in the command. As a result,C everyone (including the user who issued the command) is denied" all access to the definition.@ Only the owner can regain access to the definition by usingA either the DELETE PROTECTION or CHANGE PROTECTION command to remove or change the ACE.5 5.CDO> DEFINE PROTECTION FOR REPOSITORY PERSONNEL+ cont> POSITION 2 >IDENTIFIER [SYSTEM]. cont> ACCESS READ+WRITE+DELETE+CONTROL.> In this example, the DEFINE PROTECTION command creates an; ACE in the second position that grants the SYSTEM user& READ+WRITE+DELETE+CONTROL access.5 6.CDO> DEFINE PROTECTION FOR REPOSITORY PERSONNEL( cont> POSITION 2 IDENTIFIER [*,*]' cont> DEFAULT_ACCESS READ+WRITE.7 CDO> DEFINE FIELD NEW_FIELD DATATYPE TEXT SIZE 5.; In this example, the DEFINE PROTECTION command defines> ? the default access rights for the PERSONNEL repository toB READ+WRITE. If a context has not been set, CDO will grant the@ newly created field, NEW_FIELD, with access rights that are: equivalent to the repository's default access rights.: 7.CDO> DEFINE PROTECTION FOR REPOSITORY CDD$REPOSITORY2& cont> POSITION 2 IDENTIFIER [*,*] cont> ACCESS NONE.? In this example, the DEFINE PROTECTION command defines theB access rights for the repository using a logical na@me for the repository name. #4 Protecting_the_Repository_AnchorD Oracle CDD/Repository places a security ACL on repository anchors@ when a new repository is created, when a repository is moved,A or when the location of the repository is changed with the CDO command VERIFY/LOCATION/FIX. The ACL is as follows:C (IDENTIFIER=CDD$SYSTEM,ACCESS=READ+WRITE+EXECUTE+DELETE+CONTROL)) (IDENTIFIER=[*,*],ACCESS=READ+EXECUTE)A (IDENTIFIER=CDD$SYSTEM,OPTIONS=DEFAULT+ANOPROPAGATE,ACCESS=READ$ +WRITE+EXECUTE+DELETE+CONTROL)= (IDENTIFIER=[*,*],OPTIONS=DEFAULT+NOPROPAGATE,ACCESS=NONE)C To add these ACLs to existing repository anchors on your system,3 you can use either one of the following methods:! o OpenVMS SET ACL/ACL command o ACL EditorC In addition to this default protection, you should add UIC-based4 protection with either of the following commands:$ o OpenVMS SET PROTECTION command1 o OpenVMS CREATE/DIRECBTORY/PROTECTION command= For more information about setting OpenVMS protection on aB repository's OpenVMS anchor directory, see the OpenVMS Examples at the end of this section. 5 Examples Example 1:* $ SET ACL/ACL=(IDENTIFIER=CDD$SYSTEM, -A _$ ACCESS=READ+WRITE+EXECUTE+DELETE+CONTROL) [SMITH]DIC.DIR(1)A $ SET ACL/ACL=(IDENTIFIER=[*,*],ACCESS=READ) [SMITH]DIC.DIR(1)B Protect your repository anchor directory with an ACL containing@ the ACEs shown in tChe previous example. With these ACEs, onlyD repository files can be created in a repository anchor directory.C In this example, the SET ACL/ACL command, creates an ACL for the: OpenVMS anchor directory of the [SMITH.DIC] repository: Example 2:# $ SET ACL/EDIT [SMITH]DIC.DIR(1) $ EDIT/ACL [SMITH]DIC.DIR(1)> You might find it easier to use the ACL Editor to create anA ACL for an OpenVMS anchor directory by using either one of the following DCL commands: EDxample 3: $ SHOW ACL [SMITH]DIC.DIR(1)@ element type: file, element name: CDD$DISK:[SMITH]DIC.DIR(1),$ on 27-FEB-1989 09:54:40.62J (IDENTIFIER=CDD$SYSTEM,ACCESS=READ+WRITE+EXECUTE+DELETE+CONTROL)( (IDENTIFIER=[*,*],ACCESS=READ)< To display the ACL you just created, use the DCL SHOW ACL command: Example 4:1 $ SET PROTECTION=(S:RWED,,,) [SMITH]DIC.DIR(1)@ You should also add UIC-based protection to your repository'sD OpenVMS anchor Edirectory. In this example, the DCL SET PROTECTION> command creates UIC-based protection for the OpenVMS anchor directory [SMITH.DIC]. 3 RECORD_Command Format DEFINE RECORD record-nameB [ DESCRIPTION IS /*text*/ ] [ AUDIT IS /*text*/ ]$ [ record-property ] ...( [ constraint-clause ] ... .& { included-name-clause }& { local-field-clause }, { structure-name-clause } ... .& F { }& { variants-clause }* END [ record-name ] RECORD . 4 Parameters 5 record-name1 Specifies the record element you are creating. 5 text; Adds information. Within the DESCRIPTION clause, this is? information documenting the record element; within the AUDITD clause, it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to documenGt comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 record-propertyD Adds a property to the record element. See rec-properties for the" record properties CDO provides. 5 constraint-clauseA Specifies a condition that affects adding or modifying data toB the database table (CDO record). CDO provides syntax for recordA constraints, including specificatHion of NOT NULL, PRIMARY KEY,= FOREIGN KEY, UNIQUE, and CHECK (arbitrary search condition5 constraint) for fields and records. See the DEFINE2 RECORD_Constraint command for more information. 5 included-name-clause> Allows you to include existing field definitions and record5 definitions within record elements. See the DEFINE5 RECORD_Included_Name command for more information. 5 local-field-clause= Allows you to create local field definitions within recorIdA elements. Describes the attributes of the local field. See the: DEFINE RECORD_Local_Field command for more information. 5 structure-name-clause@ Creates structure definitions within record elements. See the= DEFINE RECORD_Structure_Name command for more information. 5 variants-clause? Creates variants definitions within record elements. See the7 DEFINE RECORD_Variants command for more information. 4 Description6 The DEFINE RECORD command creates J a record element.@ If you supply a record name that is already used for a recordB element in your default directory, CDO creates a new version of" the existing record definition.A The DEFINE RECORD command evaluates the record name you supply@ to determine if it is a logical name. If the record name is aB logical name, CDD translates it. In some cases, the translation= of the logical name for the record may not be a valid name> for a record definition, and CDO will not c Kreate the record@ definition. For example, if you have defined JOE as a logical? name that translates to MYNODE::[RICHIE], CDD translates the@ symbol JOE. The following DEFINE RECORD command fails because( MYNODE::[RICHIE] is not a valid name: CDO> DEFINE RECORD JOE.* %CDO-F-ERRDEFINE, error defining object5 -CDD-F-NOTADIC, Does not contain a CDO dictionary: MYNODE::@ If this error occurs, deassign the logical name with the same@ name as the object, and perform tLhe operation again. To avoidB this logical name conflict, use unique names that represent the! type of entity you are naming. 4 Examples& CDO> DEFINE RECORD EDUCATION_RECORD. cont> BADGE_NUMBER. cont> BACHELOR_DEGREE. cont> MASTER_DEGREE. cont> DOCTORATE_DEGREE. cont> END RECORD.; In this example, the DEFINE RECORD command creates the@ EDUCATION_RECORD record definition from four existing field definitions. 3 RECORD_Constraint FMormat CONSTRAINT constr-nameG [UNIQUE field-name, ... ]G [PRIMARY KEY field-name, ... ]G [FOREIGN KEY field-name, ... REFERENCES record-name field-name, ...]G [CHECK (expression) ] [DEFERRABLE ] [NOT DEFERRABLE] 4 Parameters 5 constr-name( Specifies the name of the constraint. 5 field-nameA SpecifiesN the name of the field to be used in a key or a field that is unique. 5 record-name$ Specifies the name of the record. 5 expression; Specifies a Boolean expression. See Expressions for more information. 4 Description> Use to specify a condition that affects adding or modifyingC data to the database table (CDO record). CDO provides syntax forC record constraints, including specification of NOT NULL, PRIMARYB KEY, FOREIGN KEY, UNIQUE, and CHECKO (arbitrary search condition& constraint) for fields and records. 4 Examples CDO> DEFINE RECORD PARTS/ cont> CONSTRAINT PARTS_PMK PRIMARY KEY PART_ID* cont> CONSTRAINT PARTS_UNQ UNIQUE PART_NO cont> CONSTRAINT PART_CST CHECKH cont> ANY P IN PARTS WITH (PART_ID IN PARTS = PART_ID_USED_IN IN PARTS) cont> CONSTRAINT PART_FRK4 cont> FOREIGN KEY PART_NO REFERENCES PARTS PART_ID. cont> PART_NO. cont> PART_ID. cont> PART_ID_USED_IN. cont> PART_QUANT. cont> END. CDO> PSHOW RECORD PARTS/FULL Definition of record PARTS% | Contains field PART_NO- | | Datatype signed word% | Contains field PART_ID1 | | Datatype signed longword- | Contains field PART_ID_USED_IN( | | Based on ID_DOM5 | | | Datatype signed longword( | Contains field PART_QUANT- | | Datatype signed word= | Constraint PARTS_PMK primary k Qey PART_ID NOT DEFERRABLE8 | Constraint PARTS_UNQ unique PART_NO NOT DEFERRABLEC | Constraint PART_CST (ANY (P IN PARTS WITH (PART_ID IN PARTS EQ+ PART_ID_USED_IN IN PARTS))) NOT DEFERRABLEJ | Constraint PART_FRK foreign key PART_NO references PARTS PART_ID NOT DEFERRABLE> This example uses the CDO DEFINE RECORD command syntax to/ establish constraints on the PARTS record.& NOTE> For the purposes of this example, it is assumed Rthat theB field definitions referred to in the record definitions have- already been defined in the repository.? This example assumes the PART_ID to be the primary key and@ the PART_NO to be a unique value across all possible parts.> By not specifying whether the constraints are deferrable,A the default evaluation time is accepted. In CDO, the defaultC evaluation time for constraints is NOT DEFERRABLE. Constraints% are evaluated at statement time.> S Using CDO, the record PARTS is defined with the following attributes: o Primary key PARTS_PMK# o Unique constraint PARTS_UNQ! o Check constraint PART_CST' o Foreign key constraint PART_FRK 3 RECORD_Included_Name FormatA [ BASED ON field-name ]A [ ]A [ {BIT } ]A [ T {BYTE } ]A [ ALIGNED ON {WORD } BOUNDARY ]A [ {LONGWORD } ]C name [ {QUADWORD } ] .A [ {OCTAWORD } ]A [ ]A [ CONSTRAINT constr-name NOT NULL [DEFERRABLE ] ]A [ [UNOT DEFERRABLE ] ]A [ ] 4 Parameters 5 name@ Specifies the existing field or record definition you want toB include in the record element you are creating. The named field= or record definition must already exist in the repository. 5 field-nameA Specifies the name of the field to be used in a key or a field that is unique. 5 constr-name; Specifies the name of the constraint foVr the local fieldA definition you are changing. See the DEFINE RECORD_Command for# more information on constraints. 4 Description> The Included Name clause allows you to specify global field= definitions and record definitions within record elements.A If you do not specify a directory name as part of the included= name, CDO looks for the record or field definition in your current default directory.A To improve performance, some languages and language process Wors@ have alignment restrictions for data definitions. The ALIGNED< clause aligns a field or record definition on a specified; boundary relative to the beginning of the record you are? defining. Each field or record, except BIT fields, begins byA default on the first byte following the last field. BIT fields9 begin on the bit immediately following the last field.> The ALIGNED clause aligns fields or records within a record? relative to the start of the record, not relatiXve to virtual memory locations.> For example, if you specify LONGWORD alignment for a field,B that field does not necessarily begin on a longword boundary inC memory. Rather, the field begins some multiple of 32 bits beyondD the start of the record. To correctly use the aligned clause, youD must know the memory alignment techniques of the language you use with CDO. 4 Examples# 1.CDO> DEFINE RECORD FULL_NAME.' cont> LAST_NAME ALIGNED ON WORD.( conYt> FIRST_NAME ALIGNED ON WORD., cont> MIDDLE_INITIAL ALIGNED ON WORD. cont> END RECORD.A In this example, the DEFINE RECORD command creates the FULL_A NAME record element in your default directory using existing= field definitions. The keyword ALIGNED starts each field# definition on a word boundary./ 2.CDO> DEFINE RECORD CONTRACT.HOME_ADDRESS. cont> STREET_ADDRESS. cont> CITY. cont> STATE. cont> POSTAL_CODE. cont>Z END RECORD.A In this example, the DEFINE RECORD command creates the HOME_= ADDRESS record element using field definitions from your> default directory. Because you specify a path name, HOME_3 ADDRESS is created in the EMPLOYEES directory.2 3.CDO> SET DEFAULT DISK1:[JONES.DICT]PERSONNEL- CDO> DEFINE RECORD CONTRACT.WORKER_REC. cont> FULL_NAME.! cont> CONTRACT.DATE_HIRED." cont> CONTRACT.HOURLY_WAGE.& cont> CONTRACT.COMPLETION_DATE.[ cont> END RECORD.C In this example, the DEFINE RECORD command creates the WORKER_> REC record element in the PERSONNEL directory using field= definitions from the default PERSONNEL directory and the CONTRACT directory. 3 RECORD_Local_Field local-field-name [ DESCRIPTION IS /*text*/ ] [ field-property ] [ NOfield-property ] ... [ ]: [ {BIT } ]: [ {BYTE \ } ]: [ ALIGNED ON {WORD } BOUNDARY ]: [ {LONGWORD } ]: [ {QUADWORD } ]< [ {OCTAWORD } ] .: [ NOALIGNED ]: [ [ ] ]: [ CONSTRAINT constr-name NOT NULL [DEFERRABLE ] ]: [ [NOT DEF]ERRABLE ] ]: [ ] 4 Parameters 5 local-field-name3 Specifies the name of the locally defined field. 5 text; Adds information. Within the DESCRIPTION clause, this is? information documenting the record element; within the AUDITD clause, it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUD^IT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 field-property= Defines the characteristics of the data you store in field5 elements. See fld-properties for more information. 5 constr-name; Specifies the name of the constraint for the local field: definition you are creating or changing. See the DEFINE6 RECORD_Command for more information on constraints. 4 Description; T _he Local Field Clause allows you to specify local field= definitions and record definitions within record elements.A To improve performance, some languages and language processors@ have alignment restrictions for data definitions. The ALIGNED< clause aligns a field or record definition on a specified; boundary relative to the beginning of the record you are defining.D Each field or record, except BIT fields, begins by default on theC first byte following the last field `. BIT fields begin on the bit( immediately following the last field.> The ALIGNED clause aligns fields or records within a record? relative to the start of the record, not relative to virtual memory locations.> For example, if you specify LONGWORD alignment for a field,B that field does not necessarily begin on a longword boundary inC memory. Rather, the field begins some multiple of 32 bits beyondD the start of the record. To correctly use the aligned clause, youD maust know the memory alignment techniques of the language you use with CDO. 4 Examples CDO> DEFINE RECORD PRODUCE.6 cont> UPC_CODE DATATYPE LONGWORD NOT NULL DEFERRABLE.+ cont> WEIGHT CONSTRAINT WNOTNULL NOT NULL.5 cont> PRICE CONSTRAINT PNOTNULL NOT NULL DEFERRABLE.< cont> QUANTITY CONSTRAINT QNOTNULL NOT NULL NOT DEFERRABLE. cont> END.0 In this example, UPC_CODE is a local field. 3 RECORD_Structure_Name Format structure-name STRUCTUREH b [ DESCRIPTION IS /*text*/ ] [record-property] ...: [ {BIT } ]: [ {BYTE } ]: [ {WORD } ]< [ ALIGNED ON { } BOUNDARY ] .: [ {LONGWORD } ]: [ {QUADWORD } ]: [ {OCTAWORD } ]: c [ { } ]. [ included-name-clause ]. [ local-field-clause ]2 [ structure-name-clause ] .... [ ]. [ variants-clause ]8 END [ structure-name ] STRUCTURE . 4 Parameters 5 structure-name, Specifies the structure you are defining. 5 textD Documents the structure definitdion. Valid delimiters are /* */ or double quotation marks (" ").? You can use Japanese to document comments in the DESCRIPTION< clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 record-propertyB Adds a property to the structure definition. See rec-properties- for a list of the valid record properties. 5 included-name-clause? Includes existing field and record definitions within receord= elements. See DEFINE RECORD_Included_Name command for more information. 5 local-field-clause2 Specifies the locally defined field. See DEFINE3 RECORD_Local_Field command for more information. 5 structure-name-clause= Creates structure definitions within record elements. This+ section describes structure definitions. 5 variants-clauseB Creates variants definitions within record elements. See DEFINE0 RECORD_Variants command for more infofrmation. 4 DescriptionD The Structure Name Clause allows you to define a structure within a record element.@ A structure definition can include both field definitions and record definitions. 4 Examples CDO> DEFINE RECORD HOUSEHOLD. cont> ANNUAL_INCOME. cont> ADDRESS. cont> NUMBER_OF_DEPENDENTS.4 cont> DEPENDENTS STRUCTURE OCCURS 1 TO 10 TIMES< cont> DEPENDING ON NUMBER_OF_DEPENDENTS IN HOUSEHOLD. cont> NAME. cont> AGE.g cont> SEX.$ cont> END DEPENDENTS STRUCTURE. cont> END HOUSEHOLD RECORD.: In this example, the OCCURS...DEPENDING clause in theB DEPENDENTS structure specifies that the structure occurs 1 toB 10 times based on the value of the NUMBER_OF_DEPENDENTS field; definition in the HOUSEHOLD record element at runtime. 3 RECORD_Variants Format VARIANTS.= { }= {VARIANT [EXPRESSION IS cond-expr]h . }= { [included-name-clause ] }A { [local-field-clause ] } ...= { [structure-name-clause] ... END VARIANT . }= { [variants-clause ] }= { } END VARIANTS . 4 Parameters 5 cond-exprC Specifies an expression that represents the relationship betweenB two value expressioins. The value of a conditional expression is true, false, or null. 5 included-name-clause? Includes existing field and record definitions within record= elements. See DEFINE RECORD_Included_Name command for more information. 5 local-field-clauseE Specifies the locally defined field. See DEFINE RECORD_Local_Field command for more information. 5 structure-name-clauseC Creates structure definitions within record elements. See DEFINE1 RECORD_jStructure command for more information. 5 variants-clause7 Creates variants definitions within record elements. 4 DescriptionC The Variants Clause syntax identifies a set of overlays that can@ be used by a COBOL REDEFINES statement or by other languages.D Each variants definition can contain two or more fields, records,A structures, variants, or any combination of these definitions.B Be sure that the variants definitions you define conform to theC requireme knts of the language or language processor that accesses@ the record element. For example, you must include a structureC definition for each variants clause contained in a CDO record ifD you are developing a new application that will use a 3GL language and DIGITAL DATATRIEVE.A You can specify a different data type for each definition in a variants definition.D You can create any number of variants definitions within a record element.= You can create any number o lf definitions within a variants definition.= If you use an expression with one variant, you must use anB expression with every other variant in the variants definition.A In variant expressions, you can refer to a tag variable (field@ definition) whose runtime value determines which variant in aC variants definition maps to the record element. The tag variable cannot be part of an array.< At runtime, the product using CDO tests the value of eachC Boolean expressio mn in the variants definition to determine whichC definition is the current variants definition. The variants with9 a Boolean expression that evaluates to true is chosen.@ The values that you test for in the expressions of a variants2 definition must conform to the following rules:D o The values being tested must be valid values for the data typeD of the tag variable. For example, if the data type for the tag@ variable is text, the value you test for must be a string.nA o The range of values being tested in one expression must not: overlap the range of values in any other expression.B Each variants definition begins on the same byte in the record,= subject to individual alignment options. The length of the= longest definition in a variants definition determines the- overall length of the variants definition. 4 Examples' CDO> DEFINE RECORD PRODUCT_INVENTORY. cont> FIELD_ID. cont> VARIANTS." cont> VARIANT EoXPRESSION IS4 cont> FIELD_ID IN PRODUCT_INVENTORY EQ "S"." cont> IN_STOCK STRUCTURE. cont> PRODUCT_NO. cont> DATE_ORDERED. cont> STATUS_CODE. cont> QUANTITY. cont> LOCATION. cont> UNIT_PRICE.& cont> END IN_STOCK STRUCTURE. cont> END VARIANT." cont> VARIANT EXPRESSION IS4 cont> FIELD_ID IN PRODUCT_INVENTORY EQ "B".$ cont> BACK_ORDER STRUCTURE. cont> PRODUCT_NpO. cont> DATE_ORDERED. cont> STATUS_CODE. cont> QUANTITY. cont> SUPPLIER. cont> UNIT_PRICE.( cont> END BACK_ORDER STRUCTURE. cont> END VARIANT." cont> VARIANT EXPRESSION IS4 cont> FIELD_ID IN PRODUCT_INVENTORY EQ "O".& cont> OUT_OF_STOCK STRUCTURE. cont> PRODUCT_NO. cont> DATE_LAST_SOLD.* cont> END OUT_OF_STOCK STRUCTURE. cont> END VARIANT. cont> END VqARIANTS. cont> END RECORD.D In this example, the DEFINE RECORD command creates the PRODUCT_C INVENTORY record element, which contains a variants definition> consisting of three structure definitions. Each structure= definition uses an expression whose value is compared toA the value of the tag variable (FIELD_ID field definition) at@ runtime to determine which structure definition maps to the record element. 3 REPOSITORY FormatC DEFINE rREPOSITORY anchor-name [ ALTERNATE_ROOT dir-name ] . 4 Parameters 5 anchor-name@ Specifies the OpenVMS directory in which you are creating the< repository. The directory must be empty. If you specify aA directory that does not exist, CDO creates one for you in yourB default directory and places the repository files there. Do not? modify or delete the files created by Oracle CDD/Repository;/ otherwise, you will corrupt your repository.? If you plan to pr sovide remote access to your repository with? the ALTERNATE_ROOT parameter, the device associated with theA anchor name cannot be mounted through the VAX Distributed FileB Service (DFS). Using the ALTERNATE_ROOT parameter lets you moveD binary files to a top-level directory, which reduces the depth ofB directories created. It also allows you to move binary files to< another disk, reducing I/O contention on the anchor disk. 5 dir-nameB Specifies your top OpenVMS file dtirectory. (Use a logical name,? instead of a full node name.) The device associated with the( directory can be mounted through DFS. 4 DescriptionC The DEFINE REPOSITORY command creates a physical CDO repository.A Specify the OpenVMS directory where you want the repository to reside.B You can charge disk resources for your repository to a resourceB identifier by setting this identifier as the owner of the files@ DEFINE REPOSITORY creates. First, issue the DEFINE uREPOSITORY; command, which sets the creator as the file owner. Then,? issue the CHANGE PROTECTION command. This operation requires privileges.B OpenVMS utilities, including the OpenVMS BACKUP utility, cannotB directly access repository files unless you invoke them from an" account with system privileges.) RESTRICTION: Do not store any files in the OpenVMS directory thatA contains the repository, except the files created by Oracle< v CDD/Repository. Otherwise, if you decide to delete the? repository later, Oracle CDD/Repository deletes all files in this directory.< Do not create a repository in your top level directory [000000].; Once a repository is defined using the ALTERNATE_ROOT? parameter, the alternate root cannot be changed or moved.> Changing the alternate root means that your binary filesA are no longer under the repository anchor. When you back up@ wthe repository, you must synchronize the backup of all the repository files. 4 Remote_AccessA You can issue DEFINE REPOSITORY on a local (host) machine, but$ not on a remote (client) machine.A To make your repository available to remote users, perform the following steps:B 1. Ask your system manager to make the ALTERNATE_ROOT directory= a DFS access point. This action makes the directory and+ subdirectories known to a DFS server.B 2. Issue th xe DEFINE REPOSITORY command, including an ALTERNATE_< ROOT parameter. This action permanently associates the@ file directories with the anchor directory. You should notB explicitly refer to the file directories again. For example:* DEFINE REPOSITORY DEV1:[PROJECT.CDD]+ ALTERNATE_ROOT DEV2:[PROJECT.FILES]= For backup purposes, you can choose to move your anchor9 directory to the DFS disk where you store your fileB directories. In this case, you s ypecify the same logical nameB for both anchor and ALTERNATE_ROOT directories. For example:* DEFINE REPOSITORY DEV1:[PROJECT.CDD]+ ALTERNATE_ROOT DEV1:[PROJECT.FILES]D To access a repository from a host machine, perform the following steps:D 1. Ask your system manager to make the DFS access point availableB on your system. During the DFS mount, the manager identifies> the access point by the ALTERNATE_ROOT logical name. ForB example, if the DEFINEz REPOSITORY command issued at the hostB machine referred to ALTERNATE_ROOT DEV1:[PROJECT.FILES], the manager refers to DEV1.B 2. Issue a SET DEFAULT command that includes the full node name+ of the anchor directory. For example:, SET DEFAULT A_NODE::DEV1:[PROJECT.CDD]D 3. Review the default protection you receive on file directories.A DFS does not support remote specification of file ACLs. You5 must make any modifications on the host system.  {4 Repository_Templates9 When you install Oracle CDD/Repository on your system,; the installation procedure creates a template repository5 (CDD$TEMPLATE) and a repository database directory; (CDD$TEMPLATEDB). CDD$TEMPLATE contains the CDD$PROTOCOL: directory, which stores all the type definitions Oracle* CDD/Repository uses to create metadata.= The DEFINE REPOSITORY command creates several files in theB specified OpenVMS anchor directory. Oracle CDD/Repository keeps@ | directory information in these files in the anchor directory;B Oracle CDD/Repository does not store directory information with2 the CDO definitions in the Oracle Rdb database.> Oracle CDD/Repository creates all new CDO repositories fromA CDD$TEMPLATE and CDD$TEMPLATEDB. If, after defining customized@ types in a repository, you want to include these types in allC subsequent repositories that you create, you must make them part of the template.7 To do this, execute the} following command procedure:* $ @SYS$LIBRARY:CDD_BUILD_TEMPLATE.COM -5 _$ repository-anchor-dir repository-db-anchor-dirD Use the repository-anchor-dir parameter to specify the repository> that contains definitions of your customized types. Use theD repository-db-anchor-dir parameter to specify the empty directory! that will hold database files.C Then, rename the CDD$TEMPLATE and CDD$TEMPLATEDB logicals to the! parameter names you specified.= After you have as ~signed the logical name CDD$TEMPLATE to a? repository, the protocols in that repository's CDD$PROTOCOLS> directory will be distributed to any new CDO repository you< create. If you have extended the types supplied by Oracle< CDD/Repository or if you have created your own types in aC repository, you may want to assign the logical name CDD$TEMPLATE= to that repository so that these types will be copied intoA the CDD$PROTOCOLS directory of any subsequent repositories youB cre ate. If CDD$TEMPLATE is not defined, each new repository youD create will contain only types supplied by Oracle CDD/Repository.@ If you no longer want to use the templates supplied by Oracle> CDD/Repository and want to use only the customized template9 that you created, delete the original CDD$TEMPLATE and= CDD$TEMPLATEDB directories. Modify the following lines theB SYS$STARTUP:CDDSTRTUP.COM command procedure to point to the new location of the template:@ $ DEFINE/NOLOG/SYSTEM/EXEC CDD$TEMPLATE device:[CDD$TEMPLATE]D $ DEFINE/NOLOG/SYSTEM/EXEC CDD$TEMPLATEDB device:[CDD$TEMPLATEDB] 4 Examples* CDO> DEFINE REPOSITORY DISK1:[BOB.DICT].A In this example, the DEFINE REPOSITORY command creates a CDO4 repository in a subdirectory called [BOB.DICT]: 3 RMS_DATABASE Format* DEFINE RMS_DATABASE rms-database-name4 [DESCRIPTION IS /*text*/] [AUDIT IS /*text*/] . RECORD record-name .4 FILE_DEFINITION [file-definition-property] ... .K [AREAS . {AREA numeric-literal [area-property] ... } ... . END AREAS .]G [KEYS . {KEY numeric-literal [key-property] ... } ... . END KEYS .]- END [ [rms-database-name] RMS_DATABASE ] . 4 Parameters 5 rms-database-name? Specifies the logical RMS database element you are creating. 5 text; Adds information. Within the DESCRIPTION clause, this isD information documenting the database definition; within the AUDITD clause, it is a history list entry. Valid delimiters are /* */ or double quotation marks (" ").B You can use Japanese to document comments in the DESCRIPTION orB AUDIT clause for a field. To do this, use the SET CHARACTER_SETB command, and set the character_set of the session to DEC_KANJI. 5 record-name( Specifies an existing record element. 5 file-definition-propertyB Defines the file and record services for a logical RMS databaseC definition. See File_Area_Key_Properties for the file definition properties CDO provides. 5 area-propertyB Defines the area properties for a logical RMS database element.; See File_Area_Key_Properties for the area properties CDO provides. 5 numeric-literal> Defines the number of characters or bytes in the field. See8 Expressions for more information on numeric literals. 5 key-propertyA Defines the key properties for a logical RMS database element.D See File_Area_Key_P roperties for the key properties CDO provides. 4 DescriptionA The DEFINE RMS_DATABASE command creates a logical RMS database element in a CDO repository.> A logical RMS database consists of only one record and file? definition. However, one logical RMS database definition canC be owned by many physical RMS databases, where each physical RMSC database owns a different CDD$FILE element. To create a physicalC RMS database on a disk with the characteristics specified by theB DEFINE RMS_DATABASE command, issue the DEFINE DATABASE command.C To create a valid logical RMS database element, you must specifyD at least one record element and a file definition property with a' SEQUENTIAL file organization option. 4 Examples3 1.CDO> DEFINE FIELD LAST_NAME DATATYPE TEXT 30.4 CDO> DEFINE FIELD FIRST_NAME DATATYPE TEXT 20.: CDO> DEFINE FIELD EMP_ID DATATYPE UNSIGNED LONGWORD.& CDO> DEFINE RECORD EMPLOYEE_REC. cont> LAST_NAME. cont> FIRST_NAME. cont> EMP_ID. cont> END.A This example has three steps. It shows you how a corporationB can create a logical RMS database definition that can be usedB by all of its divisions to maintain employee information in a physical RMS database.< The data administrator creates the EMPLOYEE_STORAGE RMS@ database element in the central corporate repository, using% the DEFINE RMS_DATABASE command.0 2.CDO> DEFINE RMS_DATABASE EMPLOYEE_STORAGE.! cont> RECORD EMPLOYEE_REC. cont> FILE_DEFINITION cont> ALLOCATION 2001 cont> FILE_PROCESSING_OPTIONS CONTIGUOUS$ cont> ORGANIZATION INDEXED. cont> AREAS. cont> AREA 0 cont> ALLOCATE 10 cont> BUCKET_SIZE 5 cont> EXTENSION 7. cont> AREA 1 cont> ALLOCATE 15 cont> BUCKET_SIZE 3 cont> EXTENSION 11. cont> AREA 2 cont> ALLOCATE 20 cont> BUCKET_SIZE 7. cont> END. cont> KEYS. cont> KEY 0 cont> DUPLICATES3 cont> SEGMENT LAST_NAME IN EMPLOYEE_REC. cont> KEY 1 cont> CHANGES0 cont> SEGMENT EMP_ID IN EMPLOYEE_REC. cont> END. cont> END.; CDO> DEFINE DATABASE DISG_FILE USING EMPLOYEE_STORAGE$ cont> ON DISK1:[DISG]EMP.DAT.: CDO> DEFINE DATABASE SSG_FILE USING EMPLOYEE_STORAGE# cont> ON DISK2:[SSG]EMP.DAT.: CDO> DEFINE DATABASE DBS_FILE USING EMPLOYEE_STORAGE# cont> ON DISK3:[DBS]EMP.DAT.C Each division creates its own employee information database onD disk using the DEFINE DATABASE command and the same logical RMSC database element, EMPLOYEE_STORAGE, from the central corporate repository. 2 DELETE 3 COLLECTION FormatC DELETE COLLECTION [ qualifier ] ... collection-name ,... . 4 Parameters 5 collection-name- Specifies the collection you are deleting. 4 Qualifiers 5 /DESCENDANTS Format options: /DESCENDANTS /NODESCENDANTS (default)> Specifies whether CDO deletes members. When you specify the? /DESCENDANTS qualifier, CDO deletes all members that are notB also members of additional elements outside the area defined by your top collection. 5 /LOG Format options: /LOG /NOLOG (default): Specifies whether CDO displays text confirming that the collection is deleted. 4 Description: The DELETE COLLECTION command deletes a collection and,- optionally, all members of the collection.< Because a collection is a controlled element, CDO freezes> previous versions and allows you to delete only the highest visible version.A If a collection is a member, you must delete its owners beforeA you delete the collection. If the collection's immediate ownerC is a member of another element, you must trace the relationshipsA back until you reach the element that has no owners and delete1 elements one by one, in sequence of ownership.? If you attempt to delete a collection that owns a version in@ a different branch, the version must be the latest version in> that branch. Otherwise, an error will occur. See the OracleA CDD/Repository Architecture Manual for complete information on branch lines of descent. 4 Examples*  1.CDO> DELETE COLLECTION A_COLLECTION.= In this example, the DELETE COLLECTION command deletes a% collection that is not a member., 2.CDO> DELETE COLLECTION REGIONAL_SALES., CDO> DELETE COLLECTION DISTRICT_SALES.. CDO> DELETE COLLECTION LOCAL_AREA_SALES.= In this example, the DELETE COLLECTION command deletes a@ collection, a subcollection, and a further subcollection in sequence of ownership.+ 3.CDO> DELETE COLLECTION COMPILER_C(3).; CDO> DELETE COLLECTION COMPILER_C(2:UPDATE_BRANCH:2).9 CDO> DELETE COLLECTION COMPILER(2:UPDATE_BRANCH:1).+ CDO> DELETE COLLECTION COMPILER_C(2).) CDO> DELETE COLLECTION COMPILER(1).B In this example, successive DELETE COLLECTION commands delete> the main line and branch line versions of a collection inC sequence of ownership. The branch line originates from version$ 2 and merges back in version 3. 3 CONTEXT Format= DELETE CONTEXT [ qualifier ] ... context-name ,... . 4 Parameters 5 context-name* Specifies the context you are deleting. 4 Qualifiers 5 /PARENTS Format options: /PARENTS /NOPARENTS (default)C Specifies whether CDO deletes parents. If you have defined a topA collection for the context, CDO cannot delete a parent that isD also a parent of an element outside this collection or collection hierarchy. 5 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text confirming that the context is deleted. 4 Description0 The DELETE CONTEXT command deletes a context.C Because a context is a nonversioned element, CDO does not accept@ a branch designation or a version number in the context name.@ If a context is a child, you must delete its immediate parentC before you delete the context. If the context's immediate parentB is a child of another element, you must trace the relationships8 back until you reach the element that has no parents.D If you delete your current context, CDO sets a null value for the/ current context before deleting the context.> An error occurs if you attempt to delete a context that has> opened files or reserved elements. The SHOW CONTEXT or SHOW@ RESERVATIONS command indicates whether this condition exists. 4 Examples CDO> DELETE CONTEXT A_CONTEXT.? In this example, the DELETE CONTE XT command deletes the A_ CONTEXT context. 3 DATABASE Format9 DELETE DATABASE [ qualifier ] rms-database-name . 4 Parameters 5 rms-database-name@ Specifies the physical RMS database element you are deleting.B You can substitute an asterisk (*) wildcard character for this parameter. 4 Qualifiers 5 /LOG Format options: /LOG /NOLOG (default)C Specifies whether CDO displays text confirming that the physical# RMS database element is deleted. 4 Description@ The DELETE DATABASE command deletes the physical RMS database= (CDD$FILE) from disk and its CDD$DATABASE element from the repository.> When you issue the DELETE DATABASE command, CDO prompts you; to confirm that you want to proceed. You cannot suppress= this prompt. If you respond Yes at the prompt, CDO deletes? the highest visible version of CDD$FILE and, if you have notC specified another version number, the highest visible version of CDD$DATABASE.< If CDO cannot delete the physical RMS file from disk, theC DELETE DATABASE command fails, and the CDD$DATABASE and CDD$FILE% elements remain in the repository. 4 Examples' CDO> DELETE DATABASE /LOG EMP_FILE(1)? In this example, the DELETE DATABASE command with the /LOGC qualifier confirms that CDO deleted the RMS file from disk and; the RMS database element EMP_FILE from the repository. 3 # DICTIONARY% See the DELETE REPOSITORY command. 3 DIRECTORY Format= DELETE DIRECTORY [ qualifier ] directory-name ,... . 4 Parameters 5 directory-name7 Specifies the repository directory you are deleting. 4 Qualifiers 5 /LOG Format options: /LOG /NOLOG (default)D Specifies whether CDO displays text confirming that the directory is deleted. 4 Description8 The DELETE DIRECTORY command deletes a CDO directory.B Unless you change directory protection, only the owner of a CDO: directory or the system manager can delete a directory.) You can delete only empty directories.; CDO deletes only the last directory in a fully qualified= path name. For example, if you specify a directory name ofA [SMITH.DICT]CORPORATE.PERSONNEL.SALARIED, CDO deletes only the SALARIED directory. 4 Examples' CDO> DELETE DIRECTORY /LOG PROSPECTS.+ %CDO-I-DIRDEL, directory PROSPECTS deleted@ In this example, the DELETE DIRECTORY command with the /LOGA qualifier confirms that CDO deleted the PROSPECTS directory. 3 FIELD Format9 DELETE FIELD [ qualifier ] ... field-name ,... . 4 Parameters 5 field-nameC Specifies the field element you are deleting. You can substitute: an asterisk (*) wildcard character for this parameter. 4 Qualifiers 5 /DESCENDANTS Format options: /DESCENDANTS /NODESCENDANTS (default)? Specifies whether CDO deletes children. When you specify the@ /DESCENDANTS qualifier, and your field element is controlled,D CDO deletes all children that are not also children of additionalC elements outside the area defined by your top collection. If theD field is uncontrolled, CDO deletes all children that are not also" children of any other elements. 5 /LOG Format options: /LOG /NOLOG (default)@ Specifies whether CDO displays text confirming that the field element is deleted. 4 Description: The DELETE FIELD command deletes a field element from a repository.B If a field element is controlled, CDO freezes previous versionsB and allows you to delete only the highest visible version. If aA field element is uncontrolled, CDO deletes the highest version- unless you specify another version number.? You cannot delete a field that is a child. Delete the parentA  first, or include the /DESCENDANTS qualifier to delete parents! and children at the same time. 4 Examples. CDO> DELETE FIELD /DESCENDANTS ORDER_NUMBER.D In this example, the DELETE FIELD command with the /DESCENDANTS= qualifier deletes the ORDER_NUMBER field element and its children. 3 FILE_ELEMENT Format$ DELETE FILE_ELEMENT type-nameC [qualifier] ... element-name ,... . 4 Parameters 5 type-name? Specifies the type (MCS_BINARY or MCS_BINARY subtype) of the? file element you are deleting. See the Oracle CDD/Repository= Information Model Volume I for information on these types. 5 element-nameB Specifies the file element you are deleting. You can substitute: an asterisk (*) wildcard character for this parameter. 4 Qualifiers 5 /DESCENDANTS Format options: /DESCENDANTS /NODESCENDANTS (default); Specifies whether CDO deletes children. When you specify@ the /DESCENDANTS qualifier, CDO deletes all children that areD not also children of additional elements outside the area defined by your top collection. 5 /LOG Format options: /LOG /NOLOG (default)? Specifies whether CDO displays text confirming that the file element is deleted. 4 Description> The DELETE FILE_ELEMENT command deletes a file element and,@ optionally, all children of the file element to the bottom of the collection hierarchy.> Because a file element is a controlled element, CDO freezesB all previous versions and allows you to delete only the highest visible version.= CDO cannot delete the following versions in a branch line:@ o A version that is owned by a version in a different branch@ o A version that owns an intermediate version in a different branchD See the Oracle CDD/Repository Architecture Manual for information on branch lines of descent. 4 Examples8 1.CDO> DELETE FILE_ELEMENT MCS_BINARY PARSER_TABLES.D In this example, the DELETE FILE_ELEMENT command deletes a file= element definition that is based on the MCS_BINARY type.; 2.CDO> DELETE FILE_ELEMENT MCS_BINARY PARSER_TABLES(3).K CDO> DELETE FILE_ELEMENT MCS_BINARY PARSER_TABLES(2:UPDATE_BRANCH:2).K CDO> DELETE FILE_ELEMENT MCS_BINARY PARSER_TABLES(3:UPDATE_BRANCH:1).; CDO> DELETE FILE_ELEMENT MCS_BINARY PARSER_TABLES(2).; CDO> DELETE FILE_ELEMENT MCS_BINARY PARSER_TABLES(1).D In this example, successive DELETE FILE_ELEMENT commands deleteD the main line and the branch line versions of a file element inC sequence of ownership. The branch line originates from version$ 2 and merges back in version 3. 3 GENERIC Format DELETE GENERIC type-name< [qualifier] ... element-name ,... . 4 Parameters 5 type-nameC Specifies the type of the generic element you are deleting. ThisD type cannot be MCS_BINARY, an MCS_BINARY subtype, MCS_COLLECTION,! MCS_CONTEXT, or MCS_PARTITION. 5 element-name2 Specifies the generic element you are deleting. 4 Qualifiers 5 /DESCENDANTS Format options: /DESCENDANTS /NODESCENDANTS (default)? Specifies whether CDO deletes children. When you specify theB /DESCENDANTS qualifier, and your generic element is controlled,D CDO deletes all children that are not also children of additionalC elements outside the area defined by your top collection. If theA generic element is uncontrolled, CDO deletes all children that+ are not also children of other elements. 5 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text confirming that the generic element is deleted. 4 Description= The DELETE GENERIC command deletes a generic element. Thi sC element can be based on a type supplied by Oracle CDD/Repository or a user-supplied type.> If a generic element is a controlled versioned element, CDO> freezes previous versions and allows you to modify only theC highest visible version. If a generic element is an uncontrolled@ versioned element, CDO deletes the highest version unless you" specify another version number.A If you use SQL (structured query language) to delete an Oracle@ Rdb database file, the corresponding CDD$DATABASE element mayB remain in Oracle CDD/Repository. You can use the DELETE GENERIC" command to delete this element. 4 Examples- 1.CDO> DELETE GENERIC CDD$DATABASE DEPT1.B In this example, the DELETE GENERIC command deletes the DEPT1) generic element from the repository.+ 2.CDO> DELETE GENERIC CDD$SOURCE_MODULE, cont> /DESCENDANTS /LOG COBOL_SOURCE.> In this example, the DELETE GENERIC command with the /LOGB and /DESCENDANTS qualifiers confirms that CDO has deleted the/ COBOL_SOURCE generic element and children. 3 HISTORY Format? { FIELD }? DELETE HISTORY [ qualifier ] FOR { RECORD }? { GENERIC type-name }? { }) element-name ,... . 4 Parameters 5 type-name? Specifies the type of the file or generic element definition* whose history entries you are deleting. 5 element-nameD Specifies the element whose history entries you are deleting. You1 can use wildcard characters in this parameter. 4 Qualifiers 5 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text confirming that the history entries have been deleted. 4 DescriptionC The DELETE HISTORY command deletes the history entries for a CDO element.B Note that the DELETE HISTORY command deletes the entire history@ list for a given entity. This is not a PURGE HISTORY command. 4 Examples) CDO> DELETE HISTORY FOR RECORD CAR_POOL.D In this example, the DELETE HISTORY command deletes the history- entries for the CAR_POOL record element. 3 PARTITION FormatA DELETE PARTITION [ qualifier ] ... partition-name ,... . 4 Parameters 5 partition-name, Specifies the partition you are deleting. 4 Qualifiers 5 /PARENTS Format options: /PARENTS /NOPARENTS (default)= Specifies whether CDO deletes parents. CDO cannot delete aC parent that is also a parent of an element outside the partition> or partition hierarchy. When CDO cannot delete any parents,@ you receive an informational notice. When CDO can delete some( parents, you do not receive a notice. 5 /LOG Format options: /LOG /NOLOG (default)D Specifies whether CDO displays text confirming that the partition is deleted. 4 DescriptionD The DELETE PARTITION command deletes a partition and, optionally,> all the partition's children to the bottom, or root, of the partition hierachy.C Since a partition is a nonversioned element, CDO does not accept? a branch designation or a version number in partition names.; If a partition is a child, you must delete its parent or> parents before you delete the partition. If the partition'sA immediate parent is a child of another element, you must traceA the relationships back until you reach the element that has no parents.< An error occurs if you attempt to delete a partition thatA contains elements. Promote or delete elements from a partition1 prior to issuing the DELETE PARTITION command. 4 Examples/ 1.CDO> DELETE PARTITION /PARENTS FRONT_END.D In this example, the DELETE PARTITION command with the /PARENTS> qualifier deletes all the parent partitions of FRONT_END.) 2.CDO> DELETE PARTITION /LOG REPORTS.? %CDO-I-ENTDEL, entity CDD$DISK:[SMITH.PART]REPORTS deleted@ In this example, the DELETE PARTITION command with the /LOG? qualifier confirms that CDO deleted the partition REPORTS. 3 PROTECTION Format+ DELETE PROTECTION [ qualifier ] FOR# { DIRECTORY }# { FIELD }6 { RECORD } element-name ,...# { }# { GENERIC type-name } [ POSITION n ]* [ id+ ... ] [ ACCESS ] . [ ]+ DELETE PROTECTION [ qualifier ] FOR8 { REPOSITORY anchor-name } [ POSITION n ] [ ACCESS ]! [ DEFAULT_ACCESS ] . [ ] 4 Parameters 5 type-nameA Specifies the type of file or generic element definition whose ACE or ACL you are deleting. 5 element-nameC Specifies the element whose ACE or ACL you are deleting. You can- use wildcard characters in this parameter. 5 nA Specifies the relative position of the ACE in the ACL that you are deleting. 5 id: Specifies the identifiers for the ACE you are deleting. 5 anchor-nameA Specifies the repository anchor directory whose ACE or ACL you are deleting. 4 Qualifiers 5 /LOG Format options: /LOG /NOLOG (default)A Specifies whether CDO displays text confirming that the ACE or ACL is deleted. 4 Description? The DELETE PROTECTION command deletes an access control list@ entry (ACE) or the entire access control list (ACL) for a CDO element or repository.0 You need CONTROL access to delete protection.A The POSITION clause tells CDO the relative position of the ACE? to delete. ACEs are numbered starting with one. You can alsoB delete a particular element ACE by specifying the identifier orA identifiers contained in that ACE. If you omit the identifiers7 and the POSITION clause, CDO deletes the entire ACL.D After the DELETE PROTECTION command executes, CDO resequences the remaining ACEs in the ACL.3 The default access type for all cases is ACCESS. 4 Examples< 1.CDO> DELETE PROTECTION FOR RECORD CAR_POOL POSITION 5.? In this example, the DELETE PROTECTION command deletes the: fifth ACE in the ACL for the CAR_POOL record element.9 2.CDO> DELETE PROTECTION FOR RECORD CAR_POOL [23,56].C In this example, the DELETE PROTECTION command deletes the ACEA with the identifier [23,56] for the CAR_POOL record element. 3 RECORD Format; DELETE RECORD [ qualifier ] ... record-name ,... . 4 Parameters 5 record-name1 Specifies the record element you are deleting. 4 Qualifiers 5 /DESCENDANTS Format options: /DESCENDANTS /NODESCENDANTS (default)? Specifies whether CDO deletes children. When you specify theA /DESCENDANTS qualifier, and your record element is controlled,D CDO deletes all children that are not also children of additionalC elements outside the area defined by your top collection. If theD record element is uncontrolled, CDO deletes all children that are' not also children of other elements. 5 /LOG Format options: /LOG /NOLOG (default)A Specifies whether CDO displays text confirming that the record element is deleted. 4 Description@ The DELETE RECORD command deletes a record element from a CDO repository.< If the record element is controlled, CDO freezes previous= versions and allows you to delete only the highest visibleB version. If the record element is uncontrolled, CDO deletes the= highest version unless you specify another version number. 4 Examples2 CDO> DELETE RECORD /DESCENDANTS CUSTOMER_ORDERS.8 In this example, the DELETE RECORD command with the> /DESCENDANTS qualifier deletes the CUSTOMER_ORDERS record element and children. 3 REPOSITORY Format? DELETE REPOSITORY [ qualifier ] repository-name ,... . 4 Parameters 5 repository-name; Specifies the anchor directory of the repository you are deleting. 4 Qualifiers 5 /LOG Format options: /LOG /NOLOG (default): Specifies whether CDO displays text confirming that the repository is deleted. 4 Description> The DELETE REPOSITORY command deletes all the elements in aC repository, any relationships between elements in the repository@ or elements in other repositories, and the repository itself.? Unless you change repository protection, only the owner of a@ repository or the system manager can delete a CDO repository.C You cannot delete a repository if it contains an element that is5 used by another element in a different repository.' CAUTIONB Before you delete a repository, be sure your elements do notA have relationships to other elements in other repositories.B Check to make sure you have not stored user-created files in the repository. 4 Examples* CDO> DELETE REPOSITORY DISK1:[BOB.DICT].!? In this example, the DELETE REPOSITORY command deletes the! DISK1:[BOB.DICT] repository. 3 RMS_DATABASE Format= DELETE RMS_DATABASE [ qualifier ] rms-database-name . 4 Parameters 5 rms-database-name, Specifies a logical RMS database element. 4 Qualifiers 5 /LOG Format options: /LOG /NOLOG (default)> Specifies whether CDO displays text confirming that the RMS database element is deleted. 4 DescriptionA The DELETE RMS_DATABASE command deletes a logical RMS database element from the repository.B If the RMS database element is controlled, CDO freezes previous= versions and allows you to delete only the highest visibleD version. If the RMS database element is uncontrolled, CDO deletesA the highest visible version unless you specify another version number.A Before you can issue the DELETE RMS_DATABASE command, you mustA have deleted the associated physical RMS database element with the DELETE DATABASE command. 4 Examples( 1.CDO> DELETE DATABASE DISG_FILE(2). . . .5 CDO> DELETE RMS_DATABASE /LOG EMPLOYEE_STORAGE.@ In this example, the DELETE DATABASE command prompts you to@ confirm that you intend to delete the physical RMS database@ file from disk. CDO confirms this deletion. The DELETE RMS_C DATABASE command with the /LOG qualifier confirms that CDO has? d eleted the logical RMS database element EMPLOYEE_STORAGE.0 2.CDO> DELETE RMS_DATABASE EMPLOYEE_STORAGE.P %CDD-E-INUSE, element is the member of a relationship; it cannot be deleted+ CDO> DELETE DATABASE DISG_FILE(2). 1A deleting file DISK1:[SMITH]EMP.DAT; proceed? [Y/N]) (N)Y 27 %CDO-I-FILEDEL, file DISK1:[SMITH]EMP.DAT; deleted6 CDO> DELETE RMS_DATABASE /LOG EMPLOYEE_STORAGE. 3C This example shows the result when you try to delete a logicalA RMS dat abase definition from the repository while a physical< RMS database (on disk) is using it. When you delete theA physical database (EMP.DAT), you can then delete the logical database.< 1 Delete the physical RMS database definition from the repository.C 2 Type Y in acknowledgement that CDO deletes the physical RMS file from disk.; 3 Delete the logical RMS database definition from theA repository. The /LOG qualifier provides a confirmation of deletion. 2 DETACH_FROM_COMPOSITE Format( { COLLECTION }( { FIELD }( DETACH { RECORD }( { FILE_ELEMENT type-name }( { }( { GENERIC type-name }- [qualifier] element-name ,...7 FROM composite-name [ AUDIT IS /*text*/ ] 3 Parameters 4 type-name7 Specifies the type of the element you are detaching. 4 element-nameB Specifies the name of the element from which you are detaching.B You can substitute an asterisk (*) wildcard character for this parameter. 4 composite-nameD Specifies the name of the composite from which you are detaching. 4 textC Adds information to the history list entry. Valid delimiters are) /* */ or double quotation marks (" ").D You can use Japanese to document comments in the AUDIT clause forB a field. To do this, use the SET CHARACTER_SET command, and set1 the character_set of the session to DEC_KANJI. 3 Qualifiers 4 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text identifying each element as the element is detached. 3 Description? The DETACH FROM COMPOSITE command detaches an element from aB composite. The element must be a controlled element that is not@ currently reserve d. It also must be currently attached to the composite.? Before you issue the DETACH FROM COMPOSITE command, you mustC have a context set and your composite reserved. The SHOW CONTEXTC and SHOW RESERVATIONS commands indicate whether these conditions exist.D You can use the DETACH FROM COMPOSITE command in conjunction withA the DEFINE, RESERVE, REPLACE, and ATTACH TO COMPOSITE commandsB to link collections into collection hierarchies. See the DEFINE? COLLECTION command for an example of a collection hierarchy.; You can also use the DETACH FROM COMPOSITE and ATTACH TO? COMPOSITE commands to move between lines of descent. See theB Oracle CDD/Repository Architecture Manual for more information. 3 Examples0 1.CDO> RESERVE COLLECTION SALES_EACH_PRODUCT9 CDO> ATTACH FIELD PART_NUMBER TO SALES_EACH_PRODUCT0 CDO> REPLACE COLLECTION SALES_EACH_PRODUCT . . .0 CDO> RESERVE COLLECTION SALES_EACH _PRODUCT; CDO> DETACH FIELD PART_NUMBER FROM SALES_EACH_PRODUCT0 CDO> REPLACE COLLECTION SALES_EACH_PRODUCTC In this example, the DETACH command detaches an element from a collection.. 2.CDO> RESERVE COLLECTION EMPLOYEE_RECORDSD CDO> DETACH FIELD FIRST_NAME(2:BRANCH:2) FROM EMPLOYEE_RECORDS9 CDO> ATTACH FIELD FIRST_NAME(2) TO EMPLOYEE_RECORDS. CDO> REPLACE COLLECTION EMPLOYEE_RECORDSB In this example, the DETACH FROM COMPOSITE command detaches aC version in the branch line of descent, FIRST_NAME(2:BRANCH:2),= from the EMPLOYEE_RECORDS collection. After you attach aA version in the main line, FIRST_NAME(2), to EMPLOYEE_RECORDSD you can create new versions in the main line, instead of in the, branch line where you had been working. 2 DIRECTORY Format; DIRECTORY [ qualifier ] ... [ element-name ] ,... 3 Parameters 4 element-name@ Specifies the element or elements to be listed. This name can= specify a CDO element, a CDO directory, or a logical name. 3 Qualifiers 4 /BEFORE Format options: /BEFORE=time /NOBEFORE (default)B Selects only those elements dated before the specified time. IfA you do not specify a time with the /BEFORE qualifier, CDO uses( /BEFORE=TODAY qualifier as the value. 4 /BRIEF Format option: /BRIEF (default)B Displays the element names and their types. This is the default display. 4 /FORMAT Format options: /FORMAT /NOFORMAT (default)D Displays the text specifying whether the element is in CDO or DMU4 format (in a CDO repository or a DMU dictionary). 4 /FULL@ Displays the name, type, parent, approximate size, and access@ control information (protection) for each repository element.A If an element appears under an alternate name in a distributed' repository, these names appear also. 4  /SINCE Format options: /SINCE=time /NOSINCE (default)? Displays only those elements dated at or after the specifiedD time. If you do not specify a time with the /SINCE qualifier, CDO" uses /SINCE=TODAY as the value. 4 /TYPE Format options: /TYPE=(type-name,...) /NOTYPE (default)D Displays only elements of the specified type or types. You cannot, use wildcard characters in the type name. 3 DescriptionD The DIRECTORY command lists an element or elements in one or more repository directories.) RESTRICTION@ If you have a context set, CDO limits the display to those> elements that are visible to your context. If you do not: have a context set, this restriction does not apply.@ CDO only displays the names of those elements to which you have READ access.A With the /BEFORE and /SINCE qualifiers, you can specify any" of the following for a time: o Absolute time0 o Combination of absolute and delta times- o A keyword such as TODAY or YESTERDAY> See the OpenVMS documentation for more information about specifying times. 3 Examples% 1.CDO> DIRECTORY /SINCE=YESTERDAYC In this example, the DIRECTORY command will display the names,D versions, and types of all elements CDO has created since 00:00: (midnight) of the previous day in the current default dir ectory.5 2.CDO> DIRECTORY /FULL DISK1:[JONES.DICT]REVIEW.*( Directory DISK1:[JONES.DICT]REVIEWM FIRST_NAME(1) FIELD Created: 8-MAY-1995M 13:33:28.95 Revised: 8-MAY-1995 13:33:32.99 Owner: [VDD,JONES] AccessB Cntrl List: (IDENTIFIER=[VDD,JONES],ACCESS=READ+WRITE+MODIFY+D ERASE+SHOW+DEFINE+CHANGE+DELETE+CONTROL+OPERATOR+ADMINISTRATOR)I (IDENTIFIER=[VDD,CDDCDD],ACCESS=READ+WRITE+MODIFY+ERASE+SHOW+DEFINE+2 CHANGE+DELETE+CONTROL+OPERATOR+ADMINISTRATOR)J (IDENTIFIER=[*,*],ACCESS=READ+WRITE+MODIFY+ERASE+SHOW+OPERATOR+ADMIN)3 Size: 2277 dictionary_format: CDO formatM FULL_ADDRESS(1) RECORD Created: 8-MAY-1995M 14:09:51.19 Revised: 8-MAY-1995 14:09:51.19 Owner: [VDD,JONES] AccessB Cntrl List: (IDENTIFIER=[VDD,JONES],ACCESS=READ+WRITE+MODIFY+D ERASE+SHOW+DEFINE+CHANGE+DELETE+CONTROL+OPERATOR+ADMINISTRATOR)I (IDENTIFIER=[VDD,CDDCDD],ACCESS=READ+WRITE+MODIFY+ERASE+SHOW+DEFINE+2 CHANGE+DELETE+CONTROL+OPERATOR+ADMINISTRATOR)K (IDENTIFIER=[*,*],ACCESS=READ+WRITE+MODIFY+ERASE+SHOW+OPERATOR+ ADMIN)3 Size: 1337 dictionary_format: CDO format . . .D In this example, the DIRECTORY command with the /FULL qualifierD will display the name, type, parent, and protection information@ for elements in the REVIEW directory and in any distributed repositories. 2 EDIT Format { FIELD }( EDIT { RECORD } [ element-name ] { } 3 Parameters 4 element-name: Specifies the field or record element you are creating. 3 Description? The EDIT command invokes the CDO editor, which allows you to4 create uncontrolled field and record definitions.A If you do not specify an element name, CDO prompts you for one after you enter the editor.> See Using Oracle CDD/Repository on OpenVMS Systems for more! information on the CDO editor. 3 Examples CDO> EDIT FIELD@ In this example, the EDIT command invokes the CDO editor to* create an uncontrolled field element. 2 ENTER Format! { FIELD }8 ENTER { RECORD } name1 [ qualifier ]! { GENERIC type-name }! { }1 { {DATABASE } }1 { FROM {RECORD } name2 }1  { {GENERIC type-name } }1 { { } }1 { FOR name3 } 3 Parameters 4 type-name+ Specifies the type of a generic element. 4 name1A Specifies the processing name of the field, record, or generic> element. You can use an asterisk (*) wildcard character toB indicate all element names or a specific element name. Afer theC ENTER command executes, CDO creates a directory name that is the same as the processing name. 4 name2? Specifies the database, record, or generic element that owns name1. 4 name3A Specifies an additional directory name you are designating for) the field, record, or generic element. 3 Qualifiers 4 /RDB_METADATA Format options: /RDB_METADATA /NORDB_METADATA (default)? Specifies whether CDO enters a directory name for Oracle RdbB system relations. The /NORDB_METADATA qualifier is the default.D This qualifier is synonymous with the SHOW /[NO]SYSTEM qualifier. 3 Description> The ENTER command assigns a directory name or an additional9 directory name to a field, record, or generic element.C The FROM clause assigns a directory name to an element that doesD not have a directory name. For example, field and record elementsB within an Oracle Rdb database definition may not have directory names.A Without a directory name, t he DIRECTORY command cannot displayB an element, and you cannot include the element as part of otherB elements. For example, you would not be able to include a fieldA element without a directory name in an Oracle Rdb global field definition.D The FOR clause assigns an additional directory name to an elementC that has a directory name. This functionality allows you to give@ an element different names on a local node and a remote node.> You must issue the ENTER command with the FOR clause for an? element before you can reserve that element in a distributed: environment. See Using Oracle CDD/Repository on OpenVMSA Systems for information on reserving elements in a distributed environment.@ CDO enters directory names in your currect default directory.> The ENTER command fails if an element in that directory has? a directory name that is the same as the processing name you specify.) RESTRICTIONB Th e ENTER command does not apply a default ACL to the objectA being entered. Therefore, if the object did not have an ACL> prior to being entered, it will not have one after beingB entered in the directory system. Setting the desired ACLs is) left to the discretion of the user.; You cannot issue the ENTER command to enter fields or= records within a variant of CDO record definitions that@ were converted from DMU definitions. Field definitions and@ record definitions that exist only within the context of a. variant cannot be given directory names.B Use this command to assign directory names to field definitionsD or structure definitions within record definitions converted fromC DMU. When an object (such as a field definition) has a directory> name, that object can be included in other definitions (forA example, field definitions with directory names can be used as Oracle Rdb global fields). 3 Examples6 1.CDO> ENTER FIELD PART_NUMBER FROM DATABASE PARTS< In this example, the ENTER command enters a PART_NUMBER> directory name for the PART_NUMBER field element from the database element PARTS.2 2.CDO> ENTER FIELD SALARY_CLASS FOR WAGE_CLASSB In this example, the ENTER command assigns SALARY_CLASS as anA alternative directory name for the WAGE_CLASS field element.6 3.CDO> ENTER GENERIC MCS_COLLECTION CORP_DATA_DEFS( con> FOR CORPORATE:CORP_DATA_DEFS8  CDO> RESERVE GENERIC MCS_COLLECTION CORP_DATA_DEFS? In this example, the ENTER command assigns the alternative: directory name CORP_DATA_DEFS on a local node for the) collection CORPORATE:CORP_DATA_DEFS. 2 EXIT Format EXIT 3 Description' The EXIT command ends a CDO session.1 You can also exit from CDO by pressing Ctrl/Z. 3 Examples CDO> EXIT $= In this example, the EXIT command exits you from CDO and+ returns you to the OpenVMS DCL prompt. 2 EXTRACT Format { FIELD }= EXTRACT { RECORD } element-name ,... [ qualifier ] { } 3 Parameters 4 element-nameD Specifies the field or record element that you want to display inC the DEFINE command format or ANSI C language format. You can use) wildcard characters in this parameter. 3 Qualifiers 4 /LANGUAGE Format options: /LANGUAGE=CC  /LANGUAGE=CDO (default)A Use the /LANGUAGE qualifier to generate data defintions in one> of two formats; either the default DEFINE command format orA the ANSI-standard syntax for the C programming language. Valid options are: o CC? Specifies that the EXTRACT command converts the record toD ANSI C language syntax. Each record that is converted to ANSI-A standard syntax will include a comment statement that listsB the original Oracle CDD/Repository data type information for, each field in the record. For example: char field1; /*Text*/ o CDO= Specifies that the EXTRACT command displays one or moreB repository elements in the format of the DEFINE command. The CDO option is the default. 3 DescriptionB The EXTRACT command displays one or more repository elements inA the specified format. You can choose the DEFINE command formatA or the ANSI-standard syntax for the C programming lan guage. ByB displaying an element in the DEFINE command format, the EXTRACT? command makes it easier for you to create new versions of an? uncontrolled element. By displaying an element in the ANSI C? programming language format, you can use the definition when building applications.A You can capture the output of the EXTRACT command in a file by? issuing the SET OUTPUT command as the preceding command. ForA the DEFINE command, edit and execute the command file with th eB @ command. For the ANSI C programming language format, edit theA output file to remove the EXTRACT command and then include the file in an application.@ If a field has character set attributes, you can display them@ using the SHOW and EXTRACT commands; in addition, you can useB the SHOW command to display size information of a field in bothA character-based size and octet-based size. See the descriptionE of SET CHARACTER_SET command and the DATATYPE_Field_Property help C topic found under the fld-properties topic for more information. 3 Examples" 1.CDO> DEFINE RECORD FULL_NAME. cont> FIRST_NAME. cont> MIDDLE. cont> LAST_NAME. cont> END RECORD. . . .% CDO> DEFINE RECORD HOME_ADDRESS. cont> STREET_ADDRESS. cont> CITY. cont> STATE. cont> POSTAL_CODE. cont> END RECORD. . . .L CDO> DEFINE FIELD BADGE DATATYPE IS UNSIGNED LONGWORD SIZE IS 5 DIGITS.) CDO> DEFINE RECORD EMPLOYEE_REC_ONE. cont> FULL_NAME. cont> HOME_ADDRESS. cont> BADGE. cont> END RECORD.= This example shows the definition of records used in the following examples.6 2.CDO> EXTRACT RECORD EMPLOYEE_REC_ONE /LANGUAGE=CC struct employee_rec_one { struct {/ char first_name[20]; /* Text */' char middle; /* Text *// char last_name[20];  /* Text */ } full_name; struct {/ char street_address[30]; /* Text */' char city[20]; /* Text */' char state[2]; /* Text */D unsigned long postal_code; /* Unsigned Longword */ } home_address;< unsigned long badge; /* Unsigned Longword */ };: This example shows the EXTRACT command specifying the /LANGUAGE=CC qualifier.7 3.CDO> EXTRACT RECORD EMPLOYEE_REC_ONE /LANGUAGE=CDON Define record CDDRTEST:[CDDR_TEST.userid.TEST_REP]MY_DIR.EMPLOYEE_REC_ONE .A CDDRTEST:[CDDR_TEST.userid.TEST_REP]MY_DIR.FULL_NAME(1).D CDDRTEST:[CDDR_TEST.userid.TEST_REP]MY_DIR.HOME_ADDRESS(1).< CDDRTEST:[CDDR_TEST.userid.TEST_REP]MY_DIR.BADGE(1) . End record.B This example shows the EXTRACT command specifying the default /LANGUAGE=CDO qualifier. 2 FETCH Format@ FETCH FILE_ELEMENT type-name ele#ment-name TO file-name 3 Parameters 4 type-nameC Specifies the type of file element you are fetching. Valid typesD are MCS_BINARY or one of the binary subtypes. The binary subtypes are: o MCS_ANALYSIS_DATA_FILE o MCS_BINARY_TOOL o MCS_C_SOURCE_FILE o MCS_DIAGNOSTIC_FILE o MCS_EXECUTABLE_FILE o MCS_LISTING_FILE o MCS_LOG_FILE o MCS_OBJECT_FILE o MCS_TEXT o MCS_TEXT_TOOL 4 element-name/ Specifies the file element you are fetching. 4 file-nameD Specifies the name of an OpenVMS file that will be created by theA FETCH command. You may include a device and directory with the name. 3 DescriptionA The FETCH command copies the contents of a file element to the? OpenVMS file specified on the command line. You must use theC SET CONTEXT command to define a current context before using the FETCH command.A The OpenVMS file created by the FETCH command is available forB both read and write access. It has no further connection to theB file element from which it was copied or to the repository. You4 are responsible for maintaining the OpenVMS file. 3 Examples' CDO> DEFINE PARTITION FIRST_BASELEVEL.( CDO> DEFINE CONTEXT DEVELOPMENT_CONTEXT& cont> BASE_PARTITION FIRST_BASELEVEL.% CDO> SET CONTEXT DEVELOPMENT_CONTEXT CDO> DEFINE COLLECTION CLIENT. CDO> RESERVE COLLECTION CLIENT4 CDO> DEFINE FILE_ELEMENT MCS_ TEXT_TOOL CLIENT_BUILD cont> STORETYPE INTERNAL. END.5 CDO> RESERVE FILE_ELEMENT MCS_TEXT_TOOL CLIENT_BUILD6 CDO> FETCH FILE_ELEMENT MCS_TEXT_TOOL CLIENT_BUILD(1) cont> TO BLD$:BUILD_CLIENT.COM5 CDO> REPLACE FILE_ELEMENT MCS_TEXT_TOOL CLIENT_BUILDD In certain circumstances, you may want to use the FETCH commandC instead of the OPEN and CLOSE commands. This example shows howB to use the FETCH command to access the contents of an earlier: version of a file element that is currently reserved. 2 HELP Format% HELP [ topic [ subtopic ] ... ] 3 Parameters 4 topicB Specifies the topic about which you are requesting information.D If you specify an incomplete topic name, CDO displays informationC on all topics starting with that string. If you specify wildcard@ characters, CDO displays information on all matching strings.< If you do not specify a topic, CDO displays a list of all7 available topics, followed by a request for a topic. 4 subtopic@ Provides more information, such as parameters and qualifiers,9 associated with this command. A subtopic can also be a) description and examples of a command. 3 Description? The HELP command provides help on CDO commands and concepts.> Type Ctrl/Z to exit from help and return to the CDO prompt. 3 Examples CDO> HELP DEFINE COLLECTIONB In this example, the HELP command requests information on the DEFINE COLLECTION command. 2 MERGE Format' { FIELD }' { RECORD }L MERGE { FILE_ELEMENT type-name } destination-name WITH source-name' { }' { GENERIC type-name } 3 Parameters 4 type-name< Specifies the type of the file or generic element you are merging. 4 destination-name, Specifies the name of the merged version. 4  source-name> Specifies the name of the branch line version to be merged. 3 DescriptionB The MERGE command creates a merge relationship between a branch< line version and a new version on the originating line of- descent. Both versions must be controlled.< If the versions are of type MCS_TEXT, CDO also performs a@ physical merge that incorporates the highest versions on bothB lines of descent. If the versions are of another type, you mustD perform the physical merg e yourself with an editor appropriate toB your system. If you are familiar with the Oracle CDD/Repository< callable interface, you can write a method to perform the physical merging.A When you issue the MERGE command, your collection must include? the version on the originating line, rather than the versionB on the branch line. If your collection includes the branch lineC version, issue the DETACH FROM COMPOSITE and ATTACH TO COMPOSITE? commands to attach to the highest version on the originatingA line. You must reserve this version before you issue the MERGE command. 3 Examples3 CDO> RESERVE FILE_ELEMENT MCS_TEXT JULY_REPORT(2)1 CDO> MERGE FILE_ELEMENT MCS_TEXT JULY_REPORT(3)$ cont> WITH JULY_REPORT(1:DRAFT:2)3 CDO> REPLACE FILE_ELEMENT MCS_TEXT JULY_REPORT(3)> In this example, the MERGE command creates a relationship@ between JULY_REPORT(1:DRAFT:2) on the branch line and JULY_C REPORT(3) on the main line. Because JULY_REPORT is of MCS_TEXTC type, the MERGE command also physically merges the contents ofA JULY_REPORT(1:DRAFT:2) and JULY_REPORT(2) in JULY_REPORT(3). 2 MOVE_REPOSITORY FormatF MOVE REPOSITORY [ qualifier ] anchor-name1 TO anchor-name2 . 3 Parameters 4 anchor-name1< Specifies the full path name of the anchor directory that0 contains the repository files you are moving. 4 anchor-name2D Specifies the full path name of the anchor directory to which youD are moving the repository files. This must be an empty directory. 3 Qualifiers 4 /LOG Format options: /LOG /NOLOG (default): Specifies whether CDO displays text confirming that the@ repository files are successfully moved to the new directory. 3 Description@ The MOVE REPOSITORY command physically moves repository files9 from one system directory to another system directory.? If the MOVE REPOSITORY command is successful, the repository3 files no longer exist in the original directory.C As part of a successful MOVE REPOSITORY command, CDO updates allD references to this repository from other repositories to point toD the new location. If CDO cannot update any of the references, the! MOVE REPOSITORY command fails. 3 Examples, CDO> MOVE REPOSITORY DISK1:[SMITH.DICT] TO cont> DISK1:[TAYLOR.REP].; In this example, the MOVE REPOSITORY command moves the9 repository contents to a different anchor directory. 2 ON Format* { WARNING } { CONTINUE }* ON { ERROR } THEN { }* { SEVERE_ERROR} { STOP } { } 3 Description@ The ON command specifies an action for CDO to perform when itB encounters an error condition during the execution of a command procedure.B The following keywords allow you to specify error conditions of increasing severity: o WARNING o ERROR o SEVERE_ERROR@ Error Handling if Action is CONTINUE describes error handling when you specify CONTINUE.1 Table 1-4 Error Handling if Action is CONTINUE Error Condition) Specified Action Taken on ErrorD WARNING Command procedure continues on warnings only; it6 stops for errors or severe errors.? ERROR Command procedure continues on warnings and< errors; it stops for severe errors only.D SEVERE_ERROR Command procedure continues on warnings, errors,& and severe errors. A Error Handling if Action is STOP describes error handling when you specify STOP.- Table 1-5 Error Handling if Action is STOP Error Condition) Specified Action Taken on ErrorC WARNING Command procedure stops on warnings, errors, or" severe errors.? ERROR Command procedure stop s on errors or severe: errors; it continues on warnings only.@ SEVERE_ERROR Command procedure stops on severe errors; it5 continues on warnings and errors.? By default, errors cause CDO to stop execution if you do notC specify an ON command within a command procedure. When CDO stops9 a command procedure, it returns you to the CDO prompt.A If you nest command procedures and the ON command is executed,= CDO returns you to the CDO prompt, instead of the previous command procedure. 3 Examples CDO> @MY_PROCEDURE SET VERIFY ON SEVERE_ERROR THEN CONTINUE DEFINE FIELD INVALID FIELD NAME DEFINE FIELD INVALID FIELD NAME ^? %CDO-E-KWSYNTAX, syntax error in command line at or near FIELD DATATYPE IS TEXT IS 7. ^A %CDO-E-KWSYNTAX, syntax error incommand line at or near DATATYPE DEFINE FIELD CORRECT_NAME_FIELD DATATYPE IS TEXT SIZE IS 7. @RECORD.CDO DEFINE RECORD VALID_RECORD. CORRECT_NAME_FIELD. END RECORD. CDO>@ In this example, the command procedure specifies ON SEVERE_B ERROR THEN CONTINUE. Because the command procedure encountersA only an ERROR condition, it continues to execute and defines> the CORRECT_NAME_FIELD field element and the VALID_RECORD record element. 2 OPEN_FILE_ELEMENT Format0 OPEN FILE_ELEMENT type-name element-name 3 Parameters 4 type-name? Specifies the type (MCS_BINARY or MCS_BINARY subtype) of the> file element you are opening. See the Oracle CDD/Repository= Information Model Volume I for information on these types. 4 element-nameD Specifies the file element you are opening. You can substitute an7 asterisk (*) wildcard character for this parameter. 3 Description4 The OPEN command opens an existing internal file.? Before you issue the OPEN command, you will most likely wantA to reserve your file. Reserving the file allows you read/write= access. If you do not reserve the file, you have read-only access.D Once you have issued the OPEN command, exit from CDO. Set defaultD to the repository files directory that contains the file, and useB the commands appropriate for your system to examine or edit it.A After you have finished with the file, return to CDO and issue4 the CLOSE FILE_ELEMENT command at the CDO prompt. 3 Examples0 CDO> RESERVE FILE_ELEMENT MCS_TEXT JULY_REPORT- CDO> OPEN FILE_ELEMENT MCS_TEXT JULY_REPORT CDO> EXITC In this example, CDO opens the text file named JULY_REPORT for editing. 2 PROMOTE Format) { COLLECTION }) { FIELD }L PROMOTE { RECORD } [ qualifier ] element-name ,...) { FILE_ELEMENT type-name }) { }) { GENERIC type-name }$ [ AUDIT IS /*text*/ ] 3 Parameters 4 type-name< Specifies the type of the file or generic element you are promoting. 4 element-name+ Specifies the element you are promoting. 4 textC Adds information to the history list entry. Valid delimiters are) /* */ or double quotation marks (" ").D You can use Japanese to document comments in the AUDIT clause forB a field. To do this, use the SET CHARACTER_SET command, and set1 the character_set of the session to DEC_KANJI. 3 Qualifiers 4 /CLOSURE Format options: /CLOSURE=TO_BOTTOM /NOCLOSURE (default)A Specifies whether CDO promotes additional elements. Specifying? the /CLOSURE=TO_BOTTOM qualifier promotes all children of an- element that reside in the same partition. 3 DescriptionD The PROMOTE command moves a controlled element to the next-higher approval level.B You cannot promote an element more than one approval level at a time.D You cannot promote more than one version of an element at a time.? If you do not include a version number, PROMOTE promotes the highest visible version.? An error occurs if you attempt to promote an element that isA reserved. The SHOW RESERVATIONS command indicates whether this condition exists.A An error occurs if you attempt to promote an element that is a3 parent of another element in the same partition.A An error occurs if you attemp t to promote an element that is aC parent of another element in a partition that is not on the path< between the destination partition and the root partition.@ An error occurs if you attempt to promote an element from theA root partition. The root partition is the highest partition in the partition hierarchy.? When you promote a version to higher levels of approval, theA value of the autopurge property determines whether CDO deletes@ intermediate versions of the element in the source partition.? You set the autopurge property for a partition in the DEFINE PARTITION command.C When you promote a version to higher levels of approval, you canD still access previous versions at lower levels. However, you mustB explicitly promote any changes you make to the element at lowerD levels to see this change reflected in the higher level versions. 3 Examples3 CDO> PROMOTE RECORD /CLOSURE=TO_BOTTOM SUBSCRIBER= In this example, the PROMOTE command promotes the record! SUBSCRIBER and all children. 2 PURGE Format" { ALL }" { FIELD }I PURGE { RECORD } [ qualifier ] ... element-name ,... ." { }" { GENERIC type-name } 3 Parameters 4 type-name= Specifies the type of the generic element you are purging. 4 element-nameC Specifies the element that you are purging. You can use wildcard characters in this parameter. 3 Qualifiers 4 /DESCENDANTS Format options: /DESCENDANTS /NODESCENDANTS (default)? Specifies whether CDO also purges children. When you specifyB the /DESCENDANTS qualifier, and your element is controlled, CDO@ deletes all children that are not also children of additionalC elements outside the area defined by your top collection. If theA element is uncontrolled, CDO deletes all children that are not' also children of any other elements. 4 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text confirming that the element was purged. 3 DescriptionB The PURGE command deletes all but the first and last version ofD an element. You cannot delete the first version, and intermediateB versions are not purged if a branch line descends from them, or5 if they are children in a dependency relationship.A You can only purge one line of descent at a time. Purge branch lines before main lines.A You must specify a name of an element, or if you are using the? PURGE ALL command, use the asterisk (*) wildcard character. 3 Examples. 1.CDO> PURGE RECORD REGION.INVENTORY.PART.A In this example, the PURGE command deletes all but the first? and highest numbered versions of the REGION.INVENTORY.PART record element. 2.CDO> PURGE ALL GREF*.A In this example, the PURGE command deletes all but the first> and highest versions of each element that begins with the letters GREF.! 3.CDO> PURGE FIELD FIRST_NAME. . . .. CDO> PURGE RECORD /DESCENDANTS FULL_NAME.? In this example, the first PURGE command fails because the@ FIRST_NAME field element is a child of the FULL_NAME record> element. By purging the descendants of FULL_NAME, you can" accomplish the desired purge. 2 Remote_AccessC For information about Remote_Access, go to the DEFINE REPOSITORY help topic. 2 REMOVE Format# { FIELD }9 REMOVE { RECORD } directory-name ,...# { GENERIC type-name }# { } 3 Parameters 4 type-name- Specifies the type of the generic element. 4 directory-name1 Specifies the directory name you are removing. 3 DescriptionB T he REMOVE command allows you to remove a directory name for anC element that has multiple directory names in a CDO repository or; repositories. REMOVE affects all versions of an element.; If you issued the ENTER command to reserve elements in a= distributed environment, you must issue the REMOVE commandA after replacing these elements. The REMOVE command deletes theD directory name you entered for your element, so other distributedD users cannot access or change it by mistake. See the Using OracleA CDD/Repository on OpenVMS Systems for information on reserving) elements in a distributed environment.D If the name you specify is the only directory name for an elementB or the element does not have a parent, CDO records an error and& does not remove the directory name. 3 Examples# 1.CDO> REMOVE FIELD POSTAL_CODE@ In this example, the REMOVE command deletes the POSTAL_CODE2 alternate directory name from the repository., 2.CDO> REPLACE COLLECTION CORP_DATA_DEFS+ CDO> REMOVE COLLECTION CORP_DATA_DEFSC In this example, the REMOVE command deletes the CORP_DATA_DEFS. alternate directory name on a local node. 2 REPLACE Format% {COLLECTION }% {FIELD }I REPLACE {RECORD } [qualifier] ... element-name ,...% {FILE_ELEMENT type-name}% {GENERIC type-name } [AUDIT IS /*text*/] 3 Parameters 4 type-name< Specifies the type of the file or generic element you are replacing. 4 element-nameA Specifies the element you are replacing. You can substitute anA asterisk (*) wildcard character for this parameter unless youB are working in the CDD$METADATA collection, where all wildcards are not allowed. 4 textC Adds information to the history list entry. Valid delimiters are) /* */ or double quotation marks (" ").D You can use Japanese to document comments in the AUDIT clause forB a field. To do this, use the SET CHARACTER_SET command, and set1 the character_set of the session to DEC_KANJI. 3 Qualifiers 4 /BRANCH Format options: /BRANCH=branchname /NOBRANCH (default)B Specifies whether CDO creates a version on a new branch line orC on an existing line of descent. The BRANCH option you specify inC the REPLACE command overrides any BRANCH option you specified in the RESERVE command. 4 /CLOSURE Format options: /CLOSURE=keyword /NOCLOSURE (default)@ Specifies whether CDO replaces additional elements. A CLOSUREB operation fails if any element is a child of an element outside+ the area defined by the CLOSURE keyword.> The /CLOSURE qualifier takes one of the following keywords: CLOSURE Keyword BehaviorB TO_BOTH Replaces the element specified and all parents and  children.@ TO_BOTTOM Replaces the element specified and all children.? TO_TOP Replaces the element specified and all parents.C If you specify TO_BOTH or TO_TOP, CDO ignores parents of the top collection. 4 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text identifying each element as the element is replaced. 3 DescriptionA The REPLACE command checks in a version of an element that yo u3 previously checked out with the RESERVE command.< You must have a context set to issue the REPLACE command.? The REPLACE command converts the ghost copy reserved to yourB context into a new version stored in a base partition. This newD version is accessible to anyone whose context is set to that baseD partition. To create subsequent versions of a controlled element,? use the RESERVE and REPLACE commands, rather than the DEFINE command.C An error occurs if you issue the /BRANCH qualifier with a branch name already in use.; If you issue the REPLACE command with branch information; specified in the element name, do not include a /CLOSUREA qualifier. The /CLOSURE qualifier will add this branch name to) the name of every element you replace.: If you are issuing the REPLACE command in a distributed? environment, you must issue the REMOVE command after issuing the RESERVE command.= If you decide to discard the changes you have made to your9 working copy, use the UNRESERVE command to cancel your% reservation and destroy your copy.B If you decide to merge a branch line that you have created back8 into the main line of descent, use the MERGE command. 3 Examples3 1.CDO> RESERVE FIELD /CLOSURE=TO_TOP FIRST_NAME" CDO> CHANGE FIELD FIRST_NAME7 cont> DESCRIPTION IS "SPELL OUT THOSE INITIALS!"A In this example, the REPLACE command replaces the FIRST_NAME? field eleme nt and all parents to the top of the collection hierarchy.G 2.CDO> RESERVE FIELD /CLOSURE=TO_TOP /BRANCH=AUDITOR PRODUCT_NUMBER3 CDO> CHANGE FIELD PRODUCT_NUMBER(1:AUDITOR:1); cont> AUDIT IS "THESE VERSIONS SUBMITTED FOR AUDIT".4 CDO> REPLACE FIELD PRODUCT_NUMBER(1:AUDITOR:1)2 CDO> REPLACE RECORD /CLOSURE=TO_TOP PRODUCTS> In this example, the initial REPLACE command replaces theA branch version of the PRODUCT_NUMBER field element; a second= R EPLACE command replaces those elements on the path from# PRODUCT to the top collection.D 3.CDO> RESERVE FIELD /CLOSURE=TO_TOP PRODUCT_NUMBER(1:AUDITOR:1)3 CDO> CHANGE FIELD PRODUCT_NUMBER(1:AUDITOR:2)7 cont> AUDIT IS "SEVEN OBSOLETE PRODUCT NUMBERS".4 CDO> REPLACE FIELD PRODUCT_NUMBER(1:AUDITOR:2)2 CDO> REPLACE RECORD /CLOSURE=TO_TOP PRODUCTSA In this example, the REPLACE command replaces the new second( version in the AUDITOR branch line.? 4.C DO> REPLACE FIELD /BRANCH=QA PRODUCT_NUMBER(1:AUDITOR:2)< By substituting this command for REPLACE FIELD PRODUCT_@ NUMBER(1:AUDITOR:2) in the previous example, you can change( the branch name from AUDITOR to QA.< 5.CDO> REPLACE FIELD /BRANCH PRODUCT_NUMBER(1:AUDITOR:2)< By substituting this command for REPLACE FIELD PRODUCT_B NUMBER(1:AUDITOR:2) in the third example, you can reverse theB creation of the branch line and replace PRODUCT_NUMBER on the main  line. 2 Repository_Templates? For information about Repository_Templates, go to the DEFINE REPOSITORY help topic. 2 RESERVE Format$ {COLLECTION }$ {FIELD }I RESERVE {RECORD } [qualifier] ... element-name ,...$ {FILE_ELEMENT type-name}$ {GENERIC type-name } [AUDIT IS /*text*/] 3 Parameters 4 type-name< Specifies the type of the f ile or generic element you are reserving. 4 element-name> Specifies the element you are reserving. You can substituteA an asterisk (*) wildcard character for this parameter. If theA element is uncontrolled, you must reserve the highest version. 4 textC Adds information to the history list entry. Valid delimiters are) /* */ or double quotation marks (" ").D You can use Japanese to document comments in the AUDIT clause forB a field. To do this, use  the SET CHARACTER_SET command, and set1 the character_set of the session to DEC_KANJI. 3 Qualifiers 4 /BRANCH Format options: /BRANCH=branchname /NOBRANCH (default)B Specifies whether CDO creates a version on a new branch line orD on an existing line of descent. The element must be controlled to use the /BRANCH qualifier. 4 /CLOSURE Format options: /CLOSURE=keyword /NOCLOSURE (default)@ Specifies whether CDO reserves additional elements. A CLOSUREB operation fails if any element is a child of an element outside+ the area defined by the CLOSURE keyword./ CLOSURE takes one of the following keywords: CLOSURE Keyword BehaviorA TO_BOTH Reserves the element specified and all owners and members.? TO_BOTTOM Reserves the element specified and all members.C TO_CLOSURE Reserves the element specified, all owners, and anyD element under the top collection that depends on the" element specified.> TO_TOP Reserves the element specified and all owners.C In most cases, you can specify the TO_BOTH, TO_TOP, or TO_BOTTOMB keywords. The TO_CLOSURE keyword is useful when you are working> with the source and derived files common in system building applications.D If you specify TO_BOTH, TO_CLOSURE, or TO_TOP, CDO ignores owners of the top collection. 4 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text identifying each element as the element is reserved. 4 /OUTPUT Format options: /OUTPUT (default) /NOOUTPUTB The /NOOUTPUT qualifier lets you reserve a FILE_ELEMENT of type? MCS_BINARY without copying the file into the current context@ directory. This capability is useful for using the repository@ to manage binary files that are superseded each time they areD reserved.  It lets you reserve the file element without incurrring? the processing time to create the binary file in the context directory.? If you use the /NOOUTPUT qualifier in a RESERVE command, youC must update the context directory with the latest binary file toB be replaced. If you do not update the current context directoryC with a new file, the REPLACE command will fail. When the REPLACE> command fails, CDO displays an error message containing theA full directory specific ation of the reserved file that CDO wasA attempting to replace. Refer to this error message and place a; new copy of the specified file in the context directory.C If you reserve a file with the /NOOUTPUT qualifier, CDO does notB create the file in the context directory. If you manually place? a file in the context directory and then issue the UNRESERVEA command, the reserved file is unreserved and any copies of theA file in the context directory are deleted. This occurs even if> you manually superseded any files in the context directory.& NOTE< If you use the VERIFY/FIX command on a repository, any= files reserved with the /NOOUTPUT qualifier are createdA in the context directory, because the VERIFY command cannot@ find reserved files. This performance cost has always been@ associated with the VERIFY/FIX command when it cannot find reserved files. 3 DescriptionD The RESERVE command checks out a version of a controlled element.0 A controlled element is one of the following:A o An element you created using Oracle CDD/Repository inside a context? o An element you have controlled with the CONSTRAIN command< You must have a context set to issue the RESERVE command.: If you are issuing the RESERVE command in a distributed? environment, you must issue the ENTER command before issuing the RESERVE command.C The RESERVE command creates  a copy of the immutable version that@ is stored in the base partition associated with your context.B This copy is called a ghost; it is reserved to your context and you can modify it.@ In general, the ghost has a version number that is one numberA higher than that of the original version in the partition. ForC example, if you reserve PRODUCT(1), the ghost of this version is called PRODUCT(2).> If, however, you specify the creation of a parallel line of? developme nt (or branch), the ghost becomes the first versionC in that branch line. For example, if you reserve PRODUCT(2) withA a /BRANCH=AUDITOR qualifier, the ghost copy of this version is called PRODUCT(2:AUDITOR:1).D If you specify the /BRANCH qualifier, you can reserve any versionA of a controlled element in a line of descent that is availableB for reservation. If an element is uncontrolled, an error occursD if you attempt to reserve any version but the latest version in a  line of descent.C An error occurs if you issue the /BRANCH qualifier with a branch name already in use.< An error occurs if you attempt to reserve a child withoutA previously reserving its owners. Use the /CLOSURE qualifier to) reserve as many elements as necessary.< An error occurs if you attempt to reserve a version of anB uncontrolled element that has already been reserved. An element- can have only one outstanding reservation.D When you finish modifying y our working copy of a version, you useC the REPLACE command to check in the new version to the partition or the repository.= If you decide to discard the changes you have made to your9 working copy, use the UNRESERVE command to cancel your% reservation and destroy your copy.B If you decide to merge a branch line that you have created back8 into the main line of descent, use the MERGE command.@ When reserve is invoked with a branch name specified, the newD ghost version is created with a name that incorporates the branchC name and is properly linked to the element from which the branch line originates.? If the target of a reserve notice is involved in one or more; correspondence relationships, those relationships may be! propagated to the new version. 3 Examples3 1.CDO> RESERVE FIELD /CLOSURE=TO_TOP FIRST_NAMEB In this example, the RESERVE command with the /CLOSURE=TO_TOPC qualifier reserves the FIRST_NAME fie ld element and all owners to the top collection.G 2.CDO> RESERVE FIELD /CLOSURE=TO_TOP /BRANCH=AUDITOR PRODUCT_NUMBERB In this example, the RESERVE command with the /CLOSURE=TO_TOP@ qualifier reserves all elements on the path between the top? collection and field PRODUCT_NUMBER; the /BRANCH qualifierB creates a branch line AUDITOR descending from PRODUCT_NUMBER.D 3.CDO> RESERVE FIELD /CLOSURE=TO_TOP PRODUCT_NUMBER(1:AUDITOR:1)D In this example, the RESERVE command reserves the first version in the AUDITOR branch line. 4.SYSTEM collection SOURCE_FILES collection FIRST_FILE.C SECOND_FILE.C INC.H DERIVED_FILES collection FIRST_FILE.OBJ SECOND_FILE.OBJ IMAGE_FILE.EXE@ In this example, the code shows a collection hierarchy with> SYSTEM defined as the top collection. The dependencies in SYSTEM are as follows:< o IMAGE_FILE.EXE depends on FIRST_FILE.OBJ and SECOND_ FILE.OBJ.9 o FIRST_FILE.OBJ depends on FIRST_FILE.C and INC.H.; o SECOND_FILE.OBJ depends on SECOND_FILE.C and INC.H.D 5.CDO> RESERVE FILE_ELEMENT MCS_BINARY /CLOSURE=TO_CLOSURE INC.H@ In this example, the RESERVE command reserves the following elements: o Element INC.H@ o Owners of the element specified, SOURCE_FILES and SYSTEMC o Elements that directly or indirectly depend on the element,7 FIRST_FILE.OBJ, SECOND_FILE.OBJ, IMAGE_FILE.EXED 6.CDO> RESERVE FILE_ELEMENT MCS_BINARY /NOOUTPUT "/ISAM_FILE.DAT"C In this example, ISAM_FILE.DAT is reserved using the /NOOUTPUTC qualifier, but the file is not copied into the current context directory. 2 ROLLBACK Format ROLLBACK 3 Description? The ROLLBACK command terminates a transaction and undoes allB changes that have been made to the database since the program'sC  most recent START_TRANSACTION command. The ROLLBACK command also@ releases all locks, closes all open streams, and releases all? readied relations. It affects all databases participating inB the currently open transaction. The ROLLBACK command implicitly% performs the END_STREAM statement. 3 RestrictionsC o When you delete a record, local fields within that record areA marked for deletion at the end of the transaction, providedB that they remain unused at t he end of the transaction. Using= CDO, there is no way to reuse those local fields. It isD possible to use local fields through the Oracle CDD/Repository? APIs. Therefore, the local fields cannot be automaticallyA deleted at the same point in the transaction as the record.= You must either delete the record and field in separateE transactions (outside the START_TRANSACTION . . . COMMIT streamA of commands) or, to accomplish this in one transaction, use D the ENTER command to enter the local field, delete the record,? delete the local field, and then delete the global field.A o Usually, if Oracle CDD/Repository issues any errors between> the START_TRANSACTION and COMMIT commands, it forces youA to roll back the transaction. In some cases, such as in theD CHANGE or DELETE commands, Oracle CDD/Repository allows you to4 commit the transaction. The general rules are:@ - If you receive an Oracle CDD/Re!pository error of E or FD severity, such as a CDD-E-NODNOTFND message, you must abort the transaction.? - If you receive a CDO error of E or F severity, such asC CDO-E-NOTFOUND, you can continue to operate in the current transaction. 3 Examples CDO> START_TRANSACTION CDO> DEFINE RECORD REC2. cont> FLD1. END RECORD. . . . CDO> SHOW RECORD REC2< Definition of record REC2 | Contains field FLD1 CDO> RO"LLBACK CDO> SHOW RECORD REC2+ %CDO-E-ERRSHOW, error displaying an object5 -CDO-E-NOTFOUND, entity REC2 not found in dictionary? In this example, a record is defined within a transaction,A but because the transaction is terminated using the ROLLBACK( command, the record is not defined. 2 SET 3 CHARACTER_SET Format% SET CHARACTER_SET character-set 4 Parameters 5 character-setA Specifies the type of characters to be used durin#g the currentC CDO session. Valid Character Set Names lists the valid character set names.& Table 1-6 Valid Character Set Names Character Character( Set Type Set Description@ MCS DEC_MCS A set of international alphanumeric' characters> Kanji+ASCII DEC_KANJI Japanese characters as defined by@ the JIS X0208:1990 standard, Narrow? Katakana characters $, as defined byC the JIS X0201:1976 standard, and ASCII' characters 4 DescriptionA Specifies the valid characters that you can use for an element? name, the initial value field property, and in comments. YouA must set the character-set parameter to DEC_KANJI when you use' Japanese with Oracle CDD/Repository.C If you omit the SET CHARACTER SET command, Oracle CDD/RepositoryC references the equivalence name of %the CDD$CHARACTER_SET logical? as the character set for the session. If this logical is not2 assigned, the default character set is DEC_MCS.) RESTRICTION8 DEC_KANJI is not available through the CDO editor.@ Oracle CDD/Repository accepts a maximum field and record nameB length of 31 octets (31 characters for ASCII/MCS characters; 15- characters for Kanji and Narrow Katakana).@ Oracle CDD/Repository accepts the following characters as the&A field and record name when the character-set parameter is DEC_ KANJI:A o Kanji (Japanese characters as defined by the JIS X0208:1990 standard)? o Katakana (Japanese phonetic alphabet, Narrow Katakana, as- defined by the JIS X0201:1976 standard)' o ASCII characters (A-Z, a-z, _, $) 4 Examples" CDO> SET CHARACTER_SET DEC_KANJIA In this example, the character-set parameter is DEC_KANJI to8 support Japanese characters during the CDO 'session. 3 CONTEXT Format; SET CONTEXT [ context-name ] [ AUDIT IS /*text*/ ] 4 Parameters 5 context-name: Specifies the context you are setting. If you omit this3 parameter, CDO sets the current context to null. 5 textC Adds information to the history list entry. Valid delimiters are) /* */ or double quotation marks (" ").D You can use Japanese to document comments in the AUDIT clause forB a field. To do this, use the SE(T CHARACTER_SET command, and set1 the character_set of the session to DEC_KANJI. 4 DescriptionC The SET CONTEXT command defines a context as the current contextA and implicitly controls all versioned elements that you define while the context is set.@ A context is a nonversioned element. Do not include a version number in the context name.B If the top collection associated with the context is undefined,> the SET CONTEXT command takes the element named in the ne )xtA command as the top collection for the context. An error occurs: if the next command is not a DEFINE COLLECTION command.> The context set remains the current context until you issueB another SET CONTEXT command, you delete the context, or you end the CDO session.? As an alternative to the SET CONTEXT command, you can defineC the CDD$CONTEXT logical name. Once set, this context becomes theD current context each time you access the repository. For example:; $ DE*FINE CDD$CONTEXT "cdd$disk:[smith.rep]test_context" 4 Examples( CDO> DEFINE PARTITION FIRST_BASELEVEL.* CDO> DEFINE CONTEXT DEVELOPMENT_CONTEXT.( cont> BASE_PARTITION FIRST_BASELEVEL.& CDO> SET CONTEXT DEVELOPMENT_CONTEXT2 CDO> DEFINE COLLECTION COMPILER_C. 1$ CDO> RESERVE COLLECTION COMPILER_C# CDO> DEFINE COLLECTION FRONT_END." CDO> DEFINE COLLECTION BACK_END.% CDO> REPLACE COLLECTION COMPILER_C.2 CDO> SET CONTEXT 2 CDO> + DEFINE RECORD ISSUES.> In this example, the SET CONTEXT command sets the current; context and implicitly defines a collection as the top: collection. Subsequent definitions will be implicitly controlled.A 1 The DEFINE COLLECTION command sets the top collection forD the current context. All definitions made within the currentA context are attached to the top collection. FRONT_END and, BACK_END are attached to COMPILER_C.B 2 The SET CONT,EXT command sets the current context to a nullB value. ISSUES is uncontrolled and unattached because it is" defined outside a context. 3 DEFAULT Format SET DEFAULT path-name 4 Parameters 5 path-nameD Specifies a default repository directory. You cannot use wildcard characters in this parameter. 4 Description= The SET DEFAULT command establishes the default repository) directory for the current CDO session.> You can- use a logical name that translates to a search listA as the path name in the SET DEFAULT command. After setting theC default repository area, commands that directly affect elements,? such as CHANGE, DEFINE, or DELETE, only operate on the first= occurrence of the element in the search list. However, the> DIRECTORY command searches through all the repository areas specified in the search list. 4 Examples+ CDO> SET DEFAULT DISK:1[SMITH.DATA]REVIEW> In this exa.mple, the SET DEFAULT command sets the default@ directory to the REVIEW directory in the DISK1:[SMITH.DATA] anchor repository. 3 KEY Format SET KEY qualifier 4 Qualifiers 5 /STATE=key-state% Specifies the key state to be set. 4 DescriptionA The SET KEY command sets the current key state. See the DEFINE= KEY command description for information on the key states. 4 Examples CDO> SET KEY/STATE=ONED In this e/xample, the SET KEY command sets the key state to ONE. 3 OUTPUT Format SET OUTPUT [ file-spec ] 4 Parameters 5 file-spec< Specifies the file to which CDO sends the output from CDO commands. 4 DescriptionA The SET OUTPUT command defines where CDO sends the output from CDO during a session.? If you specify a file with the SET OUTPUT command, CDO sends> output to the default output location (SYS$OUTPUT) for your- current proce0ss and to the specified file.D If you specify SET OUTPUT without a file specification, CDO sends. output only to the default output location.B The SET OUTPUT command stays in effect until you change it with another SET OUTPUT command. 4 Examples CDO> SET OUTPUT@ In this example, the SET OUTPUT command captures the outputC from a CDO session and sends it to the default output location for your process. 3 VERIFY Format { VE1RIFY } SET { NOVERIFY } { } 4 DescriptionA The SET VERIFY command causes CDO to display all commands in aB command procedure before executing them. The initial setting is off (NOVERIFY).A To override this default, you can issue the SET VERIFY commandB at the CDO prompt before you process the command procedure. SET? VERIFY then remains in effect until you issue a SET NOVERIFY command.D Alternatively, you can insert the SET VERIFY co2mmand as the firstD command within your command procedure. SET VERIFY then remains in9 effect until the command procedure finishes executing. 4 Examples CDO> SET VERIFY CDO> @ON.CDOB In this example, the SET VERIFY command causes CDO to displayB all commands in the ON.CDO command procedure as they execute. 2 SHOW 3 ALL Format SHOW ALL [ qualifier ] 4 Qualifiers 5 /ALLB Displays system-specified properties, suc3h as time of creation,= and user-specified properties, such as data type, for each1 element in the directory and for all children. 5 /AUDIT< Displays history list entries for each element. AUDIT=ALLC displays history list entries for each element and all children. 5 /BRIEF_(default)D Displays user-specified properties for each element, and provides the names of direct children. 5 /FULLA Displays the user-specified properties for the element and 4for all children. 4 Description> The SHOW ALL command displays a complete or partial list of@ properties for all visible elements in the default directory.? If you have your default directory set to a directory in the> compatibility repository, the SHOW ALL command displays DMU@ record definitions of the CDD$RECORD type, but cannot displayD other definitions that may be stored in your DMU repository. SomeB examples of DMU definitions that CDO cannot display include5 the following:> o ACMS application, menu, task group, and task definitions> o DATATRIEVE domain, plot, table and view definitions, and proceduresD o DBMS schema, subschemas, security schemas, and storage schemas= o Oracle Rdb relation, constraint, index, view, and field definitions9 o TDMS form, request, and request library definitionsB When you display definitions from the compatibility repository,. CDO displays DMU definitions in CDO forma6t.= You must have read access to an element for CDO to display information on that element.B CDO displays type definitions only if your default directory is& set to the CDD$PROTOCOLS directory. 4 Examples CDO> SHOW ALLA In this example, because no qualifier is specified, the SHOWA command displays default BRIEF information. This informationD includes the user-specified properties for each element and the names of direct children. 3 CHA7RACTER_SET Format SHOW CHARACTER_SET 4 Description9 Displays the character set of the current CDO session.? You must set the character-set parameter to DEC_KANJI to use> Japanese characters with Oracle CDD/Repository. Use the SET? CHARACTER_SET command to specify the character set for a CDO session.D If the setting has not been specified using the SET CHARACTER_SETD command, Oracle CDD/Repository references the equivalence name ofB the CDD$CHARA8CTER_SET logical name. If this logical name is not2 assigned, the default character set is DEC_MCS. 4 Examples CDO> SHOW CHARACTER_SET! Session Character_set is DEC_MCSB In this example the current character set setting is DEC_MCS,C which supports a set of international alphanumeric characters. 3 COLLECTION Format: SHOW COLLECTION [ qualifier ] collection-name ,... 4 Parameters 5 collection-name@ Specifies the collection 9whose properties you are displaying. 4 Qualifiers 5 /ALLB Displays system-specified properties, such as time of creation,> and user-specified properties, such as description, for the# collection and for all children. 5 /AUDIT4 Displays history list entries for the collection. 5 /BRIEF_(default)9 Displays user-specified properties for the collection. 5 /FULLD Displays user-specified properties for the collection and for all chi:ldren. 4 DescriptionB The SHOW COLLECTION command displays a complete or partial list= of properties for the collection or collections specified.A If you do not specify a version number for the collection, CDO: displays the properties of the highest visible version. 4 Examples CDO> SHOW COLLECTION MAMMALSA In this example, because no qualifier is specified, the SHOW@ COLLECTION command displays default BRIEF information. This? information include;s the user-specified properties for the9 MAMMALS collection and the names of direct children. 3 CONTEXT Format: SHOW CONTEXT [ qualifier ] [ context-name ] ,... 4 Parameters 5 context-name@ Specifies the context whose properties you are displaying. If@ you omit this parameter, CDO displays the name of the current context. 4 Qualifiers 5 /ALLB Displays system-specified properties, such as time of creation,> and u<ser-specified properties, such as description, for the context and for all children. 5 /AUDIT1 Displays history list entries for the context. 5 /BRIEF_(default)C Displays user-specified properties for the context, and provides the names of direct children. 5 /FULLA Displays user-specified properties for the context and for all children. 4 DescriptionB The SHOW CONTEXT command displays a complete or partial list of6 properties for th=e context or contexts you specify.C Because a context is a nonversioned element, CDO does not accept@ a branch designation or a version number in the context name. 4 Examples" CDO> SHOW CONTEXT ANIMAL_KINGDOMA In this example, because no qualifier is specified, the SHOW= CONTEXT command displays default BRIEF information. This? information includes the user-specified properties for the= ANIMAL_KINGDOM context and the names of direct children. 3 D>ATABASE Format5 SHOW DATABASE [ qualifier ] [ database-name ] 4 Parameters 5 database-name; Specifies the physical database whose properties you areA displaying. By default, if you do not specify a full path nameC for the database, CDO displays all physical database elements in your default directory. 4 Qualifiers 5 /ALLC For an RMS database, displays the database name and description,C record definition, file organizatio?n, fully qualified path name,# and system-specified properties.? For an Oracle Rdb database, displays the database name, file> name, and fully qualified path name, as well as the system- specified properties. 5 /AUDITA Displays the history list entries for the database definition.= The /AUDIT=ALL qualifier displays the history list for all" elements owned by the database. 5 /BRIEF_(default)C For an RMS database, displays the database name and descr@iption,@ record name, fully qualified path name, and file organization properties.? For an Oracle Rdb database, displays the database name, file' name, and fully qualified path name. 5 /FULLC For an RMS database, displays the database name and description,B record definition properties, file organization properties, and fully qualified path name.? For an Oracle Rdb database, displays the database name, file' name, and fully qualified path name.  A4 DescriptionC The SHOW DATABASE command displays a complete or partial list of2 properties for the database elements specified.A If you do not specify a version number for a database element,, CDO displays the highest visible version.B When you use the SHOW DATABASE command to display an Oracle RdbA database element, CDO shows only the database name, file name,B and the fully qualified path name. Use the SHOW GENERIC commandB with the /FULL qualifier or use SQL (structBured query language)= to view the complete definition of an Oracle Rdb database. 4 Examples CDO> SHOW DATABASE DEPT5A In this example, because no qualifier is specified, the SHOW> DATABASE command displays default BRIEF information. ThisB information includes the DEPT5 Oracle Rdb database name, file) name, and fully qualified path name. 3 DEFAULT Format SHOW DEFAULT 4 Description< The SHOW DEFAULT command displays the currentC default CDO repository directory.; If you set your default directory to a logical name that= translates to a search list and you issue the SHOW DEFAULTA command, CDO displays the names of the repository areas in the0 same order as they appear in the search list. 4 Examples 1.CDO> SET DEFAULT MY_DICT CDO> SHOW DEFAULTD In this example, the SHOW DEFAULT command displays the names ofC the local and remote repository areas specified by the logicalD name MY_DICT. 2.CDO> SHOW DEFAULTC In this example, the SHOW DEFAULT command displays the current default CDO directory. 3 FIELD Format: SHOW FIELD [ qualifier ] ... [ field-name ] ,...3 [ FROM DATABASE database-name ] 4 Parameters 5 field-nameC Specifies the field element whose properties you are displaying.@ When you use the FROM DATABASE clause, specify only one field$ name for each SHOW EFIELD command.D Specify an asterisk (*) wildcard character for the entire field-B name parameter only. If you use a wildcard character as part of- the field-name parameter, an error occurs. 5 database-nameA Specifies the Oracle Rdb database that contains the field. CDOB requires this parameter for fields from an Oracle Rdb database.8 CDO accepts wildcard characters in the database name. 4 Qualifiers 5 /ALLB Displays system-specified properties, sFuch as time of creation,D and user-specified properties, such as description, for the field name and for all children. 5 /AUDITC Displays history list entries for the field name. The /AUDIT=ALLA qualifier displays the history list entries for the field nameD and for all children. Do not use this qualifier if the field name9 you specify is from an Oracle Rdb database definition. 5 /BRIEF_(default)= Displays user-specified properties for the field name, anGd) provides the names of direct children. 5 /FULLD Displays user-specified properties for the field name and for all children. 5 /SYSTEM Format options: /SYSTEM /NOSYSTEM (default)> Specifies whether CDO displays Oracle Rdb system relations. 5 /RDB_METADATA Format options: /RDB_METADATA /NORDB_METADATA (default)C Specifies whether CDO displays Oracle Rdb system relations. This6 qualifier is synonymous wHith the /SYSTEM qualifier. 4 Description@ The SHOW FIELD command displays a complete or partial list of@ properties for the field names you specify, provided you have read privileges.? If you do not specify a full path name (or the FROM DATABASE@ clause) for the field name, CDO searches your current defaultD directory for the field name. If you do not specify a field name,A CDO displays the properties of all field names in your default directory.? If you do I not specify a version number for a field name, CDO: displays the properties of the highest visible version.& NOTE> If you make incompatible changes to the CDD$DATA_ELEMENT= type, supplied by Oracle CDD/Repository, the SHOW FIELD? command may not display those properties whose data types you have modified.@ If a field has character set attributes, you can display them@ using the SHOW and EXTRACT commands; in addition, you canJ useB the SHOW command to display size information of a field in bothB character-based size and octet-based size. See the descriptionsD of SET CHARACTER_SET command and the DATATYPE_Field_Property help1 topic found under the fld-properties topic for more information. 4 Examples; 1.CDO> SHOW FIELD CORPORATE_ZIPCODE FROM DATABASE DEPT3< In this example, because no qualifier is specified, the@ SHOW FIELD command displays default BRIEF information. This? iKnformation includes the user-specified properties for theC CORPORATE_ZIPCODE field name and the names of direct children. 2.CDO> DEFINE FIELD FULL_NAME, cont> DATATYPE TEXT CHARACTER_SET KANJI cont> SIZE 2 CHARACTERS. CDO> SHOW FIELD FULL_NAME" Definition of field FULL_NAMEC | Datatype text size is 2 characters (4 Octets)$ | Character_set KANJI8 This example defines and shows the field FULL_NAME. 3 FILE_ELEMENT L FormatC SHOW FILE_ELEMENT type-name [ qualifier ] element-name ,... 4 Parameters 5 type-name? Specifies the type (MCS_BINARY or MCS_BINARY subtype) of theA file element you are displaying. See the Oracle CDD/Repository4 Information Model for information on these types. 5 element-nameB Specifies the file element whose properties you are displaying. 4 Qualifiers 5 /ALLB Displays system-specified properties, such as time ofM creation,C and user-specified properties, such as description, for the file element and for all children. 5 /AUDIT6 Displays history list entries for the file element. 5 /BRIEF_(default)? Displays user-specified properties for the file element, and) provides the names of direct children. 5 /FULLB Displays user-specified properties for the file element and for all children. 4 DescriptionD The SHOW FILE_ELEMENT command displays a compNlete or partial list> of properties for the file element or elements you specify.A If you do not specify a version number for a file element, CDO: displays the properties of the highest visible version. 4 Examples% CDO> SHOW FILE_ELEMENT MCS_TEXT CATA In this example, because no qualifier is specified, the SHOWA command displays default BRIEF information. This informationD includes the user-specified properties for the CAT file element& and the names oOf direct children. 3 GENERIC FormatD SHOW GENERIC type-name [ qualifier ] [ element-name ] ,...3 [ FROM DATABASE database-name ] 4 Parameters 5 type-nameA Specifies the type of the generic element whose properties youD are displaying. This type cannot be MCS_BINARY, a subtype of MCS_A BINARY, MCS_COLLECTION, MCS_CONTEXT, or MCS_PARTITION. See theC Oracle CDD/Repository Information Model for information on these typPes. 5 element-name9 Specifies the generic element whose properties you are displaying.B When you use the FROM DATABASE clause, specify only one element& name for each SHOW GENERIC command.= Specify an asterisk (*) wildcard character for the entire? element-name parameter only. If you use a wildcard character0 as part of the element-name, an error occurs. 5 database-nameC Specifies the Oracle Rdb database that contains the element. CDOD requireQs this parameter for elements from an Oracle Rdb database.< You can include wildcard characters in the database name. 4 Qualifiers 5 /ALLB Displays system-specified properties, such as time of creation,> and user-specified properties, such as description, for the( generic element and for all children. 5 /AUDIT= Displays history list entries for the generic element. TheC /AUDIT=ALL qualifier displays the history list for all children.> CDO displays Rhistory list entries only if you specified theB CDD$HISTORY_LIST relationship as part of this generic element's type definition. 5 /BRIEF_(default)B Displays user-specified properties for the generic element, and) provides the names of direct children. 5 /FULLA Displays user-specified properties for the generic element and> for all children. CDO displays description text only if youA specified the CDD$DESCRIPTION property as part of this generic elemeSnt's type definition. 4 DescriptionB The SHOW GENERIC command displays a complete or partial list of> properties for the generic element or elements you specify.A If you specify the type name but not an element name, the SHOW> GENERIC command displays all elements of the specified typeA in your default directory, provided that you have privilege to display them.= You must have read access to all components of the generic/ element for CDO to display those componTents.D If you do not specify a version number for a generic element, CDO( displays the highest visible version.D You can display a field definition by specifying CDD$DATA_ELEMENT? as the type name and the name of the field definition as the element name.> You can display a record definition by specifying CDD$DATA_C AGGREGATE as the type name and the name of the record definition as the element name.C You can display indexes or constraints in an Oracle Rdb databUase@ element by specifying CDD$INDEX or CDD$CONSTRAINT as the typeD name and the name of the index or constraint as the element name.0 Remember to include the FROM DATABASE clause. 4 Examples) CDO> SHOW GENERIC BOOK REFERENCE_MANUALA In this example, because no qualifier is specified, the SHOWA command displays default BRIEF information. This information@ includes user-specified properties for the REFERENCE_MANUAL. element and the names of direct childre&Vn. 3 KEY Format/ SHOW KEY [ qualifier ] ... [ key-name ] 4 Parameters 5 key-name9 Specifies the key whose properties you are displaying. 4 Qualifiers 5 /ALLB Displays all key definitions in a key state. You cannot use the7 /ALL qualifier if you specify one or more key names. 5 /BRIEF_(default)) Displays the key definition and state. 5 /DIRECTORY Format options: /DIRECTORY /NODIRECWTORY (default)D Displays the names of all states for which you have defined keys.B If you specify the /DIRECTORY qualifier, you cannot specify any other SHOW KEY qualifiers. 5 /FULL Format options: /FULL /NOFULL (default)> Displays all qualifiers for the key definition you specify.A Specifying the /NOFULL qualifier gives the same results as the /BRIEF qualifier. 5 /STATE Format options: /STATE=key-state /NOSTATE (Xdefault)C Displays key definitions for the state you specify. The /NOSTATE< qualifier displays key definitions for the current state. 4 Description> The SHOW KEY command displays a complete or partial list of& properties for the key you specify.D If you do not specify a key name, CDO displays the definition for all keys.< You use the DEFINE KEY command to create key definitions. 4 Examples CDO> SHOW KEY PF3A In this example, because no qualifiYer is specified, the SHOWA command displays default BRIEF information. This information; includes the key definition and state for the PF3 key. 3 NOTICES Format% SHOW NOTICES element-name ,... 4 Parameters 5 element-name: Specifies the element whose notices you are displaying. 4 DescriptionB The SHOW NOTICES command displays the notices at the element or@ elements you specify. CDO sends notices to elements when you:> o Ch Zange an element and the change affects other elements.A For example, if you change the name of a field element in a? database, the database element may need to be integrated.> o Change an element and the change affects the parent. For> example, if you delete the name of a record element in a< database, the database element needs to be integrated.D o Create a new version of an element. For example, if you createA a new record element that appears in a program [, the program needs to be recompiled.A If you issue the SHOW NOTICES command for an element that doesC not have notices, CDO informs you that the element does not have notices.@ You can display new version notices by using the SHOW NOTICESA command at any of the member's parents that have a CDD$NOTICE_. ACTION property value of SUCCESS or SIGNAL.? You can display notices that the CHANGE command generates by@ using the SHOW NOTICES command at any of the memb\er's parents: that have a CDD$NOTICE_ACTION property value of SIGNAL.9 CDO sends notices when you either change a member of aC relationship with the CHANGE command or you define a new version of the member.> The three types of notices that definitions receive and the! meanings of these notices are: o CDD$K_POSSIBLY_INVALIDC A definition used by this definition has changed. This changeB might affect this definition. This notice indicates the name% ]of the definition that changed. o CDD$K_INVALIDA A definition used by this definition changed or was removedC from the repository. This definition is invalid. If a changed> definition initiated the notice, the notice supplies the? name of the definition. If a deleted definition initiated? the notice, the notice does not supply a definition name. o CDD$K_NEW_VERSION? A new version of a definition used by this definition wasB created. T ^he notice supplies the name of the definition that has the new version. o CDD$K_CHILD_USAGE= A relationship from one of the definitions used by this< element to one of its children was changed. The noticeA indicates the owner of the changed relationship. You cannotA generate this type of notice using CDO. Only programs usingA the Oracle CDD/Repository callable interface can cause thisC notice. You can, however, read this type of notice using CDO_. 4 Examples$ 1.CDO> SHOW NOTICES EMPLOYEE_REC . . .% CDO> CLEAR NOTICES EMPLOYEE_REC? In this example, the SHOW NOTICES command displays noticesB sent to the EMPLOYEE_REC record. You can clear any notices by' issuing the CLEAR NOTICES command. 2.CDO> CHANGE FIELD FLD_A) cont> DATATYPE IS SIGNED LONGWORD.I %CDO-I-DBMBR, database DISK1:[SMITH.DICT]MY_RDB_DB(1) may need to be integrated! CDO> SHO`W NOTICES MY_RDB_DBL DISK1:[SMITH.DICT]MY_RDB_DB(1) is possibly invalid, triggered by entity DISK1:[SMITH.DICT]FLD_A(1) CDO>> In this example, CDO sends a notice that a database might@ require integration as a consequence of the CHANGE command.C You can use the SHOW NOTICES command to display this notice at' the MY_RDB_DB database definition. 3.CDO> DEFINE FIELD FLD_B$ cont> DATATYPE SIGNED LONGWORD. CDO> SHOW NOTICES REC_BJ DISK1 a:[SMITH.DICT]RDB_REC_B(1) uses an entity which has new versions,= triggered by CDD$DATA_ELEMENT DISK1:[SMITH.DICT]FLD_B(1)! CDO> SHOW NOTICES MY_RDB_DBJ DISK1:[SMITH.DICT]MY_RDB_DB(1) uses an entity which has new versions,= triggered by CDD$DATA_ELEMENT DISK1:[SMITH.DICT]FLD_B(1)E DISK1:[SMITH.DICT]MY_RDB_DB(1) is possibly invalid, triggered by0 CDD$DATA_ELEMENT DISK1:[SMITH.DICT]FLD_A(1)C When you create a new version of the FLD_B field definition byB u bsing the DEFINE FIELD command, CDO sends new version noticesA to the parents of FLD_B. The following set of examples shows this sequence of events:C 1. The DEFINE FIELD command creates a new version of the FLD_B field definition.C 2. The first SHOW NOTICES command shows that FLD_B's immediate@ parent, REC_B record definition received the new version9 notice when CDO created the new version of FLD_B.@ 3. The second SHOW NOTICES command show cs two notices at theC MY_RDB_DB CDD$DATABASE definition. The CHANGE command sendsC one notice on behalf of the FLD_A field definition from theB previous example, and the DEFINE FIELD command sends a new@ version notice on behalf of the new version of the FLD_B field definition.! 4.CDO> CLEAR NOTICES MY_RDB_DB! CDO> SHOW NOTICES MY_RDB_DBD %CDO-I-NONOTICES, DISK1:[SMITH.DICT]MY_RDB_DB(1) has no notices= To clear the notices at MY_RDB_dDB, use the CLEAR NOTICES command.A To verify that you cleared the notices at MY_RDB_DB, use the= SHOW NOTICES command. If you ask to see the notices at a? definition without notices, CDO responds that there are no notices. 3 PARTITION Format8 SHOW PARTITION [ qualifier ] partition-name ,... 4 Parameters 5 partition-name? Specifies the partition whose properties you are displaying. 4 Qualifiers 5 /ALLeB Displays system-specified properties, such as time of creation,> and user-specified properties, such as description, for the" partition and for all children. 5 /AUDIT3 Displays history list entries for the partition. 5 /BRIEF_(default)< Displays user-specified properties for the partition, and? provides the names of direct children. /BRIEF is the default qualifier. 5 /FULLC Displays user-specified properties for the partition and for allf children. 4 DescriptionD The SHOW PARTITION command displays a complete or partial list of8 properties for the partition or partitions specified.> Because a partition is a nonversioned element, CDO does not? accept a branch designation or a version number in partition names. 4 Examples& CDO> SHOW PARTITION INITIAL_PROPOSALA In this example, because no qualifier is specified, the SHOW? PARTITION command displays default BRIEF information. Thisg? information includes the user-specified properties for theA INITIAL_PROPOSAL partition and the names of direct children. 3 PRIVILEGES Format' { DIRECTORY }: SHOW PRIVILEGES FOR { FIELD } element-name ,...' { RECORD }' { }. SHOW PRIVILEGES FOR GENERIC type-name3 SHOW PRIVILEGES FOR REPOSITORY anchor-name 4 Parameters 5 elementh-name@ Specifies the element whose access rights you are displaying. 5 type-name- Specifies the type of the generic element. 5 anchor-nameA Specifies the anchor directory of the repository for which you want to display privileges. 4 DescriptionA The SHOW PRIVILEGES command displays the access rights for the elements you specify.? To display your privileges for a type, use the SHOW PROTOCOL command. 4 Examples/ CDO> SHOW PRIViILEGES FOR FIELD CURRENT_SALARY? In this example, the SHOW PRIVILEGES command displays your7 access rights to the CURRENT_SALARY field element. 3 PROTECTION Format0 { DIRECTORY }0 { FIELD }C SHOW PROTECTION FOR { RECORD } element-name ,...0 { }0 { GENERIC type-name }3 SHOW PROTECTION FOR REPOSITOjRY anchor-name 4 Parameters 5 type-name- Specifies the type of the generic element. 5 element-name6 Specifies the element whose ACL you are displaying. 5 anchor-name@ Specifies the repository anchor whose ACL you are displaying. 4 Description? The SHOW PROTECTION command displays the access control listB (ACL) for the element you specify. When you specify FOR GENERICC MCS_CONTEXT or FOR REPOSITORY, SHOW PROTECTION also displays thek default access control list.B To display the access control list for a type, you can also use the SHOW PROTOCOL command. 4 Examples3 1.CDO> SHOW PROTECTION FOR FIELD CURRENT_SALARY> In this example, the SHOW PROTECTION command displays theA access control list for the CURRENT_SALARY field definition.8 2.CDO> SHOW PROTECTION FOR REPOSITORY CDD$REPOSITORY2B In this example, Oracle CDD/Repository translates the logical name for the repository l. 3 PROTOCOL Format2 SHOW PROTOCOL [ qualifier ] type-name ,... 4 Parameters 5 type-name: Specifies the type whose properties you are displaying. 4 Qualifiers 5 /ALLD Displays all the possible relationships the type can own, as well+ as the access control list for the type. 5 /AUDIT= Displays the history list entries for the type. SpecifyingA the /AUDIT=ALL qualifier displays the history list for all the$ m relationships that the type owns. 5 /FULL= Displays all the possible relationships this type can own. 5 /BRIEF_(default)? Displays the relationships most commonly owned by this type.# /BRIEF is the default qualifier. 4 DescriptionC The SHOW PROTOCOL command displays a complete or partial list of0 properties for the type or types you specify.@ CDO looks for types in the CDD$PROTOCOLS directory below yourD current default anchor. It is not necessanry to set default to the, CDD$PROTOCOLS directory to display types.: CDO uses relationships to pass notices among repositoryA definitions. Every relationship protocol in the repository hasC the CDD$NOTICE_ACTION property, whose value controls the passingC of notices. You can use the CDO SHOW PROTOCOL command to display/ the value of the CDD$NOTICE_ACTION property.? The CDD$NOTICE_ACTION property can have one of three values: o SUCCESSB When you change a me omber of the relationship with the CHANGEB command and the CDD$NOTICE_ACTION property value is SUCCESS,A CDO does not send notices to the owner of the relationship.A Instead, CDO sends notices to the owner's parents, provided= that the parents are members of a relationship with the2 CDD$NOTICE_ACTION attribute value of SIGNAL.> CDO continues to send these notices until the member youB are changing has no more parents or until CDO encounters the- CDD$ pNOTICE_ACTION property value BLOCK.C When you define a new version of a member and the CDD$NOTICE_B ACTION attribute value is SUCCESS, CDO sends notices to bothB the owner of the relationship and the owner's parents, untilB CDO encounters the CDD$NOTICE_ACTION property value of BLOCK) or until there are no more parents. o SIGNALD When you change the member with the CHANGE command or when youB define a new version of the member and the CDD$NOTICE_qACTION? attribute value is SIGNAL, CDO sends a notice to both the. owner and the parents of a relationship.? When you define a new version of a member, CDO also sendsA notices to the parents until CDO encounters the CDD$NOTICE_? ACTION property value of BLOCK or until there are no more parents. o BLOCK= When the CDD$NOTICE_ACTION property value is BLOCK, CDOA does not forward a notice from the member to the owner. CDOB blocks ther notice regardless of whether you are changing theD member with the CHANGE command or defining new versions of the member. 4 Examples4 1.CDO> SHOW PROTOCOL CDD$DATA_AGGREGATE_CONTAINSA In this example, because no qualifier is specified, the SHOW> PROTOCOL command displays default BRIEF information. This? information includes the user-specified properties for the= CDD$DATA_AGGREGATE_CONTAINS type and the names of direct children.+ 2.CDO> sSHOW PROTOCOL CDD$DATABASE_SCHEMAL Definition of protocol CDD$DATABASE_SCHEMA (Type :MCS_RELATION_TYPE)= | MCS_rdbRelation CDD$$O_DATABASE_REL5 | MCS_groupingRelation NO_GROUPING0 | MCS_noticeAction SIGNAL: | CDD$OBJECT_KIND CDD$RELATIONSHIP+ | MCS_protocolMajor 1+ | MCS_protocolMinor 01 | MCS_tag 2818865A | MCS_crea ttedDate 14-MAR-1994 09:13:32.42A | CDD$MODIFIED_TIME 14-MAR-1994 09:13:32.42+ | MCS_instantiable 1 | MCS_pattern+ | MCS_status 0A | MCS_freezeTime 14-MAR-1994 09:13:32.42+ | MCS_controlled 1+ | MCS_allowConcurrent 1 | MCS_HAS_PROPERTYD | | MCS_attachment (Type : MCS_PROPERTY_TYPE)D | | uMCS_inherited (Type : MCS_PROPERTY_TYPE)D | | CDD$PROTOCOL_TAG (Type : MCS_PROPERTY_TYPE)D | | MCS_containsDatabases (Type : MCS_PROPERTY_TYPE)D | | MCS_relOwner (Type : MCS_PROPERTY_TYPE)D | | MCS_relMember (Type : MCS_PROPERTY_TYPE)D | | MCS_databaseElement (Type : MCS_PROPERTY_TYPE)D | | MCS_elementType (Type : MCS_PROPERTY_TYPE)D | | MCS_allElementTy vpes (Type : MCS_PROPERTY_TYPE) | MCS_HAS_RELATIONC | | CDD$DATABASE (Type : MCS_ELEMENT_TYPE)C | | CDD$DATABASE (Type : MCS_ELEMENT_TYPE) | MCS_RELATION_MEMBERC | | CDD$DATA_AGGREGATE (Type : MCS_ELEMENT_TYPE)C | | CDD$RDB_DATABASE (Type : MCS_ELEMENT_TYPE)C | | DBM$SCHEMA (Type : MCS_ELEMENT_TYPE)C | | CDD$RMS_DATABASE (Type : MCS_EL wEMENT_TYPE)C | | CDD$DATA_AGGREGATE (Type : MCS_ELEMENT_TYPE)C | | CDD$RDB_DATABASE (Type : MCS_ELEMENT_TYPE)C | | DBM$SCHEMA (Type : MCS_ELEMENT_TYPE)C | | CDD$RMS_DATABASE (Type : MCS_ELEMENT_TYPE) | MCS_OBJECT_VALIDATIONA | | CDD$RELATION_VAL (Type : MCS_VALIDATION)A | | CDD$ELEMENT_VAL (Type : MCS_VALIDATION)< In this example, the SHOW PROTOCOL xcommand displays the? CDD$NOTICE_ACTION property of SIGNAL for the CDD$DATABASE_ SCHEMA relationship. 3 RECORD Format: SHOW RECORD [ qualifier ] ... [ record-name ] ,...2 [ FROM DATABASE database-name ] 4 Parameters 5 record-nameC Specifies the record, relationship, or view whose properties you are displaying.A When you use the FROM DATABASE clause, specify only one record% name for each SHOW RECORD commandy.= Specify an asterisk (*) wildcard character for the entireA record-name parameter only. If you use a wildcard character as, part of the record name, an error occurs. 5 database-nameB Specifies the Oracle Rdb database that contains the record. CDOC requires this parameter for records from an Oracle Rdb database.< You can include wildcard characters in the database name. 4 Qualifiers 5 /ALLB Displays system-specified properties, such as time ofz creation,> and user-specified properties, such as description, for the' record element and for all children. 5 /AUDITC Displays history list entries for the record element. Specifying= the /AUDIT=ALL qualifier displays the history list entries? for the record element and for all children. Do not use this< qualifier if the record you specify is from an Oracle Rdb database definition. 5 /BRIEF_(default)A Displays user-specified properties for the reco{rd element, and? provides the names of direct children. /BRIEF is the default qualifier. 5 /FULLD Displays user-specified properties for the record element and for all children. 5 /SYSTEM Format options: /SYSTEM /NOSYSTEM (default)> Specifies whether CDO displays Oracle Rdb system relations. 5 /RDB_METADATA Format options: /RDB_METADATA /NORDB_METADATA (default)C Specifies whether CDO displays Oracle R |db system relations. This6 qualifier is synonymous with the /SYSTEM qualifier. 4 DescriptionA The SHOW RECORD command displays a complete or partial list ofD properties for the record elements you specify, provided you have read privilege.? If you do not specify a full path name (or the FROM DATABASE? clause), CDO searches your current default directory for theA record name. If you do not specify a record name, CDO displaysC the properties of all record elements} in your default directory.C If you do not specify a version number for a record element, CDO: displays the properties of the highest visible version.> If you do not have read privilege for a record and for eachA component part of that record, CDO will not display the record name or properties. 4 Examples! CDO> SHOW RECORD ADDRESS_RECORD$ cont> FROM DATABASE SUBSCRIPTIONSA In this example, because no qualifier is specified, the SHOW< RECORD command ~displays default BRIEF information. This? information includes the user-specified properties for theD ADDRESS_RECORD record element and the names of direct children. 3 REPOSITORIES Format% SHOW REPOSITORIES [ qualifier ] 4 Qualifiers 5 /FULLC Displays the elements within other repositories being referenced by your repository. 4 Description: The SHOW REPOSITORIES command scans your repository for> dependencies on elements in other repositories. The commandD displays the name of these other repositories and, if you specify2 the /FULL qualifier, the names of the elements. 4 Example CDO> SHOW REPOSITORIESA In this example, because no qualifier is specified, the SHOW@ REPOSITORIES command displays the names of the repositories% that your repository references. 3 RESERVATIONS Format% SHOW RESERVATIONS [ qualifier ] 4 Qualifiers 5 /ALLD Displays all the reserved elements, their types, and the contexts, reserving them throughout the repository. 5 /BRIEF_(default)= Displays reserved elements and their types in your current, context. /BRIEF is the default qualifier. 4 DescriptionC The SHOW RESERVATIONS command displays the reserved elements for5 your current context or for the entire repository.1 An error occurs if a context has not been set. 4 Examples CDO> SET CONTEXT PERSONNEL" CDO>  RESERVE COLLECTION OFFICERS CDO> SHOW RESERVATIONS . . ." CDO> REPLACE COLLECTION OFFICERS CDO> SHOW RESERVATIONS . . .B In this example, the first SHOW RESERVATIONS command displaysC the reserved elements, their types, and the reserving context.C The second SHOW RESERVATIONS command displays an informational5 notice indicating that no elements are reserved. 3 RMS_DATABASE Format= SHOW RMS_DATABASE [ qualifier ] [ rms-database-name ] 4 Parameters 5 rms-database-nameB Specifies the logical RMS database element whose properties you are displaying.C If you do not specify an RMS database name, CDO displays all the. RMS database definitions in the repository. 4 Qualifiers 5 /ALLB Displays system-specified properties, such as time of creation,B and user-specified properties, such as description, for the RMS% database element and all children. 5 /AUDIT> Displays history list entries for the RMS database element.@ Specifying the /AUDIT=ALL qualifier displays the history list1 for the database element and for all children. 5 /BRIEF_(default)A Displays the file organization properties for the RMS database, element. /BRIEF is the default qualifier. 5 /FULLD Displays the file organization properties, the record definition,< and the description for the logical RMS database element. 4 DescriptionD The SHOW RMS_DATABASE command displays a complete or partial list: of properties for the RMS database element you specify.= If you do not specify a version number for an RMS database5 element, CDO displays the highest visible version.> When you use SHOW RMS_DATABASE or SHOW RMS_DATABASE/FULL toB display an RMS database element with a NULL_VALUE property, CDO. displays the null value as a decimal value. 4 Examples) CDO> SHOW RMS_DATABASE EMPLOYEE_STORAGEA In this example, because no qualifier is specified, the SHOWB RMS_DATABASE command displays default BRIEF information. This? information includes the user-specified properties for the> EMPLOYEE_STORAGE RMS database definition and the names of direct children. 3 UNUSED Format7 SHOW UNUSED [ qualifier ] ... element-name ,... 4 Parameters 5 element-nameC Specifies the element whose relationships you are investigating. 4 Qualifiers 5 /TYPE Format option:" /TYPE=[ ( type-name ) ] ,...@ endcondition> Displays only owners or members of the type you> specify. This type must be the keyword RECORD or FIELD or a@ type name that is valid for this command. Valid types include> instances of ELEMENT_TYPE or RELATIONSHIP_TYPE; they do not& include instances of PROPERTY_TYPE. 5 /BRIEF_(default)C Displays the immediate owners and members of the element. /BRIEF is the default qualifier. 5 /FULL2 Displays all owners and members of the element. 4 DescriptionC The SHOW UNUSED command determines whether an element has owners6 or members. The element must have a directory name.? If the element does not have owners or members, the name and> type of the element is displayed. If the element has owners@ or members, CDO sends an informational notice. If you receive@ an informational notice, issue the SHOW USES and SHOW USED_BY0 commands to identify these owners or members. 4 Examples" 1.CDO> SHOW UNUSED EMPLOYEE_DB< In this example, because no qualifier is specified, theA SHOW UNUSED command displays default BRIEF information. ThisB information includes the names of immediate owners or members) of the EMPLOYEE_DB database element.' 2.CDO> SHOW UNUSED /FULL FIELD_A(2)< In this example, the SHOW UNUSED command with the /FULL? qualifier displays all owners or members of the FIELD_A(2) field element.7 3.CDO> SHOW UNUSED /FULL /TYPE=(FIELD) EMPLOYEE_REC@ In this example, the SHOW UNUSED command with the /FULL andD /TYPE qualifiers displays all owners or members of EMPLOYEE_REC that are fields. 3 USED_BY Format8 SHOW USED_BY [ qualifier ] ... element-name ,... 4 Parameters 5 element-name; Specifies the element whose children you are displaying. 4 Qualifiers 5 /TYPE Format option:" /TYPE=[ ( type-name ) ] ,...A Displays only children of the type you specify. This type mustB be the keyword RECORD or FIELD or a type name that is valid forA this command. Valid types include instances of ELEMENT_TYPE or@ RELATIONSHIP_TYPE; they do not include instances of PROPERTY_ TYPE. 5 /BRIEF_(default)> Displays the name, type, and relationship type of immediate- children. /BRIEF is the default qualifier. 5 /FULLB D isplays the name, type, and relationship type of all children. 4 DescriptionD The SHOW USED_BY command displays the children of the element youC specify. The display includes the properties of children and the+ values associated with these properties.> The SHOW USED_BY command lists children if they have eitherC directory or processing names. CDO looks first for the directoryC name and displays it if one exists. If a directory name does not> exist, CDO then looks for  and displays the processing name.D A definition can only exist in the repository without a directoryC or processing name if it has a relationship to an owner that hasD a directory name. CDO displays a name unspecified message in this case.? To display Oracle Rdb database definitions, specify the name< of the database as the element-name parameter and use the> /FULL qualifier. Because CDO displays the full path name of@ each repository element, you can use the SHOW USED_BY commandB to determine where each instance of a particular element occurs( and how it relates to other elements. 4 Examples# 1.CDO> SHOW USED_BY EMPLOYEE_DBA In this example, because no qualifier is specified, the SHOWD USED_BY command displays the default information (/BRIEF). This@ information includes the names of immediate children of the" EMPLOYEE_DB database element.( 2.CDO> SHOW USED_BY /FULL FIELD_A(2)= In this example, the SHOW USED_BY command with the /FULL< qualifier displays all children of the FIELD_A(2) field element.8 3.CDO> SHOW USED_BY /FULL /TYPE=(FIELD) EMPLOYEE_RECA In this example, the SHOW USED_BY command with the /FULL andD /TYPE qualifiers displays all children of EMPLOYEE_REC that are fields. 3 USES Format5 SHOW USES [ qualifier ] ... element-name ,... 4 Parameters 5 element-name9 Specifies the element whose owners you are displaying. 4 Qualifiers 5 /TYPE Format option:" /TYPE=[ ( type-name ) ] ,...?Displays only owners of the type you specify. This type must be<the keyword RECORD or FIELD or a type name that is valid for>this command. Valid types include instances of ELEMENT_TYPE orBRELATIONSHIP_TYPE; they do not include instances of PROPERTY_TYPE. 5 /BRIEF_(default)> Displays the name, type, and relationship type of immediate+ owners. /BRIEF is the default qualifier. 5 /FULL@ Displays the name, type, and relationship type of all owners. 4 Description? The SHOW USES command displays the owners of the element youA specify. The display includes the properties of owners and the+ values associated with these properties.C The SHOW USES command lists owners if they have either directory? names or processing names. CDO looks first for the directoryC name and displays it if one exists. If a directory name does not> exist, CDO then looks for and displays the processing name.B An element can only exist in the repository without a directoryA or processing name if it has a relationship to an owner with aB directory name. CDO displays a name unspecified message in this case.< You can use the SHOW USES command to display the names ofA elements that receive new version messages if you create a new& version of the element you specify. 4 Examples 1.CDO> SHOW USES EMPLOYEE_DBA  In this example, because no qualifier is specified, the SHOWA USES command displays the default information (/BRIEF). This> information includes the names of immediate owners of the" EMPLOYEE_DB database element.% 2.CDO> SHOW USES /FULL FIELD_A(2)D In this example, the SHOW USES command with the /FULL qualifier9 displays all owners of the FIELD_A(2) field element.7 3.CDO> SHOW USES /FULL /TYPE=(RECORD) EMPLOYEE_NAME> In this example, the SHOW USES command with the /FULL andC /TYPE qualifiers displays all owners of EMPLOYEE_NAME that are records. 3 VERSION Format SHOW VERSION 4 DescriptionD The SHOW VERSION command displays the following information aboutC one or more respositories that you have invoked and to which the% CDO session is currently attached:B o Version number of Oracle CDD/Repository that is installed on your system8 o Major and minor version numbers of each repository- o Fully qualified name of each repository> o Version numbers of Oracle CDD/Repository with which each repository is compatibleC If you issue the SHOW VERSION command and you have not invoked aC repository during the CDO session, CDO displays only the version8 of Oracle CDD/Repository that is currently installed.< Commands such as DEFINE FIELD or SHOW FIELD will invoke a@ repository; however, the SET DEFAULT or SHOW DEFAULT commands@ will not. If you issue a DIRECTORY command and the repository; contains elements, the session will invoke a repository. 4 Examples 1.CDO> SHOW DEFAULT CDO> SHOW VERSION9 Installed version of Oracle CDD/Repository is V7.0.1> In this example, the SHOW DEFAULT command does not invoke? a repository. Therefore, the SHOW VERSION command displays@ only the version of Oracle CDD/Repository that is currently installed. 2.CDO> SHOW FIELD Definition of field A1; | Datatype text size is 1 characters% | Row_major array 1:4 Definition of field A1_KEY; | Datatype text size is 1 characters . . . CDO> SHOW VERSION9 Installed version of Oracle CDD/Repository is V7.0.1 Attached to repository CDD$R0:[SMITH.REPOS3]% Repository Version V6.1 / V7.0.1 Internal Major Version 26 Internal Minor Version 3B In this example, the SHOW FIELD command invokes a repository.@ Consequently, the SHOW VERSION command displays information2 about the repository to which it is attached. 3 WHAT_IF Format8 SHOW WHAT_IF [ qualifier ] ... element-name ,... 4 Parameters 5 element-name6 Specifies the element you are considering changing. 4 Qualifiers 5 /TYPE Format option:" /TYPE=[ ( type-name ) ] ,...D Displays those owners of the type  you specify that could possibly@ receive an invalid notice if you perform a change in locationC with the CHANGE command. This type must be the keyword RECORD orC FIELD or a type name that is valid for this command. Valid typesB include instances of ELEMENT_TYPE or RELATIONSHIP_TYPE; they do* not include instances of PROPERTY_TYPE. 5 /BRIEF_(default)> Displays the name, type, and relationship type of immediateA owners that receive a possibly invalid notice if you perform aD change in location with the CHANGE command. /BRIEF is the default qualifier. 5 /FULL? Displays the name, type, and relationship type of all ownersD that receive a possibly invalid notice if you perform a change in$ location with the CHANGE command. 4 DescriptionA The SHOW WHAT_IF command displays the owners that are affectedD if the element you specify is modified by the CHANGE command. ForA the owners to be displayed, the relationship between owner andB member must have an associated CDD$NOTICE_ACTION property value of SIGNAL.@ Owners with this property value generally represent an objectD outside the repository, such as a database. Each owner receives aC possibly invalid warning if you issue the CHANGE command for the specified element.9 To determine the CDD$NOTICE_ACTION property value of a/ relationship, use the SHOW PROTOCOL command.< The SHOW WHAT_IF command lists owners if they have eitherC directory or processing names. CDO looks first for the directoryC name and displays it if one exists. If a directory name does not> exist, CDO then looks for and displays the processing name.= An element can only exist in the repository without either= a directory or processing name if it has a relationship to> an element that has a directory name. CDO displays the name$ unspecified message in this case. 4 Examples# 1.CDO> SHOW WHAT_IF EMPLOYEE_DBA In this e xample, because no qualifier is specified, the SHOWD WHAT_IF command displays the default information (/BRIEF). ThisD information includes the names of immediate owners that receiveB a possibly invalid notice if you issue the CHANGE command for EMPLOYEE_DB.( 2.CDO> SHOW WHAT_IF /FULL FIELD_A(2)= In this example, the SHOW WHAT_IF command with the /FULLB qualifier displays all owners that receive a possibly invalid; notice if you issue the CHANGE command for FIELD_A(2).? 3.CDO> SHOW WHAT_IF /FULL /TYPE=(CDD$DATABASE) EMPLOYEE_RECA In this example, the SHOW WHAT_IF command with the /FULL andB /TYPE qualifiers displays all owners of the CDD$DATABASE typeC that receive a possibly invalid notice if you issue the CHANGE command for EMPLOYEE_REC. 2 SPAWN Format2 SPAWN [ qualifier ] ... [ command-string ] 3 Parameters 4 command-string> Specifies an OpenVMS DCL command you want to perform in theA context of the subprocess the SPAWN command creates. After theB subprocess executes this command string, DCL returns control toC your CDO process. A command string cannot exceed 132 characters. 3 Qualifiers 4 /INPUT=file-spec@ Specifies an OpenVMS file containing one or more DCL commandsA that DCL executes in the spawned subprocess. Once DCL finishes@ processing your input file, DCL terminates the subprocess and! returns you to the CDO prompt. 4 /OUTPUT=file-specA Requests that the output from the subprocess be written to the OpenVMS file you specify. 4 /WAIT Format options: /WAIT (default) /NOWAIT; Specifies whether the system waits until DCL completes a? subprocess before allowing more commands to be issued in the= parent process (the process in which you are running CDO).@ The /WAIT qualifier does not return you to the parent processC until the command string you specify completes execution, or youA log out of the created subprocess. You can also use the ATTACH+ command to return to the parent process.A The /NOWAIT qualifier allows you to issue new commands while aB subprocess is running. Use the /NOWAIT qualifier interactively.@ This directs output from the subprocess to a file so only oneC process at a time uses your terminal. Otherwise, the only way toA distinguish one process from another is by the prompt. The CDOB prompt indicates the parent process; the DCL prompt (normally a) dollar sign) indicates the subprocess.@ If you specify the /NOWAIT qualifier and your input device isA a terminal, control characters such as Ctrl/T or Ctrl/Y affectA all subprocesses sharing the input device. For example, Ctrl/Y$ interrupts all such subprocesses. 3 Description< The SPAWN command creates a subprocess of the current CDO process. 3 Examples 1.CDO> SPAWN SHOW TIME 17-FEB-1997 16:28:29 CDO>? In this example, the SPAWN command creates a subprocess toC execute the DCL command SHOW TIME. After the SHOW TIME command? completes executing, DCL returns control to the parent CDO process. 2.CDO> SPAWN $ LOGOUT CDO>C In this example, the SPAWN command creates a subprocess at theA DCL prompt. To return to the CDO process, type LOGOUT at the DCL prompt. 3.CDO> SPAWN RUN SQL$ SQL>C In this example, the SPAWN command creates a subprocess to run interactive SQL. 2 START_TRANSACTION Format START_TRANSACTION 3 DescriptionC The START_TRANSACTION command initiates a group of commands that? Oracle CDD/Repository executes as a unit. A transaction ends? with a COMMIT or ROLLBACK command. The COMMIT command causes@ all commands to execute, while the ROLLBACK command causes no commands to execute. 3 RestrictionsC o When you d elete a record, local fields within that record areA marked for deletion at the end of the transaction, providedB that they remain unused at the end of the transaction. Using= CDO, there is no way to reuse those local fields. It isD possible to use local fields through the Oracle CDD/Repository? APIs. Therefore, the local fields cannot be automaticallyA deleted at the same point in the transaction as the record.= You must either delete the record and fi eld in separateE transactions (outside the START_TRANSACTION . . . COMMIT streamA of commands) or, to accomplish this in one transaction, useC ENTER to enter the local field, delete the record, delete the4 local field, and then delete the global field.A o Usually, if Oracle CDD/Repository issues any errors between> the START_TRANSACTION and COMMIT commands, it forces youA to roll back the transaction. In some cases, such as in theD CHANGE or DELETE commands, Oracle CDD/Repository allows you to4 commit the transaction. The general rules are:@ - If you receive an Oracle CDD/Repository error of E or FD severity, such as a CDD-E-NODNOTFND message, you must abort the transaction.? - If you receive a CDO error of E or F severity, such asC CDO-E-NOTFOUND, you can continue to operate in the current transaction. 3 Examples CDO> START_TRANSACTION. CDO> DEFINE RECORD REC2. cont> FLD1. END RECORD. CDO> COMMIT CDO> SHOW RECORD REC2 Definition of record REC2" | Contains field FLD1 . . .? In this example, the COMMIT command ends a session started@ with the START_TRANSACTION command. When you use the START_: TRANSACTION and COMMIT commands, the overhead that is; associated with these commands is incurred once in theC repository and once in the database, rather than once for eachC CDO command between the START_TRANSACTION and COMMIT commands.? The repository is already attached to the database and hasC already loaded the type definitions. The objects REC2 and FLD14 are retrieved from memory instead of from disk. 2 UNRESERVE Format% {COLLECTION }% {FIELD }H UNRESERVE {RECORD } [qualifier] ... element-name ,...% {FILE_ELEMENT type-name}% {GENERIC type-name }  [AUDIT IS /*text*/] 3 Parameters 4 type-name< Specifies the type of the file or generic element you are unreserving. 4 element-nameC Specifies the element you are unreserving. You can substitute an7 asterisk (*) wildcard character for this parameter. 4 textC Adds information to the history list entry. Valid delimiters are) /* */ or double quotation marks (" ").D You can use Japanese to document comments in the AUDIT clause forB a field. To do this, use the SET CHARACTER_SET command, and set1 the character_set of the session to DEC_KANJI. 3 Qualifiers 4 /CLOSURE Format options: /CLOSURE=keyword /NOCLOSURE (default); Specifies whether CDO unreserves additional elements. AnD unreserve operation fails if any element is a child of an element6 outside the area defined by the /CLOSURE qualifier.> The /CLOSURE qualifier takes one of the following keywords: CLOSURE Keyword BehaviorD TO_BOTH Unreserves the element specified and all parents and children.B TO_BOTTOM Unreserves the element specified and all children.A TO_TOP Unreserves the element specified and all parents.B If you specify TO_BOTH or TO_TOP, CDO ignores parents above the top collection. 4 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO displays text identifying each element as the element is unreserved. 3 DescriptionB The UNRESERVE command cancels the reservation previously placed? on a version of an element. This operation deletes the ghostA version of the element and discards any changes you made while you reserved the version. 3 Examples> CDO> RESERVE COLLECTION /CLOSURE=TO_BOTTOM PRODUCT_INVENTORY" CDO> DEFINE FIELD PRODUCT_NUMBER cont> DATATYPE BIT SIZE 5.' CDO> DEFINE FIELD PRODUCT_DESCRIPTION cont> DATATYPE TEXT SIZE 50.@ CDO> UNRESERVE COLLECTION /CLOSURE=TO_BOTTOM PRODUCT_INVENTORY@ In this example, the UNRESERVE command cancels the PRODUCT_? INVENTORY reservation and deletes the two fields that were defined. 2 UPDATE Format4 UPDATE COMPOSITE [ qualifier ] composite-name, [ AUDIT IS /*text*/ ] 3 Parameters 4 composite-name? Specifies the collection, record, or field you are updating. 4 textC Adds information to the history list entry. Valid delimiters are) /* */ or double quotation marks (" ").D You can use Japanese to document comments in the AUDIT clause forB a field. To do this, use the SET CHARACTER_SET command, and set1 the character_set of the session to DEC_KANJI. 3 Qualifiers 4 /CLOSURE Format options: /CLOSURE=TO_BOTTOM /NOCLOSURE (default)D Specifies whether CDO updates additional elements. Specifying theB /CLOSURE=TO _BOTTOM qualifier updates all children of a reservedC element, unless the element is a child of an element outside the' area defined by the CLOSURE keyword. 3 DescriptionB The UPDATE command allows you to attach more recent versions of@ elements to your own collections, records, or fields. In this@ way, you can access the work of others in your working group.< Before you issue the UPDATE command, you must reserve the= elements you wish to update. The SHOW RESERVATIONS command+ indicates whether this condition exists.D When you issue the UPDATE command, the action that occurs dependsC on the keyword you specified in the DEFAULT_ATTACHMENT clause ofD the DEFINE CONTEXT or the CHANGE CONTEXT command for your current@ context. The following table lists the keywords and behaviors associated with them: DEFAULT_ ATTACHMENT Keyword Behavior? LATEST Detaches the version currently attached andC  attaches the latest version, whether checked inD or ghost. This keyword is the default attachment method.? LATEST_CHECKIN Detaches the version currently attached andB attaches the version most recently checked in.C SPECIFIC_ Does not detach the version currently attached. VERSION@ The UPDATE command cannot attach a ghost version created withD another context. The UPDATE command also cannot attach a checked-? in version unless you have write privilege for the partition where the version resides. 3 Examples. 1.CDO> DEFINE CONTEXT BUILD_SYSTEM_CONTEXTA cont> BASE_PARTITION IS FIRST_BASELEVEL TOP IS COMPILER_C2 cont> DEFAULT_ATTACHMENT IS LATEST_CHECKIN. . . .' CDO> UPDATE COLLECTION COMPILER_C? In this example, the UPDATE command refers to the DEFAULT_C ATTACHMENT keyword (LATEST_CHECKIN) for the version to attach.? UPDATE then detaches the currently attached version of theA COMPILER_C collection and attaches the version most recently replaced.' 2.CDO> DEFINE CONTEXT WRITE_CONTEXTB cont> BASE_PARTITION IS FIRST_DRAFT TOP IS REFERENCE_MANUAL4 cont> DEFAULT_ATTACHMENT IS SPECIFIC_VERSION. . . .( CDO> CHANGE CONTEXT WRITER_CONTEXT9 cont> DESCRIPTION IS "CHANGING DEFAULT_ATTACHMENT"' cont> "TO PICK UP AL'S CHAPTERS"* cont> DEFAULT_ATTACHMENT IS LATEST.- CDO> UPDATE COLLECTION REFERENCE_MANUAL? In this example, the UPDATE command refers to the DEFAULT_B ATTACHMENT keyword (LATEST) for the version to attach. UPDATEC then detaches the currently attached version of the REFERENCE_? MANUAL collection and attaches the latest version, whether checked in or ghost. 2 VERIFY Format1 VERIFY [ qualifier ] ... anchor-name ,... 3 Parameters 4 anchor-name< Specifies the anchor of the repository you are verifying. 3 Qualifiers 4 /ALLA Performs all the verification options, except for the REBUILD_" DIRECTORY and COMPRESS options.B The /ALL qualifier includes the /NOFIX qualifier by default. IfB you want to use the /FIX qualifier as the default to the VERIFYA /ALL command, define the CDD$VERIFY_ALL_FIX logical name to be? any value. Define the CDD$VERIFY_ALL_FIX logical name at the process level or higher.B If you specify the VERIFY/ALL command without specifying a /FIXC or /NOFIX qualifier, and if you have not defined the CDD$VERIFY_? ALL_FIX logical name, an informational error message, CDO-I-B VF_ALL_NOFIX, will display and the VERIFY command will continue& using the default /NOFIX qualifier. 4 /COMPRESS Format options: /COMPRESS /NOCOMPRESS (default)@ Specifies whether CDO compresses the CDD$DATABASE.SNP file toC its original size at the time you created the repository. If you@ specify the /COMPRESS qualifier, you cannot include any other qualifier in your command. 4 /DIRECTORY Format options: /DIRECTORY /NODIRECTORY (default)D Specifies whether CDO checks all directory names against a stored definition.; When you also specify the /FIX qualifier, the /DIRECTORYD qualifier removes directory names that do not refer to any stored definition. 4 /EXTERNAL_REFERENCES Format options: /EXTERNAL_REFERENCES& /NOEXTERNAL_REFERENCES (default)B Specifies whether CDO checks all relationships where either the; owner or member is outside the repository you specified.; When you also specify the /FIX qualifier, the /EXTERNAL_4 REFERENCES qualifier fixes the errors it detects. 4 /FIX Format options: /FIX /NOFIX (default); Specifies whether CDO corrects errors found by the other qualifiers you specify. 4 /LOCATION Format options: /LOCATION /NOLOCATION (default)= Specifies whether CDO checks that the repository is in the9 correct directory and is correctly referenced by other repositories on the system.D When you also specify the /FIX qualifier, the /LOCATION qualifier fixes the errors it detects. 4 /LOG Format options: /LOG /NOLOG (default)B Specifies whether CDO sends informational and error text to theA default output location for your system. Specifying the /NOLOG& qualifier displays only error text. 4 /ORPHANS Format options: /ORPHANS /NOORPHANS (default)C Specifies whether CDO searches for definitions with no directory: names and no owners. The /ORPHANS qualifier also checksC relationships to ensure that they have valid owners and members.? When you also specify the /FIX qualifier, it places homeless= definitions in a directory called CDD$ORPHANS. CDO createsB directory names for them while the VERIFY command executes. The@ /FIX qualifier deletes relationships without valid owners and members.' CAUTION8 If you specify the /ORPHANS qualifier and the /LOGA qualifier, CDO generates text for every element that is not? an orphan. This could potentially be a very large number. 4 /REBUILD_DIRECTORY Format options: /REBUILD_DIRECTORY$ /N OREBUILD_DIRECTORY (default)= Specifies whether CDO checks that the repository is in the9 correct directory and is correctly referenced by other> repositories on the system, then deletes and re-creates all> directory entries for the repository anchor you specify. IfB there are no directories to delete and re-create, the /REBUILD_= DIRECTORY qualifier builds a directory for the repository.> Use the /REBUILD_DIRECTORY qualifier to recover a corrupted? repository system only when corruption is so severe that allC other qualifiers fail. The /REBUILD_DIRECTORY qualifier requires SYSPRV or BYPASS privilege.& NOTE< Use system backup utilities to back up your repository? before using the /FIX qualifier or the /REBUILD_DIRECTORY; qualifier. See Using Oracle CDD/Repository on OpenVMS? Systems for information on performing a backup operation. 3 Description8 The VERIFY command determines whether  a repository isB structurally correct. This command requires read access. If youB include the /FIX qualifier, you may also need write access. The6 /FIX qualifier requires SYSPRV or BYPASS privilege.> The /COMPRESS and /REBUILD_DIRECTORY qualifiers correct the? errors they encounter; all other qualifiers require the /FIX? qualifier to correct errors. The /ALL qualifier corrects anyB errors it finds if the logical name CDD$VERIFY_ALL_FIX has been defined.2 The /COMPRESS qualifier requires the following:B o You must have SYSPRV privilege. Otherwise, CDO displays a no privilege error.D o You must issue the VERIFY command with the /COMPRESS qualifier? as the first CDO command in a CDO session. Otherwise, CDO0 reports a conflict error with other users.D o You must be the only user of the repository when you issue theC VERIFY/COMPRESS command. Otherwise, CDO reports an Oracle Rdb lock conflict error.@ If you are working with remote repositories, issue the VERIFY> /EXTERNAL_REFERENCES command by itself before you issue theA VERIFY/EXTERNAL_REFERENCES command with the /FIX qualifier. IfA a remote device is not mounted, the VERIFY/EXTERNAL_REFERENCES? command returns an error that the /FIX qualifier attempts toC correct. Until a device is mounted, the command cannot complete.< Use the VERIFY/LOCATION command if you issued the OpenVMS> DCL COPY command to copy a repository or change the name of> your anchor directory. Use the /LOCATION qualifier with the@ /EXTERNAL_REFERENCES qualifier if you have other repositories3 that reference the repository you are verifying. 3 Examples( CDO> VERIFY /LOCATION /FIX [SMITH.REP]C In this example, the VERIFY /LOCATION /FIX command checks thatB the [SMITH.REP] repository is in the correct directory and isC correctly referenced by other repositories on the system. This/ command also corrects any errors detected. ww$ Bv1 fld-properties5 Field properties define the characteristics of the@ data you store in field and record elements. You can remove aD field or record property by adding the NO keyword to the property9 name. For example, NOARRAY removes the ARRAY property.; Not all languages or language processors support all CDOC properties. Those properties that are not supported are ignored./ The valid CDO field properties appear below. 2 ARRAY Format [ ROW_MAJOR ]0 [ COLUMN_MAJOR ] ARRAY { [ n1: ] n2 } ... [ ] 3 Parameters 4 n1@ Specifies the lower bound of the subscript. Replace n1 with aC signed integer or a value expression that translates to a signed# integer. The default value is 1. 4 n2@ Specifies the upper bound of the subscript. Replace n2 with aC signed integer or a value expression that translates to a signed6 integer. This value is greater than or equal to n1. 3 DescriptionD The ARRAY property defines a single- or multidimensional array in a field or record element.? In multidimensional arrays, ROW_MAJOR declares the rightmostA subscript to be the fastest varying. COLUMN_MAJOR declares the0 leftmost subscript to be the fastest varying.> If you do not specify either ROW_MAJOR or COLUMN_MAJOR, the default is ROW_MAJOR. 3 Examples 1.CDO> DEFINE FIELD SUPPLIER cont> ARRAY 0:19 1:4 cont> DATATYPE IS TEXT# cont> SIZE IS 30 CHARACTERS.A In this example, the DEFINE RECORD command includes an ARRAY> property that declares 20 instances of the SUPPLIER field? element (from 0 to 19). Each instance is four 30-character strings.% 2.CDO> DEFINE RECORD SUPPLIER_REC" cont> ROW_MAJOR ARRAY 1:20. cont> END RECORD.A In this example, the DEFINE RECORD command includes an ARRAY@ property that creates the SUPPLIER_REC record element as an array.& 3.CDO> CHANGE RECORD SUPPLIER_REC. cont> NOARRAY. cont> END RECORD.B In this example, the CHANGE RECORD command includes a NOARRAYC property that removes the ARRAY property from the SUPPLIER_REC record element. 2 BASED_ON Format BASED ON field-name 3 Parameters 4 field-nameD Specifies the field name on whose properties you are basing a new field element. 3 DescriptionB The BASED ON field property bases the properties of a new field& element on one that already exists.@ You must have privilege to read a field element to be able to base other elements upon it.A You can use BASED ON field properties to define several fields- related to a base field and to each other.C You can use the BASED ON field property to give individual namesD to field elements that share the same properties. This allows you@ to uniquely refer to these field elements in record elements.D If you want the new field to have additional properties not foundB in the base field, you can specify the additional properties in, the DEFINE FIELD or CHANGE FIELD command. 3 Examples/ 1.CDO> DEFINE FIELD SUPERVISOR_BADGE_NUMBER" cont> BASED ON BADGE_NUMBER4 cont> VALID IF SUPERVISOR_BADGE_NUMBER > 500.@ In this example, the DEFINE FIELD command bases SUPERVISOR_> BADGE_NUMBER on the BADGE_NUMBER fi eld element. The VALID< IF property is an additional property that is unique to SUPERVISOR_BADGE_NUMBER., 2.CDO> DEFINE FIELD MANAGER_BADGE_NUMBER- cont> BASED ON SUPERVISOR_BADGE_NUMBER2 cont> VALID IF MANAGER_BADGE_NUMBER > 1000.C In this example, the DEFINE FIELD command bases a second field@ element on the element created in the previous example. The= VALID IF property explicitly defined for the new element= overrides the property included in the previous element.& 3.CDO> DEFINE FIELD SUPERVISOR_SSN cont> BASED ON SSN.D In this example, the DEFINE FIELD command creates a new element= from a standard element (SSN). When you use the BASED ONB property to give different names to field elements that share> the same properties, you base the new elements on a field- element that does not change frequently.# 4.CDO> DEFINE FIELD MANAGER_SSN cont> BASED ON SSN+ cont> QUERY_HEADER IS "MANAGER SSN".# CDO> CHANGE FIELD MANAGER_SSN cont> NOBASED ON.A In this example, the NOBASED ON keyword removes the BASED ONB property, but does not remove the QUERY_HEADER property, fromA the MANAGER_SSN field element. Because all other MANAGER_SSNA properties were based on SSN, you must define new propertiesC for MANAGER_SSN, unless the QUERY_HEADER property is adequate. 2 COLLATING_SEQUENCE Format' COLLATING_SEQUENCE IS text-string 3 Parameters 4 text-stringB Specifies a sequence name that was previously defined in RDO or SQL. 3 Description> The COLLATING_SEQUENCE field property refers to a collatingA sequence that you have defined in RDO or SQL. The DEFINE FIELDB and CHANGE FIELD commands accept the COLLATING_SEQUENCE syntax.B The CHANGE FIELD command accepts a NOCOLLATING_SEQUENCE keywordB that deletes the collating sequence; the SHOW FIELD and EXTRACT) FIELD commands process the attributes. 3 Examples% CDO> COLLATING_SEQUENCE IS "French"D In this example, the COLLATING_SEQUENCE field property sets the" collating sequence to French. 2 COMPUTED_BY FormatF { value-expr }F { IF cond-expr THEN value-expr [ ELSE value-expr ] }F COMPUTED BY { NULLIF ( value-expr, value-expr ) }F {  }F { COALESCE ( value-expr [ , value-expr ] ... ) } 3 Parameters 4 value-exprC Specifies an expression a product can use to calculate a field'sD value. See Expressions for more information on value expressions. 4 cond-exprC Specifies an expression that represents the relationship betweenA two value expressions. See Expressions for more information on conditional expressions. 3 DescriptionC The COMPUTED BY field property evaluates an expression, allowing? a product that uses CDO to determine the value of a field at runtime.@ The expression must be a valid CDO expression. CDO checks the6 expression for correct syntax and field references.< The product must be able to interpret the CDO expression.? When you specify a conditional expression in the COMPUTED BYA field property, you can define a field that is equivalent to aB COBOL level 88 condition. The computed by expression must be in one of the following forms:) o if [name EQ literal1] THEN 1 ELSE 0= o if [(name GE literal1 AND name LE literal2) OR (name GE6 literal3 AND name LE literal4)]... THEN 1 ELSE 0@ Use NULL IF to substitute NULL when two value expressions are equal.C Use COALESCE to return the first non-NULL value from a series of value expressions.A There is a limited subset of valid COMPUTED BY fields that areA acceptable in COBOL syntax for inclus ion through the COPY FROM5 DICTIONARY clause. They have the following format:* COMPUTED BY IF expression THEN 1 ELSE 0 Where expression is:8 { }8 { { number } }8 { fld-name = { } }8 { { string } }? { } OR ...8 { { number } { nu mber } }8 { fld-name GE { } AND fld-name LE { } }8 { { string } { string } }8 { }= For example, the following COMPUTED BY fields are defined: DEFINE FIELD Y_TRUE2 COMPUTED BY IF (Y = "TRUE") THEN 1 ELSE 0. DEFINE FIELD Z_NULL, COMPUTED BY IF (Z = 0) THEN 1 ELSE 0.( DEFINE FIELD W_ALPHABETIC COMPUTED BYD IF ((W GE "A") AND (W LE "Z")) OR ((W GE "a") AND (W LE "z")) THEN 1 ELSE 0. DEFINE FIELD X_3_DIGITS> COMPUTED BY IF (X GE 100) AND (X LE 999) THEN 1 ELSE 0.B They are translated as the following COBOL level 88 conditions: 02 Y ... 88 Y_TRUE VALUE IS "TRUE". 02 Z ... 88 Z_NULL VALUE IS 0. 02 W ...< 88 W_ALPHABETIC VALUES ARE "A" THRU "Z", "a" THRU "z". 02 X ...* 88 X_3_DIGITS VALUES ARE 100 THRU 999.) RESTRICTIONB The COMPUTED BY field property can reference only one field.? The fld-name parameter must be the same field name in all> instances. When included in COBOL, the COMPUTED BY field@ will be translated as a level 88 condition associated with$ the field that was referenced. 3 Examples& 1.CDO> DEFINE FIELD SUBTOTAL_PRICE/ cont> COMPUTED BY UNIT_PRICE * QUANTITY.D In this example, the DEFINE FIELD command includes the COMPUTEDB BY property to calculate a value for the SUBTOTAL_PRICE field@ element. The value is computed by multiplying UNIT_PRICE by QUANTITY.# 2.CDO> DEFINE FIELD TOTAL_PRICE- cont> COMPUTED BY UNIT_PRICE (3) * 10.B In this example, the DEFINE FIELD command includes a COMPUTED? BY property to calculate a value for the TOTAL_PRICE fieldA element. The value is calculated by multiplying the value in> the third instance of the UNIT_PRICE field element by 10.# 3.CDO> CHANGE FIELD TOTAL_PRICE cont> NOCOMPUTED BY.; In this example, the CHANGE FIELD command includes theC NOCOMPUTED BY keywords to remove the COMPUTED BY property from# the TOTAL_PRICE field element. 4.CDO> DEFINE FIELD C" cont> DATATYPE SIGNED WORD. CDO> DEFINE FIELD C_ONE1 cont> COMPUTED BY IF C EQ 1 THEN 1 ELSE 0." CDO> DEFINE FIELD C_FIVE_TEN% cont> NAME FOR COBOL IS C_5_10= cont> COMPUTED BY IF C GE 5 AND C LE 10 THEN 1 ELSE 0. CDO> DEFINE FIELD C_OTHER cont> COMPUTED BY# cont> IF (C GE 2 AND C LE 4)% cont> OR (C GE 11 AND C LE 20) cont> THEN 1 ELSE 0. CDO> DEFINE RECORD COB88. cont> C. cont> C_ONE. cont> C_FIVE_TEN. cont> C_OTHER. cont> END RECORD.C In this example, the DEFINE FIELD commands include COMPUTED BY? properties that contain conditional and value expressions.> These expressions are related to the value of the C field element, as follows:<  o The C_ONE field element takes the value of one (if C" evaluates to one) or zero.A o The C_FIVE_TEN field element takes the value of one (if C; evaluates to a value between five and ten) or zero.> o The C_OTHER field element takes the value of one (if CC evaluates to a value between two and four or if C evaluates6 to a value between eleven and twenty) or zero. 5.01 COB88.6 03 C USAGE IS COMP PIC 9(4).'  88 C_ONE VALUE 1.4 88 C_FIVE_TEN VALUES ARE 5 THRU 10.2 88 C_OTHER VALUES ARE 2 THRU 4* 11 THRU 20.D This example shows COBOL syntax for the record containing level 88 definitions. 2 CURRENCY_SIGN Format% CURRENCY_SIGN IS quoted-string 3 Parameters 4 quoted-string< Specifies the character that displays as a currency sign. 3 DescriptionA The CURRENCY_SIGN field property indicates how a product usingB CDO displays the currency sign of a field element. Only DIGITAL6 DECforms supports the CURRENCY_SIGN field property.> You can specify only one CURRENCY_SIGN property for a field element. 3 Examples 1.CDO> DEFINE FIELD PRICE! cont> DATATYPE IS LONGWORD" cont> EDIT_STRING IS 999999" cont> CURRENCY_SIGN IS "".@ In this example, the DEFINE FIELD command creates the PRICE< field element with the yen symbol as the currency sign. 2.CDO> CHANGE FIELD PRICE cont> NOCURRENCY_SIGN.= In this example, the NOCURRENCY_SIGN keyword removes the9 CURRENCY_SIGN property from the PRICE field element. 2 DATATYPE_Field_Property FormatA { }A { ALPHABETIC SIZE IS numeric-literal case CHARACTERS }A { }A { [ ALIGNED | UNALIGNED ] BIT SIZE IS numeric-literal }A { }A { date-time-dtypes }A { }A { decimal-string-dtypes }A { }A { fixed-point-dtypes }A {  }A { floating-point-dtypes }A { }A { POINTER [ TO name [ IN name ] ... ] }A { }A { REAL }A { }A { SEGMENTED STRING [SEGMENT_LENGTH IS numeric-literal BYTES] }A { [SEGMENT_TYPE IS string-type ] }A { }A { TEXT CHARACTER_SET character-set-name SIZE IS }A { numeric-literal case CHARACTERS }A { }A { UNSPECIFIED SIZE IS numeric-literal BYTE }A { }A { VARYING STRING CHARACTER_SET character-set-name }A { SIZE IS numeric-literal case CHARACTERS }A { } 3 Parameters 4 numeric-literal; Specifies the number of characters or bytes in the fieldA being defined. See Expressions for more information on numeric literals. 4 case { } { CASE_INSENSITIVE } { LOWERCASE } { UPPERCASE } { }=  Specifies whether the characters in a string data type are< uppercase, lowercase, or mixed case. The default is CASE_ INSENSITIVE. 4 date-time-dtypesK Specifies a date-time data type for a field. See DATATYPE_Date_Time help topic for more information. 4 decimal-string-dtypes8 Specifies a decimal string data type for a field. See; DATATYPE_Decimal_String help topic for more information. 4 fixed-point-dtypes5 Specifies a fixed point data type for a field. See8 DATATYPE_Fixed_Point help topic for more information. 4 floating-point-dtypes8 Specifies a floating point data type for a field. See; DATATYPE_Floating_Point help topic for more information. 4 name@ Specifies the structure used to provide a path to an element. 4 string-typeD Specifies a numeric or character string literal that contains theD name of the segment type. See Expressions for more information on literals. 4 character-set-name? Valid Character Set Name Values for Character Set Attributes' shows the valid character-set-names.> Table 2-1 Valid Character Set Name Values for Character Set Attributes CHARACTER_ SET character-( Attribute set-name Description@ MCS DEC_MCS A set of international alphanumeric' characters> Kanji+ASCII DEC_KANJI Japanese characters as defined by@  the JIS X0208:1990 standard, NarrowB Katakana characters as defined by the? JIS X0201:1976 standard, and ASCII' characters> Kanji KANJI Japanese characters as defined byB the JIS X0208:1990 standard and user-/ defined charactersB Katakana KATAKANA Narrow Katakana characters as defined4 JIS X 0201:1976 standard> Oracle CDD/Repository does not have a default character set< attribute; Oracle CDD/Repository stores the character set@ attribute that you specify. The default character set that isD used for a field in Oracle CDD/Repository, and how an unspecified> character set is handled by other products, depends on each> product. See the documentation for the product in which you- intend to use the character set attribute. 3 DescriptionD The DATATYPE field pr operty defines the type and size of a field.B Some valid CDO data types are not supported by all languages orC language processors. Consult the documentation for your product.A The case you specify for characters with the ALPHABETIC, TEXT,@ and VARYING STRING data types must be valid for your product.? The following list provides information on valid data types:@ o ALPHABETIC specifies that the field is a sequence of 8-bit@ ASCII bytes. You cannot use non-alphabetic c haracters with this data type.@ o BIT specifies that the field is a bit string. The optionalA UNALIGNED keyword specifies that the string is not aligned.< The optional ALIGNED keyword specifies that the string? is aligned on a byte boundary. If no alignment keyword is( specified, the default is ALIGNED.> o POINTER specifies that the field contains the address of> another field or record element. PL/I, for example, usesD POINTER fields to access  based variables and buffers allocatedD by the system. Although PL/I does not associate POINTER fields@ with a specified record structure, other languages do; theA optional TO name lets you connect a POINTER to a structure.D The optional IN name lets you connect a POINTER to a structure in a structure.> o REAL specifies that the field is a 32-bit floating pointB number with precision to approximately seven decimal digits.; VAX BASIC uses REAL as an optional alternative to the floating-point data type.> o SEGMENTED STRING specifies that the field will contain a< pointer to a sequential file with a segmented internal structure.= The maximum size of a string segment is 64K bytes. In aA segmented string, you can store large amounts of text, long? strings of binary input from a data collecting device, or graphic data.6 Oracle Rdb databases support this data type. Its@ SEGMENT_LENGTH component corresponds to RDB$LENGTH and itsA SEGMENT_TYPE component corresponds to RDB$VALUE. A numeric-C literal must follow a SEGMENT_TYPE. The following table lists( the valid values for SEGMENT_TYPE.$ Table 2-2 Values for SEGMENT_TYPE Value Meaning: 0 The contents of the segmented string are unspecified.5 1 The segmented string contains text.? 2 The segmented string contains Binary Language, Representation statements.- Greater than Reserved for use by Oracle. 20 Less than 0 Reserved for use by customers.C See the Oracle Rdb7 SQL Reference Manual for more information about segmented strings.@ o TEXT specifies that the field is a sequence of 8-bit ASCII bytes.D When you define the TEXT data type field property, CDO accepts& two units of size for the field: - CHARACTERS - OCTETS A To specify a character-based field size, use the CHARACTERSC unit. To specify octet-based field size, use the OCTETS unit.C For a field with a single octet character set attribute, suchB as DEC_MCS, KATAKANA and so on, one character corresponds toB one octet. On the other hand, for fields with multiple-octet@ character set attributes, such as Kanji, the field size is? changed depending on the unit. The default is CHARACTERS.D When you specify a  field size using CHARACTERS, CDO translates? the correct length of octets and stores the field size inB octets. When OCTETS is specified, CDO ensures that the valid- field size in CHARACTERS is translated.? Number of Octets Used for One Character in Each CharacterC Set shows the number of octets used for one character in each character set.< Table 2-3 Number of Octets Used for One Character in Each Character Set M+Number ofC Character Octets Used for Number of Octets Translated in( Set One Character CDO, MCS 1 octet 1 octet, Katakana 1 octet 1 octet- Kanji 2 octets 2 octets- Kanji+ASCII 1 octet for 2 octets! ASCII; 2 octets for KanjiB If CDO cannot translate a valid field size in characters, anD error occurs. For example, when you try to define a field withB the Kanji character set attribute, and you specify a size ofC odd octets, CDO returns an error because it cannot identify a% valid field size in characters.@ o UNSPECIFIED declares that the field is a sequence of 8-bit unsigned bytes.A o VARYING STRING specifies that the field is a PL/I or PASCAL varying string. 3 Examples# 1.CDO> DEFINE FIELD BEST_SELLER! cont> DATATYPE IS TEXT 40.@ In this example, the DEFINE FIELD command creates the BEST_B SELLER field element with data type TEXT. The numeric literal) limits BEST_SELLER to 40 characters.# 2.CDO> CHANGE FIELD BEST_SELLER cont> NODATATYPE.D In this example, the CHANGE FIELD command includes a NODATATYPED keyword that removes the DATATYPE field property from the BEST_ SELLER field element. 3.CDO> DEFINE FIELD CUSTOMER2 cont> DATATYPE IS TEXT CHARACTER_SET IS KANJI! cont> SIZE IS 20 CHARACTERS.C In this example, a new field is defined and the character-set- name of KANJI is specified. 4.CDO> DEFINE FIELD FULL_NAME/ cont> DATATYPE TEXT CHARACTER_SET IS KANJI! cont> SIZE IS 20 CHARACTERS.= In this example, KANJI is specified as the character setC attribute, and CHARACTERS is specified as the unit of size forA the FULL_NAME field. In this case, FULL_NAME will be defined with a size of 40 octets. 5.CDO> DEFINE FIELD FULL_NAME/  cont> DATATYPE TEXT CHARACTER_SET IS KANJI cont> SIZE IS 20 OCTETS.? In this example, KANJI is the character set attribute, andC OCTETS is the size of the FULL_NAME field. In this case, FULL_3 NAME will be defined with a size of 20 octets. 6.CDO> DEFINE FIELD FULL_NAME/ cont> DATATYPE TEXT CHARACTER_SET IS KANJI cont> SIZE IS 20.C In this example, CHARACTERS is used as a default unit of size.B KANJI is specified as the character-set-name of t he field. InC this case, FULL_NAME will be defined with a size of 40 octets. 2 DATATYPE_Date_Time Format? { }? { [VMS ] }? { DATE [ANSI ] }? { }? { TIME [ SCALE scale-value ] }? {  }? { TIMESTAMP [ SCALE scale-value ] }? { }? { INTERVAL YEAR [ SIZE IS numeric-literal ] [ TO MONTH ] }? { }? { INTERVAL MONTH [ SIZE IS numeric-literal ] }? { }? { INTERVAL DAY [ SIZE IS numeric-literal ] }? { [TO HOUR  ] }? { [TO MINUTE ] }? { [TO SECOND [ SCALE scale-value ] ] }? { }? { INTERVAL HOUR [ SIZE IS numeric-literal ] }? { [TO MINUTE ] }? { [TO SECOND [ SCALE scale-value ] ] }? { }? { INTERVAL MINUTE [ SIZE IS numeric-literal ] }? { [ TO SECOND ] [ SCALE scale-value ] }? { }? { INTERVAL SECOND [ SIZE IS numeric-literal ] }? { [ SCALE scale-value ] }? { } 3 Parameters 4 scale-valueC The default value for SCALE is -2 with the exception of the TIME* keyword which has a default value of 0. 4 numeric-literalC Specifies the number of digits allowed in the field. This number& is greater than 0 and less than 32. 3 DescriptionA The default value for SIZE is 2 and the valid range is between= 2 and 9. See the Oracle Rdb7 SQL Reference Manual for more1 information on different date-time data types. 3 Examples2 CDO> DEFINE FIELD SAMPLE_FLD DATATYPE DATE ANSI.5 CDO> DEFINE FIELD SAMPLE_FLD DATATYPE TIM E SCALE -2.5 CDO> DEFINE FIELD SAMPLE_FLD DATATYPE INTERVAL YEAR.> CDO> DEFINE FIELD SAMPLE_FLD DATATYPE INTERVAL YEAR TO MONTH.3 CDO> DEFINE FIELD SAMPLE_FLD DATATYPE INTERVAL DAY! cont> SIZE 3 TO SECOND SCALE -2.4 CDO> DEFINE FIELD SAMPLE_FLD DATATYPE INTERVAL HOUR! cont> SIZE 7 TO SECOND SCALE -2. CDO> DEFINE FIELD SAMPLE_FLD3 cont> DATATYPE INTERVAL MINUTE TO SECOND SCALE -2. CDO> DEFINE FIELD SAMPLE_FLD0 cont> DATATYPE INTERVAL SECOND SIZE 4 SCALE -2.D This example shows the definition of fields with date-time data types. 2 DATATYPE_Decimal_String Format# { {SEPARATE NUMERIC } }# {LEFT {OVERPUNCHED NUMERIC } }# { { } }# { }# { {SEPARATE NUMERIC } }L {RIGHT { } } SIZE IS numeric-literal DIGITS [SCALE n]# { {OVERPUNCHED NUMERIC } }# { }# {PACKED DECIMAL }# {ZONED NUMERIC }# {UNSIGNED NUMERIC } 3 Parameters 4 numeric-literalC Specifies the number of digits allowed in the field. This number& is greater than 0 and less than 32. 4 nB Specifies an implied exponent. The n value indicates the number@ of places the decimal point shifts when evaluating the field.< This number is a signed integer in the range -128 to 127. 3 DescriptionC Decimal string data types represent fixed scale q uantities. TheyC are efficient in applications that generate numerous reports and listings.? There are two classes of decimal string data types. Those in> which each decimal digit occupies one 8-bit byte are called= NUMERIC data types. In the more compact form called PACKED0 DECIMAL, two decimal digits occupy each byte.B The following list explains the characteristics of each decimal string data type:B o UNSIGNED NUMERIC specifies an unsigned numeric ASCII string., You must include the keyword UNSIGNED.D o LEFT SEPARATE NUMERIC specifies a signed numeric ASCII string.* The leftmost byte contains the sign.? o LEFT OVERPUNCHED NUMERIC specifies a signed numeric ASCIIC string. The sign and the leftmost digit occupy the same byte.= o RIGHT SEPARATE NUMERIC specifies a signed numeric ASCII3 string. The rightmost byte contains the sign.@ o RIGHT OVERPUNCHED NUMERIC specifies a signed numeric ASCIID string. The sign and the rightmost digit occupy the same byte.> o ZONED NUMERIC specifies the VAX ZONED NUMERIC type. This9 signed numeric ASCII string is similar to the RIGHT5 OVERPUNCHED NUMERIC, but the sign codes differ.A o PACKED DECIMAL specifies a signed numeric ASCII string. TwoC digits occupy each byte, and the low half of the last byte is reserved for the sign. 3 Examples# CDO> DEFINE FIELD ACCOUNT_BALANCE$ cont> DATATYPE IS PACKED DECIMAL.C In this example, the DEFINE FIELD command creates the ACCOUNT_; BALANCE field element with a PACKED DECIMAL data type. 2 DATATYPE_Fixed_Point Format {BYTE } [SIGNED ] {WORD }C [UNSIGNED] {LONGWORD} SIZE IS numerical-literal DIGITS [SCALE n] {QUADWORD} {OCTAWORD} 3 Parameters 4 numeric-literalC Specifies the number of digits allowed in the field. This number? is greater than 0 and less than 32. The default is UNSIGNED. 4 nB Specifies an implied exponent. The n value indicates the number@ of places the decimal point shifts when evaluating the field.< This number is a signed integer in the range -128 to 127. 3 DescriptionA Fixed-point data types represent scaled quantities in a binary* format. They can be signed or unsigned.< Fixed-point numbers of the data type SIGNED are stored inA two's complement form. For a complete description, see the CDO Reference Manual. 3 Examples CDO> DEFINE FIELD NEW_MEMBERS) cont> DATATYPE IS UNSIGNED LONGWORD 3.? In this example, the DEFINE FIELD command creates the NEW_@ MEMBERS field element with the UNSIGNED LONGWORD data type. 2 DATATYPE_Floating_Point Format { D_FLOATING } { F_FLOATING }- { G_FLOATING } [ COMPLEX ] [ SCALE n ] { } { H_FLOATING } 3 Parameters 4 nB Specifies an implied exponent. The n value indicates the number@ of places the decimal point shifts when evaluating the field.< This number is a signed integer in the range -128 to 127. 3 DescriptionC Floating-point data types represent approximations to quantities? in a scientific notation consisting of a signed exponent and@ a mantissa. For a complete description, see the CDO Reference Manual.? Complex numbers specify ordered pairs of floating-point data= types, representing the real and imaginary components of a> number. See the CDO Reference Manual for a table of Complex Numbers. 3 Examples& CDO> DEFINE FIELD STANDARD_DEVIATION cont> DATATYPE IS H_FLOATING.D In this example, the DEFINE FIELD command creates the STANDARD_; DEVIATION field element with the H_FLOATING data type. 2 DECIMAL_POINT Format$ DECIMAL_POINT IS quoted-string 3 Parameters 4 quoted-string8 Specifies the character displayed as a decimal point. 3 Description@ The DECIMAL_POINT field property indicates how to display theC decimal point of a field element. Only DIGITAL DECforms supports$ the DECIMAL_POINT field property.> You can specify only one DECIMAL_POINT property for a field element. 3 Examples 1.CDO> DEFINE FIELD PRICE! cont> DATATYPE IS LONGWORD" cont> EDIT_STRING IS 999999! cont> CURRENCY_SIGN IS """ cont> DECIMAL_POINT IS ",".@ In this example, the DEFINE FIELD command creates the PRICE? field element that displays a comma for the decimal point. 2.CDO> CHANGE FIELD PRICE cont> NODECIMAL_POINT.= In this example, the NODECIMAL_POINT keyword removes the9 DECIMAL_POINT property from the PRICE field element. 2 DEFAULT_VALUE_FOR_SQL Format. [NO]DEFAULT_VALUE FOR SQL IS value-expr 3 Parameters 4 value-exprC Specifies an expression a product can use to calculate a field'sD value. See Expressions for more information on value expressions. 3 DescriptionA The DEFINE FIELD, CHANGE FIELD, and EDIT FIELD commands accept$ the DEFAULT_VALUE FOR SQL syntax.? The CHANGE FIELD command accepts the NODEFAULT_VALUE FOR SQL2 keyword that deletes the default value for SQL.D The SHOW FIELD and EXTRACT FIELD commands process the attributes. 3 Examples 1.CDO> DEFINE FIELD AMOUNT cont> DATATYPE TEXT 5, cont> DEFAULT_VALUE FOR SQL IS "-----".A This example shows the definition of the AMOUNT field with a% default value for SQL of dashes. 2 DISPLAY_SCALE Format DISPLAY_SCALE IS n 3 Parameters 4 n@ Specifies a signed integer indicating the number of places to@ shift the decimal point. A negative integer moves the decimalC point to the left. A positive integer moves the decimal point to the right. 3 Description> The DISPLAY_SCALE field property indicates how to shift theC decimal point when displaying the value of a field element. Only> DIGITAL DECforms supports the DISPLAY_SCALE field property.> You can specify only one DISPLAY_SCALE property for a field element. 3 Examples 1.CDO> DEFINE FIELD AMOUNT! cont> DATATYPE IS LONGWORD# cont> EDIT_STRING IS 9999.99) cont> INPUT_EDIT_STRING IS 9999.99 cont> DISPLAY_SCALE -2.A In this example, the DEFINE FIELD command creates the AMOUNTA field element with a decimal point shifted two places to the left. 2.CDO> CHANGE FIELD AMOUNT cont> NODISPLAY_SCALE.= In this example, the NODISPLAY_SCALE keyword removes the: DISPLAY_SCALE property from the AMOUNT field element. 2 EDIT_STRING Format [ COBOL ] [ DTR ]+ [ PLI ] EDIT_STRING IS edit-string [ ] [ RPG ] 3 Parameters 4 edit-string> Specifies an edit string. See CDO_Edit_Strings for detailed information on edit strings. 3 DescriptionD The EDIT_STRING field property indicates how to display the value of a field element.C You can specify a CDO generic edit string or a language-specific+ edit string for the following languages: o COBOL o DATATRIEVE o PL/I o RPG? When you specify a language-specific edit string for a field; element that already contains a generic edit string, the? language-specific edit string overrides the existing generic edit string.: You should create a language-specific edit string when:A o One or more characters in the generic edit string cannot beA translated into valid edit string characters for a language@ that uses the generic edit string. Translation of CDO EditA Strings for Languages and Products shows how CDO translates< characters in a generic edit string for COBOL, DIGITAL DATATRIEVE, PL /I, and RPG.C o A language that uses the generic edit string does not supportB the data type of the field element that contains the generic edit string.C If your programs fail to compile due to edit string or data type@ errors, the language may not support the generic edit string.@ If this is the case, you should create language-specific editC strings to exclude this language from accessing the generic edit string. 3 Examples" 1.CDO> DEFINE FIELD  TRANS_DATE cont> DATATYPE IS DATE) cont> EDIT_STRING IS NN"/"DD"/"YY.A In this example, the DEFINE FIELD command creates the TRANS_B DATE field element, which displays as a series of three, two-. digit numbers in a month/day/year format." 2.CDO> CHANGE FIELD TRANS_DATE cont> NOEDIT_STRING.( CDO> CHANGE FIELD COBOL_TRANS_DATE! cont> NOCOBOL EDIT_STRING.C In this example, the NOEDIT_STRING keywords remove the generic@ EDIT_STRI NG property from the TRANS_DATE field element. TheA NOCOBOL EDIT_STRING keywords remove the COBOL-specific EDIT_ STRING property. 2 FILLER Format FILLER 3 Description> The FILLER field property creates an unnamed field element.@ Unnamed field elements are similar to FILLER fields in COBOL.D You can use them to format print records or to reserve space in a record for future additions.> When you specify the FILLER property, CDO creates the  field% element without a processing name. 3 Examples CDO> DEFINE FIELD BLANKS$ cont> DATATYPE IS TEXT 30 FILLER.@ In this example, the DEFINE FIELD command includes a FILLER9 property that suppresses the BLANKS processing name. 2 GENERIC Format, { quoted-string }, GENERIC type-name IS { n }, { } 3 Parameters 4 type-nameB Specifies the user-defined type of the property you are adding. 4 quoted-stringA Specifies the value (a string enclosed in quotation marks) for this property. 4 n5 Specifies the value (numerical) for this property. 3 Description? The GENERIC field property creates a generic field property.= You specify generic field properties only if you have madeB changes to the field type (CDD$DATA_ELEMENT) supplied by OracleD CDD/Repository, and the changes require generic field properties.B You can specify the NOGENERIC keyword to remove a generic fieldA property only if the changes you have made to CDD$DATA_ELEMENT+ indicate that this property is optional. 3 Examples CDO> CHANGE FIELD TEST_FIELD cont> NOGENERIC MY_ATTRIBUTE.? In this example, the NOGENERIC keyword in the CHANGE FIELDA command removes the MY_ATTRIBUTE generic field property from" the TEST_FIELD field element. 2 HELP_TEXT Format! HELP_TEXT IS quoted-string 3 Parameters 4 quoted-string? Specifies the text you want the product to display when this@ field element is active and an operator presses the Help key. 3 Description@ The HELP_TEXT field property tells a product to display user-D supplied help text for the current element. Only DIGITAL DECforms) supports the HELP_TEXT field property.B You can define only one HELP_TEXT property for a field element.C When you enter a quoted string that extends beyond one line, letD the string wrap to the next line. Do not enclose each line of theB quoted string with quotation marks. Do not press the Return key+ until you have closed the quoted string. 3 Examples' 1.CDO> DEFINE FIELD EMPLOYEE_STATUS' cont> DATATYPE IS TEXT SIZE IS 5= cont> HELP_TEXT IS " Enter: C for currently employed,, cont> R for retired, D for dismissed,5 cont> or MLOA for medical leave of absence. ".C In th is example, the DEFINE FIELD command includes a HELP_TEXTB property that defines help text for the EMPLOYEE_STATUS field element.& NOTEB When you enter a quoted string that extends beyond one line,? let the string wrap to the next line. Do not enclose eachB line of the quoted string with quotation marks. Do not press7 the Return key until you close the quoted string., 2. CDO> CHANGE FIELD EMPLOYEE_STATUS cont> NOHELP_TEXT.C In this example, the NOHELP_TEXT keyword removes the HELP_TEXT5 property from the EMPLOYEE_STATUS field element. 2 INITIAL_VALUE Format! INITIAL_VALUE IS value-expr 3 Parameters 4 value-exprC Specifies an expression a product can use to calculate a field'sD value. See Expressions for more information on value expressions. 3 DescriptionA The INITIAL_VALUE field property declares a field's value whenD the p roduct first allocates the field. The expression you specify< must be a valid expression for the product evaluating it.D The value of the expression must fit into the space allocated for the field.B You can specify a complex number for the INITIAL_VALUE property@ of a field if the field's data type is F_FLOATING COMPLEX, D_ FLOATING COMPLEX,- G_FLOATING COMPLEX, or H_FLOATING COMPLEX.= You can specify a fixed-point number for the INITIAL_VALUE; property of any fie ld whose data type is not DATE, TEXT," UNSPECIFIED, or VARYING STRING.; You can specify a floating-point number for the INITIAL_? VALUE property of a field whose data type is not DATE, TEXT," UNSPECIFIED, or VARYING STRING.A You can use Japanese in an INITIAL_VALUE field property and toA document comments (DESCRIPTION and AUDIT clauses) for a field.> To do this set the character set of a session to DEC_KANJI;@ otherwise, the information may not display correctly. See theC SET CHARACTER_SET command to set the character_set of a session. 3 Examples 1.CDO> DEFINE FIELD AMOUNT) cont> DATATYPE IS UNSIGNED NUMERIC cont> SIZE IS 8 DIGITS cont> INITIAL_VALUE IS 0.? In this example, the DEFINE FIELD command assigns 0 as the/ initial value to the AMOUNT field element. 2.CDO> CHANGE FIELD AMOUNT cont> NOINITIAL_VALUE.= In this example, the NOINITIAL_VALUE keyword removes the: INITIAL_VALUE property from the AMOUNT field element. 2 INPUT_VALUE Format" { OPTIONAL }" INPUT_VALUE IS { REQUIRED }" { } 3 Description? The INPUT_VALUE field property indicates if a field requires4 input data (REQUIRED) or can be empty (OPTIONAL).A Only DIGITAL DECforms supports the INPUT_VALUE field property. 3 Examples 1.CDO> DEFINE FIELD PRICE! cont> DATATYPE IS LONGWORD% cont> INPUT_VALUE IS REQUIRED.A In this example, the DEFINE FIELD command includes an INPUT_B VALUE property that requires at least one input character for the PRICE field element. 2.CDO> CHANGE FIELD PRICE cont> NOINPUT_VALUE.B In this example, the NOINPUT_VALUE keyword removes the INPUT_1 VALUE property from the PRICE field element. 2 JUSTIFIED Format { CENTER } { DECIMAL } JUSTIFIED { LEFT } { } { RIGHT } 3 DescriptionA The JUSTIFIED field property indicates how to fill the storage& space allocated to a field element., o JUSTIFIED CENTER centers a TEXT field.; o JUSTIFIED DECIMAL right-justifies the whole part of aB number to the left of a decimal point and left-justifies theD fractional part of the number to the right of a decimal point.A DIGITAL DECforms provides interactive decimal justification0 that appears as a user types numeric data.@ o JUSTIFIED LEFT truncates or fills a TEXT field against the- left margin. This is the default value.A o JUSTIFIED RIGHT truncates or fills a TEXT field against the right margin.> Only DIGITAL DECforms supports JUSTIFIED DECIMAL. All otherB products ignore it. JUSTIFIED DECIMAL requires a decimal string or floating-point data type.> Only COBOL and DIGITAL DECforms support the JUSTIFIED RIGHT> option. Other language processors ignore it. COBOL displays> as much of the right portion of a JUSTIFIED RIGHT string as@ possible. If this adjustment leaves storage space to the left5 of the string, COBOL fills this space with blanks.B Use the JUSTIFIED field property only with fields that have the following data types: o TEXT o UNSPECIFIED o Decimal string o Fixed-point o Floating-point 3 Examples 1.CDO> DEFINE FIELD STREET cont>  DATATYPE IS TEXT 15' cont> NAME FOR COBOL IS C_STREET cont> JUSTIFIED RIGHT.> In this example, the DEFINE FIELD command allocates space? for 15 right-justified text characters in the STREET field element. 2.thsonian Avenue 15 Maple Street ---6 Oak StreetA In this continuation of the previous example, COBOL displaysD the strings "137 Smithsonian Avenue," "15 Maple Street", and "6B Oak Street" in the STREET field element. The deltas representA blanks that COBOL enters to fill the 15 characters allocatedA for the STREET field element. In this example, 15 charactersD appear on a line; however, the individual line lengths vary due& to the different character sizes. 3.CDO> CHANGE FIELD STREET cont> NOJUSTIFIED.C In this example, the NOJUSTIFIED keyword removes the JUSTIFIED2 RIGHT property from the STREET field element. 2 MISSING_VALUE Format! MISSING_VALUE IS value-expr 3 Parameters 4 value-exprC Specifies an expression a product can use to calculate a field'sD value. See Expressions for more information on value expressions. 3 DescriptionA The MISSING_VALUE field property specifies a value to use if aB field has not been assigned a meaningful value. See the DIGITALA DATATRIEVE or Oracle Rdb documentation for more information onA how those products interpret the MISSING_VALUE field property.@ The expression you specify must be a valid expression for the product evaluating it.< Products using CDO ignore field elements that contain the; MISSING_VALUE field property when performing statistical operations. 3 Examples 1.CDO> DEFINE FIELD PRICE' cont> DATATYPE IS SIGNED LONGWORD cont> MISSING_VALUE IS 0.B In this example, the DEFINE FIELD command includes a MISSING_C VALUE field property that can assign a value of 0 to a null or mis sing value. 2.CDO> CHANGE FIELD PRICE cont> NOMISSING_VALUE.= In this example, the NOMISSING_VALUE keyword removes the9 MISSING_VALUE property from the PRICE field element. 2 NAME Format { BASIC } { COBOL } NAME FOR { PLI } IS name { } { RPG } 3 Parameters 4 nameD Specifies a language-specific name for a field or record element. 3 Description!B The NAME property declares a language-specific name for a field or record element.? This name must be a valid name for the specified language orB language processor. CDO does not check the validity of the name that you specify.A Once you have assigned a language-specific name to an element,D the specific language no longer recognizes the element's original name.D You can assign only one language-specific name per language to an element.' " CAUTION@ Be careful when you use the NAME field property because itA allows you to assign completely different names to the same> field or record element. Choose a language-specific name> that is similar to the element's directory or processing name to avoid confusion. 3 Examples CDO> DEFINE FIELD ORDER_NUMBER% cont> DATATYPE IS UNSIGNED NUMERIC cont> SIZE IS 10 DIGITS( cont> NAME FOR COBOL IS ORDER-NUMBER.C In this exa#mple, the NAME property assigns a language-specific= processing name to the ORDER_NUMBER field used by COBOL. 2 OCCURS Format OCCURS n TIMES9 [ INDEXED BY index-name [ , index-name ] ... ] 3 Parameters 4 nC Specifies the number of occurrences of the array. This number is greater than zero. 4 index-name: Specifies the field element that functions as an index. 3 Description? The OCCURS field property declares $one or more fixed-length, one-dimensional arrays.A The n value represents the upper bound of the array; the lower? bound is always 1. Use the ARRAY field property to specify a lower bound other than 1. 3 Examples 1.CDO> DEFINE FIELD MULTIPLE cont> OCCURS 3 TIMES) cont> DATATYPE IS SIGNED LONGWORD.C In this example, the OCCURS field property in the DEFINE FIELD? command creates the MULTIPLE field element, which occurs 3 times. % 2.CDO> CHANGE FIELD MULTIPLE cont> NOOCCURS.= In this example, the NOOCCURS keyword removes the OCCURS. property from the MULTIPLE field element. 2 QUERY_HEADER Format) QUERY_HEADER IS quoted-string ,... 3 Parameters 4 quoted-string9 Specifies the label you are using as a column heading. 3 DescriptionC The QUERY_HEADER field property creates a column heading for use in printouts and reports.C The quoted stri&ng must be a valid column heading for the productC that uses it. CDO accepts a text string of any length as a query header. 3 Examples# 1.CDO> DEFINE FIELD TOTAL_PRICE* cont> DATATYPE IS UNSIGNED LONGWORD. cont> COMPUTED BY UNIT_PRICE * QUANTITY+ cont> QUERY_HEADER IS "TOTAL PRICE".C In this example, the QUERY_HEADER field property in the DEFINEA FIELD command creates the TOTAL PRICE column heading for the TOTAL_PRICE field element.'# 2.CDO> CHANGE FIELD TOTAL_PRICE% cont> QUERY_HEADER IS "TOTAL".A In this example, the CHANGE FIELD command changes the column/ heading in the TOTAL_PRICE field to TOTAL.# 3.CDO> CHANGE FIELD TOTAL_PRICE cont> NOQUERY_HEADER.C In this example, the NOQUERY_HEADER keyword removes the QUERY_8 HEADER property from the TOTAL_PRICE field element. 2 QUERY_NAME Format& { quoted-string }& QUERY_NAME IS { query(-name }& { } 3 Parameters 4 quoted-stringB Specifies a string that is enclosed by quotation marks. DIGITALB DATATRIEVE only uses the string itself (not the quotation marks& that enclose it) as the query name. 4 query-name> Specifies a string that is not enclosed by quotation marks. 3 DescriptionA The QUERY_NAME field property provides an alternate name for aA field element. Only DIGITAL DATATRIEVE supports t)his property.D CDO accepts query names of up to 256 characters in length. Except? for the quotation mark ("), comma (,), apostrophe ('), and? embedded blanks, any characters in the Digital Multinational* Character Set are valid in query names.@ Make sure the query name you specify is valid for the product that uses it.D CDO does not check whether the string you specified for the query name is valid.A When you assign a query name to a field element, products t*hat? support the QUERY_NAME field property can refer to the field; element either by its query name or its processing name. 3 Examples CDO> DEFINE FIELD TOTAL_PRICE& cont> DATATYPE IS UNSIGNED LONGWORD* cont> COMPUTED BY UNIT_PRICE * QUANTITY cont> QUERY_NAME IS "TP".A In this example, the QUERY_NAME field property in the DEFINEA FIELD command specifies the TP alternate name for the TOTAL_ PRICE field element. 2 VALID_IF Format+ VALID IF cond-expr 3 Parameters 4 cond-exprC Specifies an expression that forms the validation condition. See9 Expressions for more information on value expressions. 3 DescriptionC The VALID IF field property checks values assigned to a field to> ensure that they are in the acceptable range for the field.@ The expression you specify must be a valid expression for the product evaluating it. 3 Examples# 1.CDO> DEFINE FIELD AMOUNT_O,WED& cont> DATATYPE IS UNSIGNED WORD& cont> VALID IF AMOUNT_OWED > 0.? In this example, the VALID IF field property in the DEFINED FIELD command specifies a range of valid values for the AMOUNT_ OWED field element.# 2.CDO> CHANGE FIELD AMOUNT_OWED cont> NOVALID IF.A In this example, the NOVALID IF keywords remove the VALID IF1 property from the AMOUNT_OWED field element. ww Bv1 rec-properties? Record properti-es define the characteristics of the data you@ store in record elements. You can remove a record property byC adding the NO keyword to the property name. For example, NOARRAY removes the ARRAY property.; Not all languages or language processors support all CDOC properties. Those properties that are not supported are ignored./ The valid CDO field properties appear below. 2 ARRAY Format [ ROW_MAJOR ]0 [ COLUMN_MAJOR ] ARRAY { [ n1: ] n2 } .... [ ] 3 Parameters 4 n1@ Specifies the lower bound of the subscript. Replace n1 with aC signed integer or a value expression that translates to a signed# integer. The default value is 1. 4 n2@ Specifies the upper bound of the subscript. Replace n2 with aC signed integer or a value expression that translates to a signed6 integer. This value is greater than or equal to n1. 3 DescriptionD The ARRAY property defines a single/- or multidimensional array in a field or record element.? In multidimensional arrays, ROW_MAJOR declares the rightmostA subscript to be the fastest varying. COLUMN_MAJOR declares the0 leftmost subscript to be the fastest varying.> If you do not specify either ROW_MAJOR or COLUMN_MAJOR, the default is ROW_MAJOR. 3 Examples 1.CDO> DEFINE FIELD SUPPLIER cont> ARRAY 0:19 1:4 cont> DATATYPE IS TEXT# cont> SIZE IS 30 CHARACTERS.A I0n this example, the DEFINE RECORD command includes an ARRAY> property that declares 20 instances of the SUPPLIER field? element (from 0 to 19). Each instance is four 30-character strings.% 2.CDO> DEFINE RECORD SUPPLIER_REC" cont> ROW_MAJOR ARRAY 1:20. cont> END RECORD.A In this example, the DEFINE RECORD command includes an ARRAY@ property that creates the SUPPLIER_REC record element as an array.& 3.CDO> CHANGE RECORD SUPPLIER_REC. 1 cont> NOARRAY. cont> END RECORD.B In this example, the CHANGE RECORD command includes a NOARRAYC property that removes the ARRAY property from the SUPPLIER_REC record element. 2 NAME Format { BASIC } { COBOL } NAME FOR { PLI } IS name { } { RPG } 3 Parameters 4 nameD Specifies a language-specific name for a field or record element. 3 Description2B The NAME property declares a language-specific name for a field or record element.? This name must be a valid name for the specified language orB language processor. CDO does not check the validity of the name that you specify.A Once you have assigned a language-specific name to an element,D the specific language no longer recognizes the element's original name.D You can assign only one language-specific name per language to an element.' 3 CAUTION@ Be careful when you use the NAME field property because itA allows you to assign completely different names to the same> field or record element. Choose a language-specific name> that is similar to the element's directory or processing name to avoid confusion. 3 Examples CDO> DEFINE FIELD ORDER_NUMBER% cont> DATATYPE IS UNSIGNED NUMERIC cont> SIZE IS 10 DIGITS( cont> NAME FOR COBOL IS ORDER-NUMBER.C In this exa4mple, the NAME property assigns a language-specific= processing name to the ORDER_NUMBER field used by COBOL. 2 OCCURS_DEPENDING FormatD { TO n2 TIMES DEPENDING ON name1 [ IN name2 ] ... }D OCCURS n1 { TIMES }D { }& [ INDEXED BY index-name ] 3 Parameters 4 n1,_n2B Specifies the range for the number of occurrenc5es. The value ofB n1 is greater than or equal to zero. The value of n2 is greater than or equal to n1. 4 name1@ Specifies the field element whose value determines the actual number of occurrences. 4 name2@ Specifies the element that contains the depending field. This element is often a record. 4 index-name: Specifies the field element that functions as an index. 3 Description@ The OCCURS ... DEPENDING record property declares a varia6ble-! length, one-dimensional array.D The actual number of occurrences varies according to the value of the name1 field element.C An error occurs if name2 does not include the name1 field, or if+ name2 specifies an array record element.B You can repeat name2 as many times as necessary to identify theA particular instance of name1. For example, name2 can repeat to: identify a field element within nested record elements:< CDO> DEFINE RECORD RETIREMENT_CHECKS OCC7URS 1 TO 2 TIMES. cont> DEPENDING ON ID_NUMBER IN EMPLOYEES? cont> IN MEDICALLY_RETIRED_EMPLOYEES IN RETIRED_EMPLOYEES. cont> END RECORD. 3 Examples9 1.CDO> DEFINE RECORD VACATION_PAY OCCURS 1 TO 2 TIMES? cont> DEPENDING ON EXCESS_VACATION IN EMPLOYEE_BENEFITS. cont> EMP_SSN. cont> WEEKLY_SALARY. cont> END RECORD.> In this example, the OCCURS ... DEPENDING record propertyB specifies the number of times the VACATION_PAY reco8rd element? occurs. The number of occurrences is based on the run-timeD value of the tag variable field element, EXCESS_VACATION, which5 is part of the EMPLOYEE_BENEFITS record element.% 2.CDO> CHANGE RECORD VACATION_PAY cont> NOOCCURS. cont> END RECORD.? In this example, the keyword NOOCCURS in the CHANGE RECORDB command removes the OCCURS ... DEPENDING record property from% the VACATION_PAY record element.> 3.CDO> DEFINE FIELD MESSAGE_T 9ABLE_IDX DATATYPE IS LONGWORD.< CDO> DEFINE FIELD MESSAGE_TEXT DATATYPE IS TEXT SIZE IS cont> 256 CHARACTERS.& CDO> DEFINE RECORD MESSAGE_TABLE.> cont> MESSAGE_STRUCT STRUCTURE OCCURS 10 TIMES INDEXED BY cont> MESSAGE_TABLE_IDX. cont> MESSAGE_TEXT.! cont> END MESSAGE STRUCTURE.$ cont> END MESSAGE_TABLE RECORD.' CDO> DEFINE RECORD MESSAGE_TABLE2.8 cont> MESSAGE_STRUCT STRUCTURE OCCURS 1 TO 10 TIMES$ cont> DEPENDING ON MESSAGE_TEXT( cont>: INDEXED BY MESSAGE_TABLE_IDX. cont> MESSAGE_TEXT.! cont> END MESSAGE STRUCTURE.% cont> END MESSAGE_TABLE2 RECORD.( CDO> SHOW RECORD MESSAGE_TABLE/FULL' Definition of record MESSAGE_TABLE1 | Contains record MESSAGE_STRUCTB | | Occurs 10 indexed by MESSAGE_TABLE_IDX/ | | Contains field MESSAGE_TEXT> | | | Datatype text size is 256 characters) CDO> SHOW RECORD MESSAGE_TABLE2/FULL( D;efinition of record MESSAGE_TABLE21 | Contains record MESSAGE_STRUCTE | | Occurs 1 to 10 depending on MESSAGE_TEXT! indexed by MESSAGE_TABLE_IDX/ | | Contains field MESSAGE_TEXT> | | | Datatype text size is 256 charactersB In this example, the MESSAGE_TABLE record contains an INDEXEDD BY clause. The name of the index field must already be defined. ww Bv1 File_Area_Key_Propertie <sD The file definition, area, and key properties define the physicalA characteristics of a Record Management Services (RMS) database file.? In most cases, the properties correspond to the RMS file and? allocation control field blocks (FABs or XABs). CDO does notB provide properties corresponding to the RMS record access block attributes (RABs).A See the OpenVMS documentation on RMS for detailed descriptions; and the values accepted for each property listed in thi=s chapter. 2 file_def_prop FormatC { ALLOCATION numeric-literal }C { BUCKET_SIZE numeric-literal }C { MT_BLOCK_SIZE numeric-literal }C { }C { GLOBAL_BUFFER_COUNT numeric-literal }C { MAX_RECORD_NUMBER numeric-literal }C { MAX_RECORD_SIZE nume >ric-literal }C { }C { FILE_PROCESSING_OPTIONS [ file-processing-options ] ,... }C { FOP [ file-processing-options ] ,... }C { ORGANIZATION file-organization-options }C { }C { file-access-block-properties } 3 Parameters 4 numeric-liter?al Specifies a positive integer. 4 file-processing-options [ BEST_TRY_CONTIGUOUS ] [ CONTIGUOUS ] [ CREATE_IF ] [ DEFERRED_WRITE ] [ DELETE_ON_CLOSE ] [ MAXIMIZE_VERSION ] [ MT_CLOSE_REWIND ] [ MT_CURRENT_POSITION ] [ MT_NOT_EOF ] [ MT_OPEN_REWIND ] [ NO_DIRECTORY_ENTRY ] [ NON_FILE_STRUCTURED ] [ PRINT_ON_CLOSE ] [ READ_CHECK ] [ SEQUENTIAL_ONLY ] [ S@UBMIT_ON_CLOSE ] [ SUPERSEDE ] [ TEMPORARY ] [ TRUNCATE_ON_CLOSE ] [ USER_FILE_OPEN ] [ WRITE_CHECK ]: Define optional file operations for a program. The file> processing options fall into the following seven functional categories:& o Allocation and extension options o File disposition options! o File name parsing modifiers& o Magnetic tape processing options$ o Nonstandard processing options oA Performance options o Reliability options 4 file-organization-options { INDEXED } { RELATIVE } { SEQUENTIAL }A Define the organization of the file. The default value for the* file organization option is SEQUENTIAL. 4 file-access-block-attributes2 { EXTENSION numeric-literal }2 { CONTROL_FIELD_SIZE numeric-literal }2 { WINDOW_SIZE numeric-literal }2 { LOGICAL_NAME_MODE access-modeB }2 { CHANNEL_ACCESS_MODE access-mode }2 { ACCESS [ file-access-control-options ] ,... }2 { FAC [ file-access-control-options ] ,... }2 { CARRIAGE_CONTROL carriage-control-options }2 { BLOCK_SPAN }2 { FORMAT record-format-options }2 { SHARING [ share-options ] ,... }C Define file access characteristics and certain run-time options. 4 access-mode { NONE } { ECXECUTIVE } { SUPER } { USER }C Defines an access mode for a channel. NONE is the default value,5 which is interpreted by RMS as the executive mode. 4 file-access-control-options { BLOCK_IO } { RECORD_IO } { DELETE } { GET } { PUT } { TRUNCATE } { UPDATE }A Define the type of record access operations that a program can perform. 4 carriage-control-options { CARRIAGE_RETURN } { FORTRDAN } { PRINT }B Define record control information for a record. CARRIAGE_RETURN2 is the default value for most OpenVMS programs. 4 record-format-options { FIXED } { STREAM } { STREAM_CR } { STREAM_LF } { UNDEFINED } { VARIAABLE } { VFC }/ Define the format for all records in a file. 4 share-options { DELETE } { GET } { MULTISTREAM } { PROHIBIT } {E PUT } { UPDATE } { USER_INTERLOCK }B Define the type of record operations that a program can perform5 when sharing access to a file with other programs. 3 Description= File definition properties define file characteristics and? certain run-time options for a logical RMS database element.C For a description and valid values for a particular keyword, see$ the OpenVMS documentation on RMS.? For a mapping of CDO keywords to symbolics, sFee RMS_Keyword_ Mapping_Tables. 3 Examples$ CDO> DEFINE RMS_DATABASE EMPLOYEE_$INFO DESCRIPTION IS "INFORMATION ON" cont> "CURRENT EMPLOYEE". cont> RECORD EMPLOYEE_REC. cont> FILE_DEFINITION cont> ORGANIZATION INDEXED$ cont> CHANNEL_ACCESS_MODE SUPER+ cont> CARRIAGE_CONTROL CARRIAGE_RETURN cont> ACCESS RECORD_IO6 cont> FILE_PROCESSING_OPTIONS BEST_TRY_CONTIGUOUS cont> FORMAT VARIABLE' cont> SHARING GET, USER_INTERLOCK. cont> G AREAS. cont> AREA 0 cont> ALLOCATE 1000 cont> BUCKET_SIZE 10 cont> EXTENSION 100 cont> CONTIGUOUS. cont> AREA 1 cont> ALLOCATE 1000 cont> BUCKET_SIZE 1 cont> EXTENSION 100! cont> BEST_TRY_CONTIGUOUS. cont> AREA 2 cont> ALLOCATE 1000 cont> BUCKET_SIZE 1 cont> EXTENSION 100! cont> BEST_TRY_CONTIGUOUS. cont> END AREAS. cont> KEYS. cont> KEY 0 cont> DATA_AREA 0H cont> INDEX_AREA 0, cont> SEGMENT EMP_ID IN EMPLOYEE_REC. cont> KEY 1 cont> DUPLICATES cont> DATA_AREA 1 cont> INDEX_AREA 2/ cont> SEGMENT LAST_NAME IN EMPLOYEE_REC. cont> END KEYS.& cont> END EMPLOYEE_INFO RMS_DATABASE.A This example is the complete logical RMS database definitionB for EMPLOYEE_INFO. Seven file definition properties appear in% the DEFINE RMS_DATABASE command:4 o The option for file organization is IINDEXED.) o The channel access mode is SUPER.C o The carriage control option is CARRIAGE_RETURN, although itD is not necessary to code this because CARRIAGE_RETURN is the default.D o The type of record access operation this program can perform is RECORD_IO.: o An optional file processing operation is BEST_TRY_ CONTIGUOUS.6 o Record format for this definition is VARIABLE.D o The types of record operations that this pJrogram can performA when sharing access to a file with other programs are GET and USER_INTERLOCK. 2 area_properties Format$ { EXACT_POSITIONING }$ { ANY_CYLINDER }$ { BEST_TRY_CONTIGUOUS }$ { }$ { CONTIGUOUS }$ { POSITION position-type }$ { VOLUME numeric-literal }$ { }$ { ALLOCATE numeric-literal }$ K { BUCKET_SIZE numeric-literal }$ { EXTENSION numeric-literal }$ { } 3 Parameters 4 position-typeD Defines the alignment of an allocated area. The default alignmentG value is NONE. For more information, see RMS_Keyword_Mapping_Tables. 4 numeric-literal Specifies a positive integer. 3 Description? Area properties provide additional control over file or area< space allocation on disk devices to optimize perforLmance.D You usually include areas using indexed files. A file can containC up to 255 areas. Define areas in numerical order, beginning with 0.C For a description and valid values for a particular keyword, see$ the OpenVMS documentation on RMS.? For a mapping of CDO keywords to symbolics, see RMS_Keyword_ Mapping_Tables. 3 ExamplesL 1.CDO> DEFINE RMS_DATABASE EMPLOYEE_INFO DESCRIPTION IS "INFORMATION ON" cont> "CURRENT EMPLOYEE".! cont> RECORMD EMPLOYEE_REC. . . . cont> AREAS. cont> AREA 0 cont> ALLOCATE 1000 cont> BUCKET_SIZE 10 cont> EXTENSION 100 cont> CONTIGUOUS. cont> AREA 1 cont> ALLOCATE 1000 cont> BUCKET_SIZE 1 cont> EXTENSION 100% cont> BEST_TRY_CONTIGUOUS. cont> AREA 2 cont> ALLOCATE 1000 cont> BUCKET_SIZE 1 cont> EXTENSION 100N% cont> BEST_TRY_CONTIGUOUS. cont> END AREAS. . . .* cont> END EMPLOYEE_INFO RMS_DATABASE. CDO>= This example shows the syntax for defining the ALLOCATE,@ BUCKET_SIZE, EXTENSION, CONTIGUOUS, and BEST_TRY_CONTIGUOUSA properties for three areas in the EMPLOYEE_INFO RMS database element. 1 2.CDO> DEFINE RMS_DATABASE MORE_EMPLOYEE_INFO; cont> "DESCRIPTION IS " DATA ON CURRENT EMPLOYEES ".! conOt> RECORD EMPLOYEE_REC. cont> FILE_DEFINITION cont> AREA 1 cont> POSITION NONE. . . ./ cont> END MORE_EMPLOYEE_INFO RMS_DATABASE. CDO>A This example shows the syntax that defines the NONE position< type option for the area property POSITION in the MORE_( EMPLOYEE_INFO RMS database element. 2 key_properties Format& { DUPLICATES }& { CHANGES P }& { NULL_KEY }& { }& { NULL_VALUE null-value }& { DATA_AREA area-number }& { DATA_FILL numeric-literal }& { }& { DATA_KEY_COMPRESSION }& { DATA_RECORD_COMPRESSION }& { INDEX_AREA area-number }& { }& { INDEX_COMPRESSION }& { INDEX_FILL numeric-literal }& { LEVEL1_INDEX_ARQEA area-number }& { }& { NODATA_KEY_COMPRESSION }& { NODATA_RECORD_COMPRESSION }& { NOINDEX_COMPRESSION }& { }& { PROLOG numeric-literal }& { SEGMENT within-name-clause }& { SORTED BY ASCENDING }& { }& { SORTED BY DESCENDING } 3 Parameters 4 null-valueC Specifies a null key value for an alterRnate index. This value isB either an integer or a single character within quotation marks. 4 area-numberC Specifies a positive integer that corresponds to the number of a previously defined area. 4 numeric-literalA Specifies a positive integer. See the OpenVMS documentation onC RMS for the valid values for a particular keyword. For a mappingB of CDO keywords to the corresponding RMS symbolic field offset," see RMS_Keyword_Mapping_Tables. 4 within-Sname-clause$ field-name { IN record-name } ...C Specifies the field or record names that are part of a segmented@ key. A segmented key allows you to define a key that accesses@ noncontiguous fields in a record. The record name is the sameB name that defines the data structure of the RMS database in the DEFINE RMS_DATABASE command. 3 DescriptionC Key properties define the characteristics of a key in an indexed@ file. You define keys in numerical order, starting Twith 0. By4 default, Key 0 always has a value of DATA_AREA 0.@ A segmented key allows you to define a key that accesses non-= contiguous fields in a record. You can specify from 2 to 8C segments for each segmented key in an indexed file. For example: o A field in a record- o A field in a record that is in a record( o A field in a structure in a recordB You must specify a segment for each key you define. A segmented$ key can contain up to 8 segments.A TUhe field element or elements specified by the keyword SEGMENTD determine the data type of the key. A key with only 1 segment canA point to a field that has any of the following RMS data types: DSC$K_DTYPE_B DSC$K_DTYPE_BU DSC$K_DTYPE_W DSC$K_DTYPE_WU DSC$K_DTYPE_L DSC$K_DTYPE_LU DSC$K_DTYPE_Q DSC$K_DTYPE_QU DSC$K_DTYPE_P DSC$K_DTYPE_T? See the OpenVMS documentation on RMS for more information on valid RMS d Vata types.> Each segment of a key can contain up to 255 characters. TheA sum of all characters for all key segments must not exceed 255 characters.A When defining a segment, you cannot use a field that is in the variant portion of a record.= If you specify NULL_VALUE without specifying NULL_KEY, CDOD automatically specifies NULL_KEY. If you specify NULL_KEY without= specifying NULL_VALUE, the default value for NULL_VALUE is? 0. When you display a RMS database elWement with a NULL_VALUE7 property, the null value appears as a decimal value.C For a description and valid values for a particular keyword, see$ the OpenVMS documentation on RMS.? For a mapping of CDO keywords to symbolics, see RMS_Keyword_ Mapping_Tables. 3 Examples$ CDO> DEFINE RMS_DATABASE EMPLOYEE_$INFO DESCRIPTION IS "INFORMATION ON" cont> "CURRENT EMPLOYEE". cont> RECORD EMPLOYEE_REC. . . . cont> KEYS. cont> KEY 0 cont> X DATA_AREA 0 cont> INDEX_AREA 0, cont> SEGMENT EMP_ID IN EMPLOYEE_REC. cont> KEY 1 cont> DUPLICATES cont> DATA_AREA 1 cont> INDEX_AREA 2/ cont> SEGMENT LAST_NAME IN EMPLOYEE_REC. cont> END KEYS.& cont> END EMPLOYEE_INFO RMS_DATABASE. CDO>> This example shows the syntax for defining the DATA_AREA,> INDEX_AREA, SEGMENT, and DUPLICATES key properties in the( EMPLOYEE_INFO RMS database element. 2 RMS_Keyword_MappiYng_TablesB The following tables show the mapping of the different keywordsA used when creating a logical RMS database in a CDO dictionary.: Table 4-1 Mapping of Keywords to Symbolic Field Offsets4 Keyword Symbolic Field Offset+ Area Properties( ALLOCATE XAB$L_ALQ( ANY_CYLINDER XAB$V_ONC( BEST_TRY_CONTIGUOUS XAB$V_CBT( BUCKET_SIZE XAB$B_BKZ( CONTIGUOUS Z XAB$V_CTG( EXACT_POSITIONING XAB$V_HRD( EXTENSION XAB$W_DEQ( POSITION XAB$B_ALN( VOLUME XAB$W_VOL2 File Access Block Properties( ACCESS FAB$B_FAC( BLOCK_SPAN FAB$V_BLK( CARRIAGE_CONTROL FAB$B_RAT. CHANNEL_ACCESS_MODE FAB$V_CHAN_MODE( CONTROL_FIELD_SIZE FAB$B_FSZ( EXTENSION FAB$W_DEQ[( FAC FAB$B_FAC( FORMAT FAB$B_RFM- LOGICAL_NAME_MODE FAB$V_LNM_MODE( SHARING FAB$B_SHR( WINDOW_SIZE FAB$B_RTV1 File Definition Properties( ALLOCATION FAB$L_ALQ( BUCKET_SIZE FAB$B_BKS( FILE_PROCESSING_OPTIONS FAB$L_FOP( FOP FAB$L_FOP( GLOBAL_BUFFER_COUNT FAB$W_GBC( MAX_RECORD_NUMBER\ FAB$L_MRN( MAX_RECORD_SIZE FAB$W_MRS( MT_BLOCK_SIZE FAB$W_BLS( ORGANIZATION FAB$B_ORG+ Key Properties( ASCENDING XAB$B_DTP( CHANGES XAB$V_CHG( DATA_AREA XAB$B_DAN( DATA_FILL XAB$W_DFL. DATA_KEY_COMPRESSION XAB$V_KEY_NCMPR. DATA_RECORD_COMPRESSION XAB$V_DAT_NCMPR( DESCENDING XAB$B_DTP ]( DUPLICATES XAB$V_DUP( INDEX_AREA XAB$B_IAN. INDEX_COMPRESSION XAB$V_IDX_NCMPR( INDEX_FILL XAB$W_IFL( LEVEL1_INDEX_AREA XAB$B_LAN. NODATA_KEY_COMPRESSION XAB$V_KEY_NCMPR. NODATA_RECORD_COMPRESSION XAB$V_DAT_NCMPR. NOINDEX_COMPRESSION XAB$V_IDX_NCMPR( NULL_KEY XAB$V_NUL( NULL_VALUE XAB$B_NUL+ PROLOG XAB$B_PROLOGA Mapping o^f Keywords to Symbolic Constants shows the mapping of" keywords to symbolic constants.6 Table 4-2 Mapping of Keywords to Symbolic Constants Symbolic2 Keyword Constant Constant Type) Access Mode4 EXECUTIVE PSL$C_EXEC FAB$V_CHAN_MODE4 NONE (default) 0 FAB$V_CHAN_MODE4 SUPER PSL$C_SUPER FAB$V_CHAN_MODE4 USER PSL$C_USER FAB$V_CHAN_MODE- _ File Access Control. BLOCK_IO FAB$V_BIO FAB$B_FAC. DELETE FAB$V_DEL FAB$B_FAC. GET FAB$V_GET FAB$B_FAC. PUT FAB$V_PUT FAB$B_FAC. RECORD_IO FAB$V_BRO FAB$B_FAC. TRUNCATE FAB$V_TRN FAB$B_FAC. UPDATE FAB$V_UPD FAB$B_FAC, File Organization. INDEXED FAB$C_INX FAB$B_ORG. RELATIVE ` FAB$C_REL FAB$B_ORG. SEQUENTIAL FAB$C_SEQ FAB$B_ORG (default)* Position Type. CYLINDER XAB$C_CYL XAB$B_ALN. FILE_ID XAB$C_RFI XAB$B_ALN. LOGICAL XAB$C_LBN XAB$B_ALN. NONE (default) XAB$C_ANY XAB$B_ALN. VIRTUAL XAB$C_VBN XAB$B_ALN* Record Format. FIXED FAB$C_FIX FAB$B_RFM. STREAM FAB$aC_STM FAB$B_RFM. STREAM_CR FAB$C_STMCR FAB$B_RFM. STREAM_LF FAB$C_STMLF FAB$B_RFM. UNDEFINED FAB$C_UDF FAB$B_RFM. VARIABLE FAB$C_VAR FAB$B_RFM. VFC FAB$C_VFC FAB$B_RFMC Mapping of Keywords to Symbolic Bit Offsets shows the mapping of$ keywords to symbolic bit offsets.8 Table 4-3 Mapping of Keywords to Symbolic Bit Offsets" Symbolic Bit= Keyword Offset b Symbolic Bit Offset Type0 Carriage Control Options. CARRIAGE_RETURN FAB$V_CR FAB$B_RAT (default). FORTRAN FAB$V_FTN FAB$B_RAT. PRINT FAB$V_PRN FAB$B_RAT< File Processing Options-Allocation and Extension( BEST_TRY_ FAB$V_CBT RMS CONTIGUOUS( CONTIGUOUS FAB$V_CTG RMS( TRUNCATE_ON_CLOSE FAB$V_TEF RMS5 File Processing Options-Dispositcion( DELETE_ON_CLOSE FAB$V_DLT RMS( PRINT_ON_CLOSE FAB$V_SPL RMS( SUBMIT_ON_CLOSE FAB$V_SCF RMS( TEMPORARY FAB$V_TMD RMS( NO_DIRECTORY_ FAB$V_TMP RMS ENTRY; File Processing Options-Name Parsing Modifiers( CREATE_IF FAB$V_CIF RMS( MAXIMIZE_VERSION FAB$V_MXV RMS( SUPERSEDE FAB$V_SUP RMS6 File Processing Options-Magnetic Tape( MT_NOT_EOF d FAB$V_NEF RMS( MT_CURRENT_ FAB$V_POS RMS POSITION( MT_CLOSE_REWIND FAB$V_RWC RMS( MT_OPEN_REWIND FAB$V_RWO RMS5 File Processing Options-Nonstandard( NON_FILE_ FAB$V_NFS RMS STRUCTURED( USER_FILE_OPEN FAB$V_UFO RMS5 File Processing Options-Performance( DEFERRED_WRITE FAB$V_DFW RMS( SEQUENTIAL_ONLY FAB$V_SQO RMS5 File Processeing Options-Reliability( READ_CHECK FAB$V_RCK RMS( WRITE_CHECK FAB$V_WCK RMS* Share Options. DELETE FAB$V_SHRDEL FAB$B_SHR. GET FAB$V_SHRGET FAB$B_SHR. MULTISTREAM FAB$V_MSE FAB$B_SHR. PROHIBIT FAB$V_NIL FAB$B_SHR. PUT FAB$V_SHRPUT FAB$B_SHR. UPDATE FAB$V_SHRUPD FAB$B_SHR. USER_INTERLOCK FAB$V_UPI FAB$B_SHR? M fapping of CDO Area Properties to RMS Symbolic Field OffsetsA and Mapping of CDO Position Type Options to XAB$B_ALN Symbolic< Constants show the mapping of area properties keywords to( symbolic field offsets and constants.A Table 4-4 Mapping of CDO Area Properties to RMS Symbolic Field Offsets8 CDO Property RMS Symbolic Field Offset( ALLOCATE XAB$L_ALQ( ANY_CYLINDER XAB$V_ONC( BEST_TRY_CONTIGUOUS XABg$V_CBT( BUCKET_SIZE XAB$B_BKZ( CONTIGUOUS XAB$V_CTG( EXACT_POSITIONING XAB$V_HRD( EXTENSION XAB$W_DEQ( POSITION XAB$B_ALN( VOLUME XAB$W_VOL> Table 4-5 Mapping of CDO Position Type Options to XAB$B_ALN Symbolic Constants0 CDO Option Symbolic Constant( CYLINDER XAB$C_CYL( FILE_ID XAB$C_RFI( LOGIChAL XAB$C_LBN( NONE (default) XAB$C_ANY( VIRTUAL XAB$C_VBN> Mapping of CDO Key Properties to RMS Symbolic Field OffsetsA shows the mapping of key properties keywords to symbolic field offsets.@ Table 4-6 Mapping of CDO Key Properties to RMS Symbolic Field Offsets8 CDO Property RMS Symbolic Field Offset( ASCENDING XAB$B_DTP( DESCENDING XAB$B_DTP( D iUPLICATES XAB$V_DUP( CHANGES XAB$V_CHG( NULL_KEY XAB$V_NUL( NULL_VALUE XAB$B_NUL( DATA_AREA XAB$B_DAN( DATA_FILL XAB$W_DFL. DATA_KEY_COMPRESSION XAB$V_KEY_NCMPR. DATA_RECORD_COMPRESSION XAB$V_DAT_NCMPR( INDEX_AREA XAB$B_IAN. INDEX_COMPRESSION XAB$V_IDX_NCMPR( INDEX_FILL XAB$W_IFL( LEVEL1_INDEX_AREA j XAB$B_LAN. NODATA_KEY_COMPRESSION XAB$V_KEY_NCMPR. NODATA_RECORD_COMPRESSION XAB$V_DAT_NCMPR. NOINDEX_COMPRESSION XAB$V_IDX_NCMPR+ PROLOG XAB$B_PROLOG wwG Bv1 Expressions* CDO provides the following expressions:, o Value expressions-to calculate a valueA o Conditional expressions-to represent a relationship between valuesA o Record selection expressions (RSE)-to state a condition for procesksingC CDO stores expressions in a generic format, not as text, so that@ many products and applications can share the same expression.C The product using the CDO expression calculates the value at run time. 2 precedence_orderingD The following list shows the order in which Oracle CDD/Repository, interprets symbols used in an expression: 1. (symbols)) Any field contained in parentheses. 2. * /* Multiplication and division symbols. 3. +l' Addition and subtraction symbols. 4. < > <= >= = <>D Relational operators. See Expressions relational_operators for more information. 5. NOT Logical operator. 6. AND Logical operator. 7. OR Logical operator.C Relational Operators Equivalent Symbols shows equivalent symbols@ for the relational operators shown in the Precedence Ordering within Expressions table.4 Table 5-1 Relational Operators Equimvalent Symbols Relational Equivalent# Operator Symbol Meaning% < LT Less than( > GT Greater than1 <= LE Less than or equal to4 >= GE Greater than or equal to$ = EQ Equal to( <> NE Not equal toA In general, CDO evaluates expressions from left to right. WhenA an expression contains parentheses or operators, CDO evaluates@ these operantions first. The following list shows the order of8 precedence for these symbols, from highest to lowest:, o A symbol or symbols within parentheses( o Multiplication or division symbols% o Addition or subtraction symbols2 o Relational operators: LT, GT, LE, GE, EQ, NE o NOT o AND o ORD In the following example, the order of precedence determines thatC the first expression evaluates to 3, while the second expression evaluates to 8. (o6 + 12)/6 = 3 6 + 12/6 = 8D In the following expression, CDO evaluates X as a value between 2 and 4 or 11 and 20.@ IF (X GE 2 AND X LE 4) OR (X GE 11 AND X LE 20) THEN 1 ELSE 0 2 value_expr Format { arithmetic-expr } { builtin-expr } { case-expr } { } { char-string-literal } { concatenated-expr } { external-literal } { } { field-opr-record-expr } { first-from-expr } { numeric-literal } { } { statistical-expr } 3 Parameters 4 arithmetic-expr { + } { - } value-expr { * } value-expr { / }: An arithmetic expression combines value expressions andC arithmetic operators. When you use an arithmetic expression in aD value expression, the product using the CDO expression calculatesD theq value associated with the expression and uses that value whenD executing the statement. Therefore, an arithmetic expression must be reducible to a value.? The value expression, value-expr, is a symbol or a string of% symbols used to calculate a value. 4 builtin-exprG { NULL }G { [ ] }G { [ [ BOTH ] ] r }G { TRIM ( [ [ LEADING ] CHARACATER value-expr FROM ] value-expr ) }G { [ [ TRAILING ] ] }G { [ ] }G { POSITION (value-expr IN value-expr FROM value-expr ) }G { USER }G { CURRENT_USER }G { CURRENT_DATE s }G { CURRENT_TIME (scale) }G { CURRENT_TIMESTAMP (scale) }G { CHARACTER_LENGTH (value-expr) }G { CHAR_LENGTH (value-expr) }G { OCTET_LENGTH (value-expr) }G { UPPER (value-expr) }G { LOWER (value-expr) t }G { SESSION_USER }G { SUBSTRING [_OCTETS] (value-expr FROM value-expr FOR value-expr) }G { SUBSTRING_CHARACTERS (value-expr FROM value-expr FOR value-expr) }G { SYSTEM_USER }G { cast-builtin-expr }G { { YEAR } }G { { MONuTH } }G { { DAY } }G { { HOUR } }G { EXTRACT ( { MINUTE } FROM value-expr) }G { { SECOND } }G { { WEEKDAY } }G { { JULIAN } }G { TRAvNSLATE (value-expr USING character-set) }A Calculate values based on specified value expressions. See the< Descriptions subtopic for Built-in Function descriptions.A See the Oracle Rdb7 SQL Reference Manual for the character set types. 4 cast-builtin-expr CAST (value-expr ASJ { }J {FIELD field-name }}J {DATATYPE w }}J {{ }}J {{TEXT [CHARACTER_SET IS name] [SIZE IS digits] [CHARACTERS] }}J {{ [OCTETS ] }}J {{ }}J {{VARYING STRING [CHARACTER_SET IS name [SIZE IS digits] [CHARACTERS]}}J {{ [OCTETxS ]}}J {{ }}J {{DATE [VMS ] }}J {{ [ANSI] }}L {{ }} )J {{TIME [SCALE scale-value] }}J {{TIMESTAMP [SCALE scale-value] }}J {{interval-builtin-expr y }}J {{F_FLOATING }}J {{G_FLOATING }}J {{ }}J {{ {BYTE } }}J {{ {WORD } }}J {{[SIGNED] {LONGWORD} [SCALE scale-value] }}J {{ z {QUADWORD} }}J { } interval-builtin-exprI {YEAR [SIZE IS digits] [TO MONTH] }I {MONTH [SIZE IS digits] }I { }I { [ ]}I { { [ { HOUR }]}I {DAY [SIZE IS digits] [ TO { MINUTE }]}I { [ { SECOND [SCALE scale-value] }]}I { [ ]}I { }I INTERVAL{ [ ] }I { [ {MINUTE }] }I | {HOUR [SIZE IS digits] [ TO {SECOND [SCALE scale-value] }] }I { [ ] }I { }I {MINUTE [SIZE IS digits] [TO SECOND [SCALE scale-value] ] }I {SECOND [SIZE IS digits] [SCALE scale-value] }I { }4 Converts a value expression to another data type.}) RESTRICTION> The CAST builtin expression requires a space between the@ letter T in CAST and the open parenthesis character of the9 value expression; otherwise, a syntax error occurs. 4 case-expr: CASE value-expr { WHEN value-expr THEN value-expr } ... [ ELSE value-expr ] END= Matches two value expressions for equality. This clause is/ identical to the SQL SIMPLE CASE expression. 4 char-string-literal2~ Specifies a string of printable characters. See= character_string_literals help topic for more information. 4 concatenated-expr { | }" value-expr { ^ } value-expr ...B Combines two value expressions by joining the second expression& to the end of the first expression.C You can combine value expressions of any kind, including numeric1 expressions, string expressions, and literals.C The vertical bar (|) specifies a value through combining one orD more value expressions. The circumflex character (^) specifies aB value through combining one or more value expressions using SQL concatenation rules. 4 external-literal EXTERNAL quoted-stringD Specifies the name of an external literal. Defines the equivalentB of the COBOL initial value (VALUE IS EXTERNAL clause) and level4 88 condition values (VALUES ARE EXTERNAL clause). 4 field-or-record-expr" { }" { dir -name }" { { name IN } ... context-var }" { }= Specifies the name of a field or a record in a database byC directory name, or by field or record name and context variable.> A context variable is a temporary name you associate with a> record. You define a context variable in a record selectionA expression (RSE). You specify a context variable only when you> use the name IN parameter of the field or record expression syntax.A For example, once you define E as the context variable for the@ EMPLOYEES relation, LAST_NAME IN E is a value expression thatD refers to a value from the LAST_NAME field of EMPLOYEES. Use name4 IN only in an expression with a context variable. 4 first-from-expr FIRST value-expr FROM rseB Specifies a value by forming a record stream (as indicated by aC record selection expression). If at least one record matches theB RSE, the values stored in the first record of the record stream- are used to evaluate the value expression.B The FIRST FROM expression can perform the equivalent of a table@ lookup when you are sure that the value you want to find in a relation is unique.? The value expression, value-expr, is a symbol or a string ofC symbols used to calculate a value. The rse parameter specifies aC clause that products use at run time to include specific records for processing. 4 numeric-literalC Specifies a value that can be expressed as a decimal number. See4 numeric_literals help topic for more information. 4 statistical-expr { } { { MAX } } { { MIN } }$ { { TOTAL } value-expr } OF rse { { AVERAGE } } { } { COUNT } { }= Specifies a value by forming a record stream (as indicated> by a record selection expression), an d evaluating its valueD expression against every record in the record stream. StatisticalA expressions are sometimes called aggregate expressions becauseB they calculate a single value for a collection of records. WhenC you use a statistical expression (except for COUNT), you specifyA a value expression and an RSE. A layered product evaluates theB value expression for each record in the record stream formed byC the RSE. Then the product calculates a single value based on the results of the first step.D The COUNT expression differs from the other statistical operators? because it operates on the record stream defined by the RSE,> rather than on values in that record stream. It returns the; number of records in the record stream. In the following? expression, the number of employees working in New Hampshire is returned.1 COUNT OF E IN EMPLOYEES WITH STATE IN E = "NH" 3 Description= A value expression returns a value that can be a string, a number, or a null value.B Arithmetic Operators describes the operators used in arithmetic expressions.! Table 5-2 Arithmetic Operators Symbol Function + Addition - Subtraction * Multiplication / DivisionD Statistical Operators describes the operators used in statistical expressions." Table 5-3 Statistical Operators Function Value of Function< AVERAGE The average of the values specified by the value@ expression for all records specified by the RSE. The9 value expression must be a numeric data type.@ COUNT The number of records in the stream specified by the RSE.< MAX The largest of the values specified by the value< expression for all records specified by the RSE.= MIN The smallest of the values specified by the value< expression for all records specified by the RSE.C TOTAL The sum of the values specified by the value expression; for all records specified by the RSE. The value3 expression must be a numeric data type.@ Built-in Function Description describes the built-in functionA names and values. See the Oracle Rdb7 SQL Reference Manual forB more details on the use and restrictions for using SQL built-in functions.* Table 5-4 Built-in Function Description Name Description) NULL Specifies a null value.A TRIM Removes leading or trailing characters from anyA character value expression. Note: The CHARACTER- keyword is required in CDO.< POSITION Searches for a string in a character value expression.A USER Specifies the user name of the current process.< CURRENT_USER Returns the current active user name for a request.A CURRENT_DATE Returns a DATE data type value containin g year,2 month, and day for today's date.B CURRENT_TIME Returns a TIME data type value containing hours,@ minutes, and seconds for the current time. YouB can specify a fractional precision between 0 andA 2 for the seconds returned by CURRENT_TIME. The? fractional seconds precision is a number thatA designates the number of digits returned in theA field. The fractiona l precision is the negativeA of the value specified in the SCALE clause. TheC CURRENT_TIME keyword and the left parenthesis forA the fractional precision must be separated by aD space. Otherwise, CDO interprets it as the name ofB an element with a version of the value specified. in the fractional precision.@ CURRENT_ Returns a TIMESTAMP data type value containingB TIMESTAMP  year, month, and day for today's date and hours,@ minutes, and seconds for the current time. YouB can specify a fractional precision between 0 andB 2 for the seconds returned by CURRENT_TIMESTAMP.C The fractional seconds precision is a number thatA designates the number of digits returned in theA field. The fractional precision is the negativeA of the value specified in th e SCALE clause. TheD CURRENT_TIMESTAMP keyword and the left parenthesis@ for the fractional precision must be separatedA by a space. Otherwise, CDO interprets it as the@ name of an element with a version of the value8 specified in the fractional precision.@ CHARACTER_ Calculates the length of a value expression of> LENGTH any data type. You can use CHAR_LENGTH as an3 alternative for CHARACTER_LENGTH.> OCTET_LENGTH Calculates the length, in octets, of a value. expression of any data type.> UPPER Converts all lowercase characters in a value5 expression to uppercase characters.> LOWER Converts all uppercase characters in a value5 expression to lowercase characters.? SESSION_USER Returns the current active session user name.B SUBSTRING Returns portions of character value expressions.C SYSTEM_USER Returns the user name of the login process at the2 time of the database attachment.C CAST Converts a value expression to another data type.B EXTRACT Returns a single date-time field expressed as anB integer from a field defined with a data type of5 DATE, TIME, TIMESTAMP, or INTERVAL.B TRANSLATE Translates a character value expression from oneD character set to another compatible character set,- such as RDB$KANJI to Kanji. 3 Examples 1.(8 + 14) / 2 - 4? In this example, the arithmetic expression evaluates as 7. 2.DEFINE FIELD NAMEE COMPUTED BY FIRST_NAME | ' ' | MIDDLE_INITIAL | ' ' | LAST_NAME. The output is: JOHN Q PUBLIC@ In this example, the concatenated expression combines threeB fields into the NAME field definition. The space between each> pair of quotation marks appears in the output of the NAME field.! 3.COUNT OF E IN EMPLOYEES WITH+ LAST_NAME IN FULL_NAME IN E = "SMITH".> In this example, the FIELD or RECORD expression specifiesA the LAST_NAME field in the FULL_NAME record in the EMPLOYEES relation.* 4.FIRST SALARY IN E FROM E IN EMPLOYEES& WITH LOCATION IN E = "BUILDING_A"C In this example, the FIRST FROM expression finds the salary of0 the first employee who works in BUILDING_A.L  5.AVERAGE SALARY_AMOUNT IN CS OF CS IN SALARY WITH SALARY_AMOUNT IN CS GT 50000A In this example, the AVERAGE statistical expression uses theB RSE to form a stream of records where the SALARY_AMOUNT fieldD is greater than 50,000. The average of the values is calculated+ by the product reading the expression.N 6.MAX SALARY_AMOUNT IN CS OF SAL IN CURRENT_SALARY WITH SALARY IN SAL = MAXA This example shows how to use the MAX expression to find the* highest paid employee in the company.N 7.MIN SALARY_AMOUNT IN CS OF SAL IN CURRENT_SALARY WITH SALARY IN SAL = MIN> In this example, the MIN expression finds the lowest paid employee in the company.6 8.TOTAL SALARY_AMOUNT IN CS OF CS IN CURRENT_SALARY? The TOTAL expression finds the total annual payroll of the company. 9.8 + 7> This example shows an arithmetic expression that adds two numeric literals. 108 + 14 / 2 - 4; This is an example of an arithmetic expression that is evaluated as 11. 118 + 14 / (2 - 4)B In this example, the arithmetic expression is evaluated as 1. 2 character_string_literalsB A character string literal is a string of printable characters.A The maximum length of a character string is 65,536 characters. The printable characters are:+ o Uppercase alphabetic characters (A-Z)+ o Lowercase alphabetic characters (a-z) o Numerals (0-9)' o The following special characters:. ! @ # $ % ^ & * ( ) - _ = + ` ~. [ ] { } ; : ' " \ | / ? > < . ,7 o Any other characters that are part of the Digital! Multinational character setB o Japanese characters: Kanji, as defined by the JIS X0208:1990: standard, and Narrow Katakana, as defined by the JIS X0201:1976 standardB You must enclose a character string literal in a pair of eitherA single or double quotation marks. Quotation Marks in Character< String Literals shows the valid use of quotation marks in character string literals.9 Table 5-5 Quotation Marks in Character String Literals Character String Value% Expression Value% "JONES" JONES% 'JONES' JONES) "JONES' [invalid]$ "''''" '''') "''''' [invalid]3 'My name is "Lefty".' My name is "Lefty". 7 'My ''handle'' is "Lefty".' My 'handle' is "Lefty".? CDO usually treats uppercase and lowercase forms of the same? letter as the same character. However, it preserves the case? distinction when doing comparisons of character strings; for= example, NAME = "JONES" and NAME = "Jones" yield different results.D o Begin and end a character string literal with the same type of quotation mark.C o To include a quotation mark of one type in a character string B literal, enclose the literal in quotation marks of the other? type. For example, to include double quotation marks in a? character string literal, enclose the character string in single quotation marks.? o If a quotation mark appears in a character string literal; enclosed by quotation marks of the same type, use twoC consecutive quotation marks for every one you want to include@ in the literal. This technique is necessary if you want to> include quotation marks of both types in a single quoted string. 3 Examples/ E IN EMPLOYEES WITH LAST_NAME IN E = "Toliver"C In this example, the expression specifies the character string literal Toliver. 2 numeric_literalsC You can use a literal as a value expression. A literal is either+ a character string or a numeric literal.1 Numeric literals can take the following forms:C o A decimal string consisting of digits and an optional deci malC point. The maximum length, not counting the decimal point, is 19 digits.D o A decimal number in scientific notation (E-format), consistingA of a decimal string mantissa and a signed integer exponent,C separated by the letter D (for double), E (for E-format) or Q (for H_floating).> CDO allows you to use unary plus and minus signs in numericC literals. Numeric literals must start and end with a numeral andD cannot include hexadecimal digits. Numeric literals in E notation" cannot include embedded spaces.8 The following expressions are valid numeric literals: +123 -3.49 0.3338889909 6.03 E+23A If you use a numeric literal to assign a value to a field or aB variable, the data types of the field or variable determine the maximum value you can assign.C A period at the end of a data definition command line terminates< the command; therefore, you cannot use a decimal point toA terminate a number if you want to include more data definition clauses in the statement.A If you want to include more data definition clauses, include aA zero after the decimal point, or place the value expression in parentheses: COMPUTED BY X * 2.0 COMPUTED BY (X * 2.) 3 Examples4 S IN SALARY_HISTORY WITH SALARY_AMOUNT IN S > 40000B In this example, the expression specifies the numeric literal 40000. 2 conditional_expr Format : { value-expr1 [CASE_SENSITIVE] operator value-expr2 }: { condition-clause }: { containing-clause }: { }: { matching-clause }: { missing-clause }: { starting-with-clause }: { } 3 Parameters 4 value-exprN N = value-expr1 or N = value-expr2> Specifies a value. A value expression can consist of any ofA the following: character string literals, numeric literals, orB arithmetic, concatenated, or statistical expressions. If either@ value expression in a condition evaluates to null, the entire condition evaluates to null. 4 operator8 Specifies a mathematical relational operator. See theH mathematical relational operators in relational_operators help topic. 4 condition-clause& { ALPHABETIC }& { ALPHABETIC_LOWER }& { ALPHABETIC_UPPER }& { EMPTY_FIELD }& { FULL_FIELD }& field-expr { NUMERIC }& { NOT ALPHABETIC }& { NOT ALPHABETIC_LOWER }& { NOT ALPHABETIC_UPPER }& { NOT EMPTY_FIELD }& { NOT FULL_FIELD }& { NOT NUMERIC }? Specifies whether a field expression satisfies the specified condition.@ The product using CDO evaluates a condition clause as true if> the field expression satisfies the condition specified. TheB field expression specifies the name of a field in the database,= consisting of a field name and a directory name or context variable.@ When you use the keyword NOT, the product using CDO evaluatesC the clause as true if the field expression does not satisfy this condition. 4 containing-clause< value-expr1 CASE_SENSITIVE { CONTINING } value-expr20 { NOT CONTAINING }? Specifies whether a value expression contains a second value> expression. This operation is not case sensitive unless you& specify the CASE_SENSITIVE keyword.D When you use the keyword NOT, the product using CDO evaluates theA clause as true if the first string expression does not contain: the string that the second string expression specifies. 4 matching-clause8 value-expr CASE_SENSITIVE { MATCHING } match-expr- { NOT MATCHING }B Specifies a relational clause that tests for substring matches.D By using wildcard characters, you can specify the position of the3 substring. This operation is not case sensitive.? The product using CDO evaluates a MATCHING clause as true ifB match expression, the second expression, matches a substring ofB the first expression. Specify the match expression in quotation marks.@ When you use the keyword NOT, the product using CDO evaluates? the clause as true if the second expression does not match a+ substring of the first value expression. 4 missing-clause# { field-expr } { MISSING }# { record-expr } { NOT MISSING }> Specifies whether a field or record expression is null. The> product using CDO evaluates a MISSING clause as true if the& record or field expression is null.; Specifies the name of a field or record in the database,A consisting of a directory name or a field or record name and a context variable.D When you use the keyword NOT, the product using CDO evaluates the@ clause as true if the record or field expression is not null. 4 starting-with-clause? value-expr1 CASE_SENSITIVE { STARTING WITH } value-expr23 { NOT STARTING WITH }? Specifies w hether the first characters of a value expressionD match the characters of a second value expression. This operation is case sensitive.A The product using CDO evaluates a STARTING WITH clause as trueC if the first characters of the first string expression match the. characters in the second string expression.D When you use the keyword NOT, the product using CDO evaluates theA clause as true if the first string does not contain the string/ that the second string expression specifies.C If either value expression in a condition evaluates to null, the condition evaluates to null. 3 DescriptionC A conditional expression, sometimes called a Boolean expression,? represents the relationship between two value expressions. AA conditional expression returns a value of true, false, or null (missing).; Conditional expressions consist of value expressions and# relational or logical operators.@ You can use conditional expressions in CDO as objects for theD WITH clause or VALID IF clause of the record selection expression/ or the VALID IF clause in field definitions. 2 relational_operators9 Relational operators specify the relationship of value= expressions and perform the following kinds of operations:" o Compare a value with a range o Match a pattern o Test for missing fields 3 DescriptionA CDO uses mathematical relational operators and pattern testing7 relationa l operators in its conditional expressions.? Mathematical relational operators are symbols that allow you> to compare values. Pattern testing relational operators areB keywords that allow you to test for a pattern of values. Unlike> the mathematical relational operators, each pattern testing1 relational operator has its own unique syntax.A Pattern Testing Relational Operators lists the pattern testing relational operators.1 Table 5-6 Pattern Testing Relational Operators& Clause Relational OperationD BETWEEN True if the first value expression is less than orB equal to the second value expression and greater> than or equal to the third value expression.C CONTAINING True if the string specified by the second stringA expression is found within the string specifiedC by the first string expression. CONTAINING is not! case sensitive.? MAT CHING True if the second value expression matches aC substring of the first value expression. MATCHING> is not case sensitive. It uses the following& wildcard characters:@ o Asterisk (*)- Matches any string of zero or$ more charactersB o Percent sign (%)-Matches any single character% in that positionB STARTING True if the first characters of the first string@ WITH expression match the second string expression.2 STARTING WITH is case sensitive.@ The logical operators AND, OR, and NOT let you compare two orC more conditional expressions and optionally reverse the value ofC a conditional expression. The result of using a logical operator% is another conditional expression.; Mathematical Relational Operators lists the mathematical= relational operators. These operators allow you to compareD values. In all cases, if either value expression in a conditionalA expression is null, the value of the entire condition is null.. Table 5-7 Mathematical Relational Operators Permitted" Symbols Relational Operation: EQ or = True if the two value expressions are equal.> NE or <> True if the two value expressions are not equal.D GT or > True if the first value expression is greater than the second.C GE or >= True if the first value expression is greater than or" equal to the second.A LT or < True if the first value expression is less than the second.@ LE or <= True if the first value expression is less than or" equal to the second.> Use either the alphabetic symbol or the mathematical symbolB from the Permitted Symbols column, but do not use both when you! specify a relational operator.@ See the documentation for the languages and products that useC  the repository to determine how that product evaluates character@ string literals. In some cases, character string literals areC compared according to the ASCII collating sequence. Under ASCII,A lowercase letters have a greater value than uppercase letters,C and the letters near the beginning of the alphabet have a lesser! value than those near the end.C For products that compare character string literals according toC the ASCII collating sequence, the following statements are true: o a > A o a < z o A < ZA To determine how CDO conditional expressions linked by logicalA operators are evaluated, see the documentation for the product6 that will be evaluating the conditional expression.@ See the documentation for languages and products that use the= repository to determine how they evaluate character string literals.' CAUTIONA The NOT operator applies to conditional expressions. Do not> use the NOT operator and an equal sign instead of the NE@ or <> relational operators. The following statement is not valid:6 WITH SALARY_AMOUNT IN S NOT = 30000, Use one of the following alternatives:8 WITH NOT (SALARY_AMOUNT IN S = 30000)3 WITH SALARY_AMOUNT IN S NE 300003 WITH SALARY_AMOUNT IN S <> 30000 3 Examples 1.LAST_NAME CONTAINING "ith"# LAST_NAME NOT CONTAINING "son"D In this example, if LAST_NAME has the string ith, CDO evaluatesA the CONTAINING clause as true; if LAST_NAME does not containA the string son, CDO evaluates the CONTAINING clause as true. 2.SALARY_AMOUNT IN SH > 50000? In this example, the conditional expression is true if the= value in the SALARY_AMOUNT field is greater than 50,000.$ 3.NOT SALARY_AMOUNT IN SH < 50000? In this example, the conditional expression is true if the: value in the SALARY_AMOUNT field is less than 50,000. 4.DEFINE FIELD SEXI VALID IF (SEX CASE_SENSITIVE EQ "M") OR (SEX CASE_SENSITIVE EQ "F").< In this example, the DEFINE FIELD uses a case sensitiveC relational operator in the VALID IF clause to test whether theC code to be entered in the field SEX is M or F. The conditional@ expression is true if the value for the field SEX is M or F (not m or f). 5.LAST_NAME MATCHING "*ON"? In this example, the conditional expression is true if the@ field LAST_NAME has ON as the last two letters. You can use> this expression to find all records with LAST_NAME fields satisfying this condition.( 6.LAST_NAME IN FULL_NAME IN E MISSING? In this example, the conditional expression is true if the= LAST_NAME field in the FULL_NAME record of the EMPLOYEES relation is missing.+ 7.LAST_NAME IN FULL_NAME IN E ALPHABETIC@ In this example, CDO evaluates the field expression as true> when the LAST_NAME field from the FULL_NAME record of the& EMPLOYEES relation is alphabetic. 8.SALARY_AMOUNT NOT MISSING? In this example, the conditional expression is true if the6 SALARY_AMOUNT field has a value that is not null. 9.SALARY_AMOUNT MATCHING "4*"B This example shows the matching clause used with numeric data> types. In this example, the matching clause finds all the+ salaries that start with the number 4.* 10SALARY_AMOUNT BETWEEN 40000 AND 49999D This example finds all salaries in a range by using the BETWEEN clause. 2 record_sel_expr Format_ [first-clause] relation-clause [cross-clause] [with-clause] [reduced-clause] [sort-clause] 3 Parameters 4 first-clause FIRST value-expr@ Specifies how many records are in the record stream formed by? the record selection expression (RSE). The value expression,A value-expr, is a symbol or string of symbols used to calculate> a value. The value expression in a FIRST clause must eitherA be a positive number or a value expression that evaluates to aB positive integer. The record stream cannot contain more records5 than the number specified by the value expression. 4 relation-clause context-var IN relation-name@ Declares context variables for a record stream or a loop. TheB context variable specifies a temporary name that identifies theC record stream to the product evaluating the clause. You then useB the context variable to refer to fields from that relation. TheD relation name specifies the relation from which CDO will take the records in the record stream. 4 cross-clause { CROSS relation-clause } ...A Allows you to combine records from two or more record streams.C You join these records in combinations based on the relationship; between the values of fields in each record stream. This+ combination is called a relational join.> The relation clause declares context variables for a record stream or loop. 4 with-clause WITH cond-expr@ Allows you to specify conditions that must be true for CDO toC include a record in a record stream. You specify any conditional expression in this clause.; The record becomes part of a record stream only when itsA values satisfy the conditions you specified in the conditional? expression (that is, only when the conditional expression is= true). If the conditional expression evaluates to false orB missing for a record, that record is not included in the record stream. 4 reduced-clause REDUCED TO value-expr ,...B Allows you to eliminate duplicate values for fields in a record= stream and to group the records in a relation according to> unique field values. However, only using the REDUCED clauseB does not guarantee the sort order within groups and the resultsA are unpredictable. To ensure specific order, use the SORTED BY clause.D The value expression, value-expr, specifies a symbol or string of% symbols used to calculate a value. 4 sort-clause* { }/ SORTED BY { [ ASCENDING ] value-expr } ,...* { [ DESCENDING ] }* { }D Allows you to sort the records in the record stream by the valuesD of specific fields. The value expression, or sort k ey, determines= the order in which CDO returns records. The default for anA initial sort key is ASCENDING. The default for subsequent keys, is the specification for the initial key.D The value expression, value-expr, specifies the value to sort by;% this value is called the sort key. 3 DescriptionD A record selection expression (RSE) is a clause that products useB at run time to include specific records for processing. The RSEB defines the conditions that individual records must meet before( CDO includes them in a record stream. 3 Examples 1.FIRST 5 C IN CURRENT_SALARY, SORTED BY DESCENDING SALARY_AMOUNT IN C@ You can use FIRST and SORTED BY clauses to find the maximumD values for a field. In this example, the FIRST clause finds the! five highest paid employees. 2.E IN EMPLOYEESD In this example, the RELATION clause retrieves all records from the EMPLOYEES relation.3 3.COUNT OF E IN EMPLOYEES WITH STATE IN E = "NY"C In this example, the RELATION clause declares E as the contextD variable for the stream of records from the EMPLOYEES relation.+ 4.E IN EMPLOYEES CROSS JH IN JOB_HISTORY$ WITH EMP_ID IN E = EMP_ID IN JHC In this example, the CROSS clause finds all employees for whom0 data is stored in the JOB_HISTORY relation.# 5.E IN EMPLOYEES CROSS J IN JOBSC In this example, the CROSS clause retrieves information on all* employees and their job descriptions., 6.E IN EMPLOYEES WITH JOB_CODE IN E = "R"A In this example, the WITH clause returns all employees whose JOB_CODE equals R. 7.REDUCED TO JOB_CODE IN JC In this example, the REDUCED clause lists all active job codes once.) 8.EMPLOYEES SORTED BY EMPLOYEE_ID IN E< In this clause, the SORTED BY clause sorts EMPLOYEES by EMPLOYEE_ID.* 9.SORTED BY DESCENDING STATUS_CODE IN E/ ASCENDING LAST_NAME IN E, EMPLOYEE_ID IN EA In this example, the SORTED BY clause sorts first by STATUS_D CODE in descending order. Within each STATUS_CODE group, SORTED> BY sorts by LAST_NAME in ascending order. Finally, withinA groups of employees with the same last name, SORTED BY sortsD by EMPLOYEE_ID. The order for this last sort is also ascending,< because it adopts the order from the previous sort key. wwD Bv1 CDO_Edit_StringsB If a CDO field element contains an edit string, CDO performs anB automatic translation of the CDO edit string characters for the1 following languages that support edit strings: o COBOL o DATATRIEVE o PL/I o RPGC Translation of CDO Edit Strings for Languages and Products shows> how CDO translates edit string characters for COBOL picture@ clause characters, DIGITAL DATATRIEVE edit string characters,@ PL/I picture clause characters, and RPG edit word characters.A The following four symbols are used in Translation of CDO Edit& Strings for Languages and Products:C o -Not supported; if the CDO character appears in a CDO editC string, no picture clause or edit string is generated for the language.A o -Ignored; the CDO character is ignored for the language.B However, if the CDO character appears in an edit string withC other characters that can be translated, CDO will perform theC appropriate translation for the other edit string characters.? o -The CDO character has the same value as the previous# character in the edit string.C o <**>-Characters appearing after the CDO character in the edit1 string are not translated for the language.> Table 6-1 Translation of CDO Edit Strings for Languages and Products? CDO RPG@ Character Character COBOL DTR PL/I EDIT@ Type or String PICTURE EDIT PICTURE WORD? Alphabetic A A A ? Alphanumeric T X T ? X X X = Comma , , , , ,? Date, Day, D D and Time? H ? J J ? M M ? N N ? P ? Q ? R ? W W ? Y Y ? %  ? * = Decimal . . . . . point? Digit F ? 7 A 9 9 9 9 blank? Encoded C -9 -9 R  sign? G +9  +9 T ? K +9 +9 I ? Exponent E E = Floating S + + S -? Z"string" See See See See? the the the theE Floating_ Floating_ Floating_ Floating_E Character Character Character Character@ help help help helpB topic. topic. topic. topic.= - - - - -A + + + + blank= $ $ $ $ $@ \ C Literal "string" See the See the See the See theD  Literal_ Literal_ Literal_ Literal_G Characters Characters Characters Characters@ help help help helpB topic. topic. topic. topic.A Logical B 9 9 9 blank? Lowercase L C Minus &"string" See the See the See the See theB literal Minus_ M inus_ Minus_ Minus_D Literal_ Literal_ Literal_ Literal_E Character Character Character Character@ help help help helpB topic. topic. topic. topic.= Minus (( )) - (( )) - - parenthesesC Missing ? <**> ? <**> <**> separator= Repeat x(n) x(n)  x(n) (n)x xC count repeatsD n times.? Uppercase U  2 Alphabetic_Character? The edit string character A (uppercase letter A) is replacedB by an alphabetic character from the field's content. The actionD taken when a character in the field is not alphabetic is languageB dependent. See the documentation for each language to determineC the action taken when a digit or nonalphabetic character occurs. CDO Edit AAAA String: DTR Edit AAAA String: Field Value: WXYZ Edited WXYZ Value:A You can use the repeat count edit string character to indicate@ that you want to repeat the edit string character A a certainB number of times. The following two edit strings are equivalent: AAAA A(4) 2 Alphanumeric_Character; T he two alphanumeric edit string characters are T and X. 3 T_Long_Text_CharacterA The edit string character T (uppercase letter T) allows you to? display any characters from a field's content on one or moreA lines. The primary use of the T edit string is to print fieldsA containing large amounts of text. The number of Ts in the editB string indicates the maximum number of characters to be printedC on one line. For example, the edit string TTTTT indicates that a< line of output will contain no more than five characters.> If the field contains more characters than specified in the? edit string, DIGITAL DATATRIEVE prints as many full words on= the line as possible. (A word in this sense is a string ofC characters delimited by a space.) DIGITAL DATATRIEVE then printsA the remaining characters on the following lines, if necessary.A DIGITAL DATATRIEVE does not print out trailing spaces when you use a T edit string.@ DIGITAL DATATRIEVE prints only full words. It does not divideB words unless a single word is longer than the maximum number ofA characters specified by the edit string. In that case, DIGITALC DATATRIEVE truncates some characters and prints them on the next line. CDO Edit TTTTT String: DTR Edit TTTTT String: Field value: 1234567890 Edited 12345 Value: 67890A You can use the repeat count edit string character to indicate@ that you want to repeat the edit string character T a certainB number of times. The following two edit strings are equivalent: TTTTT T(5) 3 X_Any_Character@ The edit string character X (uppercase letter X) displays any& character from the field's content. CDO Edit XXXXXXXXXX String: DTR Edit XXXXXXXXXX String: Field Value: fj32dj%^*I Edited fj32dj%^*I Value:A You can use the repeat count edit string character to indicate@ that you want to repeat the edit string character X a certainB number of times. The following two edit strings are equivalent: XXXXXXXXXX X(10) 2 Comma_CharacterC In fields with nonnumeric values, the edit string , character (a0 comma) inserts a comma into the edited value.A In fields with numeric values, the edit string comma characterD inserts a comma or suppresses a leading zero in the edited value.B The following example shows how the comma character is inserted> into the edited value when the edit string has a nonnumeric value. CDO Edit AA,AA String: DTR Edit AA,AA String: Field Value: ohno Edited oh,no Value:B The following example shows how a comma character in a CDO edit< string causes a comma to be inserted in the edited value. CDO Edit $$,$$9.99 String: DTR Edit $$,$$9.99 String: Field Value: 1234.56 Edited $1,234.56 Value:B The following example shows what happens when a comma characterC is included in an edit string with numeric values, but the comma' is not required in the edited value: CDO Edit $$,$$9.99 String: DTR Edit $$,$$9.99 String: Field Value: 12.34 Edited $12.34 Value: 2 Date_Day_and_Time_Characters@ The edit string characters described in this section are usedC to specify the output format of fields containing date, day, andA time information. See Literal_Characters for an explanation ofB how products and languages handle characters enclosed by double' quotation marks in CDO edit strings. 3 D_Day_Number_CharacterD The edit string character D (uppercase letter D) displays a digitD of the day within a month. You should repeat this character twice within an edit string. CDO Edit NN"/"DD"/"YYYY String: DTR Edit NN/DD/YYYY String: Field Value: May 4, 1996 Edited 05/04/1996 Value: 3 H_Twelve-Hour_Mode_Character@ The edit string character H (uppercase letter H) displays one? digit of the hour, in 12-hour mode, in the edited value. You< should repeat this character twice within an edit string.B Do not use this character in edit strings containing the R (24- hour mode) character. CDO Edit HH":"PP" "%% String: Field Value: 11:30 a.m. Edited 11:30 AM Value: 3 J_Julian_Digit_CharacterD The edit string character J (uppercase letter J) displays a digitA of the Julian date in the edited value. You should repeat this/ character three times within an edit string. CDO Edit YYYY"/"JJJ String: DTR Edit YYYY/JJJ String: Field Value: June 4, 1980 Edited 1980/156 Value: 3 M_Month_Name_Character> The edit string character M (uppercase letter M) displays a0 letter of the month name in the edited value.! CDO Edit MMM" "DD" "YYYY String: DTR Edit MMMBDDBYYYY String: Field Value: May 4, 1980 Edited MAY 04 1980 Value:@ In the following example, the CDO edit string contains five MA characters. If the month name in the field value contains moreD than five characters, only the first five characters of the month* name are displayed in the edited value.# CDO Edit MMMMM" "DD" "YYYY String: DTR Edit MMMMMBDDBYYYY String:" Field Value: December 4, 1987 Edited DECEM 04 1987 Value:@ If the month name in the field value contains fewer than fiveD characters, trailing blanks are displayed after the month name in the edited value.# CDO Edit MMMMM" "DD" "YYYY String: DTR Edit MMMMMBDDBYYYY String: Field Value: May 4, 1980 Edited MAY 04 1980 Value: 3 N_Month_Number_Character> The edit string character N (uppercase letter N) displays aD digit for the number of the month in the edited value. You should5 repeat this character twice within an edit string. CDO Edit NN"/"DD"/"YYYY String: DTR Edit NN/DD/YYYY String: Field Value: May 4, 1985 Edited 05/04/1985 Value: 3 P_Minute_Character@ The edit string character P (uppercase letter P) displays one@ digit for the number of minutes in a time value in the edited? field. You should repeat this character twice within an edit string. CDO Edit HH":"PP" "%% String: Field Value: 11:30 a.m. Edited 11:30 AM Value: 3 Q_Second_Character@ The edit string character Q (uppercase letter Q) displays one@ digit for the number of seconds in a time value in the edited? value. You should repeat this character twice within an edit string. CDO Edit PP":"QQ"."** String:* Field Value: 23 minutes 13.56 seconds Edited 23:13.56 Value: $3 R_Twenty-Four_Hour_Mode_Character@ The edit string character R (uppercase letter R) displays one? digit of the hour, in 24-hour mode, in the edited value. You< should repeat this character twice within an edit string.= Do not use this character in edit strings containing the H& character (12-Hour mode) character. CDO Edit RR":"PP String: Field Value: 2:30 p.m. Edited 14:30 Value: 3 W_Weekday_Name_Character> The edit string character W (uppercase letter W) displays a> letter from the day of week in a time value into the edited value. CDO Edit WWWWWWWWW String: DTR Edit WWWWWWWWW String: Field Value: June 3, 1987 Edited WEDNESDAY Value:A You can use the repeat count edit string character to indicate@ that you want to repeat the edit string character W a certainB number of times. The following two edit strings are equivalent. WWWWWWWWW W(9) 3 Y_Year_CharacterD The edit string character Y (uppercase letter Y) displays a digit@ of the year in a time value into the edited value. You shouldD repeat this character either two or four times in an edit string. CDO Edit MMM" "DD" "YY String: DTR Edit MMMBDDBYY String: Field Value: May 4, '85 Edited MAY 04 85 Value:: The CDO edit string can also contain four Y characters.! CDO Edit MMM" "DD" "YYYY String: DTR Edit MMMBDDBYYYY String: Field Value: May 4, 1985 Edited MAY 04 1985 Value: 3 %_AM/PM_CharacterD The edit string character % (a percent sign) displays a characterC from one of the strings AM or PM in the edited value. You should5 repeat this character twice within an edit string.@ The edit string character % is most useful when used with the@ edit string character H (twelve-hour mode character) and when( placed at the end of the edit string. CDO Edit HH":"PP" "%% String: Field Value: 11:30 a.m. Edited 11:30 AM Value: 3 *_Fraction_Second_CharacterA The edit string character * (an asterisk) displays a value forA fractions of a second within a time field in the edited value.> Repeat this character twice within an edit string to denote hundredths of a second. CDO Edit MM":"QQ"."** String:* Field Value: 23 minutes 13.56 seconds Edited 23:13.56 Value: 2 Decimal_Point_CharacterA The edit string decimal point character . (a period) inserts a@ period into the edited value. You can use this character only1 once within an edit string for numeric fields. CDO Edit 99.99 String: DTR Edit 99.99 String: Field Value: 2813E-2 Edited 28.13 Value: 2 Digit_Characters@ You can represent hexadecimal (F), octal (7), and decimal (9) digits in edit strings. 3 F_Hexadecimal_Digit_Character@ The edit string character F (uppercase letter F) displays one) hexadecimal digit in the edited value.= Do not use the hexadecimal digital character (F) within an@ edit string containing the octal character (7) or the decimal character (9). CDO Edit FFF String: Field Value: 32 Edited 020 Value: 3 7_Octal_Digit_CharacterD The edit string character 7 (the number seven) displays one octal digit in the edited value.A Do not use the octal digit character (7) within an edit stringD containing the hexadecimal character (F) or the decimal character (9). CDO Edit 777 String: Field Value: 32 Edited 040 Value: 3 9_Decimal_Digit_Character= The edit string character 9 (the number nine) displays one% decimal digit in the edited value.C Do not use the decimal digit character (9) within an edit stringB containing the hexadecimal character (F) or the octal character (7). CDO Edit 999 String: DTR Edit 999 String: Field Value: 613 Edited 613 Value: 2 Encoded_Sign_Characters@ The encoded sign edit string characters are the encoded minusD edit string character (C), the encoded sign edit string character7 (G), and the encoded plus edit string character (K). 3 C_Encoded_Minus_CharacterB If th e field's value is negative, the encoded minus character CC (uppercase letter C) overwrites the next digit with a minus sign8 (-), then moves the encoded digit to the edit string.A If the field's value is positive or zero, this character moves) the next digit into the edited string.? Use this character only at the beginning or end of a string.D An edit string can contain only one character designating a sign.@ Do not use this character within an edit string that contains' other characters designating a sign.A See the reference manual for the language or product that will= interpret the edit string to determine how the language or. product interprets encoded sign characters. CDO Edit C99 String: PL/I Picture R99 Clause: Field Value: -456 Edited M56 Value: 3 G_Encoded_Sign_CharacterA If the field's value is positive, the encoded sign character GB (uppercase letter G) overwrites the next digit with a plus sign8 (+), then moves the encoded digit to the edit string.C If the field's value is negative, the encoded sign character (G)B overwrites the next digit with a minus sign (-), then moves the$ encoded digit to the edit string.= If the field's value is zero, the action of this character depends on the language.? Use this character only at the beginning or end of a string.D An edit string can contain only one character designating a sign.@ Do not use this character within an edit string that contains' other characters designating a sign.A See the reference manual for the language or product that will= interpret the edit string to determine how the language or. product interprets encoded sign characters. CDO Edit G99 String: PL/I Picture T99 Clause: Field Value: +123 Edited A23 Value: 3 K_Encoded_Plus_CharacterA If the field's value is positive, the encoded p lus character KB (uppercase letter K) overwrites the next digit with a plus sign= (+), then moves the encoded plus digit to the edit string.= If the field's value is negative or zero, the encoded plus= character (K) moves the next digit into the edited string.? Use this character only at the beginning or end of a string.D An edit string can contain only one character designating a sign.@ Do not use this character within an edit string that contains' other characters designating a sign.A See the reference manual for the language or product that will= interpret the edit string to determine how the language or. product interprets encoded plus characters. CDO Edit K99 String: PL/I Picture I99 Clause: Field Value: +123 Edited A23 Value: 2 Exponent_CharacterC The edit string character E (uppercase letter E) divides an editC string into two parts for floating-point or scientific notation.D The first part is the characteristic and mantissa edit string and/ the second part is the exponent edit string. CDO Edit S99ES99 String: DTR Edit +99E+99 String: Field Value: 1200 Edited +12E+02 Value: 2 Floating_CharactersD There are six edit string floating characters: S, Z, -, +, $, and \. 3 S_Floating_Sign_CharacterC If you use the edit string character S (uppercase letter S) only? once within an edit string, one of the following results can occur:A o If the field's value is positive, the character S inserts a* plus sign (+) into the edited value. CDO Edit S9 String: DTR Edit +9 String: Field Value: 6 Edited +6 Value:C o If the field's value is negative, the floating sign character5 inserts a minus sign (-) into the edited value. CDO Edit S9 String: DTR Edit +9 String: Field Value: -8 Edited -8 Value:C o If the field's value is zero, the effect of the floating sign: character depends on the language reading the field. CDO Edit S9 String: DTR Edit +9 String: Field Value: 0 Edited +0 Value:= If you use more than one floating sign character at the= beginning of an edit string, the S character suppressesB leading zeros before inserting a plus sign (+) or minus sign (-) into the edited value. CDO Edit SS99 String: DTR Edit ++99 String: Field Value: 0054 Edited +54 Value:< You cannot use the S character within an edit string that1 contains another character designating a sign. $3 Z_Floating_Zero_Replace_CharacterC If the digit within the field's value is zero, the floating zeroD replace character Z (uppercase letter Z) displays a literal value2 instead of the zero digit in the edited string.B If the digit within the field's value is not zero, the floating- zero replace character displays the digit. CDO Edit Z" "99 String: DTR Edit Z99 String: Field Value: 25 Edited 25 Value:= The following example also shows the floating zero replace character. CDO Edit Z"*"99 String: DTR Edit *99 String: Field Value: 25 Edited *25 Value:B Translation of Characters in Floating Zero Replace Edit StringsA shows how CDO translates individual CDO characters in floating1 zero replace edit strings for other languages.D Table 6-2 Translation of Characters in Floating Zero Replace Edit Strings4 CDO RPG5 Z String Character COBOL DTR PL/I EDIT5 Format in String PICTURE EDIT PICTURE WORD2 Z"string" blank Z Z Z or Y 02 * * * * *2 any other * * * * character@ See the PL/I documentation for an explanation of when the CDOB blank character is translated to Z and when it is translated to Y.< You cannot use the Z character within an edit string that1 contains another character designating a sign. 3 -_Floating_Minus_Character? If yo u use the edit string floating minus character, a minusB sign (-), only once within an edit string, one of the following results can occur:D o If the field's value is positive, the floating minus character, inserts a blank into the edited value.D o If the field's value is negative, the floating minus character1 inserts a minus sign into the edited value.D o If the field's value is zero, the effect of the floating minusA character depends on the language reading the field. If youA use this character a number of times at the beginning of an@ edit string, the character suppresses leading zeros before< inserting a blank or minus sign into the edited value.@ You cannot use the minus character within an edit string that1 contains another character designating a sign.A For a nonnumeric field, this character moves a minus sign into the edited value. CDO Edit -9 String: DTR Edit -9 String:  Field Value: -54 Edited -54 Value: 3 +_Floating_Plus_Character= If you use the edit string floating plus character, a plusB sign (+), only once within an edit string, one of the following results can occur:C o If the field's value is positive, the floating plus character0 inserts a plus sign into the edited value.C o If the field's value is negative, the floating plus character, inserts a blank into the edited value.C o If the f ield's value is zero, the effect of the floating plusA character depends on the language reading the field. If youA use this character a number of times at the beginning of an@ edit string, the character suppresses leading zeros before; inserting a blank or plus sign into the edited value.D You cannot use this character within an edit string that contains( another character designating a sign. CDO Edit +++9 String: DTR Edit +++9 String: Field Value: 54 Edited +54 Value: 3 $_Floating_Currency_CharacterC If you use the floating currency character only once, it insertsC the dollar sign ($) in the next character position in the edited value.B If you supply the floating currency character more than once at@ the beginning of an edit string, it suppresses leading zeros.B To suppress up to four leading zeros, supply the character four- times at the beginning of the edit string.C The floating currency character inserts the currency sign to the7 left of the first printed digit of the edited value. CDO Edit $,$$$.99 String: DTR Edit $,$$$.99 String: Field Value: 157.86 Edited $157.86 Value: 3 \_:_Floating_Blank_CharacterC The floating blank character, a backslash (\), suppresses blanksB from an edited value. If the value of the character is a blank, the edited value excludes it. CDO Edit  MMM\\\\\,YYYY String: Field Value: June 15, 1982 Edited JUNE,1982 Value: 2 Literal_Characters= A pair of double quotation marks (" ") are the edit string> literal characters. Any character string enclosed by double@ quotation marks in an edit string is inserted into the edited value. CDO Edit 99" ""Hours" String: DTR Edit 99B'Hours' String: Field Value: 40 Edited 40 Hours Value:C Translati on of CDO Literal Edit Strings shows how CDO translatesB CDO literal edit strings for other languages. In the table, B means that the language does not support the CDO character, and- the character is ignored for the language.C If the character appears in an edit string with other characters; that can be translated, CDO will perform the appropriate; translation for the other edit string characters. If CDO? characters other than a blank, 0, /, or % occur in a string,D  CDO passes those characters to DIGITAL DATATRIEVE and RPG without performing a translation.D If a CDO edit string consists of only a 0, /, %, or a blank, thenA CDO performs the appropriate translation as shown in the firstD four lines of the table. The last line of the table shows how CDOC translates any other edit string for each language. For example,@ CDO translates the CDO edit string "sample string" to 'sample" string' for DIGITAL DATATRIEVE.D Note that the initial  blank character in the CDO edit string does@ not become a B in DIGITAL DATATRIEVE except when the blank isC the only character in the edit string. CDO translates charactersB from the first four lines of the table differently depending onA whether or not they are the only characters in an edit string.4 Table 6-3 Translation of CDO Literal Edit Strings3 Literal RPG4 String CDO COBOL DTR PL/I EDIT4 Format String PICTURE EDIT PICTURE WORD1 "string" Blank B B B &1 0 0 0 01 / / / / /1 % % %6 Any 'string' string other string 2 Logical_CharacterB The edit string character B (uppercase letter B) is the logicalA character. It displays logical fields as either TRUE or FALSE. CDO Edit BBBBB String: Field Value: 0 Edited FALSE Value: 2 Lowercase_Character> The edit string character L (uppercase letter L) prints anyC remaining alphabetic characters in a field's value in lowercase. CDO Edit LMMM" "DD String: Field Value: November 12th Edited nov 12 Value: 2 Minus_Literal_CharacterC The minus literal character & (an ampersand) replaces a negativeD sign in a field's value with a literal you supply. If the field's@ value is positive, this character moves a blank to the string% instead of the literal you supply.@ Do not use this character within an edit string that contains( another character designating a sign. CDO Edit 99&"CR" String: DTR Edit 99CR String: Field Value: -15 Edited 15CR Value:> Translation of CDO Minus Literal Edit Strings shows how CDOA translates CDO minus literal edit strings for other languages.< If CDO characters other than CR or DB appear in a string,? CDO translates the string as a hyphen (-) for COBOL, DIGITALD DATATRIEVE, and PL/I. CDO passes any CDO character to RPG without performing a translation.: Table 6-4 Translation of CDO Minus Literal Edit Strings Minus2 Literal RPG3 String CDO COBOL DTR PL/I EDIT3 Format String PICTURE EDIT PICTURE WORD1 &"string" CR CR CR CR CR1 DB DB DB DB DB5 Any - - - string other string 2 Minus_Parentheses_Character> The edit string character (( )) (double opening and closingA parentheses characters) is the minus parentheses character. It+ encloses negative values in parentheses. CDO Edit ((999)) String: DTR Edit ((999)) String: Fie ld Value: -678 Edited (678) Value: 2 Missing_Separator_Character? The edit string character ? (a question mark) is the missingB separator character. If the field has a missing value attributeA or relationship, this character separates two edit strings. IfB the field value is not the missing value, the first edit stringA controls the output of the field. If the contents of the fieldA contain the missing value, the second edit string controls the output of the field. CDO Edit 999?"Unknown" String: DTR Edit 999?'Unknown' String: Field Value: missing value Edited Unknown Value: 2 Repeat_Count_Character@ The edit string character x(n) is the repeat count character.B Replace x with the character that you want to repeat in an edit? string. Replace n with a positive integer that indicates theD number of times you want to repeat the character designated by x. CDO Edit  W(9) String: DTR Edit W(9) String: Field Value: June 3, 1987 Edited WEDNESDAY Value: 2 Uppercase_Character> The edit string character U (uppercase letter U) prints anyC remaining alphabetic characters in a field's value in uppercase.A The following example shows a CDO edit string containing the UA character, the field value, and the edited value that would be4 produced if a product supported these characters: CDO Edit  UA(20) String: Field Value: Jones Edited JONES Value: 2 Japanese_Edit_StringsB Oracle CDD/Repository supports edit string syntax that providesC characters for DIGITAL VAX COBOL to handle Japanese edit stringsC in the PICTURE clause. Japanese edit string support is availableC in Oracle CDD/Repository Version 6.1 and later. When you specify@ N or B for an edit string, enclose it between square brackets ([ ]).D Do not use these edit string characters for Oracle CDD/Repository> field definitions that will be used from DIGITAL DEC COBOL. wwjBv1 Logical_NamesB Oracle CDD/Repository Logical Names describes the logical names2 that are associated with Oracle CDD/Repository.0 Table A-1 Oracle CDD/Repository Logical Names2 Logical Name Mode Table PurposeB CDD$CHARACTER_SET Executive System Specifies the character@ set used for Japanese= input during a CDO3 session.C CDD$COMPATIBILITY Executive System Specifies OpenVMS anchor< directory for CDO@ repository portion ofD compatibility repository.@ CDD$CONTEXT User Process Specifies the current3 or Job c ontext.? CDD$DEBUG_FLAGS User Process Specifies values for> or Job setting of debugger> instructions. Valid6 values are:@ B - Dump all buffers.: C - Dump Oracle@ CDD/Repository-Oracle> Rdb cha nge buffers.@ D - Display a messageB when a deadlock occurs.? I - Dump inheritance7 information.C M - Display the names ofD all methods called by the= method dispatcher.C  R - Dump reservation andC replacement information.; T - Write out an= informational line< indicating when aA transaction is startedC and when it is committed: or rolled back.@ CDD$DEFAULT User Process Specifies the default@ or Job repository directory.< CDD$DICTIONARY Executive System Specifies OpenVMS@ directory location ofD DMU root repository file.D See the Oracle DictionaryC Management Utility (DMU)@   Documentation Kit forC more information on DMU.D CDD$EXTENSIONS Executive System Specifies the location ofD the Oracle CDD/Repository@ extensions directory.B CDD$MAX_OBJECTS_ User Process Specifies the number ofD IN_MEMORY or Job repository objects OracleC CDD/Repository cach es inA memory. The default is2 10,000.A CDD$SMGSHR Executive System Specifies the JapaneseC input method for the CDO? interface when using> the Japanese screenC management library (SMG)D  with the Japanese OpenVMS@ operating system. The> equivalence name isB SYS$LIBRARY:JSY$SMGSHR.= CDD$SMG_ Executive System Required to invoke@ CHARACTER_SET Japanese SMG for CDO.? If the character setC input is Japanese Kanji,B   the equivalence name isB KANJI; if the character> set is the JapaneseD phonetic alphabet, NarrowD Katakana, the equivalence7 name is SDK.@ CDD$TEMPLATE Executive System Specifies the OpenVMS@ directory f or new CDO8 repositories.@ CDD$TEMPLATEDB Executive System Specifies the OpenVMS< directory for new? multifile databases.C CDD$TOP User Process Specifies the first partA or Job of a path name. If you> work in a directory<  many levels down,@ you can set CDD$TOP aD repository directory thatC CDD/Repository treats asC the topmost directory of4 interest.< CDD$VERSION_LIMIT User Process Specifies maximum@ number of versions ofA  a data entity in a DMU6 repository.> CDD$WAIT User Process Specifies whether aB command will wait until@ the DMU repository is@ unlocked from another< user's operation. wwjBv1 CDO_Command_Procedures: This topic provides short examples of using CDO command@ procedures. You can include any CDO commands that you can useD interactively (including the CDO DEFINE command) in a CDO commandD procedure and execute it at the CDO prompt using the at sign (@).B See the CDO @_At_Sign command description for more information.& NOTE< You cannot execute the CDO EDIT command in batch mode. 2 Examples@ The following CDO command procedure, START.CDO, places you in? t he [BOB.DICT] directory, then lists the definitions in thatA directory. The first CDO command, SET VERIFY, instructs CDO to@ display each subsequent command on the terminal screen before execution.K SET VERIFY ! Echoes each command executed in this@ ! procedure at the terminalC SET DEFAULT USER$DISK:[BOB.DICT] ! Places you in the [BOB.DICT]0 ! directoryN DIRECTORY  ! Lists the definitions in the [BOB.DICT]0 ! directoryA To execute a CDO command procedure with a default file type ofD .CDO, you do not need to specify file type. The following example@ shows the output of the previous START.CDO command procedure: CDO> @START# SET DEFAULT USER$DISK:[BOB.DICT] DIRECTORY! Directory USER$DISK:[BOB.DICT]> CDDPLUS DIRECTORY CDO><  If you do not use the default file type of .CDO for a CDOC command procedure, you must specify the file type to execute theC command procedure. In the following example, the CDO AT_SIGN (@)D command executes the CDO commands in the CHANGE.PROCEDURE command procedure: CDO> @CHANGE.PROCEDUREA In the following example, the CDO$INIT.CDO initialization file@ sets your default repository directory. Oracle CDD/RepositoryA automatically executes the initialization file when  you invoke3 CDO from the OpenVMS directory that contains it.K SET VERIFY !Echoes each command executed in this@ !procedure at the terminalD SET DEFAULT USER$DISK:[JOHN.DICT] !Places you in the [JOHN.DICT]0 !directoryG DIRECTORY !Lists the dictionary definitionsC !in the [JOHN.DICT] directory7 The CDO$INIT.CDO file produces the following output:$ SET DEFAULT USER$DISK:[JOHN.DICT] DIRECTORY" Directory USER$DISK:[JOHN.DICT]6 BACK_ORDERS;1 FIELD: CDDPLUS DIRECTORY6 ORDER_NUMBER;1 FIELD CDO> wwBv 1 GlossaryB The Oracle CDD/Repository and Oracle CDD/Administrator glossaryD terms can be found under DCL level help. To display the glossary,> at the DCL level prompt type: HELP CDD_REPOSITORY Glossary. wwBv1 Start-up-info- The following help topics have been moved: o CMD_PROC_EXAMPLE> Information on using CDO command procedures can be found? in the CDO help topic, CDO_Command_procedures. To display@ the help topic, at the CDO> prompt type: HELP CDO_Command_ Procedures. o CDO_FOREIGN_CMDB Information on invoking CDO as a DCL command can be found inD DCL level help under the CDO topic. To display the help topic,A at the DCL level prompt type: HELP CDO CDO_Foreign_Command. o Japanese-input-method? Information on using the Japanese input method to the CDOC interface can be found in DCL level help under the CDO topic.C At the DCL level prompt type: HELP CDO Japanese_Input_Method. o USER-QUOTAS< To display the user account quotas required for Oracle= CDD/Repository, at the DCL level prompt type: HELP CDD_% REPOSITORY User_Account_Quotas. wwBv1 System-propertiesD System-specified properties are properties that CDO automatically= creates for every CDO element you define. System-specified$ properties include the following: o access control list o created time o modified time o ownerD In the following example, the CDO SHOW FIELD/ALL command displaysA both user-specified and system-specified properties for FIELD_ B B. Only the datatype property was specified by the user. (User-B properties are explained under the user-properties help topic.) CDO> SHOW FIELD FIELD_B/ALL Definition of field FIELD_BF | acl (IDENTIFIER=[VCD,MCGUIRE],ACCESS=READ+L | WRITE+MODIFY+ERASE+SHOW+DEFINE+CHANGE+DELETE+CONTROL+OPERATOR+ADMINIS TRATOR)L | (IDENTIFIER=[*,*],ACCESS=READ+WRITE+MODIFY+E$ RASE+SHOW+OPERATOR+ADMINISTRATOR)6 | Created time  2-FEB-1988 12:25:00.836 | Modified time 2-FEB-1988 12:25:00.83' | Owner MCGUIRE/ | Datatype signed longword5 | | History entered by MCGUIRE ([VCD,MCGUIRE])! | | using CDO V5.0B | | to CREATE definition on 2-FEB-1988 12:24:59.71 CDO> wwBv1 User-properties> User-supplied properties are those characteristics that you< specify when you are defining a CDO ele ment. The datatype; property is an example. (Compare this to system-suppliedC properties, which are explained under the system-properties help topic.)D In the following example, the CDO SHOW FIELD/ALL command displaysB both the user and system-specified properties for FIELD_B. Only3 the datatype property was specified by the user. CDO> SHOW FIELD FIELD_B/ALL Definition of field FIELD_BF | acl (IDENTIFIER=[VCD,MCGUIRE],ACCESS=READ+L | WRI TE+MODIFY+ERASE+SHOW+DEFINE+CHANGE+DELETE+CONTROL+OPERATOR+ADMINIS TRATOR)L | (IDENTIFIER=[*,*],ACCESS=READ+WRITE+MODIFY+E$ RASE+SHOW+OPERATOR+ADMINISTRATOR)6 | Created time 2-FEB-1988 12:25:00.836 | Modified time 2-FEB-1988 12:25:00.83' | Owner MCGUIRE/ | Datatype signed longword5 | | History entered by MCGUIRE ([VCD,MCGUIRE])! | | using CDO V5.0B | |  to CREATE definition on 2-FEB-1988 12:24:59.71 CDO>ww