Solved

Oracle Error ORA-00972; Identifier Too Long for Oracle tables that are linked through MS Access 97

Posted on 2004-03-30
2
8,339 Views
Last Modified: 2007-12-19
Description of the issue
We have an issue in which end users cannot filter or sort Microsoft Access tables that are links to Oracle tables for which the schema+tablename exceeds 30 characters. When the end users attempt to sort tables with long names they get the error ORA-00972; Identifier Too Long.

The Oracle knowledgebase, metalink.oracle.com, describes why our software developers are able to filter and sort on linked tables that have names longer than 30 characters while our end users cannot. The reason is that our software developers have Visual Studio 6.0 SP5 installed on their PCs whereas our end users do not.

Things that I have already tried
What our end users were running and what had been tried prior to finding the solution that was stated above:
Windows 2000 SP 3 (Updating to SP4 did not resolve the issue.)
Oracle Client 8.0.5 or 8.1.7 (Updating to 8.1.7 did not resolve the issue.)
MDAC 2.4, 2.5, 2.6, 2.7 (Updating to MDAC 2.7 Refresh or MDAC 2.8 did not resolve the issue.)
Access 97 SR-2
Microsoft ODBC for Oracle, MSORCL32.DLL, version 2.573.9001.00 dated 2/19/2002 (Updating to Microsoft ODBC for Oracle, MSORCL32.DLL, version 2.575.1022.00 dated 2/20/2003 by installing MDAC 2.7 refresh followed by installing MDAC 2.8 did not resolve the issue.)

One way that I found to correct the issue
As a test, to see if the information from Oracle was correct, I tried installing VS 6.0 SP 5 on one of our end user’s PC that was experiencing this issue and the issue went away just as Oracle said that it would. After uninstalling VS 6.0 SP 5 from the end user’s PC the issue was still resolved.  This tells me that VS 6.0 SP5 is updating some DLLs or OCXs or something that stays behind after the uninstall of the Visual Studio application.

What I would like to know
Installing and uninstalling Visual Studio is a time consuming process and although this solution corrects the issue I would prefer not to have to go this route.  I would prefer to know what DLL or OCX or whatever is being installed that is resulting in the correction to this issue so that we can simply distribute only those DLLs, OCXs or whatever to the end users’ PCs.  Installing some sort of Service Pack, Service Release, or deploying a hotfix would be acceptable as well.

If anyone knows what the “Simple” fix is for this it would be greatly appreciated.  I even tried asking Microsoft technical support directly using my MSDN Universal Subscription and they were unable to provide a proper solution so now I challange you, as the leading technical experts, to find a more optimal solution than installing and then uninstalling Visual Studio 6.0 SP5.

Information regarding the error ORA-00972 that was obtained from the Oracle knowledge base:
•      fact: Oracle ODBC Driver
•      fact: MS Access
•      fact: MS Windows NT
•      symptom: Select against table fails
•      symptom: ORA-00972: identifier is too long
•      cause: When Access adds the schema name onto the tablename this increases the total length of the tablename. In the case of longer tablenames this can increase the length of the tablename to over 30 characters. Then when the tablename is sent over to the database, it will return with the ORA-972 error, since the table exceeded the maximum length of a tablename that the database can use. The same problem will not occur in ODBC Test or SQL*Plus when accessing the same table, since both of the applications parse the schema name and table name as two separate entries. Also, there is no way in Access 97 to change how the application links the tablenames. Note: At the time this was reproduced MS Visual Basic 5.0 and MS Visual C++ 5.0 was installed onto the machine. The error could be reproduced with ODBC Driver version 2.5.3.1.0, 2.5.3.1.6, and 8.0.5.0.0. Currently, since Visual Studio 6.0 sp 2 has been installed the error no longer occurs.
fix: The Schemaname + Tablename should be less than 30 characters long.
0
Comment
Question by:petersongt
2 Comments
 

Accepted Solution

by:
petersongt earned 0 total points
Comment Utility
I have determined that msjet35.dll version 3.51.3328.0 corrects the issue. I found the following MSDN article that provides a link to SP3 for MSJET 3.5 that includes the required version of this Dll.
 
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q172/7/33.asp&NoWebContent=1
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

In the previous article, Using a Critera Form to Filter Records (http://www.experts-exchange.com/A_6069.html), the form was basically a data container storing user input, which queries and other database objects could read. The form had to remain op…
The first two articles in this short series — Using a Criteria Form to Filter Records (http://www.experts-exchange.com/A_6069.html) and Building a Custom Filter (http://www.experts-exchange.com/A_6070.html) — discuss in some detail how a form can be…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now