Test a database link

Hi
I have a database link which sometimes get problems of disconnection. Generally it works fine. I want to have a method to test the functioning of the database link through PL/SQL or sqlplus command.
Thanks

user2931261 wrote:
Hi
I have a database link which sometimes get problems of disconnection. Generally it works fine. I want to have a method to test the functioning of the database link through PL/SQL or sqlplus command.
Thanksyou can check count(*) of any table present in another database schema.
eg:- select count(*) from test_tb@db_link_name;
SQL> select name from v$database;
NAME
DBDEMO
SQL> create user testing identified by passwd;
User created.
SQL> grant connect,resource to testing;
Grant succeeded.
SQL> conn testing/passwd;
Connected.
SQL> create table test_tb (id number);
Table created.
SQL> insert into test_tb values(123);
1 row created.
SQL> /
1 row created.
SQL> commit;
Commit complete.
SQL> select count(*) from test_tb;
  COUNT(*)
         2
SQL>
on dblink created machine:-
SQL> select name from v$database;
NAME
DB2
SQL> create user nic identified by nic;
User created.
SQL> grant connect,resource, create database link to nic;
Grant succeeded.
SQL> conn nic/nic;
Connected.
SQL> create database link test_db_link connect to testing identified by passwd using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dbdemo)))
  2  ';
Database link created.
SQL> select count(*) from test_tb@test_db_link;
  COUNT(*)
         2
SQL>

