Skip to main content

How to DEBUG ORA-06502 Numeric or value error.

If you have 3000 lines of code and a custom exception handler like when others. The ORA 06502 can be  notoriously elusive to find.

This error is caused by .

  • Trying to assign a higher length/precision value to variable whose size / precision is smaller than the value being assigned.
  • Or trying to assign a non numeric value to a numeric variable.
Ex .


This is easy to see in 5 line code but if you have 3000+ lines of code and you did not handle the exception correctly. (plenty of times we write a generic when others handler which does not give us the line number but only a petty error message which says Numeric or valuer error.) 
This would be the case wherein you would need to debug or trace where the error is occurring.

Here's how you can debug such failure in this case.

1. If you are on your development or test enviornment , strip off all your excption handler in your package , procedure , function whatever it is that's throwing this error. When you run the code next time the line number of code throwing this error will be revealed.

2. If you are on production environment , if possible create a plsql block of the procedure / function throwing this error , again strip off all exception handlers. when you run this plsql block line number of code throwing this error will be reveled. 
3. If option 2 is not feasible due to huge package or package delarations with types or due to some other DML constraints on your production instance. Then do this.
  • Find out all the lines of code where assignment is happening (search for := )
  • Find out all lines with select into variable statements.
  • Isolate numeric value assignments from above lines (gotten in step 1 & 2) 
  • Check with help of queries and surrounding code which statement could go wrong.
  • At this juncture you may have isolated the 2-3 lines which could be the culprit.
  • Compare and root out the statements by running against valid data not throwing this error.
So this was how you could possibly check for the ora 06502. Its of course manual effort and there is no magic wand. 

One notable option is to use dbms_debug through sqldeveloper or toad.  But I never found it useful. If I can run the package in debug mode I might as well change it and remove exception handlers instead.







Comments

Popular posts from this blog

Use the Microsoft Visual Studio Code(VScode) with Java Maven project.

The VS Code is the go to editor now a days for the latest technologies and scripting options. VS Code as we all know works seamlessly with Python and JavaScripts, and offcourse the .NET family. But VS Code has many extensions which makes it big Java IDEs run for their money. Lets explore what we could do with VSCode if we are Java developer. Install VScode , no brainer. Jus type download Visual Studio code in google. Alrright once we have VSCode. Open it. Install Maven and Java extension. 2. Go to files and a small window will now appear on left side navigation bar. 3. Select New Maven project. 4. Select the archtype from dropdown. 5. As usual input the grpid, artifactid etc. 6. Done. Go through a video which has much detailed navigation flow. Till next time !!!

Introduction to Oracle Analytical functions , rank , denserank.

In this video we tried to demonstrate how oracle anaytical function works. How to do Top N query with oracle's rank and dense_rank function. Also explained is how outputs and functionality of rank and dense_rank differs , what should be used when. The demonstration video is from Linux Mint OS and I have used my own Query Light application. Hope you find it enlightening.   Here are some of the screen prints.  Use of Oracle Rank Analytical Function. Oracle Top N Query using rank analytical functions.