Solved

SQL Execution Error, ORA-06550:

Posted on 2004-10-15
10
44,396 Views
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.
0
Comment
Question by:Raptaur
[X]
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
10 Comments
 
LVL 6

Expert Comment

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

Thanks
0
 

Author Comment

by:Raptaur
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
0
 
LVL 6

Assisted Solution

by:morphman
morphman earned 30 total points
ID: 12317702
Ok..

I would check the following.

SQL*Net versions on local PCs if installed.
Do your PCs have Oracle Client isntalled on them?
0
Veeam gives away 10 full conference passes

Veeam is a VMworld 2017 US & Europe Platinum Sponsor. Enter the raffle to get the full conference pass. Pass includes the admission to all general and breakout sessions, VMware Hands-On Labs, Solutions Exchange, exclusive giveaways and the great VMworld Customer Appreciation Part

 
LVL 7

Assisted Solution

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

Author Comment

by:Raptaur
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
0
 
LVL 23

Accepted Solution

by:
seazodiac earned 150 total points
ID: 12318164
raptaur:

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';
0
 

Author Comment

by:Raptaur
ID: 12318650
Checking it now Seazodiac
0
 

Author Comment

by:Raptaur
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
0
 
LVL 7

Assisted Solution

by:pettmans
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;
begin
     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 )
    loop
         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)) ||
                           max(decode(piece,3,sql_text,null))
                                sql_text
                      from v$sqltext_with_newlines
                      where address = x.sql_address
                       and piece < 4)
         loop
             if ( y.sql_text not like '%listener.get_cmd%' and
                  y.sql_text not like '%RAWTOHEX(SQL_ADDRESS)%')
             then
                 dbms_output.put_line( '--------------------' );
                 dbms_output.put_line( x.username );
                 dbms_output.put_line( x.logon_time || ' ' ||
                                       x.current_time||
                                       ' last et = ' ||
                                       x.LAST_CALL_ET);
                 dbms_output.put_line(
                          substr( y.sql_text, 1, 250 ) );
             end if;
         end loop;
     end loop;
 end;

Does this help you at all?

Scott Pettman
0
 

Author Comment

by:Raptaur
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
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

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

Question has a verified solution.

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

Introduction A previously published article on Experts Exchange ("Joins in Oracle", http://www.experts-exchange.com/Database/Oracle/A_8249-Joins-in-Oracle.html) makes a statement about "Oracle proprietary" joins and mixes the join syntax with gen…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
This video shows syntax for various backup options while discussing how the different basic backup types work.  It explains how to take full backups, incremental level 0 backups, incremental level 1 backups in both differential and cumulative mode a…
Suggested Courses

626 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