Error msg:ora 12154

Hi I installed oracleDEV 10g at my home desktop while I can't connect to company's oracle server, the user name and pswd are corrected set up while I got the error message ORA 12154 again and again, anybody can give me a help will be highly appreciated!
you can tell me the solution to [email protected]
Thanks

Hi
Check the tnsnames.ora file you are using, verify that it is accessible. Check if you have a $HOME/.tnsnames.ora file - This will be used in addition to 'tnsnames.ora'. Check TNS_ADMIN is set in your environment. - There is a readable tnsnames.ora file in $TNS_ADMIN
Regards Raf

Similar Messages

  • Error msg ORA-00054

    Hi,
    I'm getting the error msg ORA-00054: resource busy and aquire with NOWAIT specified. This happens when I'm trying to delete a table.

    use to detect who's locking the table:
    select S.SID,Q.SQL_TEXT
    from V$LOCK L, V$SESSION S, V$SQLAREA Q
    where L.BLOCK = 1
    and S.SID = L.SID
    and S.SADDR = Q.ADDRESS;

  • Error message ORA-12154, pls help

    Have got 2 database( A and B) on the same machine, A is the main database while B is meant to be the recovery catalog database, I have been able to create the catalog tablespace, but when I want to register the database from the target database from the RMAN command line with connect [b]catalog "rman_user/rman_user@B", its gives an error message of ORA-12154---TNS : could not resolve the connect identifier specified. I using windows environment, thanks in advance

    Did you create a TNS alias for B database ? If not, you can use Net Configuration Assistant, in the Oracle menu, for that.
    If you did already create B TNS alias, then try "tnsping B" : if result is OK, then try connecting to B DB from Sql*Plus :
    C:\> sqlplus rman_user/rman_user@B

  • Oracle DB Error Msg (ORA-12505)

    Hi,
    I had problem accessing my DB (running on AIX-based) from SQL plus. An error code ORA-12505 is given. I had no problem to start up and shutdown the database. Anyone can advise?
    By the way, what is ORA12505 means? How to resolve this error msg. Anywhere I can get full list of Oracle error message?
    Thanks a lot!

    Hi Bee
    In this link you can have all Oracle errors.
    http://otn.oracle.com/pls/db92/db92.error_search?remark=homepage&prefill=ORA-
    What is the message that you are getting ?
    Joel Pérez

  • Error msg ORA-12203

    I installed a windows nt version on windows 95 and cannot log in. I am getting the error ORA-12203 TNSnames. Help anyone?
    thanks
    Minerva

    Hi,
    If you are using Sqlplus on the same machine in which you have the DB, you can run it in two ways :
    - Specifying only username and password : in this case you have to set ORACLE_HOME and ORACLE_SID environment variables. ORACLE_HOME should be already defined in the registry, so you should have to set only ORACLE_SID = <your SID>
    - Specifying username,password and connection string : here you have to configure an alias in the TNSNAMES.ora file to point to your DB : you can do this using NET MANAGER or NET EASY CONFIGURATION (I don't use often Windows systems, so I don't remember exactly....)
    If you are using a Client, the second way is needed.
    Then you have to check that the listener is running on the Server. Check the listener service, it has to be active. If so, from a DOS Window try :
    LSNRCTL stop
    LSNRCTL start
    This stop and restart the listene
    hth
    Paolo

  • Stored procedure - insert clob obj - error msg: ORA-01460: unimplemented

    Hi all,
    I have a situation where I want to insert a clob object to my local table via a stored procedure. The clob object stores large amount of text. The clob data is populated from retrieving content in an external text file. When executing an insert statement in c# code, the information was inserted successfully. when executing the stored procedure to insert the information, i always get "ORA-01460: unimplemented or unreasonable conversion requested". I use ReadToEnd() from StreamReader class to retrieve the context of the external text file. Does anyone know why Oracle behaves this way? Thanks for helping in advance.
    TABLE DEFINITION FOR CLOB_TEST
    Name       Type         Nullable Default Comments
    PKG_NAME   VARCHAR2(50) Y                        
    PKG_DESC   CLOB         Y                        
    PKG_FAM_ID NUMBER       Y                        
    STORED PROCEDURE
    procedure InsertTempReleaseTable(p_name        in varchar2,
                                       p_description in clob,
                                       p_fam_id      number) is
      begin
        insert into clob_test
          (pkg_name, pkg_desc, pkg_fam_id)
        values
          (p_name, p_description, p_fam_id);
      end InsertTempReleaseTable;
    RETRIEVE CONTENT FROM A TEXT FILE
    public string GetTextFileContents(string path)
                using (StreamReader sr = new StreamReader(path))
                      return (sr.ReadToEnd());
    C# INVOKE STORED PROCEDURE TO INSERT
    using (OracleCommand cmd = (OracleCommand)database.GetStoredProcCommand("pkg_sptbuildstatus.InsertTempReleaseTable"))
                    cmd.Parameters.Add("p_name", OracleType.VarChar, 255).Value = obj.PackageName;  // string  
                    cmd.Parameters.Add("p_description", OracleType.Clob).Value = obj.ChangeDescription; // string
                    cmd.Parameters.Add("p_fam_id", OracleType.Number).Value = obj.FamilyId; // int
                    database.ExecuteNonQuery(cmd);
                }Edited by: user8976335 on Jan 11, 2010 4:28 PM
    Edited by: user8976335 on Jan 11, 2010 4:59 PM
    Edited by: user8976335 on Jan 11, 2010 4:59 PM
    Edited by: user8976335 on Jan 12, 2010 10:48 AM

    It's possible it doesn't like the name of your variables (being the same as the table), it's good practice to not do that.
    Much better would be.
    procedure InsertTempReleaseTable
       p_name in varchar2,
       p_description in clob,
       p_fam_id number
    is
    begin
       insert into clob_test
          (name, description, fam_id)
       values
          (p_name, p_description, p_fam_id);
    end InsertTempReleaseTable;Your Oracle version is typically of immense help.
    select * from v$version;Also, using the tags will keep the formatting of your code.
    If this isn't any help, can you post a working example of your example ? Where the code breaks (which call).
    Edited by: Tubby on Jan 11, 2010 3:50 PM
    Edited by: Tubby on Jan 11, 2010 3:51 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Error Message: ORA-12154:  TNS: Could not resolve the connect identifier sp

    Hi,
    I did a clean install of Windows 7 and re-installed Oracle 10g. Had some problems connecting to database Home Page so I uninstalled and re-installed and everything seemed to work fine. I installed Navicat and received the above error message when it tried to connect to the Oracle server.
    My settings are correct (TNS and XE) and the OracleXETNSListener and Oracle serviceXE are started in the services folder.
    Any thoughts???? I'm dead in the water here and need Navicat to do a Lab for Monday...yikes!!!
    Thanks Kindly
    Jasey

    The first thought is that you didn't invest much time in researching this error as it is probably the most written about exception in these forums and on google.
    So there you go ... hit the search button.
    My guess is that you did not read the documentation either and did not set the ORACLE_HOME and ORACLE_SID environment variables but that is just a wild guess based on nothing but the percentages.

  • PLEASE HELP!  Installation error :ORA-12154 - TNS

    Hi everyone,
    When I'm installing 9ilite and when it comes to the mobile server repository screen, it get an error message :"ORA-12154 - TNS: could not resolve service name".
    But my service name pass the test of TNSPING.
    Please help me and any suggestion is greatly apprieciated.
    Thank you very much!
    Tonie

    Check your tnsnames.ora and make sure that webtogo.world tns entry is correct. The entry should refer to the
    correct database service name.

  • ORA-12154: TNS:could not resolve the connect identifier specified Error in Integration Service Catalogs

    Hi guys,
    I tried to execute a package with Oracle Data Source from Integration Services Catalogs and I got the following error. 
    ORA-12154: TNS:could not resolve the connect identifier specified
    The package runs fine from the SSIS project but once I deploy to SSIS Catalog it fails to run. I need help!
    Thanks
    me

    Hello ,
    The ORA-12154 is a very common error, always related to your local copy of the tnsnames.ora file, your listener configuration and your database name aliases.
    Make sure that your listener is listening for the same service name that you are using. 
    Your service name might have an alias, so check for global (world) entries and local entries.  Check:
    $ORACLE_HOME/network/admin/tnsnames.ora 
    Check your global_name setting with this SQL:
    select * from global_name;
    Ref :
    http://www.dba-oracle.com/t_ora_12154_tns_resolve_service_name.htm
    Ahsan Kabir Please remember to click Mark as Answer and Vote as Helpful on posts that help you. This can be beneficial to other community members reading the thread. http://www.aktechforum.blogspot.com/

  • DNS Set Up system throw as ORA-12154; TNS :could not resolve the connect id

    Hi,
    While i'm creating DNS set up system throws below message
    unable to connect
    SQLState=08004
    DNS Set Up for instantclient(win32-10.2.0.4) system throw as ORA-12154; TNS :could not resolve the connect identified specified.
    operationg system:xp
    dir path:C:\Oracle\instantclient10_2
    TNSNAMES.ORA(C:\Oracle\instantclient10_2\NetWork\ADMIN) Contants
    YourTNSName =sankar
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT =1521))
    (CONNECT_DATA =
    (SID =sankar)
    (SERVER = DEDICATED)
    dir contains:
    sqresus.dll,
    sqresja.dll
    sqoras32.dll
    sqora32.dll
    oraociei10.dll
    oraocci10.dll
    orannzsbb10.dll
    ojdbc14.jar
    ocijdbc10.dll
    ociw32.dll
    oci.dll
    classes12.jar

    user7197586 wrote:
    Hi
    I have been created one DBLink it's created but when i am trying to access the data through the link it's raise error as
    "ORA-12154: TNS:could not resolve the connect identifier specified"
    CREATE
    PUBLIC DATABASE LINK
    Vrd_tcplink
    CONNECT TO
    "SAPVRD"
    IDENTIFIED BY
    "manager123"
    USING
    'VRD_TCP.WORLD'
    created this above dblink
    Kindly Suggest to wau out.
    Regards,
    Sachin
    When using a dblink, the database with the link is acting as a client to the remote database ... exactly like sqlplus running on the db server.
    read: http://edstevensdba.wordpress.com/2011/02/26/ora-12154tns-03505/ ora-12154tns-03505

  • Getting Error - CREATE_CASH : ORA-01403: no data found

    When i use api AR_RECEIPT_API_PUB.CREATE_CASH in loop then i get error 'CREATE_CASH : ORA-01403: no data found' for second record.
    AR_RECEIPT_API_PUB.CREATE_CASH(p_api_version => 1.0
    ,p_init_msg_list => fnd_api.g_true
    ,p_commit => fnd_api.g_true
    ,p_receipt_number => i_receipt_number
    ,p_receipt_date => TRUNC(SYSDATE)
    ,p_gl_date => TRUNC(SYSDATE)
    ,p_amount => i_receipt_amount
    ,p_currency_code => g_currency_code
    ,p_receipt_method_id => i_receipt_method_id
    ,p_customer_id => i_customer_id
    ,p_cr_id => l_cr_id
    ,p_org_id => i_org_id
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    I run it for different org. First org it's running fine but for second it's fail -
    Here is output -
    Start, Org ID - 84
    l_receipt_number - 43164
    l_receipt_amount - 74.55
    g_currency_code - USD
    l_receipt_method_id - 4000
    l_customer_id - 7040
    l_cr_id -
    l_return_status -
    l_msg_count -
    l_msg_data -
    Status - S
    Start, Org ID - 81
    l_receipt_number - 43166
    l_receipt_amount - 30
    g_currency_code - USD
    l_receipt_method_id - 4000
    l_customer_id - 7047
    l_cr_id -
    l_return_status -
    l_msg_count -
    l_msg_data -
    Error count/msg - 2-
    Error msg - CREATE_CASH : ORA-01403: no data found
    Error msg - ORA-01403: no data found in Package AR_RECEIPT_API_PUB Procedure Create_cash
    PLease help it's urgent

    Here is code which i am using...
    IF l_ar_pay_rec > 0 THEN
    l_receipt_number := ar_cash_receipts_s.NEXTVAL;
    FOR r_ar_org_records IN cr_ar_org_records
    LOOP
    IF r_ar_org_records.org_id = 81 THEN
    l_resp_id := 50677;
    ELSE
    l_resp_id := 50681;
    END IF;
    MO_GLOBAL.INIT('AR');
    MO_GLOBAL.SET_POLICY_CONTEXT('S',r_ar_org_records.org_id);
    FND_GLOBAL.APPS_INITIALIZE(g_user_id,l_resp_id,l_appl_id,0);
    DBMS_OUTPUT.PUT_LINE('User,Resp,App,Org - '||g_user_id||','||l_resp_id||','||l_appl_id||','||r_ar_org_records.org_id);
    -- Derive Receipt Method ID
    BEGIN
    SELECT receipt_method_id
    INTO l_receipt_method_id
    FROM ar_receipt_methods
    WHERE name = g_receipt_method;
    EXCEPTION
    WHEN OTHERS THEN
    g_ar_error := 'Y';
    g_ar_error_msg := g_ar_error_msg||'Receipet Method Not Found, ';
    FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Derive Receipt Method ID');
    END;
    -- Derive Customer ID
    BEGIN
    SELECT customer_id
    ,SUM(AMOUNT_PAID)
    INTO l_customer_id
    ,l_receipt_amount
    FROM xxar_third_party_validation
    WHERE raf_code = i_raf
    AND receipt_date = i_date_paid
    AND org_id = r_ar_org_records.org_id
    AND customer_id is not null
    GROUP BY customer_id;
    EXCEPTION
    WHEN OTHERS THEN
    g_ar_error := 'Y';
    g_ar_error_msg := g_ar_error_msg||' Customer ID Not Found, ';
    FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Customer ID');
    END;
    fnd_msg_pub.initialize;
    l_return_status := NULL;
    l_msg_count := NULL;
    l_msg_data := NULL;
    l_cr_id := NULL;
    g_currency_code := 'USD';
    DBMS_OUTPUT.PUT_LINE('Start, Org ID - '||r_ar_org_records.org_id);
    -- Create Cash for Customer
    DBMS_OUTPUT.PUT_LINE('l_receipt_number - '||l_receipt_number);
    DBMS_OUTPUT.PUT_LINE('l_receipt_amount - '||l_receipt_amount);
    DBMS_OUTPUT.PUT_LINE('g_currency_code - '||g_currency_code);
    DBMS_OUTPUT.PUT_LINE('l_receipt_method_id - '||l_receipt_method_id);
    DBMS_OUTPUT.PUT_LINE('l_customer_id - '||l_customer_id);
    DBMS_OUTPUT.PUT_LINE('l_cr_id - '||l_cr_id);
    DBMS_OUTPUT.PUT_LINE('l_return_status - '||l_return_status);
    DBMS_OUTPUT.PUT_LINE('l_msg_count - '||l_msg_count);
    DBMS_OUTPUT.PUT_LINE('l_msg_data - '||l_msg_data);
    AR_RECEIPT_API_PUB.CREATE_CASH(p_api_version => 1.0
    ,p_init_msg_list => fnd_api.g_true
    ,p_receipt_number => l_receipt_number
    ,p_receipt_date => TRUNC(SYSDATE)
    ,p_gl_date => TRUNC(SYSDATE)
    ,p_amount => l_receipt_amount
    ,p_currency_code => g_currency_code
    ,p_receipt_method_id => l_receipt_method_id
    ,p_customer_id => l_customer_id
    ,p_cr_id => l_cr_id
    ,p_org_id => r_ar_org_records.org_id
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    DBMS_OUTPUT.PUT_LINE('Status - '||l_return_status);
    IF l_return_status <> 'S' THEN
    g_ar_error := 'Y';
    DBMS_OUTPUT.PUT_LINE('Error count/msg - '||l_msg_count||'-'||l_msg_data);
    IF l_msg_count = 1 THEN
    g_ar_error_msg := g_ar_error_msg||l_msg_data;
    DBMS_OUTPUT.PUT_LINE('Error msg - '||l_msg_data);
    ELSIF l_msg_count > 1 THEN
    LOOP
    l_msg_data := fnd_msg_pub.get (fnd_msg_pub.g_next
    ,fnd_api.g_false);
    IF l_msg_data IS NULL THEN
    EXIT;
    END IF;
    g_ar_error_msg := g_ar_error_msg||l_msg_data;
    DBMS_OUTPUT.PUT_LINE('Error msg - '||l_msg_data);
    END LOOP;
    END IF;
    xxar_log_error(r_ar_org_records.record_id,SUBSTR(g_ar_error_msg,1,120));
    ELSE
    DBMS_OUTPUT.PUT_LINE('Status - '||l_return_status);
    FOR r_ar_records IN cr_ar_records(r_ar_org_records.org_id)
    LOOP
    fnd_msg_pub.initialize;
    l_return_status := NULL;
    l_msg_count := NULL;
    l_msg_data := NULL;
    l_cr_id := NULL;
    l_receipt_amount := r_ar_records.amount_paid;
    l_trx_number := r_ar_records.transaction_number;
    g_currency_code := r_ar_records.currency_code;
    l_receipt_date := SYSDATE;
    l_gl_date := SYSDATE;
    -- Apply payments for the RAF and Date Paid
    AR_RECEIPT_API_PUB.APPLY(p_api_version => 1.0
    ,p_init_msg_list => fnd_api.g_true
    ,p_commit => fnd_api.g_false
    ,x_return_status => l_return_status
    ,x_msg_count => l_msg_count
    ,x_msg_data => l_msg_data
    ,p_receipt_number => l_receipt_number
    ,p_trx_number => l_trx_number
    ,p_amount_applied => l_receipt_amount
    ,p_org_id => r_ar_org_records.org_id
    IF l_return_status <> 'S' THEN
    g_ar_error := 'Y';
    IF l_msg_count = 1 THEN
    g_ar_error_msg := g_ar_error_msg||l_msg_data;
    ELSIF l_msg_count > 1 THEN
    LOOP
    l_msg_data := fnd_msg_pub.get (fnd_msg_pub.g_next
    ,fnd_api.g_false);
    IF l_msg_data IS NULL THEN
    EXIT;
    END IF;
    g_ar_error_msg := g_ar_error_msg||l_msg_data;
    END LOOP;
    END IF;
    xxar_log_error(r_ar_records.record_id,SUBSTR(g_ar_error_msg,1,240));
    ELSE
    DBMS_OUTPUT.PUT_LINE('Sucess 2 - ');
    NULL;
    /* -- Call Adjustment API for Contractual Allowance
    IF NVL(r_ar_records.contractual_allowance_amt,0) > 0 THEN
    xxar_third_party_rcpt_adj(r_ar_records.record_id
    ,r_ar_records.transaction_number
    ,r_ar_records.contractual_allowance_amt
    ,i_user_id
    END IF; */
    END IF;
    END LOOP;
    END IF;
    DBMS_OUTPUT.PUT_LINE('Error Flag AR - '||g_ar_error);
    IF g_ar_error = 'Y' THEN
    xxar_log_error(r_ar_org_records.record_id,SUBSTR(g_ar_error_msg,1,240));
    END IF;
    END LOOP;

  • ORA-12154: TNS:could not resolve the connect identifier specified [10g XE]

    Greetings
    There are many topics on this issue over the internet but None of them addresses this issue properly, so I couldn't find a solution to the problem.
    I installed: Oracle Database 10g Express Edition
    After the installation was done, I opened SQL Command Line
    and I used the command "connect" to login
    I enter the username
    Then I entered the password
    After a couple of seconds I got the following ERROR message:
    ORA-12154: TNS:could not resolve the connect identifier specified
    Screenshot of the error:
    http://i35.tinypic.com/14o26g7.png
    I installed this version of Oracle on both Windows XP 32 bit and Windows 7 32 bit and I get the same error message when it tries to connect.
    Why doesn't Oracle work right after the installation?
    Are there any further steps that need to be done in order to make this work? If so I would really appreciate any step by step help, I've been stuck trying to find a solution for days.
    Edited by: user10192105 on Aug 22, 2010 7:34 PM

    >
    I wento to CMD, then I entered sqlplus / as sysdba and that just opened the SQL*Plus program in CMD (SQL>)
    But nevertheless I still need to login with a user name and password which and I tried and I got the same error message.
    >
    We're making progress, you'll be logging in soon....
    Get into SQL*Plus with the command I gave you, now type this:
    alter user <theusernameyouwant> identified by abc123;followed by (still in SQL*Plus):
    connectafter you type "connect", SQL*Plus will ask you for a user name and password. Use the same user name and password you used in the alter command.
    HTH,
    John.

  • ORA-12154 Could not to resolve service name

    I need some help. We have installed Oracle 8.1.6 for Windows NT on my PC one year ago. I also have Forms 5.0 on my PC that had connection service to Oracle database on Unix mashine. Now we don't have this database on Unix mashine so I desided to create a new small database on my PC in order to run some existing Forms. Using Oracle Net8 easy to config I created new service datamart/datamart@orc0 (It was possible only using IPC(local process) not TCP/IP). Now I can access my database using SQL*PLUS but I cannot to connect to this database using Forms. I have error message:
    ORA-12154 Could not to resolve service name. Any Ideas?
    Thanks in advance,
    Galia

    configure tnsnames.ora of home of developer.
    Atul

  • URGENT ::  ORA-12154: TNS:could not resolve service name

    Hi All,
    I am connecting to the db using oracle thin driver in java. I am invoking a SOAP call and after getting the response, i am inserting the response(gen. a pdf file) into my DB. I am using a static connection. I have to insert 130 pdf's in DB. After processing 120 pdf's, the following error has occurred,
    ERROR DBUtil - ORA-12154: TNS:could not resolve service name
    java.lang.NullPointerException
         at com.elsevier.cds.ew.DBUtil.insertPDF(Compiled Code)
         at com.elsevier.cds.ew.GenerateSoapRequest.generateSOAPCall(Compiled Code)
         at com.elsevier.cds.ew.EOffprintLoad.processPDFFiles1(Compiled Code)
         at com.elsevier.cds.ew.EOffprintLoad.init1(Compiled Code)
         at com.elsevier.cds.ew.EOffprintLoad.<init>(EOffprintLoad.java:138)
         at com.elsevier.cds.ew.EOffprintLoad.main(EOffprintLoad.java:987)
    ERROR GenerateSoapRequest -
    ERROR DBUtil - ORA-12154: TNS:could not resolve service name.
    The checked the oracle listener status. It was UP.
    Can anyone help me in this issue.
    Thanks,
    Rag

    Hello,
    Make sure that the service which you have specified in jdbc for making connection with oracle, exists in TNSNAMES.ORA file. You will find this file at different locations in 8i and above. So, better search for it. And add you service name in it. Example services is given in this file itself. So, take help from them.

  • ODBC-datasource generating ORA-12154 (possible listener issue)

    Hi,
    I am trying to configure ao ODBC-datasoure from a client (using instant client 11.2) to a 11.2g Oracle DB server. The database listener is configured to use a non standard port 1700 in this case.
    There is a firewall between the client and the server which is configured to allow connections to the database server on the specified port, when I use telnet from the client to the server, the connection opens on this port, but when I try to test the odbc-datasource I have configured ig et the error ORA-12154.
    The link below outlines the details of the error:
    http://ora-12154.ora-code.com/
    To the context should be added, that there is no problem to use SQL Plus from a computer behind the firewall to connect to the database server using the TNS name that is being used in the ODBC-datasource.
    I have tried to configure the odbc-datasource using both a tns_names.ora file, and also directly in the odbc-datasource using //[ip address] : [port]/TNS_NAME. Both ways of configuring the odbc-datasource generates the same error. I am currently suspecting that the error might be due to some sort of connection redirection on the part of the tns listener on the database server which triggers the firewall to terminate the connection. Could this be the case?
    Does anyone have any suggestions what this error might be caused by. Any suggestions on how to continue my troubleshooting would also be valueble. Further, what kind of configuration would need to be inplace, on the tns-listener / database server side to make this sort of configuration to work.
    Finally, I should also ask that I have tested the same ODBC-datasource configuration in a test system without any firewall inbetween, and that configuration works fine, so there seems to be no problem with the client software configuration per se.
    Any help is apprichated.
    /Eaglecoth

    Cabelcow wrote:
    I managed to solve this issue myself.
    Since there seems to be some problem locating the server I added "HOSTNAME" to the following line in the SQLNET.ORA file on the server:
    names.directory_path = (HOSTNAME,TNSNAMES)
    This solved the issue by using the following syntax in the ODBC Configuration:
    TNS Service Name: [ip-address]:[port]/[TNS NAME]
    Where the TNS_NAME should be that of the TNS_NAME for the database defined in the TNSNAMES_ORA at the server. Note that this value is case sensetivetnsnames.ora is ONLY used by the client side application. It is the tns complement to the local 'hosts' file. It is used by the CLIENT to resolve an alias (tns net service name) to a host (ultimately an ip), port, and service name. Your assertion that the tns_name should be ... hmm, now that I read that again, are you saying that the tnsnames entry on the client should match the one in the tnsnames file on the server? If so, yes and no. There is no technical requirement that they match. It is simply that it is usually assumed that the one on the server is correct and may be used as a model for what to do on the client. The server - acting as a server - doesn't even use the tnsnames.ora file. It exists on the server only to support any client process that may happen to be running on the same box as the db.
    Maybe this will help you understand the connections
    =================================
    ORA-12154: TNS:could not resolve the connect identifier specified
    This error means one thing, and one thing only. The client could not find the specified entry in the tnsnames.ora file being used.
    As a follow-on to that statement, remember that when you use a dblink, the database in which the link is defined is acting as a client to the database that is the target of the link. So in this case, the tnsnames.ora file on the host of your source should have an entry for your target db, as defined in the db_link.
    And for the umpteenth time ... this error has <b><i><u>NOTHING</u></i></b> to do with the status of a listener. The connection request never got far enough to reach a listener. If anyone tells you to check a listener in response to ora-12154, they are not paying attention, or do not understand how TNS works. This error is the equivalent of not being able to place a telephone call because you don't know the number of the party you want to reach. You wouldn't debug that situation by going to the other guy's house and testing his telephone, or by going to the phone company and testing the switchboard. And you don't debug a ORA-12154 by checking the listener. If I had a top ten list of "Incredibly Simple Concepts (tm)" that should be burned into the brain of everyone who claims to be an Oracle DBA, it would include "ORA-12154 Has Nothing To Do With The Listener".
    =================================
    A couple of important points.
    First, the listener is a server side only process. It's entire purpose in life is to receive requests for connections to databases and set up those connections. Once the connection is established, the listener is out of the picture. It creates the connection. It doesn't sustain the connection. One listener, with the default name of LISTENER, running from one oracle home, listening on a single port, will serve multiple database instances of multiple versions running from multiple homes. It is an unnecessary complexity to try to have multiple listeners or to name the listener as if it belongs to a particular database. That would be like the telephone company building a separate switchboard for each customer.
    Additional notes on the listener: One listener is capable of listening on multiple ports. But please notice that it is the listener using these ports, not the database instance. You can't bind a specific listener port to a specific db instance. Similarly, one listener is capable of listnening on multiple IP addresses (in the case of a server with multiple NICs) But just like the port, you can't bind a specific ip address to a specific db instance.
    Second, the tnsnames.ora file is a client side issue. It's purpose is for address resolution - the tns equivalent of the 'hosts' file further down the network stack. The only reason it exists on a host machine is because that machine can also run client processes.
    Assume you have the following in your tnsnames.ora:
    larry =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = curley)
      )Now, when you issue a connect, say like this:
    $> sqlplus scott/tiger@larrytns will look in your tnsnames.ora for an entry called 'larry'. Finding it, tns sends a request through the normal network stack to (PORT = 1521) on (HOST = myhost) using (PROTOCOL = TCP), asking for a connection to (SERVICE_NAME = curley).
    Where is (HOST = myhost) on the network? When the request gets passed from tns to the next layer in the network stack, the name 'myhost' will get resolved to an IP address, either via a local 'hosts' file, via DNS, or possibly other less used mechanisms. You can also hard-code the ip address (HOST = 123.456.789.101) in the tnsnames.ora.
    Next, the standard networking process delivers the message to port 1521 on myhost. Hopefully, there is a listener on myhost configured to listen on port 1521, and that listener knows about SERVICE_NAME = curley. If so, the listener will spawn a server process to act as the intermediary between your client and the database instance. Communication to the server process will be on a randomly selected available port. At that point the listener is out of the process and continues to user port 1521 to await other connection requests.
    What can go wrong?
    First, there may not be an entry for 'larry' in your tnsnames. In that case you get "ORA-12154: TNS:could not resolve the connect identifier specified" No need to go looking for a problem on the host, with the listener, etc. If you can't place a telephone call because you don't know the number (can't find your telephone directory (tnsnames.ora) or can't find the party you are looking for listed in it (no entry for larry)) you don't look for problems at the telephone switchboard.
    Maybe the entry for larry was found, but myhost couldn't be resolved to an IP address (say there was no entry for myhost in the local hosts file). This will result in "ORA-12545: Connect failed because target host or object does not exist"
    Maybe there was an entry for myserver in the local hosts file, but it specified a bad IP address. This will result in "ORA-12545: Connect failed because target host or object does not exist"
    Maybe the IP was good, but there is no listener running: "ORA-12541: TNS:no listener"
    Maybe the IP was good, there is a listener at myhost, but it is listening on a different port. "ORA-12560: TNS:protocol adapter error"
    Maybe the IP was good, there is a listener at myhost, it is listening on the specified port, but doesn't know about SERVICE_NAME = curley. "ORA-12514: TNS:listener does not currently know of service requested in connect descriptor"
    Third: If the client is on the same machine as the db instance, it is possible to connect without referencing tnsnames and without going through the listener.
    Now, when you issue a connect, say like this:
    $> sqlplus scott/tigertns will attempt to establish an IPC connection to the db instance. How does it know the name of the instance? It uses the current value of the enviornment variable ORACLE_SID. So...
    $> export ORACLE_SID=fred
    $> sqlplus scott/tigerIt will attempt to connect to the instance known as "fred". If there is no such instance, it will, of course, fail. Also, if there is no value set for ORACLE_SID, the connect will fail.
    check executing instances to get the SID
    [oracle@vmlnx01 ~]$ ps -ef|grep pmon|grep -v grep
    oracle    4236     1  0 10:30 ?        00:00:00 ora_pmon_vlnxora1set ORACLE_SID appropriately, and connect
    [oracle@vmlnx01 ~]$ export ORACLE_SID='vlnxora1
    [oracle@vmlnx01 ~]$ sqlplus scott/tiger
    SQL*Plus: Release 10.2.0.4.0 - Production on Wed Sep 22 10:42:37 2010
    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing optionsNow set ORACLE_SID to a bogus value, and try to connect
    SQL> exit
    [oracle@vmlnx01 ~]$ export ORACLE_SID=FUBAR
    [oracle@vmlnx01 ~]$ sqlplus scott/tiger
    SQL*Plus: Release 10.2.0.4.0 - Production on Wed Sep 22 10:42:57 2010
    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux Error: 2: No such file or directory
    Enter user-name: Now set ORACLE_SID to null, and try to connect
    [oracle@vmlnx01 ~]$ export ORACLE_SID=
    [oracle@vmlnx01 ~]$ sqlplus /scott/tiger
    SQL*Plus: Release 10.2.0.4.0 - Production on Wed Sep 22 10:43:24 2010
    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    ERROR:
    ORA-12162: TNS:net service name is incorrectly specifiedOk, that is how we get from the client connection request to the listener. What about the listener's part of all this?
    The listener is very simple. It's job is to listen for connection requests and make the connection (server process) between the client and the database instance. Once that connection is made, the listener is out of the picture. If you were to kill the listener, all existing connections would continue. The listener is configured with the listener.ora file, but if that file doesn't exist, the listener is quite capable of starting up with all default values. One common mistake with the listner configuration is to specify "HOST=localhost" or "HOST=127.0.01". This is a NONROUTABLE ip address. LOCALHOST and ip address 127.0.0.1 always mean "this machine on which I am sitting". So, all computers are known as "localhost" or "127.0.0.1". If you specify this address, the listener will only be capable of receiving requests from the machine on which it is running. If you specified that address in your tnsnames file - on a remote client machine - the request would be routed to the machine on which the requesting client resides. Probably not what you want.
    =====================================

Maybe you are looking for