This error "ORA-12514: TNS: Listener does not currently know of service requested in connect descriptor" usually occurs if the SERVICE_NAME parameter is not set correctly inside CONNECT_DATA in the Connect descriptor at the tnsnames.ora configuration file.
To can understand this error, we should first know, what's tnsnames.ora file, Connect Descriptor, CONECT_DATA, and SERVICE_NAME.
What's the tnsnames.ora file?
The tnsnames.ora file is a configuration file that contains network service names mapped to connect descriptors for the local naming method, or net service names mapped to listener protocol addresses.
What's the Connect Descriptor in TNSNAMES.ORA file?
A connect descriptor contains the location of the listener through a protocol address and the service name of the database to which to connect.
What's the CONECT_DATA in TNSNAMES.ORA file?
CONECT_DATA contains the database service identification information, it defines the service to which to connect, such as SERVICE_NAME.
What's the SERVICE_NAME in TNSNAMES.ORA file?
SERVICE_NAME identifies the Oracle Database database service to access.
In your case, you get this error "ORA-12514: TNS: Listener does not currently know of service requested in connect descriptor" because the SERVICE_NAME parameter value is not set to the correct Oracle Service Name.
How to get the Oracle Database Service Name?
To get the correct Oracle Service Name, you should do the following:
- Login to the Oracle Server.
- Open the Oracle Server Developer.
- In the
Connections
, Right Click on your Connection Name
> and Select Properties
.
- In the
Database Connections
dialog, copy the value of the Service Name
.
- In the
tnsnames.ora
file, set the SERVICE_NAME to the Copied service name from the Oracle Server.
- Save the
tnsnames.ora
file.
- Close all opened instances of the Report Builder and reopen it again.
- Create your new Data Source, and specify the required values, then click on
Test Connection
.
- The Oracle Data Connection should be established successfully now!
See Also