Ora-01948: Identifier's Name Length (31) Exceeds Maximum (30) Using DG4ODBC And Procedures When Column Names Are Longer Than 30 Characters (Doc ID 1360188.1)

Last updated on NOVEMBER 13, 2013

Applies to:

Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.4 [Release 11.2]
Information in this document applies to any platform.
***Checked for relevance on 12-Nov-2013***

Symptoms

Using Database Gateway for ODBC (DG4ODBC) 11.2 to connect to MS SQL Server.

When compiling a procedure at the Oracle Database, that references tables in the remote MS SQL Server, the following error occurs:

Line # = 0 Column # = 0 Error Text = ORA-04052: error occurred when looking up remote object ORACLE.V_STG_GENDGEN@DBLINK
ORA-01948: identifier's name length (31) exceeds maximum (30)



This occurs even though the SQL Server table name is less than 30 characters.

A query of the remote table via SQLPlus does not produce the error. However, running an anonymous block from SQLPlus does produce the error:

Error starting at line 1 in command:
declare
v_count integer;
begin
select count(*) into v_count from ORACLE.V_STG_GENDGEN@DBLINK ;
end;
Error report:
ORA-04052: error occurred when looking up remote object ORACLE.V_STG_GENDGEN@RAY
ORA-01948: identifier's name length (31) exceeds maximum (30)
04052. 00000 - "error occurred when looking up remote object %s%s%s%s%s"
*Cause: An error has occurred when trying to look up a remote object.
*Action: Fix the error. Make sure the remote database system has run
KGLR.SQL to create necessary views used for querying/looking up
objects stored in the database.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms