Oracle is very picky when it comes to deciding whether a newly submitted SQL statement matches one that is already in the shared SQL area.
Character case, white space, and comments are all significant.
Oracle matches two statements based on a character-by-character comparison, not by comparing the semantics, or meaning, of the statements.
The following SQL statements, which are all semantically the same, would not be considered identical:
In addition to case, white space, and comments, Oracle also checks to be sure that the objects referenced by the two statements are the same.
Consider the case where users Jenny and Jeff each own identical tables named coin. Jenny and Jeff each issue the following SQL statement:
select * from coin
In Jenny's case, the object coin refers to the table jenny.coin. In Jeff's case, it refers to the table jeff.coin. Even though the two statements match when compared on a character basis, the objects referred to are different.
Because the objects are different, Oracle will not consider the statements to be identical.