Go Premium for a chance to win a PS4. Enter to Win


SQL Execution Error, ORA-06550:

Posted on 2004-10-15
Medium Priority
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 120 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?

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.


Assisted Solution

Bigfam5 earned 80 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 600 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 600 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

NEW Veeam Backup for Microsoft Office 365 1.5

With Office 365, it’s your data and your responsibility to protect it. NEW Veeam Backup for Microsoft Office 365 eliminates the risk of losing access to your Office 365 data.

Question has a verified solution.

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

How to Create User-Defined Aggregates in Oracle Before we begin creating these things, what are user-defined aggregates?  They are a feature introduced in Oracle 9i that allows a developer to create his or her own functions like "SUM", "AVG", and…
Shell script to create broker configuration file using current broker Configuration, solely for purpose of backup on Linux. Script may need to be modified depending on OS-installation. Please deploy and verify the script in a test environment.
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
This video shows how to configure and send email from and Oracle database using both UTL_SMTP and UTL_MAIL, as well as comparing UTL_SMTP to a manual SMTP conversation with a mail server.

886 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