Toad World® Forums

Importing test causes SQL error


#1

I exported a test for package ‘po_approval’ in version 1.6.1 of code tester and then imported the test into another copy of the database. (i.e. the db setups are the same). When I import the test into the second database I get the following error back from code tester:

“Error when executing Q##PO_APPROVAL.qut in section 372: ORA-06550: line 1, column 7: PLS-00905: ovject OE2.QCTO#IMPORT_TEST_DEFINITION is invalid
PL/SQL: Statement ignored”

Any ideas on how I can debug this error and find which line is causing the issue?

I searched for IMPORT_TEST_DEFINITION and nothing looks obviously out of place around the create and replace portions of the package. I know that the schema ‘OE2’ is the same in both databases. I didn’t modify the Q##PO_APPROVAL.qut file in any way between export and import.


#2

Carol,

We have identified and fixed a number of exp/imp related bugs in our soon to be released 1.8.

Please contact Quest Support to log the bug you experienced. We can most easily resolve the issue that way. I am certain we can help you get that test definition imported properly.

In the meantime, though, could you please go to Toad or your editor of choice and find out the actual compile errors on the OE2.QCTO#IMPORT_TEST_DEFINITION procedure?

Feel free to post here or email me directly:

steven.feuerstein@quest.com

Thanks!
SF


#3

The error for anyone who is interested or, is seeing similiar in their environment:

BEGIN qcto#import_test_definition; END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00905: object OE2.QCTO#IMPORT_TEST_DEFINITION is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

PL/SQL procedure successfully completed.

SQL> show errors
Errors for PROCEDURE QCTO#IMPORT_TEST_DEFINITION:

LINE/COL ERROR


0/0 ORA-04031: unable to allocate 250968 bytes of shared memory
(“shared pool”,“unknown object”,“PL/SQL DIANA”,“PTG: Node”)


#4

After analyzing the export file, it became clear that:

a. It was definitely a problem of too large a program - I am not sure you got a memory error and not a “Program too large” error, but that was it.

b. The program that was too big was the procedure that would import our snapshot of your source code.

The solution/workaround? Remove that program from the export file (the code snapshot is really not critical to the test definition), and then do the import. That seems to be working. Here are the instructions for doing this yourself; I will be posting the full troubleshooting information on export/import (included in the 1.8 Help doc) in the Library section - soon.

To remove source code imports, follow these steps below. I did them myself and have attached the text that is left. I hope that this file will import properly.

  1. Make a backup copy of your export file.

  2. Open the export file and search in the file for this string:

qu_source_code_xp.clear_caches();

and then remove everything from the two lines above this:

REM EXECUTE
CREATE OR REPLACE PROCEDURE qcto#import…

down to the next occurrence of

REM EXECUTE
BEGIN qcto#import_test_definition; END;
/

or

REM EXECUTE
BEGIN qcto#import_test_sourcecode; END;
/

whichever comes first.

Save your changes and try to import again.


#5

Thanks. Taking out the offending code worked and import was successful.