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
- In the
Database Connections dialog, copy the value of the
- In the
tnsnames.ora file, set the SERVICE_NAME to the Copied service name from the Oracle Server.
- Save the
- 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
- The Oracle Data Connection should be established successfully now!