Symptom
During an SAP GoingLive Check Analysis Session, the following problems occur:
1. A generation error occurs for the reports /SDF/RSORADLD, /SDF/RSORASCC and /SDF/RSORATRC in Basis releases higher than 6.10.
2. After initializing a session or after starting an add-on download, the syslog contains entries with the following error message:
Database error ORA-903 occurred during XPL
Database error ORA-905 occurred during XPL
Database error ORA-907 occurred during XPL
Database error ORA-920 occurred during XPL
Database error ORA-923 occurred during XPL
Database error ORA-933 occurred during XPL
Database error ORA-942 occurred during XPL
Database error ORA-1039 occurred during XPL
Database error ORA-1740 occurred during XPL
Database error ORA-1747 occurred during XPL
Solution
1. Implement the corrections or import the latest ST-PI package.
2. The following errors displayed in the syslog occur due to missing privileges.
a) This is because information would have to be downloaded from Oracle Data Dictionary tables (ORA-903, ORA-942, ORA-1039) or
b) because statements exceed 4000 characters or 6400 characters (as of ST-PI 003C) in length and are therefore not saved completely, which means it is not possible to create an explain plan from a statement of this type (ORA-905, ORA-907, ORA-920, ORA-923, ORA-933, ORA-1747).
Execution of the EW or EarlyWatch Alert is not affected by this. The messages in the syslog can be ignored.
If this report captures the statements, you can assume the load they are causing is too large and that it is necessary to optimize the process. To determine the full statement, call transaction ST04 and choose Detail analysis menu -> SQL requests, and look for the statement that caused the error message.
ORA-00903: invalid table name
ORA-00905 missing keyword
truncate table ztest drop storage
ORA-00907: missing right parenthesis
The Explain function is not possible for statements longer than 4000 characters. This delivers the above error. Call transaction ST04 and determine this statement using statement analysis.
ORA-00920 invalid relational operator
In rare cases, very long statements may not be saved completely. Call transaction ST04 and determine this statement using statement analysis.
ORA-00923 FROM keyword not found where expected
In rare cases, very long statements may not be saved completely. Call transaction ST04 and determine this statement using statement analysis.
ORA-00933: SQL command not properly ended
In rare cases, very long statements may not be saved completely. Call transaction ST04 and determine this statement using statement analysis.
The error may also occur if the Explain function is used for statements that are generated by Oracle to execute a parallel query. Statements of this type contain the key word PX_GRANULE and are used to select subareas of the table or of the index (the system indicates the area to be edited by this process behind PX_GRANULE). SInce there is a master query for a number of these statements for which the explain function is possible, statements of this type can be ignored.
ORA-00942 table or view does not exist
An explain of recursive calls from Oracle is not possible because there are privileges missing. For example:
SELECT file#, block#, ts#
FROM seg$
WHERE type# = 3#
ORA-01039 insufficient privileges on underlying objects of the view
The sapr3 user cannot carry out an explain for Oracle Dictionary tables because of privileges that are missing. For example:
SELECT TABLE_NAME
FROM USER_TABLES
ORDER BY TABLE_NAME
ORA-01740: missing double quote in identifier
This error occurs if statements that require an explain exceed 4000 characters in length (this occurs most notably in BW systems). In SAP statements, the individual field names of the clauses SELECT and WHERE are written in double inverted commas. If the statement is longer than 4000 characters, the inverted commas at the end of the field name may be missing. If this is the case, the error mentioned above occurs.
ORA-01747: invalid user.table.column, table. column, or column specification
This error also occurs if statements that require an explain are longer than 4000 characters (this occurs in BW systems in particular). These "long" statements are mostly joins or views. In other words, they are a selection for several tables. These tables are indicated with T_00, T_01, T_02 (for example). If the 4000 character-long statement string ends with one of these names without having any space for the actual field name, the above-mentioned error occurs.
For example:
The last two lines of the statement read as follows:
.... OR T_02 . "LZONE" LIKE :A127 OR T_02 . "LZONE" LIKE :A128 OR T_02 . "LZONE" LIKE :A129 OR T_02 . "LZONE" LIKE :A130 OR T_02
After the last character OR T_02, there should be a field name. However, there is no room for it in the 4000 character string.
==> The statement has not found any space in the string, which means the field name is invalid.