Solved

Break error when using Pro*C insert

Posted on 2004-10-13
10
1,200 Views
Last Modified: 2011-10-03
I have a very strange problem.

I have a Pro*c insert statement...

EXEC SQL INSERT INTO....

when I compile I get error

1506-056 (S) Break statement cannot be placed outside a while, do, for, or switch statement.

Not only does the line to which the error points not have a Break statement, there isnt even a break statement in the entire function!!

Anyone come across this before or have any suggestions about any debug I can do?

Julian
0
Comment
Question by:stummj
[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
  • 4
  • 4
  • 2
10 Comments
 
LVL 23

Expert Comment

by:seazodiac
ID: 12298976
stummj:

check out this link , it has a nice intro about how to execute sql inside proc*c:

http://www-db.stanford.edu/~ullman/fcdb/oracle/or-proc.html 



0
 
LVL 23

Expert Comment

by:seazodiac
ID: 12298983
I bet it's still some synax requirement you have not made it right ...
0
 

Author Comment

by:stummj
ID: 12299130
Ive looked in the *.c file and there is indeed a break statement in about the right area, but it isnt in the .pc file
Very strange.
0
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.

 

Author Comment

by:stummj
ID: 12299272
follow up. I now think the fact that I have a break in the .c file is a red herring. It looks like every time a host variable is used, you get this statement at the end of the block...  if (sqlca.sqlcode == 1403) break;

0
 
LVL 22

Expert Comment

by:earth man2
ID: 12299273
try defining the following
EXEC SQL WHENEVER SQLWARNING CONTINUE;
EXEC SQL WHENEVER SQLERROR CONTINUE;
0
 
LVL 22

Accepted Solution

by:
earth man2 earned 500 total points
ID: 12299296
this is probably it add the following statement
EXEC SQL WHENEVER NOT FOUND CONTINUE;
0
 

Author Comment

by:stummj
ID: 12299571
Amazing!!! OK That works ... but why!
What is it not finding? It isnt a select its an insert.
0
 
LVL 22

Expert Comment

by:earth man2
ID: 12299618
Pro*C is just a program it is just applying  macro processing to produce compilable c code.

If you havn't defined what to do WHENEVER NOT FOUND it is just expanding it's default rule into the c code.

You are supposing Pro*C is more sophisticated than it really is.
0
 
LVL 22

Expert Comment

by:earth man2
ID: 12299651
From Oracle Docs
An INSERT can return NOT FOUND if no rows have been inserted.
0
 

Author Comment

by:stummj
ID: 12299663
Thanks Earthman - where did you find that in the Oracle Docs?
0

Featured Post

[Webinar] Code, Load, and Grow

Managing multiple websites, servers, applications, and security on a daily basis? Join us for a webinar on May 25th to learn how to simplify administration and management of virtual hosts for IT admins, create a secure environment, and deploy code more effectively and frequently.

Question has a verified solution.

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

Working with Network Access Control Lists in Oracle 11g (part 1) Part 2: http://www.e-e.com/A_9074.html So, you upgraded to a shiny new 11g database and all of a sudden every program that used UTL_MAIL, UTL_SMTP, UTL_TCP, UTL_HTTP or any oth…
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 …
This video shows how to copy a database user from one database to another user DBMS_METADATA.  It also shows how to copy a user's permissions and discusses password hash differences between Oracle 10g and 11g.
This video shows setup options and the basic steps and syntax for duplicating (cloning) a database from one instance to another. Examples are given for duplicating to the same machine and to different machines

739 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