DB links Oracle to Sql server

Hi All,
I am planning to create DB link from oracle to sql server 2005.
Please provide the doc for creating db link from oracle to sql server 2005 and also let me know is their any freeware to do the same.
Regards

It would be helpful if you could mention which platform your Oracle database is running on and which word size the OS is (32/64bit).
The free solution would be to use the Database Gateway for ODBC (=Dg4ODBC) and install it on a MS Windows platform or on Linux 64bit as for these 2 platforms Microsoft offers a free ODBC driver. On all other platforms you have to purchase an suitable ODBC drivers from a 3rd party vendor like DataDirect. I know, some people here on the Forum are using FreeTDS but this driver is not a good choice when using it in production.
Starting with the documents where you can build up a database link without additional costs:
Please have a look at the documents available on My Oracle Support portal:
How to Configure DG4ODBC (Oracle Database Gateway for ODBC) on 64bit Windows Operating Systems to Connect to Non-Oracle Databases Post Install [ID 1266572.1]
How to Configure DG4ODBC (Oracle Database Gateway for ODBC) on Windows 32bit to Connect to Non-Oracle Databases Post Install [ID 466225.1]
and
How to Configure DG4ODBC (Oracle Database Gateway for ODBC) on Windows 32bit to Connect to Non-Oracle Databases Post Install [ID 466225.1]
As mentioned for other platforms you commonly have to purchase a 3rd party ODBC driver and depending on the licensing costs this 3rd party ODBC driver might be more expensive the using Oracle's commercial product, the Database Gateway for MS SQl Server. It is designed for MS SQl Server connections and much more powerful then DG4ODBC - for example it allows you to call remote SQL Server stored procedures or to participate in distributed transaction.
Documents about DG4MSQl can be found also on Oracle's support portal.
- Klaus

