Oracle Linked Server problem in SQL Server

I'm using the MS OLE DB Provider for Oracle in my SQL Server linking an Oracle 9i server to the SQL Server 2000 server. I get the following error when I try to execute a query thru the SQL Server Query Analyzer:
[OLE/DB Provider 'MSDAORA' IOpenRowset::OpenRowset returned 0x80004005:   ]
I can however define an ODBC connection and use DTS to get to the Oracle database just fine from the SQL Server machine. I need the linked server query to work though since I'll need it for a new application.
Any help is very much appreciated.
Thanks.
Anja

I guess I'll answer my own question. I found that the setting SQL Query Analyzer was set to "Implicit Transactions" in the current connection properties. When I turned that off the query ran fine

Similar Messages

  • Facing problem in distributed queries over Oracle linked server

    Hi,
    I have a SQL Server 2005 x64 Standard Edition SP3 instance. On the instance, we had distributed (4 part) queries over an Oracle linked server running fine just a few hours back but now they have starting taking too long. They seem to work fine when OPENQUERY
    is used. Now I have a huge number of queries using the same mechanism and is not feasible for me to convert all queries to OPENQUERY, please help in getting this resolved.
    Thanks in advance.

    Hi Ashutosh,
    According to your description, you face performance issues with distributed queries and
    it is not feasible for you to convert all queries to
    OPENQUERY. To improve the performance, you could follow the solutions below:
    1. Make sure that you have a high-speed network between the local server and the linked server.
    2. Use driving_site hint. The driving site hint forces query execution to be done at a different site than the initiating instance. 
    This is done when the remote table is much larger than the local table and you want the work (join, sorting) done remotely to save the back-and-forth network traffic. In the following example, we use the driving_site hint to force the "work"
    to be done on the site where the huge table resides:
    select /*+DRIVING_SITE(h)*/
    ename
    from
    tiny_table t,
    huge_table@remote h
    where
    t.deptno = h.deptno;
    3. Use views. For instance, you could create a view on the remote site referencing the tables and call the remote view via the local view as the following example.
    create view local_cust as select * from cust@remote;
    4. Use procedural code. In some rare occasions it can be more efficient to replace a distributed query by procedural code, such as a PL/SQL procedure or a precompiler program.
    For more information about the process, please refer to the article:
    http://www.dba-oracle.com/t_sql_dblink_performance.htm
    Regards,
    Michelle Li

  • What is oracle Linked Server

    What is Oracle Linked server? is it a part of oracle database administration?please give some brief introduction of Oracle Linked server.
    Edited by: 933618 on 18/05/2012 01:51

    SQL Server Linked Servers feature lets you access Oracle data and data from other OLE DB/ODBc compatible data sources from SQL Server. Here are the basic steps for setting up an Oracle linked server.
    1. Install and Configure the Oracle Client Software
    Oracle client software provides the network libraries required to establish connectivity to an Oracle database system.Download the software from http://www.oracle.com/technology/software/products/database/oracle10g/index.html. Install the software on your SQL Server system and configure it by using Oracle Net Configuration Assistant.
    2. Create the Linked Server
    Create a linked server by using the T-SQL command
    EXEC sp_addlinkedserver
    'OracleLinkedServer', 'Oracle',
    'MSDAORA', 'OracleServer'
    The name of the linked server is Oracle-LinkedServer.The second parameter, product name (Oracle),is optional.The third parameter specifies the OLE DB provider. MSDAORA is the name of the Microsoft OLE DB Provider for Oracle.The final required parameter is the data source name, Oracle Server.
    3. Add Logins for the Linked Server
    Next, provide the SQL Server system with an Oracle login to access the Oracle database by using the sp_addlinkedsrvlogin command
    EXEC sp_addlinkedsrvlogin '
    OracleLinkedServer ', false,
    'SQLuser', 'OracleUser',
    'OraclePwd'

  • SQL to Oracle Linked Server

    I am trying to create a linked server from SQL2000 to Oracle9i.
    i have done followings:
    Install Oracle9i client on sql server machine.
    Create a tnsname entry for my oracle database.
    Created a linked server using following query:
    exec sp_addlinkedserver 'ORA_HIPPOCRT',
    'Oracle', 'MSDAORA', 'HIPPOCRT'
    exec sp_addlinkedsrvlogin 'ORA_HIPPOCRT',
    false, NULL, 'HR', 'password'
    But when I query the data as follows:
    SELECT * FROM ORA_HIPPOCRT..HR.EMPLOYEES
    I get following errors:
    Server: Msg 7399, Level 16, State 1, Line 1
    OLE DB provider 'MSDAORA' reported an error.
    [OLE/DB provider returned message: Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation.
    Provider is unable to function until these components are installed.]
    OLE DB error trace [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005:   ].
    What I am doing wrong?

    I can get this to work using OPENQUERY() i.e.
    select * from OPENQUERY(andyh, 'select * from TRAINDB.LINKEDSERVERDATATYPETEST')
    To me though this has bodge written all over it.
    Anyone out there with advise for me?
    thanks.

  • TSQL to retrieve Oracle linked server records

    We're porting an Oracle system to SQL server and it's not going well...
    Our system is a data warehouse that extracts data from an Oracle operational system. In the Oracle version we use database links to access Oracle. On SQL Server we've created a linked server. All OK so far.
    When we try to access the linked server in TSQL we have problems:
    - select on a four part name does not pass filters to Oracle and our tables are huge
    - OPENQUERY works fine but won't let us pass parameters
    We therefore seem to be stuck when we want to update SQL server using a single keyed access to Oracle (SQL retrieves the whole table and then filters; we're processing 20,000 records and this is not acceptable!)
    I would appreciate any help you can give; I've spent most of the day searching the web for examples where people have this working, but got nowhere... help!
    Thanks in advance

    tnsping search for an alias in tnsnames.ora. under alias definition it takes HOST and PORT values from ADDRESS.
    I'm almost sure the problem is with an alias. Your config means that in your clients' network there is and oracle cluster with at least 2 nodes (127.1.2.3 and 127.1.2.4) configured to balance workload or smth.
    Do you have network communications set up only to one node or to both? I think the following steps works in both cases, but it won't balance workload nor failover if you have access to both nodes.
    Copy your tnsnames.ora somewhere for backup, then clear its content, copy-paste there a template
    YourAlias =
      (DESCRIPTION =
        (ADDRESS =
          (PROTOCOL = TCP)
          (HOST = 172.1.2.3)
          (PORT = 1545)
        (CONNECT_DATA =
          (SERVICE_NAME = ServiceNameHere)
    and fill it with your alias name, IP address and port (already checked via telnet) and SERVICE_NAME parameter.
    If two nodes have different service names, and you don't know each node you connect, try first one, then the second one.
    To connect to failover environment you surely need network access to both nodes, but I don't know if its enough - i haven't seen configurations like that.
    I did as you instructed and still get TNS-03505: Failed to resolve name.  Does it matter that my TNS Ping is version 12.1.0.1.0, and they are on Oracle 11?  I wouldn't think so but figured I should ask.  Also, is there a way that they could have
    disabled tnsping?  They are extremely secure, and lock everything down so maybe that's the problem here.
    André

  • Linked Server :: OLE DB provider "OraOLEDB.Oracle" for linked server "ABC" returned message "New transaction cannot enlist in the specified transaction coordinator. ".

    Hello All,
    As mentioned in title, i am stuck up with that articular error from last three days,
    i have following scenario, my SQL server 2008, my oracle 10g are on both same machine with OS Windows Server 2008.
    the following error generated on my management studio when i execute my procedure written in my SQL server. Following is original source code snippet after error massage.
    OLE DB provider "OraOLEDB.Oracle" for linked server "ORCL" returned message "New transaction cannot enlist in the specified transaction coordinator. ".
    Msg 50000, Level 16, State 2, Procedure PROC_MIGRATE_MST_FRM_ORA_SQLSERVER, Line 43
    The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server "ORCL" was unable to begin a distributed transaction.
    BEGIN TRY
    -- MIGRATION OF PR_COMPANY_MH START
    BEGIN TRANSACTION T1
    PRINT 'mILAN NNNNNNNNN 11'
    INSERT INTO PROD.PR_COMPANY_MH
    SELECT * FROM OPENQUERY(ORCL, 'SELECT * FROM PR_COMPANY_MH WHERE SQL_FLG = ''N'' ')
    PRINT 'mILAN NNNNNNNNN 12'
    UPDATE OPENQUERY(ORCL, 'SELECT SQL_FLG FROM PR_COMPANY_MH WHERE SQL_FLG = ''N''')
    SET SQL_FLG = 'Y'
    --EXECUTE ('UPDATE PROD.PR_COMPANY_MH SET SQL_FLG = ''Y'' ') AT [ORCL]
    PRINT 'mILAN NNNNNNNNN 13'
    COMMIT TRANSACTION T1
    -- MIGRATION OF PR_COMPANY_MH END
    END TRY
    BEGIN CATCH
    PRINT 'mILAN NNNNNNNNN 14'
    ROLLBACK TRANSACTION T1
    PRINT 'mILAN NNNNNNNNN 15'
    SELECT
    @ErrorNumber = ERROR_NUMBER(),
    @ErrorSeverity = ERROR_SEVERITY(),
    @ErrorState = ERROR_STATE(),
    @ErrorLine = ERROR_LINE(),
    @ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
    PRINT 'mILAN NNNNNNNNN 16'
    SELECT @ErrorMessage = ERROR_MESSAGE();
    RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState, @ErrorNumber, @ErrorProcedure)
    PRINT 'mILAN NNNNNNNNN 17'
    END CATCH
    this perticular part is raising that error, and i had tried every configuartion on my local machine related to MS DTC.
    When i remove my transaction code, its work just fine no exception raise, but when i use then i.e. BEGIN TRAN, COMMITE TRAN, AND ROLLBACK TRAN. its giving me error, other wise its fine.
    Please Help or disscus or suggest why my transaction base code is not woking????
    thanks in advance.
    Regards,
    Milan

    Sorry again, I am new on any kind of forum, so i am learning now, following is the error massage generated by SQL Server. and its not
    an architecture problem, i had just included my complete architecture to be more informative while asking for the solution or suggestion. My real problem is T-SQL, i think and its related to Distributed queries raise in SQL Server in Oracle Link Server.
    OLE DB provider "OraOLEDB.Oracle"
    for linked server "ORCL" returned message "New transaction cannot enlist in the specified transaction coordinator. ".
    Msg 50000, Level 16, State 2, Procedure PROC_MIGRATE_MST_FRM_ORA_SQLSERVER,
    Line 43
    The operation could not be performed because OLE
    DB provider "OraOLEDB.Oracle" for linked server "ORCL" was unable to begin a distributed transaction.

  • Cannot get data of the row from OLE DB provider "OraOLEDB.Oracle" for linked server

    I have created a stored procedure in SQL Server for a report that uses parameters.  In the report I am linking an Oracle table.  I use a subquery like this to query the Oracle table:  (select * from openquery(oracle_linked_server, 'select
    partno, description from oracletable')).  If I run the subquery it works fine every time.  The linked server uses an oracle account which has access to the oracle table.  When I first created the Stored Procedure it worked fine for me.  When
    I test the report, it worked fine.  Then I asked another user to test it and it broke with the below error message.  
    OLE DB provider "OraOLEDB.Oracle" for linked server "XXXX_ORACLE" returned message "ORA-01403: no data found".
    Msg 7346, Level 16, State 2, Procedure usp_report_XXXXXX, Line 15
    Cannot get the data of the row from the OLE DB provider "OraOLEDB.Oracle" for linked server "XXXX_ORACLE".
    Now when I try the report or the stored procedure, I get the same error.  I tested the oracle subquery in the stored procedure and it still works.  The report uses a service account to execute the stored procedure.
    I am using SQL Server 2012 Developer Edition 64 bit (11.0.5058) Management Studio to develop the stored procedure.  The SQL Server I am accessing and running the stored procedure is SQL Server 2008R2 Developer Edition 64bit (10.50.2550).  The user
    that tested the report for me has SQL Server 2008R2 but that shouldn't matter since he is running the report in Internet Explorer.
    What is changing that it works for a while and then stops?
    Fred
    Fred Schmid

    I found the answer.  It was in the query.  I put the TRIM statement on the part# field in the Oracle subquery and took the LTRIM function out of the ON clause that joined my SQL Server table with the Oracle linked server table.  Now everything
    works.  The query looks like this:
    SQL_Server_Table sst
    LEFT OUTER JOIN
    (SELECT * FROM OPENQUERY(OracleLinkedServer, 'SELECT TRIM(partNo) AS partNo, partDesc FROM OracleTable')) ols
    ON sst.partNo = ols.partNo
    Thanks for pointing me in the right direction.
    Fred Schmid

  • Execute Oracle procedure via Linked server takes very long

    Exec ('Begin [procedurename]; End;') at OracleLinkedServer
    I used this statement to execute store procedure on Oracle database via linked server. It keeps running and never ends.
    However, if I run this procedure Begin [procedurename]; End; in TOAD, it completes in 10s. 
    This procedure is just simply to merge data between two tables.
    Is there any bug or limit on SQL Server Oracle linked server? I am using SQL SERVER 2012 and Oracle 11g client.

    See if this link helps you
    http://markmal.blogspot.co.il/2008/01/it-is-really-pain-if-you-need-to-call.html
    select * from openquery(MYORADB, '{CALL SCOTT.PROC4MS({resultset 25, OUTPUT})}');
    SELECT * FROM OPENQUERY(<linked server name>, '{CALL <oracle sp>}')
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Error with Linked Server

    I am trying to configure a linked server to connect from MS Sqlserver2000 to Oracle.
    I am using an Oracle 8i client. Following notes on this website and from microsoft I changed
    my registery enteries as follows:
    OracleOciLib oci.dll
    OracleSqllib orasql8.dll
    OracleXalib oraclient.dll
    My odbc connection works when tested thru Oracle Network administation but when I try to look at any tables of the linked server (using MS Enterprise Manager) I get the following error:
    "Error 7399: OLE DB provider 'OraOleDB.Orcle' reported an error"
    This occurs when I use the oracle odbc
    When I use the microsoft odbc connector I get:
    "Error 7399: OLE DB provider 'ContextProvider.MSDAORA.1' reported an error"
    Any ideas.
    Thanks in advance.
    Patrick

    To view tables on an Oracle linked server in Enterprise manager you need to add a security context to use when there is no SQL Server user
    It's on the bottom of the "security" tab on the server properties page.

  • SQL 2008 Problem Calling an SP on an Oracle 10G Linked Server

    Hi everyone
    I've read through a number of posts on many sites about this issue but haven't found anything that has helped me so far. The machine I'm using is running Microsoft SQL Server 2008 64bit and the linked server I've created to Oracle 10G is using OraOLEDB.Oracle. If I test the connection in SQL Management Studio it succeeds and for any queries I have using OpenQuery to select from the Oracle DB I have no problem getting results.
    The Oracle 32bit client and 64bit client versions are installed on the machine.
    My problem is that I need to exec an Oracle SP which in turn inserts into various Oracle tables. I previously had this all working fine on 32bit SQL Server 2000 installation connected to Oracle 10G. Using the same code in SQL Server 2008 I get the following error:
    Msg 7357, Level 16, State 2, Line 1
    Cannot process the object "{CALL INTF.INTF_TW_PO_REQ_INTERFACE.MAIN(NULL, 15.000000, 0.000000, 'BLPO0099998', 'BLPO0099998', '', '', 39804, 21883, 'BLPO0099998', 249, 1, 950, 'Main', 190506, 37336, '1', TO_DATE( '20090706','YYYYMMDD' ), TO_DATE( '20090706','YYYYMMDD' ), 'INCOMPLETE',37336, {RESULTSET 1, P_Success})}". The OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLE" indicates that either the object has no columns or the current user does not have permissions on that object
    The call is made by the following piece of code in SQL:
    SET @execCmd = N'SELECT
    P_Success
    FROM
    OPENQUERY( ORACLE, '''+ @oracleCmd + ''')';
    EXECUTE (@execCmd);
    Where @oracleCmd = {CALL INTF.INTF_TW_PO_REQ_INTERFACE.MAIN(NULL, 15.000000, 0.000000, ''BLPO0099998'', ''BLPO0099998'', '''', '''', 39804, 21883, ''BLPO0099998'', 249, 1, 950, ''Main'', 190506, 37336, ''1'', TO_DATE( ''20090706'',''YYYYMMDD'' ), TO_DATE( ''20090706'',''YYYYMMDD'' ), ''INCOMPLETE'',37336, {RESULTSET 1, P_Success})}
    I also tried using the below snippet from another post I found and got no joy either.
    declare @result varchar(255)
    exec ('BEGIN
    ?:= your_SP_Name(''arg1'', ''arg2'', etc);
    END;
    ',@result OUTPUT) at your_LinkedServerName;
    select @result;
    OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLE" returned message "ORA-06550: line 3, column 7:
    PLS-00222: no function with name 'INTF_TW_PO_REQ_INTERFACE' exists in this scope
    ORA-06550: line 3, column 1:
    PL/SQL: Statement ignored".
    I can't figure out why it doesn't work in SQL 2008 when it worked fine in SQL 2000 - PLEASE HELP!
    Thank you
    Alida Hope

    Why development on 10g and production on 8i? Either both should be 8i or both should be 10g.
    If you will keep production on 8i and development on 10g then you cannot stop such errors as there are features that are enabled by default in 10g and both the versions have very big differences.
    Just go ahead and install 8i.

  • Trigger problem on Sql Server with linked server to Oracle

    Hi All,
    I have a simple insert trigger on Sql Server 2005, it uses linked server to Oracle.
    like that ;
    USE [YTM08]
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ANSI_NULLS ON
    go
    ANSI_WARNINGS ON
    CEATE TRIGGER [dbo].[YTM_TBLSTSABIT_I]
    ON [dbo].[TBLSTSABIT] FOR INSERT
    AS
    BEGIN
    INSERT INTO YTM_ORACLE..SECTOR.STOCKS
    stock_name,
    stock_code,
    insert_date
    SELECT
    SBT.STOCKNAME,
    SBT.STOCKCODE,
    GETDATE()
    FROM INSERTED SBT
    END
    The YTM_ORACLE is a linked server and it's provider is OraOLEDB.Oracle.
    Trigger does not works for that linked server but other triggers for local
    sql server works fine...
    I get this error from sql server
    'Heterogeneous queries require the ANSI_NULLS and
    ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query.'
    Does someone know how to solve this issue the right way?
    Thanks in advance.
    Thanks !
    Adam

    Hi Lars,
      Thanks for the data. I've already read this note and configure all this parameters. But when I'm executing the Create Source System in the BI system the process dies.
      If I look into the logs I see this:
    M  call semaphore clean-up function ...
    M  ***LOG Q0E=> DpSigGenHandler, Exception (c06d007e) [dpnttool.c   432]
      That's the reason why I start guessing about other possible problem.
    Regards

  • Memory leak issue with link server between SQL Server 2012 and Oracle

    Hi,
    We are trying to use the linked server feature with SQL Server 2012 to connect SQL server and Oracle database. We are concerned about the existing memory leak issue.  For more context please refer to the link.
    http://blogs.msdn.com/b/psssql/archive/2009/09/22/if-you-use-linked-server-queries-you-need-to-read-this.aspx
    The above link talks about the issues with SQL Server versions 2005 and 2008, not sure if this is still the case in 2012.  I could not find any article that talks about if this issue was fixed by Microsoft in later version.
    We know that SQL Server process crashes because of the third-party linked server provider which is loaded inside SQL Server process. If the third-party linked server provider is enabled together with the
    Allow inprocess option, the SQL Server process crashes when this third-party linked server experiences internal problems.
    We wanted to know if this fixed in SQL Server 2012 ?

    So your question is more of a information type or are you really facing OOM issue.
    There can be two things for OOM
    1. There is bug in SQL Server which is causing the issue which might be fixed in 2012
    2. The Linked server provider used to connect to Oracle is not upto date and some patch is missing or more recent version is to be used.  Did you made sure that you are using latest version.
    What is Oracle version you are trying to connect(9i,10g, R2...)
    Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
    My Technet Wiki Article
    MVP

  • SQL Server linked server to Oracle

    We have a SQL Server instance with a linked server to Oracle 9i.  When doing a select * (from Oracle) into some_table everything works as expected.
    There is a project to move the SQL Instance to a new clustered server.  We confirmed that the OS, SQL and Oracle Driver versions are the same.  The problem is that when we run the exact same statement the table is being created with unicode columns.
    For Example:
    Oracle
    Col1 Varchar2(20),
    Col2 Varchar2(100)
    Select into on current SQL Instance creates
    Col1 Varchar(20),
    Col2 Varchar(100)
    Select into on new SQL Instance creates
    Col1 NVarchar(20),
    Col2 NVarchar(100)
    Any help to identify how to resolve this issue?
    Thank You,
    Michael

    Hi Michael,
    The varchar2 data type in Oracle database and nvarchar data type in SQL Server is mapped to DT_WSTR data type in SSIS, while the varchar data type in SQL Server is mapped to DT_STR in SSIS. In your case, when loading the Oracle data to nvarchar columns SQL
    Server table, you can extract Oracle data using a source adapter and directly load the data to the SQL Server table. When loading the Oracle data to varchar columns SQL Server table, you need to convert the DT_WSTR data type columns to DT_STR data type columns
    before inserting into SQL Server table. To do the data conversion, you can use a Data Conversion Transform.
    If you want to do it by using T-SQL rather than SSIS, please ask a new question in the T-SQL forum where you can get dedicated support.
    Regards,
    Mike Yin
    If you have any feedback on our support, please click
    here
    Mike Yin
    TechNet Community Support

  • Connect Non-SAP Oracle db (32bit) in sql 2005 (64 bit) using linked server

    Hi,
    I am connecting Oracle 10g database from SQL 2005 using linked server, in which i get the error
    "Cannot initialize the data source object of OLE DB provider "MSDAORA" for linked server "L2ORACLE".
    OLE DB provider "MSDAORA" for linked server "L2ORACLE" returned message "Oracle client and networking components
    were not found. " (Microsoft SQL Server, Error: 7303)
    SAP Server with sql 2005 db is in 64 bit server / Windows 2003
    Non-SAP Oracle 10g is in 32 bit windows 2003 server.
    i have installed Oracle 64 bit client in the SAP Server and also copied the 64 bit version of dboraslib.dll to the DIR_LIBRARY path. I am able to view the oracle tables in the oracle client.
    But, when i create the linked server, it gives the above error.
    If i install 32 bit version of Oracle client in the SAP Server, i am able to create the linked server in the db level, but, it says "Work Process restarted, session terminated" message in the Z program in SAP.
    The same works in the test environment where both are 32 bit servers. problem is when SAP server is in 64 bit and non sap is in 32 bit.
    Please suggest.
    Thanks and Regards,
    Nagu

    "Cannot initialize the data source object of OLE DB provider "MSDAORA" for linked server "L2ORACLE".
    OLE DB provider "MSDAORA" for linked server "L2ORACLE" returned message "Oracle client and networking components
    were not found. " (Microsoft SQL Server, Error: 7303)
    check the workprocess traces for errors (and/or SM21). It seems that the system is "not aware" that an Oracle client is installed.
    64bit programs can´t load 32bit libraries/DLLs that´s why the workprocess dumps when you use the 32bit client.
    Markus

  • Connecting Oracle 9i as a linked server of SQL Server 2000

    I have a problem inserting String values into Oracle 9i as a linked server or SQL Server 2000.
    When I run the following in SQL Analyzer:
    insert into ORACLEOLE..ADMIN.FM_SQL values('asdf','qwer');
    The result msg is:
    Server: Msg 7356, Level 16, State 1, Line 1
    OLE DB provider 'OraOLEDB.Oracle' supplied inconsistent metadata for a column. Metadata information was changed at execution time.
    OLE DB error trace [Non-interface error:  Column 'FM_ID' (compile-time ordinal 1) of object '"ADMIN"."FM_SQL"' was reported to have a DBTYPE of 129 at compile time and 130 at run time].
    Is this a problem that the Charaterset of Oracle 9i being 'ALU32UTF8' ?
    I have tried changing the field's type to varchar2, char, nvarchar2 and nchar...and they didn't work.
    However, when the field type is a number(10) and I insert to the table integer values, the sql works fine.
    so..any data mapping need to be done explicitly?
    Thanks in advance.

    Based on my reading of the ANSI SQL-92 standards, table names are supposed to be in upper case.
    "of course, any lower case letters appearing in a <regular identifier> will have been converted to the corresponding upper case letter before the <identifier> is stored in any table of the Information Schema"
    http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
    Given that table names are supposed to be in upper case and they are in fact in upper case, why don't you just ask for them in upper case in the first place?

Maybe you are looking for