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

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

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?
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.


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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

This article started out as an Experts-Exchange question, which then grew into a quick tip to go along with an IOUG presentation for the Collaborate confernce and then later grew again into a full blown article with expanded functionality and legacy…
Cursors in Oracle: A cursor is used to process individual rows returned by database system for a query. In oracle every SQL statement executed by the oracle server has a private area. This area contains information about the SQL statement and the…
This video shows how to Export data from an Oracle database using the Original Export Utility.  The corresponding Import utility, which works the same way is referenced, but not demonstrated.
Via a live example, show how to restore a database from backup after a simulated disk failure using RMAN.

856 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