Arrhhh!! I RAN INTO THIS AGAIN!!!
Just install ToadForOracle in C: or any directory without parenthesis in the path.
In my case its because I was on a x64 PC and still using the old Oracle 9i with the 32bit drivers!
I am using SQL Reporting Services with an Oracle Database. The problem is the brackets in the path to Visual Studio (BIDS). Oracle doesn’t like apps that start in a path with brackets:
RDBMS 10g XE problem with parenthesis in path
So I made a BAT file to open Visual Studio with Progra~2 as the short path name for «Program Files (x86)».
Here is the contents of the BAT file:
rem Progra~2 is short path name for "Program Files (x86)" and works around an Oracle client bug that doesn't like the ()'s in the path
start /B "C:Progra~2Microsoft Visual Studio 9.0Common7IDE" "C:Progra~2Microsoft Visual Studio 9.0Common7IDEdevenv.exe"
I name this BAT file StartBIDS.BAT and put it in the directory:
«C:Program FilesMicrosoft SQL ServerStart BIDS.bat»
Then I make a short cut to the BAT file on my Desktop and also my Start Menu and change the ShortCuts icon. This allows me to open TOAD, Visual Studio, BIDS and etc apps that I use to work with Oracle.
Update:
Alternatively make a Junction:
mklink /J "C:Program Files (x86)" "C:Program Files x86"
Then remove the brackets in the shortcut:

