Hi all,
Today i am going to write another one of mine analysis by using My oracle support site document.
In one of our client's database, we are getting the following error message continuously.
Alert log entry:
Today i am going to write another one of mine analysis by using My oracle support site document.
In one of our client's database, we are getting the following error message continuously.
Alert log entry:
Wed Jul 23 11:45:43 2014
Errors in file
/home/oracle/app/oracle/diag/rdbms/db/db/trace/db_ora_14547.trc
(incident=149824):
ORA-00600: internal error code, arguments: [7005], [0], [],
[], [], [], [], [], [], [], [], []
SQL_TEXT involved in this error is
select iso_country_code from countries
where
(SDO_RELATE(geom,SDO_GEOMETRY(:"SYS_B_0",:"SYS_B_1"),:"SYS_B_2")=:"SYS_B_3")
So one of our dba has reported like below after searching the document for the error.
According to Doc ID
138935.1
The error occurred due to Bug
8770557
Description:
ORA-600 [7005] from SQL with
user defined selectivity function (eg: Text queries)
Solution:
The issue is fixed in 11.2.0.2,
12.1.0.1
But our manager didn't want to take this analysis completely He wrote us that "Please explain your analysis
with respect to the statement involved".
So i came up with the solution to which he agreed with us that it is a bug.
My analysis is given below.
I have gone through the same oracle support document (Doc ID 138935.1) for my reference.
As per the same MOSC Doc ID 138935.1
ORA-00600: internal error code, arguments: [7005] is raised because of predicate used in the where clause of the below sql
statement.
Description
User-defined selectivity functions may be called with not
all bind values having being bound. This can lead to subsequent ORA-600
[7005] errors.
This could occur when using Text queries with a CONTAINS
predicate.
But in our sql statement (given above) is using bind variables.
Hence I have decided to check the value for bind variables it is using from view V$SQL_BIND_CAPTURE.
Values of Bind variables
:SYS_B_0
-
POINT(10.476937 45.617856) (This value captured on today & This value is
different every day)
:SYS_B_1
-
4326
:SYS_B_2
-
MASK=CONTAINS+COVERS
:SYS_B_3
-
TRUE
So our sql statement uses the CONTAINS predicate in
the user defined operator.
This is how we made our manager to agree with us.
Comments
Post a Comment