How to recover from error 3916: Requested information not in dictionary

Database

How to recover from error 3916: Requested information not in dictionary

Hello,

I have a probelm that I have been banging my head trying to recover from.

We have an application that replicates data from our own database into Teradata. Tests are run which repeatedly will create sets of tables, load data, perform some tests, then drop the tables.

Problem is somwhere in a recent test run, probably due to a failed mload process (my guess), I am left with one table that will not drop. Anytime I try and drop the table I get an Error 3916: Requested information not in dictionary. The table is viewable through Teradata Manager, but when I try and drop it whether through the manager or using BTEQ I get this error. The table DDL looks like this:

REATE MULTISET TABLE Adabas.SUBALL_EMPLOYEES_ADDRESS_LINE ,FALLBACK ,

     NO BEFORE JOURNAL,

     NO AFTER JOURNAL,

     CHECKSUM = DEFAULT

     (

      ISN INTEGER,

      ADDRESS_LINE VARCHAR(20) CHARACTER SET UNICODE NOT CASESPECIFIC,

      ADDRESS_LINE_IX INTEGER, 

FOREIGN KEY ( ISN ) REFERENCES NON-EXISTENT PARENT TABLE)

PRIMARY INDEX ( ISN );

I am concerned abou the "FOREIGN KEY...REFERENCES NON-EXISTENT PARENT TABLE". Is that part of the cause of the issue? Recreating the table does not help, as the table create fails saying it already exists. Trying to drop it says it does not. I have even tried creating a dummy parent table called "NON-EXISTENT PARENT TABLE" and adding the foreign key references, no good. I have even gone so far as to delete all other user tables in the database and tried deleting the database with the intention of recreating it. Can't delete the database because it says I cannot drop a database when tables exist.

Any help in how I can recover from this is much appreciated. 

This is Teradata v13 on Windows.

Bob

Tags (1)
4 REPLIES
Teradata Employee

Re: How to recover from error 3916: Requested information not in dictionary

To remove the "orphan" foreign key constraint:

ALTER TABLE xxx DROP INCONSISTENT REFERENCES;

Re: How to recover from error 3916: Requested information not in dictionary

Fred, thank you for the answer, just getting back after a week off. Unfortunately, that was no help:

alter table Adabas.SUBALL_EMPLOYEES_ADDRESS_LINE drop inconsistent references;

alter table Adabas.SUBALL_EMPLOYEES_ADDRESS_LINE drop inconsistent referenc

es;

 *** Failure 5307 Inconsistent referential constraint(s) do not exist.

                Statement# 1, Info =0

 *** Total elapsed time was 1 second.

 BTEQ -- Enter your DBC/SQL request or BTEQ command:

DROP TABLE Adabas.SUBALL_EMPLOYEES_ADDRESS_LINE

;

DROP TABLE Adabas.SUBALL_EMPLOYEES_ADDRESS_LINE

;

 *** Failure 3916 Requested information not in dictionary.

                Statement# 1, Info =0

 *** Total elapsed time was 1 second.

Any other ideas?

Teradata Employee

Re: How to recover from error 3916: Requested information not in dictionary

Seems you will need to open an incident with Teradata support. They can do some analysis, and then will require an outage to allow them to repair the dictionary tables.

Re: How to recover from error 3916: Requested information not in dictionary

Thanks for the advice. Not really worth it to me, though, as this is just a test database that currently has only the one table the I can't do anything with. It will actually be easier for me to just destroy and re-install Teradata, since this is the first time in years of use this has happened to me...if it repeats then, I will follow up with them. I was just hoping it was something someone else had hit and could guide me through a solution.