If you’re working with Oracle Database and encounter the error:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
This is one of the most common Oracle connection issues, and it’s typically tied to your database listener not recognizing the service name you’re trying to connect to. In this post, we’ll explore what this error means, what causes it, and a real-world fix using an actual configuration example.
What Does ORA-12514 Mean?
This error means that the Oracle listener is running, but does not have the service name you’re trying to connect to registered. The listener manages incoming connections, and unless the database has registered its service properly, your connection attempt will fail.

Oracle Network Config That Causes the Listener Error
Before we fix the issue, let’s understand what a typical misconfigured setup looks like.
tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PROLTPE15G4PS.Home)(PORT = 1521))
)
)
Despite using the correct service name (orcl), the error still appears. Why? Because the database hasn’t properly registered the service with the listener.
Step-by-Step Fix for ORA-12514
1. Check Registered Services with Listener
Run this command to see what the listener currently knows:
lsnrctl services
If your service (like orcl) is not listed, the database hasn’t registered with the listener yet.
2. Manually Register the Database Service
Log into the database:
sqlplus / as sysdba
Then run:
ALTER SYSTEM REGISTER;
This tells the database to register its services with the listener immediately.
3. Check and Reset the LOCAL_LISTENER Parameter
If the service still doesn’t show, check this:
SHOW PARAMETER LOCAL_LISTENER;
If it’s set to something unexpected, reset it:
ALTER SYSTEM SET LOCAL_LISTENER = '' SCOPE = BOTH;
ALTER SYSTEM REGISTER;
This clears any overridden value and lets Oracle dynamically register with the listener.
4. Restart the Listener and Database (Optional)
Restarting can help if there are stale configurations:
lsnrctl stop
lsnrctl start
Then:
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
STARTUP;
5. Ensure HOST and PORT Match Across Files
Make sure both your listener.ora and tnsnames.ora files use consistent hostnames or IP addresses. Avoid mixing localhost, 127.0.0.1, or hostnames like PROLTPE15G4PS.Home unless you’re confident about DNS resolution.
If needed, update your tnsnames.ora like this:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PROLTPE15G4PS.Home)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
Try This Simple Command to See If the Problem Gone
A quick way to test Oracle connectivity:
sqlplus your_user/your_pass@//localhost:1521/orcl
If this works, your listener and database are communicating correctly, and the issue may lie in your TNS configuration or client tool.
What Other Developers Faced (and Fixed)
- If the database was started before the listener, it might take up to 15 minutes to auto-register.
- Use ALTER SYSTEM REGISTER to skip the wait.
- Changing (HOST=localhost) to (HOST=0.0.0.0) in listener.ora allows it to listen on all network interfaces.
- On remote clients (like TOAD), make sure you’re not using localhost in your connection string — use the actual IP address of the server.
Final Thoughts
The ORA-12514 error may seem intimidating, but it’s often a result of a mismatch or delay in service registration. By checking your service names, listener status, and ensuring consistent configuration, you can resolve it quickly.
If you’re new to Oracle networking, don’t worry — each error teaches you more about how the system works behind the scenes.
Need help with your specific setup? Drop your config in the comments below.