Problem
DataStage job fails with error ORA-12154 when accessing an Oracle database via the Oracle run-time client. The following are typical errors, but multiple variations exist:
Error while trying to retrieve text for error ORA-12154
APT_OraReadOperator: connect failed.
ORA-12154: TNS:could not resolve the connect identifier.
ORA-12154: TNS:could not resolve service name
Resolving The Problem
Error while trying to retrieve text for error ORA-12154
The above error means that not only did the connection to Oracle Database fail, but that Oracle was unable to retrieve the text of error message ORA-12154. This usually indicates that either the DataStage userid running the job does not have read access to the Oracle run-time client files, or that the environment variable ORACLE_HOME is not defined.
ORA-12154: TNS:could not resolve the connect identifier.
ORA-12154: TNS:could not resolve service name
The above 2 errors indicate that the connection identifier or service name specified in the DataStage job (or in the ORACLE_SID environment variable or ODBC definition) was not known to either the Oracle client or the Oracle server. The connection/service identifiers known to the Oracle run-time client are defined in the tnsnames.ora file, $ORACLE_HOME/network/admin/tnsnames.ora
Verify that the identifier specified for the failing Oracle connection has been defined in tnsnames.ora. If it is correctly defined, then next verify that the ORACLE_HOME environment variable is correctly defined, and that tnsnames.ora file has correct read permissions.
If the above items are configured correctly, also check the listener.log on Oracle server to confirm that the service id (or the database it maps to) are known to the Oracle server.
Setting up environment variables required to use Oracle run-time client
The Oracle client requires that the following environment variables be defined. These should be set in the .dsenv file in the DataStage DSEngine directory.
ORACLE_HOME=/home/oracle
LIBPATH=$LIBPATH:$ORACLE_HOME/lib:
PATH=$PATH:$ORACLE_HOME/bin
Change the path defined for ORACLE_HOME to the correct path for your system. ORACLE_HOME should be set to the absolute path to the home Oracle directory which is the directory level directly above the lib and bin directories.
Please also note that the name of the library path environment variable varies with different operating systems:
- AIX — use LIBPATH
- Solaris — use LD_LIBRARY_PATH
- HP-UX — use SHLIB_PATH
- Linux — use LD_LIBRARY_PATH
[{«Product»:{«code»:»SSVSEF»,»label»:»IBM InfoSphere DataStage»},»Business Unit»:{«code»:»BU059″,»label»:»IBM Software w/o TPS»},»Component»:»—«,»Platform»:[{«code»:»PF002″,»label»:»AIX»},{«code»:»PF010″,»label»:»HP-UX»},{«code»:»PF016″,»label»:»Linux»},{«code»:»PF027″,»label»:»Solaris»},{«code»:»PF033″,»label»:»Windows»}],»Version»:»8.1;8.0;7.5″,»Edition»:»»,»Line of Business»:{«code»:»LOB10″,»label»:»Data and AI»}}]
The “ORA-12154: TNS:could not resolve the connect identifier specified” Oracle error is a commonly seen message for database administrators. When this occurs, there’s an issue with creating a connection with one of your Oracle services or database instances. In some Oracle database versions, this error may be called “ORA-12154: TNS:could not resolve service name.” The connect identifier is not able to resolve and may be caused by one or more of the following issues:
- Inability to connect to the repository due to unplanned server and network outages
- The entry is missing from tnsnames.ora
- The entry in tnsnames.ora is malformed
- The program is using tnsnames.ora from the wrong ORACLE_HOME
- The program is not using a fully qualified service name, but no default domain is enabled in sqlnet.ora
Because there is more than one cause of the ORA-12154 error, you need to troubleshoot precisely what’s going on with your database connections. You’ll typically see this error in the Oracle client application during the connection process, not the server itself. While it can be frustrating to see this error when you’re working on an application, the fix is relatively straightforward.
Resolving ORA-12154 Error Codes
The Oracle client code uses one of three ways to look up connect data:
- A flat file named tnsnames.ora
- Oracle Names service
- LDAP
When the complete ORA-12154 error appears with the text line, your program has found a working Oracle client install. However, the specified Oracle service is not listed in tnsnames.ora, Oracle Names or LDAP.
The first step in the troubleshooting process is to determine which name resolution method is deployed at your site. Most sites use tnsnames.ora, but enough use Oracle Names and LDAP, so it’s best to confirm this information.
If you are not the database administrator, get in touch with the people managing your Oracle systems and find out which method you should be using. They may be able to guide you in fixing the problem in accordance with your site’s standards.
The client code decides which mechanism to use based on the file sqlnet.ora. This file and tnsnames can usually both be found in the Oracle install directory (“ORACLE_HOME”), under network/admin/. This location may be overridden with the environment variable TNS_ADMIN.
If the sqlnet.ora file does not exist or does not specify a resolution method, then Oracle Net uses tnsnames.ora.
Example locations of Oracle networking files include:
Windows
- ORANTNET80ADMIN
- ORACLEORA81NETWORKADMIN
- ORAWIN95NETWORKADMIN
- ORAWINNETWORKADMIN
UNIX / Linux
- $ORACLE_HOME/network/admin/
- /etc/
- /var/opt/oracle/
If you fix the naming issues, but you still see the ORA-12154 error, check the Oracle service to confirm that it’s available for connections. A power outage, server failure, or network connectivity issue will make this resource inaccessible. It’s also possible that scheduled maintenance or repairs of an unrelated Oracle issue may take that resource temporarily offline.
Get Expert Help with Resolving Your ORA-12154 Errors
Datavail’s Oracle experts have an average of 15 years of experience and are well-versed in resolving common connection problems with this database technology. We offer Oracle services tailored to your needs, whether you need occasional assistance with troubleshooting or end-to-end solutions for your business.
Don’t let Oracle errors get in the way of creating high-availability, stable applications that your organization depends on. Get the most out of your technology investments by contacting us today.
Have you gotten an “ORA-12154: TNS:could not resolve the connect identifier specified” error? Learn what causes it and how to resolve it in this article.
ORA-12154 Cause
If you attempt to access or log on to an Oracle database, you might get this error:
ORA-12154: TNS:could not resolve the connect identifier specified
This means that the tnsnames.ora file was not found or has an error within it.
There are a few steps you can take to resolve this ORA-12154 error.
Check that the tnsnames.ora file exists
There is a tnsnames.ora on both the client and server systems. It’s located in the ORACLE_HOME/network/admin directory. I’ve written a guide to the TNSNAMES file here which has more information.
ORACLE_HOME is where your Oracle database is installed on the server, or on your own computer if you’re using Oracle Express.
For example, in my installed version of Oracle Express, my ORACLE_HOME is:
C:oraclexeapporacleproduct11.2.0server
If I open the network then admin folders, I will see a tnsnames.ora file.