Similar Messages

  • DB LINK Oracle to SQL Server SQL Server TimeStamp converts to Oracle Date

    Hi All,
    I have created a DB link between Oracle 10g 10.2.0.5 to SQL server 2005 using Oracle 11g gateway. When I execute a query from Oracle that selects data from SQL server using the DBLINK then the column value of type Timestamp from SQL server gets converted to Date data type in Oracle and it losses the time value.
    Is there some way (in gateway configurations or in select query sql ) that the SQL server data type Timestamp gets converted to Oracle's Timestamp?
    Please help.
    Best Regards!
    Irfan
    Edited by: irf_mas on Mar 13, 2012 3:23 AM

    You're getting the ORA-2070 error as the gateway that you are using is not supporting the to_timestamp function in this context. You need to rewrite the code.
    Best would be if you first check out the data format that is sent as a string when you just select the date column - for example:
    data_create_dt
    Jan 11 2012 1:40PM
    Now the easiest way is to make sure the format you are using in your where clause matches the string from the SQL Server:
    select * from "data_ms_view"@FREETDS_DG4ODBC_EMGTW_11_2_0_3 where "data_create_dt"<'Jan 11 2012 1:41PM';
    which will result in:
    data_create_dt
    Jan 11 2012 1:40PM
    BTW,
    it works with all formats the SQL Server understands:
    SQL> select * from "data_ms_view"@FREETDS_DG4ODBC_EMGTW_11_2_0_3 where "data_create_dt">'11-JAN-12 01.40.00.000000000 AM';
    data_create_dt
    Jan 11 2012 1:40PM
    Another way using binds:
    SQL> variable datum varchar2(26);
    SQL> exec select to_char(systimestamp,'MON dd yyyy hh:mi') into :datum from dual;
    PL/SQL procedure successfully completed.
    SQL> print datum
    DATUM
    MAR 19 2012 08:29
    SQL> select * from "data_ms_view"@FREETDS_DG4ODBC_EMGTW_11_2_0_3 where "data_create_dt" <:datum;
    data_create_dt
    Jan 11 2012 1:40PM
    There are several ways to get a result, just make sure you don't use an unsupported function in your statement. A list of supported functions is found in the manual.

  • DB Link from Oracle to SQL Server error

    Dear buddies,
    I need to perfome some select on the tables which reside in SQL Server 2005 from Oracle 10g.
    I followed the steps given in :
    http://www.dba-oracle.com/t_heterogeneous_database_connections_sql_server.htm
    I could perform a TNS ping which is successful but only when I perform a select I receive this error.
    ERROR at line 1:
    ORA-28545: error diagnosed by Net8 when connecting to an agent
    Unable to retrieve text of NETWORK/NCR message 65535
    ORA-02063: preceding 2 lines from SQLS
    I have checked that my dsn name is in small caps all the way wherever it is used(Since its suggested in many sites).
    Please guide me.
    I am really looking ahead for a solution.
    Regards,
    Nith

    use the like to setup ODBC and datasource
    http://www.databasejournal.com/features/oracle/article.php/3442661/Making-a-Connection-from-Oracle-to-SQL-Server.htm
    and then create link server in sql server after you test connenction with oracle

  • Oracle DB Link from Oracle to SQL Server

    Dear buddies,
    I am trying to create a dblink from Oracle to SQL Server.
    This is my tnsnames.ora
    sq =
    (DESCRIPTION=
       (ADDRESS=(PROTOCOL=tcp)(HOST=LOCALHOST)(PORT=1521)
       (CONNECT_DATA=(SID=sq))
       (HS=OK)
    )This is my listener
    SID_LIST_LISTENER =
      (SID_LIST =
          (SID_DESC =
          (SID_NAME = sq)
          (ORACLE_HOME = D:\oracle\product\10.2.0\db_2)
          (PROGRAM = hsodbc)
    LISTENER =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      )initsq.ora
    # This is a sample agent init file that contains the HS parameters that are
    # needed for an ODBC Agent.
    # HS init parameters
    HS_FDS_CONNECT_INFO = sq
    HS_FDS_TRACE_LEVEL  = OFF
    # Environment variables required for the non-Oracle system
    #set <envvar>=<value>I have created my System DSN for sq with the appropriate values which works fine when I tested the connection.
    These 2 databases are in different servers.
    This is how I created the db link in Oracle
    create public database link sq
    CONNECT TO XXX IDENTIFIED BY "XXX"
    using 'sq'
    select "Column1"
    from "Table1"@'sq';The error I receive is: ORA-01729: database link name expected
    When I try to recreate the database link it tells me that: ORA-02011: duplicate database link name
    I hope someone could guide me.
    Thanks.

    C:\Documents and Settings\Administrator>tnsping sq
    TNS Ping Utility for 32-bit Windows: Version 10.2.0.4.0 - Production on 16-AUG-2011 14:48:40
    Copyright (c) 1997,  2007, Oracle.  All rights reserved.
    Used parameter files:
    D:\oracle\product\10.2.0\db_2\network\admin\sqlnet.ora
    TNS-03505: Failed to resolve name
    C:\Documents and Settings\Administrator>

  • Creation of database link from oracle to sql server 2000

    Hi
    I need to create a database link from oracle to sql server 2000.

    Assuming your Oracle database is running on Windows, you can set up a database link using ODBC using Heterogeneous Services and Generic Connectivity, but there are some functional limitations (i.e. no two-phase commits). If you can live with those limitations but aren't on Windows, you can generally purchase an ODBC driver for your operating system that will connect to SQL Server through someone like DataDirect and still use Generic Connectivity. If you cannot live with those limitations, you can purchase one of Oracle's Transparent Gateway products (though this can get somewhat pricey).
    What version of Oracle are you on?
    What operating system(s) are you using?
    What are you going to use the database link for?
    Justin

  • Creating Database Link from Oracle to SQL Server

    I am trying to create a database link from Oracle to SQL Server, and the documentation is about as clear as mud to me. Can anyone send me clear instructions on exactly what I need to do? What needs to be in tnsnames.ora and listener.ora files? Is there anything other than those two files that needs to be set up? Do I set up an ODBC connection? Anything else? I want to execute queries against a SQL Server database and load data into Oracle database.
    Thanks so much,
    Susan

    These are the instructions from an old document I created. The steps are same for SQL Server and Sybase. Hope it helps.
    The 9i Transparent Gateway Software is in Oracle Software CD -> oracle9i database -> Custom -> Oracle Transparent Gateways
    The gateway can be installed on the same machine as the Oracle database or
    on the Sybase server or on a third machine as a stand-alone.
    We have installed the gateway software in one of oracle database
    servers in a separate oracle home.
    These are the steps involved in configuring a gateway to a Sybase database
    1.     Install Sybase client and Gateway software on the Gateway Server
    2.     Configure <initsidfile> in the Gateway Server's <gatewayhome>
         /u00/app/oracle/product/9.2.0/tg4sybs/admin/init<gatewaysid>.ora
    Sybase server and database information is required for this step.
    eg: HS_FDS_CONNECT_INFO=USTRUD01.uwd
    3.     Add an entry in listener.ora in <listnenerhome>
         (/u00/app/oracle/product/9.0.1/network/admin/listener.ora) for the <gatewaysid>
    4.     Edit the tnsnames file (/u00/app/oracle/product/9.0.1/network/admin/tnsnames.ora)
    to add an entry <tnsalias> for the <gatewaysid>
    5.     Create a database link to the Sybase database in the oracle database.
    The steps for creating the database link are
    a. create a login oracle_tgw in the sybase server
    b. add the user to the sybase database with the necessary privilege on the tables
    c. create the database link in the required oracle database using the command
         "create public database link <dblinkname> connect to oracle_tgw identified by password using 'tnsalias'; "
    6.     Restart the gateway listener.

  • How to create database link between oracle and SQL Server

    Hello Everyone,
    Here i have Oracle Database 9i and SQL Server 2005 databases.
    I have some tables in sql server db and i want to access from Oracle.
    How to create a database link between these two servers
    Thanks,

    Thanks for Everyone,
    I was struggle with this almost 10 days....
    I created Database link from Oracle to SQL Server
    Now it is fine.........
    Here i am giving my servers configuration and proceedure how i created the db link...@
    Using Generic Connectivity (HSODBC) we can create db link between Oracle and SQL server.
    Machine (1)
    DB Version : Oracle 9.2.0.7.0
    Operating System : HP-UX Itanuim 64 11.23
    IP : 192.168.0.31
    Host : abcdbt
    Machine (2)
    Version : SQL Server 2005
    Operating System : Windows server 2003 x86
    IP : 192.168.0.175
    Host : SQLDEV1
    User/PW : sa/abc@123! (Connect to database)
    Database : SQLTEST (exsisting)
    Table : T (“ T “ is the table existing in SQLTEST database with 10 rows)
    Prerequisites in Machine (2):
    a)     Oracle 10g software
    b)     User account to access SQL Server database (sa/abc@123!)
    c)     Existing SQL Server Database (SQLTEST)
    d) Tables (testing purpose) (T)
    Steps:
    1)     Install Oracle 10.2.0.1 (Only SW,No need of database) *(Machine 2)*
    2)     Create a DSN where your windows Oracle 10g SW resides *(Machine 2)*
    Control panel >> Administrative Tools >> Data Source (ODBC) >> System DSN ADD
    You can follow this link also.....
    http://www.databasejournal.com/features/oracle/article.php/3442661/Making-a-Connection-from-Oracle-to-SQL-Server.htm
    I created DSN as
    DSN name : SQLTEST
    User : SA/abc@123! (Existing user account)
    Host : 192.168.0.175 (machine 2)
    Already I have 1 database in SQL Server with the name SQLTEST
    You can create DSN with different name also (not same as db name also)
    3)     Create a hsodbc init file in $ORACLE_HOME\hs\admin *(Machine 2)*
    Create init<DSN NAME> file
    Ex: initSQLTEST
    Copy inithsodbc to initSQLTEST
    And edit
    initSQLTEST file
    HS_FDS_CONNECT_INFO = SQLTEST    <DSN NAME>*
    HS_FDS_TRACE_LEVEL = OFF*
    save the file....@
    4)     Configure Listener.ora *(Machine 2)*
    LISTENER_NEW =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.175)(PORT = 1525))
    SID_LIST_LISTENER_NEW =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = SQLTEST) *+< Here SQLTEST is DSN NAME >+*
    (ORACLE_HOME = G:\oracle 10g\oracle\product\10.2.0\db_1)
    (PROGRAM = hsodbc))
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = G:\oracle 10g\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc) )
    :> lsnrctl start LISTENER_NEW
    5)     Configure tnsname.ora *(Machine 2)*
    SQLTEST11 =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.175)(PORT = 1525))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = SQLTEST))
    (HS=OK)
    :> tnsping SQLTEST11
    If No errors then conti….
    6)     Configure a file *(Machine 1)*
    Cd $TNS_ADMIN ($ORACLE_HOME/network/admin)
    Create a file
    $ vi TEST_abcdbt_ifile.ora
    something=
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST =192.168.0.175) (PORT=1525))
    (CONNECT_DATA=
    (SID=SQLTEST))
    (HS=OK)
    $ tnsping something
    $ sqlplus system/manager
    Your connected to Oracle database *(machine 1)*
    create database link xyz connect to “sa” identified by “abc@123!” using ‘SOMETHING’;
    select * from t@xyz;10 rows selected.
    Thanks,
    Edited by: ram5424 on Feb 10, 2010 7:24 PM

  • How to create database link from oracle to sql server

    Please help with how to create database link from oracle to sql server
    Best regards,
    Vishal

    Please help with how to create database link from oracle to sql server
    Best regards,
    Vishal
    Hi Vishal,
    I found a lof of information regarding how to create a database link from Oracle to SQL Server, please see:
    https://www.google.co.in/?gws_rd=cr&ei=vd3XUvGFO8TgkAXqlYCADg#q=how+to+create+database+link+from+oracle+to+sql+server
    We discuss SQL Server related issue in this forum. If you have any more question regarding Oracle, please post it in Oracle communities forum for better support.
    Regards,
    Elvis Long
    TechNet Community Support

  • Oracle and SQL Server Database Link errors

    I am having following error messages while setting up the ODBC connection. I want to access SQL Server tables from within Oracle8i. I have followed all the instruction of Oracle Generic Connectity document and have tested ODBC connection with ODBCPING as well as with TNSPING. Have created Database Link also within Oracle for SQL Server. But when I access the SQL Server table from within Oracle I get the following error messages.
    ORA-12500: TNS:listener failed to start a dedicated server process
    Could any body suggestion the solution please.
    Thanks and regards,
    Ghulam Mallah

    There is a Heterogenous Services/ Generic Connectivity forum that is probably going to have a lot more people familiar with these issues than you'll find in this forum. I would suggest posting over there.
    Justin

  • Database link between oracle and sql server

    dear all,
    i m a newbie to oracle and i need your help to know how to create a database link between oracle and sql server.my oracle version 10.2.0.3 and platform is redhat linux 5.7.your help appreciated.
    thanks in advance.

    [oracle@localhost ~]$ rpm -qa | grep -i odbc
    php-odbc-4.3.9-3.15
    unixODBC-kde-2.2.11-1.RHEL4.1
    MyODBC-2.50.39-21.RHEL4.1
    postgresql-odbc-7.3-8.RHEL4.1
    freeradius-unixODBC-1.0.1-3.RHEL4.3
    qt-ODBC-3.3.3-9.3
    unixODBC-devel-2.2.11-1.RHEL4.1
    unixODBC-2.2.11-1.RHEL4.1
    is this showing odbc installed in os?

  • Connecting from Oracle to SQL Server

    Hi
    I am now tring to connect from oracle to sql server using database link.
    Created database link
    but when connecting to remote db getting the floowing error
    select * from region@mysqlserverdsn
    ERROR at line 1:
    ORA-28545: error diagnosed by Net8 when connecting to an agent
    Unable to retrieve text of NETWORK/NCR message 65535
    ORA-02063: preceding 2 lines from MYSQLSERVERDSN
    Can anyone help
    My Listener File
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc1)
    (SID_DESC =
    (GLOBAL_DBNAME = ORCL.DOMAIN.COM)
    (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
    (SID_NAME = orcl)
    (SID_DESC =
    (GLOBAL_DBNAME = NORTHWIND.DOMAIN.COM)
    (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
    (SID_NAME = MYSQLSERVERDSN)
    (PROGRAM=hsodbc)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST=
         (ADDRESS = (PROTOCOL = TCP)(HOST = SALIHKM.DOMAIN.COM)(PORT = 1522))
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    My Tnsnames Entry
    MYSQLSERVERDSN =
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=xxx.xxx.xxx.xxx)(PORT=1522))
    (CONNECT_DATA=(SID=MYSQLSERVERDSN))
    (HS=OK)
    Lsnrctl is working fine.
    c:\>lsnrctl start
    LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-MAY-2006 18:53
    :13
    Copyright (c) 1991, 2005, Oracle. All rights reserved.
    Starting tnslsnr: please wait...
    TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
    System parameter file is D:\oracle\product\10.2.0\db_1\network\admin\listener.or
    a
    Log messages written to D:\oracle\product\10.2.0\db_1\network\log\listener.log
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SALIHKM.DOMAIN.COM)(POR
    T=1522)))
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SALIHKM.DOMAIN.COM)(POR
    T=1522)))
    STATUS of the LISTENER
    Alias LISTENER
    Version TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    Start Date 18-MAY-2006 18:53:16
    Uptime 0 days 0 hr. 0 min. 3 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Listener Parameter File D:\oracle\product\10.2.0\db_1\network\admin\listener.o
    ra
    Listener Log File D:\oracle\product\10.2.0\db_1\network\log\listener.log
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SALIHKM.DOMAIN.COM)(PORT=1522)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)))
    Services Summary...
    Service "NORTHWIND.DOMAIN.COM" has 1 instance(s).
    Instance "MYSQLSERVERDSN", status UNKNOWN, has 1 handler(s) for this service..
    Service "ORCL.DOMAIN.COM" has 1 instance(s).
    Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
    Service "PLSExtProc" has 1 instance(s).
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
    But Tnsping show no listener
    C:\>tnsping MYSQLSERVERDSN
    TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-MAY-2
    006 18:56:27
    Copyright (c) 1997, 2005, Oracle. All rights reserved.
    Used parameter files:
    D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=xxx.xxx.xxx.xxx)(P
    ORT=1522)) (CONNECT_DATA=(SID=MYSQLSERVERDSN)) (HS=OK))
    TNS-12541: TNS:no listener
    Services
    C:\>lsnrctl services
    LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-MAY-2006 19:00
    :04
    Copyright (c) 1991, 2005, Oracle. All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SALIHKM.DOMAIN.COM)(POR
    T=1522)))
    Services Summary...
    Service "NORTHWIND.DOMAIN.COM" has 1 instance(s).
    Instance "MYSQLSERVERDSN", status UNKNOWN, has 1 handler(s) for this service..
    Handler(s):
    "DEDICATED" established:0 refused:0
    LOCAL SERVER
    Service "ORCL.DOMAIN.COM" has 1 instance(s).
    Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
    "DEDICATED" established:0 refused:0
    LOCAL SERVER
    Service "PLSExtProc" has 1 instance(s).
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
    "DEDICATED" established:0 refused:0
    LOCAL SERVER
    Service "orcl" has 1 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
    Handler(s):
    "DEDICATED" established:1 refused:0 state:ready
    LOCAL SERVER
    Service "orclXDB" has 1 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
    Handler(s):
    "D000" established:0 refused:0 current:0 max:1002 state:ready
    DISPATCHER <machine: SALIHKM, pid: 2080>
    (ADDRESS=(PROTOCOL=tcp)(HOST=SALIHKM.DOMAIN.COM)(PORT=1070))
    Service "orcl_XPT" has 1 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
    Handler(s):
    "DEDICATED" established:1 refused:0 state:ready
    LOCAL SERVER
    The command completed successfully
    I am very much confused with this situation.
    Thanks & Regards
    Salih Km

    Hi ,
    Thanks for your reply.
    Contents of my initMYSQLSERVERDSN.ora file is
    # This is a sample agent init file that contains the HS parameters that are
    # needed for an ODBC Agent.
    # HS init parameters
    HS_FDS_CONNECT_INFO = MYSQLSERVERDSN
    HS_FDS_TRACE_LEVEL = 0
    HS_FDS_TRACE_FILE_NAME = hsmsql.trc
    # Environment variables required for the non-Oracle system
    #set <envvar>=<value>
    set ODBCINI=c:\WINDOWS\ODBC.INI
    SALIHKM.DOMAIN.COM is my system in which Oracle Test DB is Installed.
    SQL Server is in another location.
    In Tnsnames i specified ip address.
    One more doubt.
    I am using 10g Release 2 demo version.
    whether it will support Hetrogeneous Services?
    How to know whether a database supports HS or not?
    Thanks & Regards
    Salih Km

  • Oracle 10gR2 64bit  odbc  from oracle to sql server  Win 2008 EE 64bits

    Hi, I am having trouble with a 10gR2 64bits creation of odbc from oracle to sql server, I have follow several instruction with no luck at all. My OS is windows 2008 EE 64bits on the oracle and sql server server.
    This is what I have done
    1. in the $oracle_home/hs/admin directory
    inithsodbc.ora
    # HS init parameters
    HS_FDS_CONNECT_INFO = hsodbc
    HS_FDS_TRACE_LEVEL = off
    2. in the $oracle_home/network/admin
    # listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc)
    (SID_DESC=
    (SID_NAME=hsodbc)
    (ORACLE_HOME=C:\oracle\product\10.2.0\db_1)
    (PROGRAM=C:\oracle\product\10.2.0\db_1\hs\hsodbc)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    And the tnsname.ora
    # tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    PRUEBA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = prueba)
    hsodbc =
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=xx.xx.xx.xx)(PORT=1521))
    (CONNECT_DATA=(SID=hsodbc))
    (HS=OK)
    I create the odbc connection an test it , the result is TEST PASSED
    4. The i create a database link on my database
    CREATE PUBLIC DATABASE LINK XYZ
    CONNECT TO "sysdba" IDENTIFIED BY "masterkey"
    USING 'hsodbc';
    5 execute a select
    SQL> select * from dual@XYZ;
    select * from dual@XYZ
    ERROR at line 1:
    ORA-28545: error diagnosed by Net8 when connecting to an agent
    Unable to retrieve text of NETWORK/NCR message 65535
    ORA-02063: preceding 2 lines from XYZ
    6. When I check the listener log i'm getting this error
    25-MAR-2011 11:48:40 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169870592)) * status * 0
    25-MAR-2011 11:48:47 * (CONNECT_DATA=(SID=hsodbc)(CID=(PROGRAM=)(HOST=PRO)(USER=PRO\Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=xx.xx.xx.xx)(PORT=49329)) * establish * hsodbc * 12518
    TNS-12518: TNS:listener could not hand off client connection
    TNS-12560: TNS:protocol adapter error
    TNS-00530: Protocol adapter error
    Edited by: user626125 on Mar 26, 2011 11:39 AM
    Edited by: user626125 on Apr 12, 2011 2:49 PM

    Heterogeneous Connectivity

  • Hetrogeneoues connection between Oracle and SQL server

    Hi ,
    I am having Issues in Making Heterogeneous  DB link between Oracle Xe and sql server .
    Here is the scenario-
    My Oracle and ms SQL 2003 are running on same machine(windows 2003) ,
    I have followed this link and reached till 5 but I am not able to tnsping the SQLSERVER DNS entry .
    http://www.databasejournal.com/features/oracle/article.php/3442661/Making-a-Connection-from-Oracle-to-SQL-Server.htm
    Below are my lintener and tnsfiles
    LISTENER.ORA
    ===========================================================================================================================================================
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
          (PROGRAM = extproc)
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
          (PROGRAM = extproc)
           (ENVS = "EXTPROC_DLLS=ONLY:C:\oraclexe\app\oracle\product\11.2.0\server\bin\OraClr11.dll")
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    LISTENERSQL =
    (ADDRESS_LIST=
          (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
          (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522))
    SID_LIST_LISTENERSQL=
      (SID_LIST=
          (SID_DESC =
           (SID_NAME = SQLSRVRDBLNK)
           (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
           (PROGRAM = hsodbc)
    ===========================================================================================================================================================
    TNSNAMES.ORA
    XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = testenviroment)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
    EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
    SQLSRVRDBLNK  =
      (DESCRIPTION=
    (ADDRESS=  (PROTOCOL=tcp)(HOST=localhost)(PORT=1522))
    (CONNECT_DATA=(SID=SQLSRVRDBLNK)
      (HS=OK)
    ========================================================================================================================================================
    Listner Status
    C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN>lsnrctl status LISTENERSQL
    LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Production on 19-JUL-2013 13:15:59
    Copyright (c) 1991, 2010, Oracle.  All rights reserved.
    Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
    STATUS of the LISTENER
    Alias                     LISTENERSQL
    Version                   TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
    Start Date                19-JUL-2013 12:17:39
    Uptime                    0 days 0 hr. 58 min. 24 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\listener.ora
    Listener Log File         C:\oraclexe\app\oracle\diag\tnslsnr\testenviroment\listenersql\alert\log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\PNPKEYipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1522)))
    Services Summary...
    Service "SQLSRVRDBLNK" has 1 instance(s).
      Instance "SQLSRVRDBLNK", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
    =========================================================================================================================================================
    Now If I try to Tnsping SQL heterogeneous connection , i get
    C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN>tnsping SQLSRVRDBLNK
    TNS Ping Utility for 32-bit Windows: Version 11.2.0.2.0 - Production on 19-JUL-2013 13:17:47
    Copyright (c) 1997, 2010, Oracle.  All rights reserved.
    Used parameter files:
    C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION=
    TNS-12533: TNS:illegal ADDRESS parameters
    Need Help , please suggest
    Thanks,
    Manish

    Hi ,
    Thanks for the update I have changed the Listener as suggested , now my Listener File is
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
          (PROGRAM = extproc)
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
          (PROGRAM = extproc)
        (SID_DESC =
           (SID_NAME = SQLSRVRDBLNK)
           (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
           (PROGRAM = hsodbc)
           (ENVS = "EXTPROC_DLLS=ONLY:C:\oraclexe\app\oracle\product\11.2.0\server\bin\OraClr11.dll")
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST=
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.60.146)(PORT = 1521))
          (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
          (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522)))
    ========================================================================================================================
    and tns entry 
    SQLSRVRDBLNK  =
      (DESCRIPTION=
    (ADDRESS=  (PROTOCOL= TCP)(HOST=192.168.60.146)(PORT=1522))
    (CONNECT_DATA=(SID=SQLSRVRDBLNK)
      (HS=OK)
    ========================================================================================================================
    Restarted the listener
    C:\Documents and Settings\Administrator>lsnrctl start LISTENER
    LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Production on 20-JUL-2013 12:27:38
    Copyright (c) 1991, 2010, Oracle.  All rights reserved.
    Starting tnslsnr: please wait...
    TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
    System parameter file is C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\listener.ora
    Log messages written to C:\oraclexe\app\oracle\diag\tnslsnr\testenviroment\listener\alert\log.xml
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.60.146)(PORT=1521)))
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\PNPKEYipc)))
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1522)))
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
    STATUS of the LISTENER
    Alias                     LISTENER
    Version                   TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
    Start Date                20-JUL-2013 12:27:44
    Uptime                    0 days 0 hr. 0 min. 5 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\listener.ora
    Listener Log File         C:\oraclexe\app\oracle\diag\tnslsnr\testenviroment\listener\alert\log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.60.146)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\PNPKEYipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1522)))
    Services Summary...
    Service "CLRExtProc" has 1 instance(s).
      Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "SQLSRVRDBLNK" has 1 instance(s).
      Instance "SQLSRVRDBLNK", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
    ========================================================================================================================
    Still Getting the same Error
    C:\Documents and Settings\Administrator>tnsping SQLSRVRDBLNK
    TNS Ping Utility for 32-bit Windows: Version 11.2.0.2.0 - Production on 20-JUL-2013 12:27:52
    Copyright (c) 1997, 2010, Oracle.  All rights reserved.
    Used parameter files:
    C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION=
    TNS-12533: TNS:illegal ADDRESS parameters
    C:\Documents and Settings\Administrator>
    ========================================================================================================================
    Do we need to change any thing in sqlnet.ora file for heterogeneous connection?
    Thanks ,
    Manish

  • Developing database views between Oracle and SQL Server tables

    I am on Oracle 10.2, my organization has many SQL Server databases as well and has now made
    SQL server as company standard so many new databases will be developed in SQL Server. It is of course
    not possible to convert all Oracle databases to SQL Server, so a mix environment will exist. Two questions:
    1.     Is it possible to develop database views in Oracle (10g in my case) which join Oracle tables with tables in SQL Server 2008? If yes, how. I have seen some heterogeneous connectivity setup to connect SQL Server to Oracle, but not sure whether it is possible to develop a database view across two databases.
    2.     I know it is not a SQL Server forum, but many DBA’s know both Oracle and SQL Server. Is it possible to develop views in SQL Server (SQL Server 2008 R2 in my case) which join Oracle 10g and SQL Server 2008 tables? I know in SQL Server, there is way to set up linked servers, but do not know whether it is possible to develop views.
    Thanks a lot for your insight.

    You can create views that join local Oracle tables and remote SQL Server tables. I'm pretty sure you can do the reverse as well but I haven't personally done it.
    However, I would be very concerned about the performance you'd get if you created that sort of view. You'd very frequently end up in a situation where Oracle has to pull all the data in the remote table across the database link in order to apply predicates and join the data locally. That could be disastrous from a performance standpoint.
    Justin

  • ORA-28546: (oracle to SQL server 2005)

    Hi all,
    I followed the following below ariticle in dbasupport and dbajournal for about connectivity from Oracle Server 10.1.0.2.0 to SQL Server 2005
    http://www.dbasupport.com/oracle/ora10g/connection01.shtml
    http://www.databasejournal.com/features/oracle/article.php/3442661/Making-a-Connection-from-Oracle-to-SQL-Server.htm
    i configured the listener.ora ,tnsnames.or and inityscco2.ora
    $ cat listener.ora
    # listener.ora Network Configuration File: /u01/app/oracle/product/101/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = yscc02)
    (ORACLE_HOME = /u01/app/oracle/product/101)
    (PROGRAM = extproc)
    (SID_DESC =
    (SID_NAME = yscc02)
    (ORACLE_HOME = /u01/app/oracle/product/101)
    (PROGRAM = hsodbc)
    (ENVS = "LD_LIBRARY_PATH=/u01/app/oracle/product/101/lib32:/usr/lib:/u01/app/oracle/product/101/hs/lib32")
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ysccapps.yamama.com)(PORT = 1521))
    LISTENERYSCCAPPS =
    (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=100.100.50.5)(PORT=1522))
    (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
    SID_LIST_LISTENERYSCCAPPS=
    (SID_LIST=
    (SID_DESC=
    (SID_NAME= yscapps)
    (ORACLE_HOME = /u01/app/oracle/product/101 )
    (PROGRAM=hsodbc)
    $lsnrctl status listener
    LSNRCTL for IBM/AIX RISC System/6000: Version 10.1.0.2.0 - Production on 20-JUN-2010 14:03:22
    Copyright (c) 1991, 2004, Oracle. All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    STATUS of the LISTENER
    Alias listener
    Version TNSLSNR for IBM/AIX RISC System/6000: Version 10.1.0.2.0 - Production
    Start Date 15-JUN-2010 14:49:05
    Uptime 4 days 23 hr. 14 min. 17 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Listener Parameter File /u01/app/oracle/product/101/network/admin/listener.ora
    Listener Log File /u01/app/oracle/product/101/network/log/listener.log
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ysccapps.yamama.com)(PORT=1521)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ysccapps.yamama.com)(PORT=8080))(Presentation=HTTP)(Session=RAW))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ysccapps.yamama.com)(PORT=2100))(Presentation=FTP)(Session=RAW))
    Services Summary...
    Service "yscc02" has 1 instance(s).
    Instance "yscc02", status UNKNOWN, has 2 handler(s) for this service...
    Service "yscc02.ysccapps.yamama.com" has 1 instance(s).
    Instance "yscc02", status READY, has 1 handler(s) for this service...
    Service "yscc02XDB.ysccapps.yamama.com" has 1 instance(s).
    Instance "yscc02", status READY, has 1 handler(s) for this service...
    The command completed successfully
    $ cat tnsnames.ora
    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/101/network/a
    dmin/tnsnames.ora
    # Generated by Oracle configuration tools.
    YSCCAPPS1 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ysccapps.yamama.com)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SID = yscc02)
    (HS = OK)
    $tnsping ysccapps1
    TNS Ping Utility for IBM/AIX RISC System/6000: Version 10.1.0.2.0 - Production on 20-JUN-2010 14:04:43
    Copyright (c) 1997, 2003, Oracle. All rights reserved.
    Used parameter files:
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ysccapps.yamama.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = yscc02)) (HS = OK))
    OK (0 msec)
    $ sqlplus new/password@ysccapps1
    SQL*Plus: Release 10.1.0.2.0 - Production on Sun Jun 20 14:07:01 2010
    Copyright (c) 1982, 2004, Oracle. All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    SQL>
    $ cat inityscc02.ora
    This is a sample agent init file that contains the HS parameters that are
    # needed for an ODBC Agent.
    # HS init parameters
    HS_FDS_CONNECT_INFO = yscc02
    HS_FDS_TRACE_LEVEL = off
    HS_FDS_SHAREABLE_NAME = <full path name of odbc driver manager or driver>
    # ODBC specific environment variables
    set ODBCINI=<full path name of the odbc initilization file>
    and i had created database link like
    SQL>create database link ysccapps1
    connect to "sa" identified by "passwad"
    using 'ysccapps1';
    SQL> select * from [email protected];
    select 8 from [email protected]
    ERROR at line 1:
    ORA-28546: connection initialization failed, probable Net8 admin error
    ORA-28511: lost RPC connection to heterogeneous remote agent using SID=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=y
    sccapps.yamama.com)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SID=yscc02)))
    ORA-02063: preceding 2 lines from YSCCAPPS1
    Please assist me . i need to periodically pull data from Oracle server to Sql server
    Best Regards

    First of all please be aware HSODBC has been desupported since 15th of March 2008. When starting a new project you should start with a supported product and this product is called DG4ODBC and it is available as release 11.
    Looking at the provided listener it shows several configurations issues.
    Have a lokk at yout tnsnames.ora => you mentioned to use the listener servicing port 1521.
    This Listener serves 2 SIDs with the same name:
    SID_DESC =
    (SID_NAME = yscc02)
    (ORACLE_HOME = /u01/app/oracle/product/101)
    (PROGRAM = extproc)
    (SID_DESC =
    (SID_NAME = yscc02)
    (ORACLE_HOME = /u01/app/oracle/product/101)
    (PROGRAM = hsodbc)
    (ENVS = "LD_LIBRARY_PATH=/u01/app/oracle/product/101/lib32:/usr/lib:/u01/app/oracle/product/101/hs/lib32")
    So when you now connect, the listener does not know which service to spawn. Please check out Metalink note:
    Note.238771.1 How to Setup Generic Connectivity - HSODBC - on AIX
    when you want to continue using HSODBC although I strongly recommend you to use DG4ODBC which is configured as mentioned in Metalink note:
    Note.561033.1 How to Setup DG4ODBC on 64bit Unix OS (Linux, Solaris, AIX, HP-UX)

Maybe you are looking for