I am trying to use a SELECT query to populate a table in DB2 using a database link to DB1. I am using Oracle SQL Developer on a Windows 7 VM. I connect to DB2, and run the following query.
INSERT INTO DB_NAME.TABLE_NAME (SELECT * FROM DB_NAME.TABLE_NAME@LINK_TO_DB1);
Every time, no matter what, I get the following error:
ORA-12154: TNS:could not resolve the connect identifier specified 12154. 00000 - "TNS:could not resolve the connect identifier specified" *Cause: 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. *Action: - If you are using local naming (TNSNAMES.ORA file): - 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. - If you are 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 - If you are 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. Error at Line: 1 Column: 30
I've been googling and attempting different solutions for 2 days with no luck. I've done all of the following:
- Set PATH environment variable to C:\Oracle\instantclient_11_2
- Set ORACLE_HOME environment variable to C:\Oracle\instantclient_11_2
- Set TNS_ADMIN environment variable to C:\Oracle\instantclient_11_2\network\admin
- Created a tnsnames.ora file with the correct connection information in C:\Oracle\instantclient_11_2\network\admin
- Set the Tnsnames Directory field in SQL Developer (Tools > Preferences > Database > Advanced) to C:\Oracle\instantclient_11_2\network\admin
I am at a loss as to why these database links aren't working. Does anyone have any advice?