Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

PL SQL cursor is throwing error...any idea?

 
Vinod Vijay
Ranch Hand
Posts: 150
Java Tomcat Server Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have a quesiton for you all. I have taken a small chunk of code from already existing working PL SQL procedure which is suppose to work but it is not. I have no idea why cursor is throwing error.
Any idea???

Following below is the code and attached screen shot for your reference:-


PL SQL error.GIF
[Thumbnail for PL SQL error.GIF]
PL SQL error
 
Martin Vajsar
Sheriff
Posts: 3752
62
Chrome Netbeans IDE Oracle
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You cannot declare variables in the code in PL/SQL; move the cursor declaration immediately before the BEGIN line.

Moreover, you're doing a join in the code. It is very ineffective. Do all the joins directly in the SQL, it will perform better.
 
Vinod Vijay
Ranch Hand
Posts: 150
Java Tomcat Server Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Martin Vajsar wrote:You cannot declare variables in the code in PL/SQL; move the cursor declaration immediately before the BEGIN line.

Moreover, you're doing a join in the code. It is very ineffective. Do all the joins directly in the SQL, it will perform better.


Thanks my PL SQL block started to work. But could please explain me what do you mean by "Do all the joins directly in the SQL"
I guess, I used joining in SQL only. Is there anything else to do for good performance? Please advice
 
Jussi Taimiaho
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You are making two consecutive loops for searching data from 3 tables, which can all be joined with an inner join -query.

...
FROM spt_quote_line, spt_bucket_global, spt_coverage
WHERE spt_quote_line.bucket_id = spt_bucket_global.bucket_id
AND spt_coverage.coverage_code = spt_bucket_global.coverage_code

and so forth
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic