[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference orarep::nomahs::dbstars

Title:DBSTARS Conference
Moderator:BROKE::BASTINE
Created:Wed Feb 02 1994
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:791
Total number of notes:1521

692.0. "NSDS-E-REQBADRELNAME, DBMS gtwy, forked sets" by BROKE::BITHER () Fri Jun 14 1996 12:11

T.RTitleUserPersonal
Name
DateLines
692.1Sent to Mary 3/28/97BROKE::BITHERFri Mar 28 1997 13:17144
From:	BROKE::BITHER       "Please reply to [email protected]" 28-MAR-1997 13:18:26.18
To:	M5::MEMORMAN
CC:	BITHER
Subj:	New STARS Article

TITLE:      -NSDS-E-REQBADRELNAME, ...Relation Not in Dictionary 


PRODUCT:    Rdb Transparent Gateway to DBMS

OP/SYS:     OpenVMS VAX, OpenVMS AXP

SOURCE:     Oracle Worldwide Customer Support


PROBLEM:

After attaching to Rdb Transparent Gateway to DBMS, a select from a table
that can be seen when doing "show tables" results in the following error:

  %RDB-E-OBSOLETE_METADA, request references metadata objects that no 
   longer exist
  -NSDS-E-REQBADRELNAME, The DSRI BLR request referred to a relation not in 
   the dictionary (at offset 79 in BLR request)


SOLUTION/WORKAROUND:

Create DBMS alias names for the set names and member record names
such that the combination of the two names will not exceed 31 bytes.


PROBLEM CAUSE:

The problem is caused by DBMS forked sets. Forked sets combine set names
and member record names into relational tablenames.  The problem occurs when
the resulting tablename exceeds 31 characters.  Neither CDD or SQL will allow
object names greater than 31 bytes.

Below is an example of a situation that fails followed by an example
of a solution to the problem.

********************************************************************************
Situation 1: (Fails)

SCHEMA NAME IS FOO

AREA NAME IS FOO_AREA1

RECORD NAME IS REC1
    WITHIN FOO_AREA1 ITEM NAME IS I1 TYPE IS CHARACTER 10
  
RECORD NAME IS THISISAMIGHTYLONGRECNAME1
    WITHIN FOO_AREA1
    ITEM NAME IS I2
    	TYPE IS CHARACTER 10
  
RECORD NAME IS THISISAMIGHTYLONGRECNAME2
    WITHIN FOO_AREA1
    ITEM NAME IS I3
    	TYPE IS CHARACTER 10

SET NAME IS ALL_REC1
    OWNER IS SYSTEM
    MEMBER IS REC1
    	INSERTION IS AUTOMATIC
	    RETENTION IS FIXED
    	ORDER IS SORTED BY
		     ASCENDING I1
		     DUPLICATES ARE FIRST

SET NAME IS THISISAMIGHTYLONGSETNAME
    OWNER IS REC1
    MEMBER IS THISISAMIGHTYLONGRECNAME1
    	INSERTION IS AUTOMATIC
	    RETENTION IS FIXED
    	ORDER IS FIRST
	 
    MEMBER IS THISISAMIGHTYLONGRECNAME2
    	INSERTION IS AUTOMATIC
	    RETENTION IS FIXED
    	ORDER IS FIRST
 
-----------------------------
SQL>  ATTACH 
'FILENAME/TYPE=NSDS/PATH=WKD1:FOO.DEFAULT_SUBSCHEMA/DICTIONARY_DRIVER=DBMSQL$SHR
701';
SQL> SHOW TABLES
User tables in database with filename 
/TYPE=NSDS/PATH=WKD1:FOO.DEFAULT_SUBSCHEMA/DICTIONARY_DRIVER=DBMSQL$SHR701
     ALL_REC1
     THISISAMIGHTYLONGRECNAME1
     THISISAMIGHTYLONGRECNAME2
     THISISAMIGHTYLONGSETNAME_THISIS  (name of first member - rec1)
     THISISAMIGHTYLONGSETNAME_THISIS  (name of second member - rec2)


SQL> SELECT * FROM THISISAMIGHTYLONGSETNAME_THISIS;
%RDB-E-OBSOLETE_METADA, request references metadata objects that no longer exist
-NSDS-E-REQBADRELNAME, The DSRI BLR request referred to a relation not in the 
dictionary (at offset 79 in BLR request)

SQL> SELECT * FROM THISISAMIGHTYLONGSETNAME_THISISAMIGHTYLONGRECNAME1;
%SQL-F-BAD_NAME, Identifiers and names may not exceed 31 characters in length


! If you give sql a completely nonexistent table name you get:

SQL> select * from xyz;
%SQL-F-RELNOTDEF, Table XYZ is not defined in database or schema


********************************************************************************
Situation 2: (Succeeds)

SUBSCHEMA NAME IS NEW_SUBSCHEMA FOR FOO SCHEMA

ALIAS RECORD THISISAMIGHTYLONGRECNAME1 IS REC2

ALIAS RECORD THISISAMIGHTYLONGRECNAME2 IS REC3

ALIAS SET THISISAMIGHTYLONGSETNAME IS SET2

REALM FOO_AREA1
    IS FOO_AREA1

RECORD NAME IS REC1
    ITEM I1 TYPE IS CHARACTER 10

RECORD NAME IS REC2
    ITEM I2 TYPE IS CHARACTER 10

RECORD NAME IS REC3
    ITEM I3 TYPE IS CHARACTER 10

SET NAME IS ALL_REC1

SET NAME IS SET2


\
\ CONTRIBUTORS:
\
\       Technical: Diane Bither
692.2Sent to Marilyn 4/1/97BROKE::BITHERTue Apr 01 1997 08:222
Sent to Marilyn Guilliksen 4/1/97 - as we agreed in a team meeting to send 
to her during Mary's leave of absence.