ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
The connection reached the listener, but the listener has no database service with the name you asked for. Check the service name, check that the database or PDB is open, and check that it is registered with this listener.
What it means
Unlike ORA-12154, the network part worked: host and port answered. The listener then looked up the requested SERVICE_NAME and found nothing registered under it. Databases register their services with the listener dynamically, so this can also appear for a short time after a database or listener restart.
Common causes
- A misspelled service name, or a SID used where a service name is expected.
- The database or the PDB is not open.
- The database registers with a different listener (
LOCAL_LISTENER) or port. - The listener was restarted and the database has not registered again yet.
How to fix it
- On the database server, run
lsnrctl services(orlsnrctl status) and compare the service names. - Check that the PDB is open:
SELECT name, open_mode FROM v$pdbs. - Force registration:
ALTER SYSTEM REGISTER. - Check
LOCAL_LISTENERpoints to this listener’s host and port. - If you only know the SID, use a SID connection instead of a service name.
Example
DBA: is the service there and the PDB open?
SELECT name, open_mode FROM v$pdbs;
SELECT name FROM v$services;
ALTER SYSTEM REGISTER;
In SQLlightspeed
When a statement fails, SQLlightspeed’s error panel shows the error code with a plain-language explanation and a suggestion for what to do next, together with Oracle’s own message and a link to Oracle’s documentation — for this error and dozens of other common ones.
Related errors
ORA-12154ORA-01017ORA-01031 All Oracle errors →
Oracle documentation for ORA-12514. Oracle is a registered trademark of Oracle Corporation. SQLlightspeed is not affiliated with Oracle.