SQL Execution Error, ORA-06550:

Posted on 2004-10-15
Last Modified: 2011-08-18
Getting the following execution  error

SQL execution error, ORA-06550: line 1, column 7:
PLS-00103: Encounter the symbol "." when expecting one of the following:

begin declare exit for goto if loop mod null pragma raise
return select update while <an identifier>
<a double-quote delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql commit <a single-quoted SQL string>
The symbol "<an identifier>" was substituted for "." to continue.
, Oracle Automation, 440

This execution is carried out by several users in the organisation but will be and error for a random set of particular people.  When the error occurs for a random set of people it stays with them, though other random users never get this error when using the same command.
Question by:Raptaur
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Expert Comment

ID: 12317117
Can you post the code please, as well as the command used to call it.


Author Comment

ID: 12317676
Sorry Morphman this error comes for third party software on our own database.

The Application front end is locked so we don't have access to the code that it is running.  What I can tell you is that when this problem comes about its trying to launch another application.  It’s during this launch process that the error can occur.

I suppose I was more looking for something I could try or advice as opposed to somebody finding a solution to this, as the circumstance as they are, its very difficult to allow a straight answer to the problem.

The Oracle trace has shown nothing

Assisted Solution

morphman earned 30 total points
ID: 12317702

I would check the following.

SQL*Net versions on local PCs if installed.
Do your PCs have Oracle Client isntalled on them?
Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.


Assisted Solution

Bigfam5 earned 20 total points
ID: 12317731
You might also be able to find additional info on the error in the Event viewer

Author Comment

ID: 12317780
No Oracle client or SQL *Net on the users machines.

They connect to the application on any one of several servers through thinclient software (Citrix).  I'm starting to think this maybe some sort of NT profile issue since not everybody receives this problem.  The only strange thing about this is that all profiles are set up the same way apart from Domain Admins
LVL 23

Accepted Solution

seazodiac earned 150 total points
ID: 12318164

Good news is that from the error code:

SQL execution error, ORA-06550: line 1, column 7:
PLS-00103: Encounter the symbol "." when expecting one of the following:

I am 100%positive that this error is derived from a PLSQL procedure, so the CODE is inside the database dictionary.

Does your 3rd party apps have a common login in the database?
what I mean is that if usually frond-end application has a common oracle database account,

so based on that assumption, if you look at the schema by that user name in Oracle, you might find out
what procedure could be the culprit.

also do a check on all the procedures in Oracle by running this query:

SQL>select object_name, owner from all_objects where object_type='PROCEDURE' and status='INVALID';

Author Comment

ID: 12318650
Checking it now Seazodiac

Author Comment

ID: 12318795
oops also forgot to add

The database has several hundred unique login accounts...  not sure if this is what you meant
I ran the piece of SQL on one of the accounts that have been having the problems and 0 rows returned.

The launch facility in this program runs fine in general, its when it tries to launch a connection to another data store

Assisted Solution

pettmans earned 150 total points
ID: 12713111
One of the blocking issues here seems to be determing what SQL statement is generating the error. There are a couple of approaches you can take that may provide this data.

1. Query the SQL area of the library cache. This is a cache of parsed SQL statements that have been executed. Unfortuneately, theres  no record of which user executed the SQL ot the last time it was run. However if you stop/start you database instance (clearing the cache) and then get a user to  run the application that generates the error you can then dump all the SQL in the cache:

Select sql_text from v$sqlarea;

Theres also a first_load_time column that would be useful in this situation.

2. Query V$session and v$sqltext_with_newlines to find SQL being executed by current users. Here's a script I've pulled out of metalink that does that and more. ie it's overkill but should give you an idea of what's involved.

declare     x number;
     for x in     ( select username||'('||sid||','||serial#||
                 ') ospid = ' ||  process ||
                 ' program = ' || program username,
             to_char(LOGON_TIME,' Day HH24:MI') logon_time,
              to_char(sysdate,' Day HH24:MI') current_time,
              sql_address, LAST_CALL_ET
         from v$session
        where status = 'ACTIVE'
         and rawtohex(sql_address) <> '00'
          and username is not null order by last_call_et )
         for y in ( select max(decode(piece,0,sql_text,null)) ||
                           max(decode(piece,1,sql_text,null)) ||
                           max(decode(piece,2,sql_text,null)) ||
                      from v$sqltext_with_newlines
                      where address = x.sql_address
                       and piece < 4)
             if ( y.sql_text not like '%listener.get_cmd%' and
                  y.sql_text not like '%RAWTOHEX(SQL_ADDRESS)%')
                 dbms_output.put_line( '--------------------' );
                 dbms_output.put_line( x.username );
                 dbms_output.put_line( x.logon_time || ' ' ||
                                       ' last et = ' ||
                          substr( y.sql_text, 1, 250 ) );
             end if;
         end loop;
     end loop;

Does this help you at all?

Scott Pettman

Author Comment

ID: 12726253
Managed to get to the root of the problem.  Seems the actually lancher was at fault redone this and got  it working

Thanks for everybody that took the time to post and help me out of this

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
Working with Network Access Control Lists in Oracle 11g (part 2) Part 1: Previously, I introduced the basics of network ACL's including how to create, delete and modify entries to allow and deny access.  For many…
This video explains at a high level about the four available data types in Oracle and how dates can be manipulated by the user to get data into and out of the database.
This video shows information on the Oracle Data Dictionary, starting with the Oracle documentation, explaining the different types of Data Dictionary views available by group and permissions as well as giving examples on how to retrieve data from th…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question