Similar Messages

  • Database link from Oracle8i to Oracle9i

    Hi,
    I am trying to create a database link from an oracle 8i database to connect to an oracle 9i database ... When testing the connection , I always receive an error "The Database link is not active"
    Notes
    1- Creating a database link that connects from the same 8i database to another 8i database succeeds. This gave me the impression that it is a compatibility problem but I am not sure.
    2- I changed the initialization parameter
    global_names = falseand restarted the Oracle database
    3- the 2 databases are on the same domain
    Did anyone pass through this problem before ??
    thanks

    Well, I was testing the database link via DBA studio and there was no ora error associated with the message.
    A friend helped me to identify and sove the problem. here is what he did.
    Lets assume that the oracle8i database called Ora8i
    and the oracle9i database called Ora9i
    and that the network domain name is OraTest.com
    When i select * from global_name; on both databases
    Ora8i database return ==> ora8i
    Ora9i database return ==> Ora9i.us.oracle.com
    We then execute the following statement on Ora9i database
    alter database rename global_name to Ora9i.OraTest.com;
    Testing the database link after that went fine.
    Thanks

  • Unable to access table even after creating Database link

    Hi
    I have created a data base link.It was created properly.
    The Syantax that I have used is follows:
    create database link X_link connect to User1 identified by User1 using 'Other_Database'
    And on running the query:
    select count(*) from table1@X_link
    I am getting the error as follows:
    TNS could not resolve the connect identifier specified... TNS: could not resolve the connect identifier specified.
    Please tell me where is the problem?
    Thanks in Advance

    Your database link does not work because the entry you used does not exist in the tnsnames.ora in the database $ORACLE_HOME.
    Login to the database server, set the environment, and try to tnsping the entry you used for the database link, then fix the tnsnames.ora file (probably in $ORACLE_HOME/network/admin)
    You can test a database link using :-
    select sysdate from dual@link;

  • Execute stored procedures + database link

    Hi,
    I have a stored procedure named "proc1" in the "user1" schema in the "db1" database.
    I have another database "db2".
    I have a public database link named "db2_to_db1", which connects from the "db2" database to "db1" database connecting with the user "user1" from "db1". I tested the database link.... is OK.
    I have a public synonym for "user1"."proc1"@"db1" named "p_proc1"
    So, I want to execute the stored procedure "proc1" from "db2".
    I tried this from Forms and SQLPLUS...
    (1)
    DECLARE
    BEGIN
    p_proc1(...,...,...);
    END;
    (2)
    DECLARE
    BEGIN
    user1.p_proc1(...,...,...)@db2_to_db1;
    END;
    (2)
    DECLARE
    BEGIN
    p_proc1(...,...,...)@db2_to_db1;
    END;
    .........but no one of those codes are right, I got an error like this:
    ORA-06550: line 12, column 3:
    PLS-00201: identifier 'SDI_CON_TRAFO_SID' must be declared
    Please I need some help....
    What can I do in order to execute a stored rpocedure of other database with a databse link??????
    I almost forget.... I already checked the "execute" privilegies over the stored procedure.... and is OK.

    What is the identifier 'SDI_CON_TRAFO_SID'? It sounds like you have a problem with dependencies rather than with how to call it.

  • 20 Index Restriction on Remote Tables (i.e. using Database Links)

    The Oracle Database Administrator's Guides for 10g and 11g document a performance restriction that "No more than 20 indexes are considered for a remote table." If I go back to the 8i documentation it says "In cost-based optimization, no more than 20 indexes per remote table are considered when generating query plans. The order of the indexes varies; if the 20-index limitation is exceeded, random variation in query plans may result."
    Does anyone have more details on this performance restriction? In particular I am trying to answer these questions:
    1) Are the 20 indexes which are considered by the CBO still random in 10g?
    2) Can I influence which indexes are considered with index hints or will my hints only be considered if they are for one of the "random" 20 indexes which are being considered by the CBO?
    3) Are there any other approaches or work-arounds to this restriction assuming you need to select from a large remote table with more than 20 indexes (and need to perform the selection using 1 of those indexes to get adequate performance) or do we need to abandon database links for this table?
    Thanks in advance for your input.

    So, here's my simple test.
    SQL>
    SQL> create table gurnish.indexes20plus ( n1 number, n2 number, n3 number, n4 number, n5 number, n6 number, n7 number,
    2 n8 number, n9 number, n10 number, n11 number, n12 number, n13 number, n14 number, n15 number, n16 number,
    3 n17 number, n18 number, n19 number, n20 number, n21 number, n22 number, n23 number, n24 number,
    4 n25 number, n26 number, n28 number);
    create index xin1 on indexes20plus (n1);
    Table created.
    SQL> SQL> create index xin2 on indexes20plus (n2);
    create index xin3 on indexes20plus (n3);
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL> create index xin4 on indexes20plus (n4);
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL> create index xin5 on indexes20plus (n5);
    create index xin6 on indexes20plus (n6);
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL> create index xin7 on indexes20plus (n7);
    Index created.
    SQL> SQL> create index xin8 on indexes20plus (n8);
    Index created.
    SQL> SQL> create index xin9 on indexes20plus (n9);
    Index created.
    SQL>
    SQL> create index xin10 on indexes20plus (n10);
    Index created.
    SQL> SQL> create index xin11 on indexes20plus (n11);
    create index xin12 on indexes20plus (n12);
    create index xin13 on indexes20plus (n13);
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL> create index xin14 on indexes20plus (n14);
    Index created.
    SQL> SQL> create index xin15 on indexes20plus (n15);
    Index created.
    SQL>
    SQL> create index xin16 on indexes20plus (n16);
    Index created.
    SQL>
    SQL> create index xin17 on indexes20plus (n17);
    Index created.
    SQL> SQL> create index xin18 on indexes20plus (n18);
    Index created.
    SQL> SQL> create index xin19 on indexes20plus (n19);
    Index created.
    SQL> SQL> create index xin20 on indexes20plus (n20);
    Index created.
    SQL> SQL> create index xin21 on indexes20plus (n21);
    Index created.
    declare
    i number;
    begin
    for i in 1..100
    loop
    dbms_random.seed(i+100);
    insert into indexes20plus values (dbms_random.value(1,5),dbms_random.value(1,21),dbms_random.RANDOM, dbms_random.RANDOM,dbms_random.value(1,20),
    dbms_random.value(1,4),dbms_random.value(1,6), dbms_random.value(1,7),dbms_random.value(1,9),dbms_random.value(1,10),
    dbms_random.value(1,11),dbms_random.value(1,12),dbms_random.value(1,13),dbms_random.value(1,14),dbms_random.value(1,1),
    dbms_random.value(1,1),dbms_random.value(1,19),dbms_random.value(1,122),dbms_random.value(1,20),dbms_random.value(1,20)
    ,dbms_random.value(4,20),dbms_random.value(1,20),dbms_random.value(1,20),dbms_random.value(1,20),dbms_random.value(1,20)
    ,dbms_random.value(4,20),dbms_random.value(4,20));
    end loop;
    commit;
    end;
    SQL> set autotrace traceonly
    SQL> l
    1* select * from gurnish.indexes20plus@lvoprds where n1 = 4
    SQL> /
    no rows selected
    Execution Plan
    Plan hash value: 441368878
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU
    )| Time | Inst |
    | 0 | SELECT STATEMENT REMOTE | | 1 | 351 | 1 (0
    )| 00:00:01 | |
    | 1 | TABLE ACCESS BY INDEX ROWID| INDEXES20PLUS | 1 | 351 | 1 (0
    )| 00:00:01 | LVPRD |
    |* 2 | INDEX RANGE SCAN | XIN1 | 1 | | 1 (0
    )| 00:00:01 | LVPRD |
    Predicate Information (identified by operation id):
    2 - access("A1"."N1"=4)
    Note
    - fully remote statement
    - dynamic sampling used for this statement
    Statistics
    0 recursive calls
    0 db block gets
    0 consistent gets
    0 physical reads
    0 redo size
    1897 bytes sent via SQL*Net to client
    481 bytes received via SQL*Net from client
    1 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    0 rows processed
    SQL> select * from gurnish.indexes20plus@lvoprds where n21 = 4;
    no rows selected
    Execution Plan
    Plan hash value: 2929530649
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU
    )| Time | Inst |
    | 0 | SELECT STATEMENT REMOTE | | 1 | 351 | 1 (0
    )| 00:00:01 | |
    | 1 | TABLE ACCESS BY INDEX ROWID| INDEXES20PLUS | 1 | 351 | 1 (0
    )| 00:00:01 | LVPRD |
    |* 2 | INDEX RANGE SCAN | XIN21 | 1 | | 1 (0
    )| 00:00:01 | LVPRD |
    Predicate Information (identified by operation id):
    2 - access("A1"."N21"=4)
    Note
    - fully remote statement
    - dynamic sampling used for this statement
    Statistics
    1 recursive calls
    0 db block gets
    0 consistent gets
    0 physical reads
    0 redo size
    1897 bytes sent via SQL*Net to client
    481 bytes received via SQL*Net from client
    1 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    0 rows processed
    SQL>

  • Interactive report performance problem over database link - Oracle Gateway

    Hello all;
    This is regarding a thread Interactive report performance problem over database link that was posted by Samo.
    The issue that I am facing is when I use Oracle function like (apex_item.check_box) the query slow down by 45 seconds.
    query like this: (due to sensitivity issue, I can not disclose real table name)
    SELECT apex_item.checkbox(1,b.col3)
    , a.col1
    , a.col2
    FROM table_one a
    , table_two b
    WHERE a.col3 = 12345
    AND a.col4 = 100
    AND b.col5 = a.col5
    table_one and table_two are remote tables (non-oracle) which are connected using Oracle Gateway.
    Now if I run above queries without apex_item.checkbox function the query return or response is less than a second but if I have apex_item.checkbox then the query run more than 30 seconds. I have resolved the issues by creating a collection but it’s not a good practice.
    I would like to get ideas from people how to resolve or speed-up the query?
    Any idea how to use sub-factoring for the above scenario? Or others method (creating view or materialized view are not an option).
    Thank you.
    Shaun S.

    Hi Shaun
    Okay, I have a million questions (could you tell me if both tables are from the same remote source, it looks like they're possibly not?), but let's just try some things first.
    By now you should understand the idea of what I termed 'sub-factoring' in a previous post. This is to do with using the WITH blah AS (SELECT... syntax. Now in most circumstances this 'materialises' the results of the inner select statement. This means that we 'get' the results then do something with them afterwards. It's a handy trick when dealing with remote sites as sometimes you want the remote database to do the work. The reason that I ask you to use the MATERIALIZE hint for testing is just to force this, in 99.99% of cases this can be removed later. Using the WITH statement is also handled differently to inline view like SELECT * FROM (SELECT... but the same result can be mimicked with a NO_MERGE hint.
    Looking at your case I would be interested to see what the explain plan and results would be for something like the following two statements (sorry - you're going have to check them, it's late!)
    WITH a AS
    (SELECT /*+ MATERIALIZE */ *
    FROM table_one),
    b AS
    (SELECT /*+ MATERIALIZE */ *
    FROM table_two),
    sourceqry AS
    (SELECT  b.col3 x
           , a.col1 y
           , a.col2 z
    FROM table_one a
        , table_two b
    WHERE a.col3 = 12345
    AND   a.col4 = 100
    AND   b.col5 = a.col5)
    SELECT apex_item.checkbox(1,x), y , z
    FROM sourceqry
    WITH a AS
    (SELECT /*+ MATERIALIZE */ *
    FROM table_one),
    b AS
    (SELECT /*+ MATERIALIZE */ *
    FROM table_two)
    SELECT  apex_item.checkbox(1,x), y , z
    FROM table_one a
        , table_two b
    WHERE a.col3 = 12345
    AND   a.col4 = 100
    AND   b.col5 = a.col5If the remote tables are at the same site, then you should have the same results. If they aren't you should get the same results but different to the original query.
    We aren't being told the real cardinality of the inners select here so the explain plan is distorted (this is normal for queries on remote and especially non-oracle sites). This hinders tuning normally but I don't think this is your problem at all. How many distinct values do you normally get of the column aliased 'x' and how many rows are normally returned in total? Also how are you testing response times, in APEX, SQL Developer, Toad SQLplus etc?
    Sorry for all the questions but it helps to answer the question, if I can.
    Cheers
    Ben
    http://www.munkyben.wordpress.com
    Don't forget to mark replies helpful or correct ;)

  • PL/SQL :ORA-04052 with Database link

    i have created a database link in my producation database as following
    CREATE PUBLIC DATABASE LINK <NAME>
    CONNECT TO <USER>
    IDENTIFIED BY <P/W>
    USING <CONNECT STRING OF TARGET DATABASE
    oracle version 9.0.2.8
    OS : Windows 2003 EE R2 SP2
    Using oracle failsafe 3.3.4 with windows cluster
    Problem Description :
    whenever i run my pl/sql procecdure to pull the data from the target database i get the following error
    ERROR at line 3
    ORA-06550:line 3 column 2
    PL/SQL : ORA-04052: error occured when looking up remote object _<SCHEMA>.<TABLE>@<DATABASE LINKE NAME>_
    ORA-00604 : ERROR occured at recursive SQL level 1
    ORA-03106 : fatal tow-task communication protocol error
    ORA-02063: preceding line from <DATABASE LINK NAME>
    I have tested the same way in the test environment the same oracle version as well the OS but without oracle failsafe and windows cluster
    the script goes smoothly with out any errors.
    i have google and checked the OTN for all available solutions but still nothing its not getting throw
    i will be very thankful for your replys and solutions
    any farther clarification i am ready
    thanks in advance

    Hi,
    This forum is for issues connecting to non-Oracle databases. As the problem is using PL/SQL to connect to another Oracle database then it would be better to post a thread in the PL/SQL forum -
    PL/SQL
    If you are trying to connect to a non-Oracle database then please give us the details of which non-Oracle database and the software you are trying to use to connect.
    Regards,
    Mike

  • How to fetch,update,insert the data using database link on diff. servers

    I am using two oracle server.
    1st) Oracle 9i ( Server1 )
    2nd) Oracle 10g ( Server2 )
    3) Forms 6i
    I have created a database link on Server 1 for connecting to Server 2.
    I written a piece of code which will be executed in Forms 6i and is connected to Server1.
    The piece of code brings the data from SErver2 via cursor and I try to insert / update the relevant records
    in my Server1 database users.
    The Insert/Update runs sucessfully but at the time of commit I get the following errors
    in Forms ORA-01041:internal error. hostdef does not exist.
    Then it forcefully rollback the data and come out of the application.
    contact :email-id : [email protected]

    Suggest you test your code from sqlplus before running from forms.
    Start by testing a simple "select sysdate from dual@<database link>;" then test select from application_table@<database link> then test the insert/update code. After it works from sqlplus, then try it from forms.

  • How to Create Public database link in oracle 9i?

    Friends,
    OS: RHEL AS 3
    DB: 9iR2
    database name 1 = nubul
    database name 2 = test
    in the 'nubul' database server using system user.
    i created a database link to connect the 'test' database
    sql> create public database link test using 'test';
    database link created.
    then i logged in as normal user....
    sql> select count(*) from employee@test
    Error at line 1:
    ORA-12154: TNS: could not resolve service name
    where i am making mistake?
    i gave the linkname as my remote database name.
    am i have to make any entry in the tnsnames.ora?
    thanks & regards

    You have to remember that when you access a dblink, the database where the link is defined is acting as a client to the database to which the link points ... exactly the same as if you you were using sqlplus on the machine hosting the db where the link is defined. In other words, given:
    Host 'Host-src', with database 'db-src', with a dblink 'lk_target'
    Host 'host-trgt', with database 'db-trgt'
    When you connect to db-src and access lk-target, db-src is now acting as a client to db-trgt. Exactly as if you had opened sqlplus on host-src and connected directly to db-trgt. So, given the above scenario
    host-src$> sqlplus scott/tiger@db-src
    sql> select * from emp@lk_target;when you execute that SELECT to the link, the same tns considerations are in effect as if you had
    host-src$> sqlplus scott/tiger@db-trgtThe same tnsnames.ora entry, on the source machine, is required for both.

  • Failed to create Database Link in OWB 9.2 for remote SQL Server

    Hi,
    I have to create Database link for connecting to SQL server in a different machine.I am using OWB 9.2 and XP.
    Dataserver is the machine name which is running SQL Server
    I included follwing lines in TNSNAMES.ORA file
    hsodbc.world =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dataserver)(PORT = 1433)
    (CONNECT_DATA = (SID=hsodbc.world)
    (HS =OK)
    I included follwing lines in Listener.ORA file
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dataserver)(PORT = 1433)
    (SID_DESC=
    (SID_NAME=hsodbc.world)
    (ORACLE_HOME=C:\ora92)
    (PROGRAM=hsodbc)
    I included follwing lines in inithsodbc.ORA file
    HS_FDS_CONNECT_INFO = testdsn
    HS_FDS_TRACE_LEVEL = 0
    While creating new database link I gave the follwing values
    DB Link Name : Mylink
    SQL * Net Connect String: hsodbc
    User Name: sa
    password:<my password>
    Then clicked "Create and Test" button to get the follwing error message
    Testing...
    Failed.
    ORA-12154 TNS:could not resolve service name
    *Cause: The service name specified is not defined correctly in the TNSNAMES.ORA file
    *Action: Make the following checks and correct the error:
    - Verify that a TNSNAMES.ORA file exists on your repository server
    in the proper place and is accessible. See the operating
    system specific manual for details on the required name and location.
    - Check to see that the service name exists in one of the
    TNSNAMES.ORA files and add it if necessary.
    - Make sure there are no syntax errors in the file.
    Particularly look for unmatched parentheses or stray characters.
    Any error in a TNSNAMES.ORA file makes it unusable. See
    Chapter 4 in the SQL*Net V2 Administrator's Guide. If possible,
    regenerate the configuration files using the Oracle Network Manager.
    Is there anything wrong in my configuration. Please help me in getting out of this problem.
    Thanks in advance
    Andy

    Hi Mark,
    Thanks Mark.I did the changes in the specified .ora file but now it shows a different error message.
    The error is
    Testing...
    Failed.
    Cwm Error Message: SQL Exception
    Cwm Error: SQL Exception
    Class Name: CacheMediator
    Method Name: getDDEntryFromDB
    Repository Error Message: ORA-28545: error diagnosed by Net8 when connecting to an agent
    NCRO: Failed to make RSLV connection
    ORA-02063: preceding 2 lines from MYLINK
    Query: select 1 from dual@MyLink
    I got the same error when i tried manually in sql plus.
    Please help me in getting out of thid problem
    Thanks in advance
    Andy

  • Database link from Oracle to MySQL

    I tried and googled an tried again...but I can't get this to work. So if you can spare a moment, please help me out (or try to ;-) ).
    Environment:
    The Oracle Developer Days Virtual Box image, so that's 11gR2 EE on OEL. MySQL 5.1.51-community + mysql-connector-odbc-5.1.7-0.i386.rpm
    1. Created a database called test in MySQL, with a user "oracle" and a password "123".
    2. Created the file /home/oracle/.odbc.ini with as contents:
    [ODBC Data Sources]
    myodbc5 = MySQL ODBC 5.1.7 Driver DSN
    [myodbc5]
    DRIVER      = /usr/lib/libmyodbc5.so
    DESCRIPTION = MySQL ODBC 5.1.7 Driver DSN
    SERVER      = 127.0.0.1
    PORT        = 3306
    USER        = oracle
    PASSWORD    = 123
    DATABASE    = test
    CHARSET     = latin13. Created the file /home/oracle/app/oracle/product/11.2.0/dbhome_1/hs/admin/initmyodbc5.ora
    # HS init parameters
    HS_FDS_CONNECT_INFO=myodbc5
    HS_FDS_TRACE_LEVEL=DEBUG
    HS_FDS_SHAREABLE_NAME=/usr/lib/libmyodbc5.so
    HS_LANGUAGE=AMERICAN.AMERICA.WE8ISO8859P15
    HS_FDS_SUPPORT_STATISTICS=FALSE
    # HS_NLS_NCHAR=AL32UTF8
    # ODBC specific environment variables
    set ODBCINI=/home/oracle/.odbc.ini
    set ODBCINSTINI=/home/oracle/.odbc.ini
    set LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/hs/lib:/usr/lib
    # Environment variables required for the non-Oracle system
    set HOME=/home/oracle4. Added to tnsnames.ora :
    dg4odbc =
      (DESCRIPTION =
        (ADDRESS_LIST =
           (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA = (SID=myodbc5))
        (HS=OK)
      )5. Added to listener.ora (and restarted it) :
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
          (SID_NAME = myodbc5)
          (PROGRAM = dg4odbc)
          (ENVS ="LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/hs/lib:/usr/lib:/lib")
      )6. Ran some tests:
    a. isql dg4odbc -> Connected!
    b. tnsping dg4odbc -> OK
    c. lsnrctl status -> Service "myodbc5" has 1 instance(s). Instance "myodbc5", status UNKNOWN, has 1 handler(s) for this service...
    d. in SQLPLUS (as system): create public database link mysql connect to "oracle" identified by "123" using 'dg4odbc';
    e. select * from test@mysql ("test" is a simple table I created in the MySQL DB) returns
    ERROR at line 1:
    ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
    ORA-02063: preceding line from MYSQL
    When I look in the trace file (in $ORACLE_HOME/hs/log) I see at the bottom of the file:
    HOSGIP for "HS_FDS_SHAREABLE_NAME" returned "/usr/lib/libmyodbc5.so"
    Entered hgolofns at 2010/11/02-14:10:54
    hoaerr:28500
    Exiting hgolofns at 2010/11/02-14:10:54
    Failed to load ODBC library symbol: /usr/lib/libmyodbc5.so(SQLAllocHandle)
    Exiting hgolofn, rc=28500 at 2010/11/02-14:10:54
    Exiting hgoinit, rc=28500 with error ptr FILE:hgoinit.c LINE:337 FUNCTION:hgoinit() ID:Loading ODBC aray of function ptrs
    Entered hgoexit
    HS Gateway:  NULL connection context at exit
    Exiting hgoexit, rc=0 with error ptr FILE:hgoexit.c LINE:108 FUNCTION:hgoexit() ID:Connection contextAfter Googling around I found out that all files are 32-bit (was on issue somewhere else)...and now I am stuck!
    Any ideas, tips etc on how to proceed???
    TIA
    Roel

    The ODBC Trace contains:
    [ODBC][3331][1288788738.867244][__handles.c][459]
                    Exit:[SQL_SUCCESS]
                            Environment = 0x92b0d08
    [ODBC][3331][1288788738.869179][SQLSetEnvAttr.c][189]
                    Entry:
                            Environment = 0x92b0d08
                            Attribute = SQL_ATTR_ODBC_VERSION
                            Value = 0x3
                            StrLen = -6
    [ODBC][3331][1288788738.869204][SQLSetEnvAttr.c][356]
                    Exit:[SQL_SUCCESS]
    [ODBC][3331][1288788738.879396][SQLAllocHandle.c][375]
                    Entry:
                            Handle Type = 2
                            Input Handle = 0x92b0d08
    [ODBC][3331][1288788738.879422][SQLAllocHandle.c][493]
                    Exit:[SQL_SUCCESS]
                            Output Handle = 0x92c2940
    [ODBC][3331][1288788738.879449][SQLSetConnectAttrW.c][332]
                    Entry:
                            Connection = 0x92c2940
                            Attribute = SQL_ATTR_AUTOCOMMIT
                            Value = (nil)
                            StrLen = -5
    [ODBC][3331][1288788738.879467][SQLSetConnectAttrW.c][616]
                    Exit:[SQL_SUCCESS]
    [ODBC][3331][1288788738.879694][SQLDriverConnectW.c][290]
                    Entry:
                            Connection = 0x92c2940
                            Window Hdl = (nil)
                            Str In = [DNdm;I=eoPDdm][length = 26]
                            Str Out = 0x92b1cf8
                            Str Out Max = 1024
                            Str Out Ptr = 0xbfe66270
                            Completion = 0
    [ODBC][3331][1288788738.879718][SQLDriverConnectW.c][500]Error: IM002
    [ODBC][3331][1288788738.879810][SQLGetDiagRecW.c][508]
                    Entry:
                            Connection = 0x92c2940
                            Rec Number = 1
                            SQLState = 0xbfe65f70
                            Native = 0xbfe65f90
                            Message Text = 0xbfe65d38her
                            Buffer Length = 510
                            Text Len Ptr = 0xbfe65fa8
    [ODBC][3331][1288788738.879835][SQLGetDiagRecW.c][550]
                    Exit:[SQL_SUCCESS]
                            SQLState = IM002
                            Native = 0xbfe65f90 -> 0
                            Message Text = [[unixODBC][Driver Manager]Data source name not found, and no default driver specified]
    [ODBC][3331][1288788738.879865][SQLGetDiagRecW.c][508]
                    Entry:
                            Connection = 0x92c2940
                            Rec Number = 2
                            SQLState = 0xbfe65f70
                            Native = 0xbfe65f90
                            Message Text = 0xbfe65d38
                            Buffer Length = 510
                            Text Len Ptr = 0xbfe65fa8
    [ODBC][3331][1288788738.879882][SQLGetDiagRecW.c][550]
                    Exit:[SQL_NO_DATA]
    [ODBC][3331][1288788738.879942][SQLDisconnect.c][208]
                    Entry:
                            Connection = 0x92c2940
    [ODBC][3331][1288788738.879958][SQLDisconnect.c][237]Error: 08003
    [ODBC][3331][1288788738.880005][SQLFreeHandle.c][286]
                    Entry:
                            Handle Type = 2
                            Input Handle = 0x92c2940
    [ODBC][3331][1288788738.880023][SQLFreeHandle.c][337]
                    Exit:[SQL_SUCCESS]
    [ODBC][3331][1288788738.903716][SQLFreeHandle.c][219]
                    Entry:
                            Handle Type = 1
                            Input Handle = 0x92b0d08So there is an error (IM002) in there, saying it can't find the Data Source Name..
    Some addtional tests I ran:
    dltest /usr/local/lib/libodbc.so returns SUCCESS: Loaded /usr/local/lib/libodbc.so
    ldd /usr/local/lib/libodbc.so returns
    linux-gate.so.1 => (0x00a44000)
    libdl.so.2 => /lib/libdl.so.2 (0x00a22000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00110000)
    libc.so.6 => /lib/libc.so.6 (0x005b1000)
    /lib/ld-linux.so.2 (0x00736000)
    So it can find and load the necessary libraries (afaik)..
    So any ideas left??

  • Database Link in the OWB

    We are trying to deploy a map that needs to use a database link to access the source table in another server. We could create database link on OWB and import tables. When we deployed it we receive the first error "VLD-2771: System privileges may not allow extraction from source PROD_TAX_AVG" and after "table or view does not exists". The privileges was granted and we can test the access in SQLPLUS using the database link created.
    Anybody knows this issue ?
    Thanks,
    Ricardo

    Hi Ricardo,
    The message "VLD-2771: System privileges may not allow extraction from source PROD_TAX_AVG" is merely a warning, this can (generally) be ignored.
    After deploying your mapping check the PL/SQL code deployed and try to identify where the problem is.
    I have encountered the issue before where the schema name is configured for the mapping overriding the location defined parameters.
    To check this in the Design repository, right-click the mapping and click 'Configure'.
    Expand 'Sources and Targets' and check the schema name is not hard-coded.
    Cheers.

  • ORA-12154 when using Database Link

    We're running 11r2 on our servers. I have a primary db and a standby db, using Data Guard. The standby is open for read-only querying. We are not using ASM.
    The primary (and thus the standby) have a PUBLIC database link to a third db server.
    When I run a query against the database link on the primary: select * from test@MyDBlink; Everything works fine.
    When I run the same query against the database link on the standby: select * from test@MyDBlink; I get ORA-12154: TNS:could not resolve the connect identifier.
    I check that the db link exists on the standby. It does.
    I go to command prompt on the standby and run "tnsping MyDBlink". It executes fine. It says "Used TNSNAMES adapater to resolve the alias" and sure enough, MyDBlink is referenced in the TNSNAMES.ORA.
    I also run "tnsping IP-of-MyDBlink" to doublecheck. No issues.
    What is going on that is blocking the db link on the standby? Many reports utilize that standby and I'd hate to deny them the functionality of a db link.
    Thanks

    893968 wrote:
    We're running 11r2 on our servers. I have a primary db and a standby db, using Data Guard. The standby is open for read-only querying. We are not using ASM.
    The primary (and thus the standby) have a PUBLIC database link to a third db server.
    When I run a query against the database link on the primary: select * from test@MyDBlink; Everything works fine.
    When I run the same query against the database link on the standby: select * from test@MyDBlink; I get ORA-12154: TNS:could not resolve the connect identifier.
    I check that the db link exists on the standby. It does.
    I go to command prompt on the standby and run "tnsping MyDBlink". It executes fine. It says "Used TNSNAMES adapater to resolve the alias" and sure enough, MyDBlink is referenced in the TNSNAMES.ORA.
    I also run "tnsping IP-of-MyDBlink" to doublecheck. No issues.
    What is going on that is blocking the db link on the standby? Many reports utilize that standby and I'd hate to deny them the functionality of a db link.
    ThanksMost people with this problem don't understand that the dblink is just another client, no different than sqplus running on the same machine - and therefore the link uses the tnsames in the ORACLE_HOME of the database containing the link. But it seems from the steps you've described that you've grasped that. The only thing I can think of off the top of my head is when you try sqlplus from the standby server you are hitting a different tnsnames than the one the database is using.

  • ORA-01406 error encountered when using database link

    I am moving data between two different databases using a database link on Oracle 8.1.5. The database statement looks like:
    insert into TABLE@DATABASELINK
    (COLUMNS)
    select (COLUMNS) from TABLE
    One of the database columns is defined as varchar2(4000) on both the source and target database tables. When the data in this column on the source database is greater than 2000 characters, the database query generates the message:
    ORA-01406: fetched column value was truncated
    I have verified that the target column is defined as varchar2(4000), and have also verified that it is this varchar2(4000) column that is causing the problem. I have also tested out that this error only occurs when the varchar field is more than 2000 characters; if I remove characters so that the source field is less than or equal to 2000 characters, this error is no longer generated and the data is inserted to the target database table.
    Is this a limit with database links or some other database parameter that is not set up correctly?
    Thanks...Theresa Tucci

    Could you change the following entry in your 'sqlnet.ora' file and try?
    SQLNET.AUTHENTICATION_SERVICES = (NONE)

  • Using Database link to go from one database to another

    Hi all,
    I am trying to create a SQL-query which connects to two
    different databases.
    I have created a Database link, which points from on database to
    the other, and have supplied the database name, username and
    password.
    when I try to run following query I get error ORA:02085, MY_LINK
    is connecting to SIEBN1S.(domain).com
    SELECT COUNT(*) FROM MY_TABLE@MYLINK;
    additional info:
    2 databases are exact copies on different servers (SIEBN1S and
    N1SSIEB)
    the MY_TABLE exists in both databases and I have rights on it in
    both, I can separately connect to both databases and look into
    MY_TABLE
    I have created the database link using following statement (in
    the N1SSIEB db):
    create database link MYLINK connect to <usr> identified by <pwd>
    using 'SIEBN1S'
    any help is welcome

    You have set GLOBAL_NAMES to TRUE in your init.ora file. This
    means your database link must have the same name as the database
    you want to connect to ie SIEBN1S.(domain).com.
    alternatively you can change GLOBAL_NAMES. to test this try
    'ALTER SESSION SET GLOBAL_NAMES=FALSE'.
    hth, APC

Maybe you are looking for