Featured Post

15 Python Tips : How to Write Code Effectively

Image
 Here are some Python tips to keep in mind that will help you write clean, efficient, and bug-free code.     Python Tips for Effective Coding 1. Code Readability and PEP 8  Always aim for clean and readable code by following PEP 8 guidelines.  Use meaningful variable names, avoid excessively long lines (stick to 79 characters), and organize imports properly. 2. Use List Comprehensions List comprehensions are concise and often faster than regular for-loops. Example: squares = [x**2 for x in range(10)] instead of creating an empty list and appending each square value. 3. Take Advantage of Python’s Built-in Libraries  Libraries like itertools, collections, math, and datetime provide powerful functions and data structures that can simplify your code.   For example, collections.Counter can quickly count elements in a list, and itertools.chain can flatten nested lists. 4. Use enumerate Instead of Range     When you need both the index and the value in a loop, enumerate is a more Pyth

How to Resolve ORA-01722 Invalid Number Error in Oracle SQL Developer

When working with Oracle SQL Developer, you may come across an error message that reads "ORA-01722: invalid number". This error can be frustrating and difficult to understand, especially if you're new to SQL. In this post, I will explain the cause of this error and provide a solution to resolve it.


Invalid Number Error


Cause of the Error - ORA-01722


Let's consider an example where we have two tables named "my_hr" and "my_dept". The "my_hr" table contains three columns - "name", "pay_id", and "user_id", while the "my_dept" table contains two columns - "name" and "user_id".

CREATE TABLE my_hr (
name CHAR(20),
pay_id NUMBER,
user_id CHAR(6)
);

CREATE TABLE my_dept (
name CHAR(20),
user_id CHAR(6)
);

Now, let's insert some sample data into these tables:

INSERT INTO my_hr VALUES ('Srini', 567, '123456');
INSERT INTO my_dept VALUES ('Srini', '123456');

If we try to execute the following SELECT query to join these two tables using the "name" and "user_id" columns and filter the results based on the "pay_id" column, we will get the "ORA-01722: invalid number" error:

SELECT *
FROM my_hr a, my_dept b
WHERE name = 'Srini'
AND pay_id = '123456' -- This causes the error
AND a.user_id = b.user_id;

The reason for this error is that we are comparing a number column "pay_id" with a string literal value ('123456').

Solution to Resolve the Error:


To fix the error, we need to make sure that we are comparing the "pay_id" column with a number value instead of a string. We can do this by removing the single quotes from the value we are comparing:

SELECT *
FROM my_hr a, my_dept b
WHERE name = 'Srini'
AND pay_id = 123456 -- This is the corrected version
AND a.user_id = b.user_id;

By removing the single quotes from the value of the "pay_id" column, we can compare it with the number column correctly.

Comments

Popular posts from this blog

How to Fix datetime Import Error in Python Quickly

SQL Query: 3 Methods for Calculating Cumulative SUM

Python placeholder '_' Perfect Way to Use it