If it exists in this folder, then you need to check that it has no errors (see the next step).
If it doesn’t exist, then you can create one.
To do this:
- Create a new file in this folder and call it tnsnames.ora.
- Open the file in a text editor and add the information in this format:
The syntax of the tnsnames.ora file is:
<addressname> = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>)) ) (CONNECT_DATA = (SERVICE_NAME = <service_name>) ) )
The example in my Oracle Express instance is:
XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = Ben-PC)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )
So, just copy and paste this into your new tnsnames.ora file, make changes as necessary, and save it.
Try your connection again (the one where you got the error) and see if it works.
Check that TNSNAMES.ORA has no syntax errors
If the file exists, open it and see that there are no syntax errors.
Using the example above:
XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = Ben-PC)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )
Check that the brackets are all in the right place, there are no quotes in there, no missing lines or anything unexpected.
Check that TNSNAMES.ORA has your service name in it
To be able to connect to your database, the tnsnames.ora file needs to have your service name in it.
Open the tnsnames.ora file and add it in there if it does not exist, using the examples above.
Check that TNSNAMES.ORA has read permission
Sometimes, the file can exist and be syntactically correct, but doesn’t have any permissions.
If other users or processes cannot read the file, you’ll get the ORA-12154 error.
So, check that the file can be read by other users by applying read permissions to it.
Run the TNSPING Utility
Oracle includes a tnsping utility for checking that the TNSNAMES is OK.
You can find this by going to ORACLE_HOME/bin/tnsping.exe
For example:
C:oraclexeapporacleproduct11.2.0serverbin
If you’re on Windows, you can open the Command Prompt and CD to this directory.
Then, run tnsping xe (or your service name you want to check)
This should show if it is OK or not.
TNSADMIN Environment Variable is Missing
If you’re connecting on Windows, this error can sometimes happen if the TNSADMIN environment variable is missing.
To check this:
- Go to Start > Control Panel
- Open System
- Click “Advanced system settings”
- Click Environment Variables
- Add a new system variable called TNSADMIN with a value of ORACLE HOMEnetworkadmin
This is often not needed, but if you’ve tried everything else, and are still getting the ORA-12154 error, you can try adding the TNSADMIN environment variable.
So, there are a few solutions to the “ORA-12154: TNS:could not resolve the connect identifier specified” error.
Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!
First published on MSDN on Jun 30, 2010
This is one of the most common errors while creating linked server to Oracle database. Today I will discuss the reason for this error and possible resolutions.
Full error message:
OLE DB provider «MSDAORA» for linked server «LINKED_ORA» returned message «ORA-12154: TNS:could not resolve the connect identifier specified».
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider «MSDAORA» for linked server «LINKED_ORA».
First of all make sure you have reviewed the following Microsoft KB article that has a lot of good information on troubleshooting Oracle linked server issues.
How to set up and troubleshoot a linked server to an Oracle database in SQL Server
http://support.microsoft.com/kb/280106
Also make sure you have installed Oracle Client on the SQL server. If the SQL server is 64 bit then we need to install 64 bit Oracle provider. You can also create linked server using Oracle ODBC driver together with Microsoft OLE DB provider for ODBC. Once again on a 64 bit SQL server you need to install the
64-Bit OLEDB Provider for ODBC (MSDASQL)
and 64 bit Oracle ODBC drivers. However 64-Bit OLEDB Provider for ODBC (MSDASQL) is already there in Windows Vista/Windows Server 2008 and later OS.
This particular error message is a very general error message and can happen for quite a number of reasons. For general understanding of the error, you can review oracle documentation like this
http://ora-12154.ora-code.com/
In SQL Server Linked Server, it could indicate a few things (not limited to)–
1. SQL Server (and oracle net libraries) is not able to get the TNS alias from tnsnames.ora file.
2. Something is wrong with the way the alias is created in the tnsnames.ora file (incorrect syntax)
3. TNS alias could not be resolved into a connect descriptor
Below is a list of things that you can try to resolve this issue.
1. Verify that the tnsnames.ora file has the alias and the service name that the customer is using.
TNS entry for the Oracle database
===========================
OracleDB_Dev =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = server01.mydomain.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = OracleDB)
(SERVER = DEDICATED)
)
)
In the above tnsnames.ora file Alias = OracleDB_Dev
Service Name: OracleDB (Actual Oracle service name [instance name in SQL])
2. Check the sqlnet.ora file under ‘Admin’ folder in Oracle home [Dir:appproduct11.1.0client_1networkadmin] and ensure that we have TNSNames in NAMES.DIRECTORY_PATH
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
3. Verify if you can connect to Oracle from the SQL server machine using tools installed with Oracle Client [For example «SQL Developer» or “SQL Plus”] with the same user id/password or TNS alias.
5. Check if the environment variable ‘PATH’ has the path for tnsnames.ora file specified.
Sample Value of Environment Variable PATH:
E:appproduct11.1.0client_1bin
;C:Program FilesBusiness ObjectsCommon3.5binNOTES;C:Program FilesBusiness ObjectsCommon3.5binNOTESDATA;%Systemroot%Microsoft.NETFrameworkv1.1.4322;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;C:Program FilesDellSysMgtomabin;C:Program FilesMicrosoft SQL Server80ToolsBINN;C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60TEMPLATEADMIN1033;C:Program FilesMicrosoft SQL Server80ToolsBinn;C:Program FilesMicrosoft SQL Server90DTSBinn;C:Program FilesMicrosoft SQL Server90Toolsbinn;C:Program FilesMicrosoft SQL Server90ToolsBinnVSShellCommon7IDE;C:Program FilesMicrosoft Visual Studio 8Common7IDEPrivateAssemblies;C:Program FilesMicrosoft Network Monitor 3
Note: make sure that the path is a valid path and there is no space.
6. Check the value of the key ”Oracle_Home” in the registry under HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraClient11g_home1 and verify that it has the right path for the Oracle home.
7. Check for the registry key “TNS_ADMIN” at HKEY_LOCAL_MACHINESOFTWAREORACLE. If it exists then make sure it has the right value as “Dir:appproduct11.1.0client_1networkadmin”. If you don’t see the key then create the key and set appropriate value as below.
Regedit->HKEY_LOCAL_MACHINE->Software->Oracle->RightClick NEW->StringValue and name
it TNS_ADMIN and give the value “X:appproduct11.1.0client_1networkadmin”
Note: This is not a must but in some cases this is what fixed the issue.
8. Check if SQL server start up account has permission to the Oracle Home. Also collect Process monitor log and check for “access denied”. Process monitor log should show if we are able to find the tnsnames.ora file.
9. Make sure you don’t have multiple Oracle homes or multiple Oracle clients installed. Check the «HKEY_LOCAL_MACHINESOFTWAREORACLEALL_HOMESHOME_COUNTER» key value.
10. Check if Oracle OLE DB provider is running InProcess. If ‘yes’ then try to run out-of- process and see if that resolves the issue.
Note: You can check and verify if MS OLE DB Provider for Oracle is running InProcess from the registry key at HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerProvidersMSDAORA
11. You can try collecting simultaneous Network trace from both SQL and Oracle servers and check if there are any communications between the two servers.
12. Try to connect to Oracle from the SQL server using the UDL. Use the same TNS name. If you get the same error that means the issue is not specific to SSMS or linked server.
Creating and Configuring Universal Data Link (.udl) Files
http://msdn.microsoft.com/en-us/library/e38h511e(VS.71).aspx
13. Try to specify all the information in the data source instead of using the TNS alias to connect to the Oracle database (this is a way to bypass tnsnames.ora file when connecting to Oracle).
Sample Data Source:
Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST= server01.mydomain.com)(PORT=1521)))(CONNECT_DATA=(SID=OracleDB)(SERVER=DEDICATED)));
Author : Mohammad(MSFT) SQL Developer Engineer, Microsoft
Reviewed by : Azim(MSFT), SQL Developer Technical Lead , Microsoft
The Oracle message known as “ora-12154” may be the most common error experienced by Oracle users. Luckily, the frustration of so many previous users has prompted some fairly straightforward solutions to the issue.
The Problem
When you receive this error, it means that the Oracle client has failed to connect with the listener on the desired server. In Oracle’s own words:
“A connection to a database or other service was requested using a connect identifier, and the connect identifier specified could not be resolved into a connect descriptor using one of the naming methods configured. For example, if the type of connect identifier used was a net service name then the net service name could not be found in a naming method repository, or the repository could not be located or reached.”
There can be many possible causes for this problem, which is why it can be tricky to solve. Users may have to test more than one method before identifying the source of the ORA-12154.
The target server could have temporarily gone down, which is likely if the issue is occurring across multiple PCs after attempting to access the network. Connection issues could also be the culprit, or the destination name may not match the input address.
It should be noted that if the ORA-12154 error is identifying in a set along with an additional error titled “TNS-03505: failed to resolve name,” the problem should have occurred before the server was located.
The Solution
For those using local naming (TNSNAMES.ORA file), Oracle recommends the following actions:
- Make sure that “TNSNAMES” is listed as one of the values of the NAMES.DIRECTORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).
- Verify that a TNSNAMES.ORA file exists and is in the proper directory and is accessible.
- Check that the net service name used as the connect identifier exists in the TNSNAMES.ORA file.
- Make sure there are no syntax errors anywhere in the TNSNAMES.ORA file. Look for unmatched parentheses or stray characters. Errors in a TNSNAMES.ORA file may make it unusable.
For those using directory naming:
- Verify that “LDAP” is listed as one of the values of the NAMES.DIRETORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).
- Verify that the LDAP directory server is up and that it is accessible.
- Verify that the net service name or database name used as the connect identifier is configured in the directory.
- Verify that the default context being used is correct by specifying a fully qualified net service name or a full LDAP DN as the connect identifier.
And, finally, for those using easy connect naming:
- Verify that “EZCONNECT” is listed as one of the values of the NAMES.DIRETORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).
- Make sure the host, port and service name specified are correct.
- Try enclosing the connect identifier in quote marks. See the Oracle Net Services Administrators Guide or the Oracle operating system specific guide for more information on naming.
Consulting an experienced firm for their expertise can be vital when dealing with the large-scale implementation of data management systems.
Issue
How to troubleshoot Oracle Connection errors.
Oracle drivers require very specific connection statements in a unique format, though a TNSNames.ora file may not always be required. For instance, if you have installed only the Tableau-provided Oracle files and do not have a stand-alone Oracle client, the Oracle error messages will still refer to the TNSNames.ora file, making troubleshooting complicated.
Environment
- Tableau Desktop
- Tableau Server
- Oracle
Resolution
Often, correcting route or naming syntax in the Advanced Oracle Connection dialog box or using your full .WORLD database name resolves most Oracle connection issues. If your connection error requires more troubleshooting, refer to the five common connection errors listed below.
- ORA-03113: end-of-file on communication channel
- ORA-12154: TNS: could not resolve the connect identifier specified: HOST value incorrect or Global name incorrect or unknown
- ORA-12514: TNS listener does not currently know of service requested in connect descriptor: SERVICE value incorrect
- ORA-12541: TNS: no listener: PORT value incorrect
- ORA-00932: inconsistent data types
ORA-03113: end-of-file on communication channel
ORA-03113 is a catch-all type error for any problem interrupting an Oracle session. There can be numerous causes for this error. Please refer to the list below for some troubleshooting guidance.
- Refer to Oracle documentation specific to this error: My Oracle Support.
- Refer to Oracle’s B Troubleshooting Common Errors page.
- Oracle recommends that you check for network problems and review the SQL*Net setup.
- If you are connecting to Oracle 9.2.0.5, in many cases the primary cause of this error is Oracle bug 3010227. Ask your Oracle database administrator to apply Oracle patch 9.2.0.6 or another patch appropriate for your server.
- Set the Oracle initialization parameter ‘STAR_TRANSFORMATION_ENABLED’ to FALSE.
- Test changing the scheduled time of the extract refresh
- Alternatively, if you would like to test this issue further follow the optional procedure listed below.
Step 1
From the Tableau Desktop start page, select Connect to Data.
Step 2
On the Connect page, click Oracle, then click OK.
For more information about completing the connection steps, refer to the Oracle Database topic in the Desktop Help.
Step 3
- In the join area, hover over the Custom SQL table until the edit icon displays, and then click the icon.
- Copy the query in the Edit Custom SQL dialog box.
SELECT "NumericBins", "Key" as "Key",
"NumericBins", "Measure E-2" AS "Measure E-2",
"NumericBins", "Measure E-1" AS "Measure E-1",
"NumericBins", "Measure E+0" AS "Measure E+0",
"NumericBins", "Measure E+1" AS "Measure E+1",
"NumericBins", "Measure E+4" AS "Measure E+4",
"NumericBins", "Measure E+7" AS "Measure E+7"
FROM "TestV1", "NumericBins" "NumericBins"
Where «TestV1» is the name of your connection in Tableau.
Step 4
In a SQL session connected to this database, paste and run the query. The expected response is error ORA-7445: exception encountered: core dump, which confirms that the problem is ORA-3113, as expected.
ORA-12154: TNS: could not resolve the connect identifier specified
ORA-12154 occurs when the transparent network substrate (TNS) cannot resolve the service name. The service name is specified in the TNSNames.ora file, which is located in your %ORACLE_HOME%networkadmin folder. Most often, this error occurs when information in the TNSNames.ora file is incorrect. For example:
- The .world extension is not included on the database name.
- The SERVICE_NAME or HOST variable is incorrect.
To resolve this issue, try one of the three following troubleshooting options, in the order listed below.
- Option 1: Setting an Oracle Connection to Use TNSNames.ora or LDAP.ora
- Option 2: Error «ORA-12154» Connecting to Oracle When Not Using TNSNames.ora
Option 1: Edit TNSNames.ora
Provide the full database name, including the .world extension in both of the following locations:
- The TNSNames.ora file.
And
- The Server text box of the Connect page.
Option 2: Ensure that Tableau Server Run As User account has permissions to TNSNames.ora (Tableau Server only)
If you have Tableau Server installed, complete the procedure below to ensure that the Tableau Server Run As user account has permissions to the location of the TNSNames.ora file. If the Run As user account does not have permissions, Tableau Server is unable to access the Oracle Data source details.
Step 1
Verify the location of the TNSNames.ora file, or the equivalent SQLNET.ora and LDAP.ora files on the machine.
Note: By default, the TNSNames.ora file is located in <oracle-directory>networkadmin directory. For example, C:Oracle_Clientnetworkadmin.
Step 2
Confirm that the TNS_ADMIN variable points to the location of the file or files described in step 1.
Note: To check the TNS_ADMIN variable, click the Start button, and select Control Panel > System. Click Advanced system settings, click the Advanced tab, and click Environmental Variables button.
The system variable file path must be in UNC format.
Step 3
Open TSM in a browser: https://<tsm-computer-name>:8850 For more information, see Sign in to Tableau Services Manager Web UI.
Step 4
Click the Security tab, and then click the Run As Service Account tab.
Under Server Run As User, copy the information in the Username field.
Step 5
Go to the folder where the TNSNames.ora file is located.
Step 6
Right-click the folder and select Properties. Click the Security tab and click the Edit button.
Step 7
Under Group or user names, click the Add button.
Step 8
In the Enter the object names to select text box, paste the details of the Run As User account you copied in step 6.
Step 9
When finished, click OK.
Step 10
In the Permissions area,ensure that the Full control and Modify check boxes are selected.
Step 11
Click OK to close the dialog boxes.
Option 3: Verify that all information in TNSNames.ora is correct
If the above troubleshooting steps do not resolve the issue, continue reading and complete the procedure to verify the other information in the TNSNames.ora file is provided correctly.
An example of a TNSNames.ora file is shown here:
QAORCL10.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MY_HOST_NAME)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MY_SERVICE_NAME)
)
)
The three variables of interest in the file are HOST, PORT, and SERVICE_NAME. Copy these variables from the TNSNames.ora file and keep them available. These variables are case sensitive.The following steps describe how to provide these variables for your connection.
Step 1
From the Tableau Desktop start page, select Connect to Data.
Step 2
On the Connect page, click Oracle.
Step 3
Provide the following information from the TNSNames.ora file:
- In the Server name text box, type the HOST name.
- In the Service text box, type the SERVICE_NAME.
- In the Port text box, type the PORT number.
- Specify whether to use Windows Authentication or a specific user name and password, and then click Connect.
Note: Variables are case sensitive.
Step 4
Select a schema from the Schema drop-down list, drag a table to the join area, and then click Go to Worksheet.
Step 5
Complete the steps in the Setting an Oracle Connection to Use TNSNames.ora or LDAP.ora article.
Important:
- Make sure that you save the TNSNames.ora file you use in ASCII encoding. Any other encoding besides ASCII, for example UTF-8 or Unicode, causes the ORA-12154 error message.
- These steps are usually required even if the Oracle software is already installed on the machine.
Step 6
Download and install the appropriate Oracle drivers from the Tableau Drivers page. Even if an Oracle driver is installed on your computer, it could be incompatible with Tableau and will require the version specified on the Drivers page.
ORA-12514: TNS listener does not currently know of service requested in connect descriptor
Typically this error occurs when the SERVICE value is incorrect.
To resolve this issue, find out what the correct SERVICE value is, open the TNSNames.ora file located in your %ORACLE_HOME%networkadmin folder. Refer to the steps under ORA_12154 if necessary.
ORA-12541: TNS: no listener
Typically this error occurs when the PORT value is incorrect.
To resolve this issue, replace the PORT value with either 1521 or 1526. Try the value that is currently not in use.
ORA-00932: inconsistent data types
This error occurs when connecting to Oracle or when creating an extract from an Oracle data source. Typically this error is caused by the installation of incorrect Oracle drivers.
To resolve this issue, install the correct Oracle drivers from the Drivers page for the version of Tableau you are using.
In addition to the above common errors, if you are using Tableau Desktop/Server 2020.2 or later and experiencing performance issues e.g. extract refresh taking long time, you can try downloading and installing the Oracle OCI driver. Refer to the article in Related Links. Driver can be downloaded from here.
Additional Information
Suggestions
If you do not have an Oracle Client installed on your machine, be sure to get the necessary files from your database administrator. If the Oracle data connection errors persist, do the following:
- Check the TNSNames.ora folder path used to create the TNS_ADMIN variable.
- Restart your machine to ensure that the TNS_ADMIN variable is recognized.
- Check that the Oracle connection name used in Tableau exactly matches the TNSNames.ora Net Service Name entry. This name is case sensitive.
- In some cases Windows will need to be restarted before the Oracle driver will pick up the TNS_ADMIN system variable
- Contact local IT to verify that the TNSNames.ora file is current.
- If the Oracle connection uses LDAP, make sure to include the SQLNet.ora file as well as the TNSNames.ora file.
Discuss this article…