Oracle OleDB Provider VS MS OleDB Provider

I am using Stored Procedures in Oracle Packages and Microsoft ADO for data access.
My Stored Procedure use a Ref Cursor output parameter to make data available to ADO's recordsets.
A big difference in network traffic is found between "Microsoft OLEDB Provider for Oracle" and "Oracle OLEDB Provider" (the native driver provided by Oracle).
The main issue :
<<Oracle OLEDB Provider>>
1) A stored procedure is put into an empty package for testing and returning no row, the result is 4KB downstream traffic.
2) When the SAME stored procedure is put into a large package (a package that already contained 30 other stored procedures, > 1000 lines codes), the result is 70KB downstream traffic for same call that return no row.
<<Microsoft OLEDB Provider>>
1) and 2) both use approximately 4KB downstream traffic.
However, for a query that return large number of rows (~2000 rows), Oracle OLEDB Provider used 143KB but MS OLEDB Provider used 400KB downstream.
The behaviours for upstream are similar.
My application is required utilize limited bandwidth, the the strange behaviour of the Oracle OLEDB Provider make my development of "Packaged" Stored Procedures a big problem.
Does anyone know if there are any tricky on the Oracle OLEDB Provider? Please advice, thanks in advance.
Regards,
Jeff

Sounds like the bug 2597418 that was fixed and released in 9.2.0.2 of Oracle OLEDB Provider

Similar Messages

  • Differences between Oracle OLEDB Provider & Microsoft version

    I am trying to connect to an Oracle database from a SQL Server SSIS package. When I use the Microsoft OLEDB Provider for Oracle (MSDAORA) the connection manager in the package sees a full list of the tables in the Oracle database but when I use Oracle's own OLEDB provider (Oracle.OLEDB.1) I see a much smaller list. I cannot see anything different about the tables that Oracle's Oracle provider fails to see. Has anyone come across this phenomenon before ? Are there some table name characters or data types that the Oracle provider objects to ?

    Not very likely.
    One possible explanation is they query different levels of the datadictionary.
    Sometimes the ALL_ level is queried, sometimes the DBA_ level, sometimes the USER_ level.
    At least you need to ascertain whether you are using the same Oracle account in both drivers. This can also make a difference.
    Anyhow: usually the Oracle driver implements way more functionality compared to the Microsoft driver, so the Oracle driver is to be preferred anyway.
    And probably the Oracle drivers results are correct (one really should use the ALL_ level instead of the DBA_ level).
    Sybrand Bakker
    Senior Oracle DBA

  • Oracle OLEDB PRovider with ASP

    hi,
    Can anyone provide me a piece of code which demonstrates how to call an Oracle sp from asp using the Oracle OLEDB provider.
    I would also appreciate if the Oracle package code could be provided too, since with the Provider we have to have a different code for the stored procedure (Ref cursor..??)
    I have been successfully connecting using the Microsoft ODBC Driver, but looks like it has some big time bugs in it which causes our server to hang and a dllhost.exe to consume large amounts of database memory.
    Anybody can help me with that?
    Many Thanks,
    Harshad.

    Harshad,
    Oracle OLEDB samples are available at
    http://otn.oracle.com/sample_code/tech/windows/ole_db/content.html
    URL.
    "Returning multiple recordsets from a stored procedure" sample demonstrates
    how REF cursors are returned from a Stored Procedure (contained in a DB package).
    This sample is a stand alone application and not an ASP program, but the same code
    can be helpful for ASP too.
    Regards
    Jagriti

  • Oracle.Oledb provider returning improper out-put

    Dear All,
    Need your help in below issue.
    I have SSIS package which pull data from Oracle to SQL Server.
    Currently I have used Oracle.Oledb provider for the same, but it is giving me improper result.
    I check on oracle end count for that table was 26000 and when I run the same query through SSIS it shows 0 rows.
    The preview of the query is showing 0 as output.
    but when I tried the same using Microsoft OLEDB provider for Oracle it giving me proper out-put

    Hi Sushant,
    UseSessionFormat - specifies whether to use the default NLS session formats or let OraOLEDB override some of these formats for the duration of the session. Valid values are 0 (FALSE) and 1 (TRUE). The default is FALSE which lets OraOLEDB override some of
    the default NLS session formats. If the value is TRUE, OraOLEDB uses the default NLS session formats.
    Setting UseSessionFormat=true in the connection string will result in the provider using the session format specified by the client install, which should resolve this issue. The following connection string for the connection like below:
    Data Source=DataSourceNameHere;User ID=UserIDHere;Password=PasswordHere;Provider=OraOLEDB.Oracle.1;Persist Security Info=True;UseSessionFormat=True;
    Reference:
    http://blogs.msdn.com/b/dataaccesstechnologies/archive/2012/01/20/every-bug-is-a-microsoft-bug-until-proven-otherwise.aspx
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Oracle OLEDB Provider

    Good Afternoon:
    I am having trouble running sql thru VB with the
    Oracle OLEDB provider. The sql runs fine with the
    MSDAORA provider. My error is 'missing right parenthesis'.
    Here is the sql:
    SELECT b.DIVISION_ID KEY, b.PLAN_TYPE PLAN, 900000 FS_CODE,
    SUM (CASE WHEN NOT (d.PHARMACY_NETWORK_CODE IN ('9003','9004','9012') and b.CORPORATION_ID NOT IN ('U120','U180'))
    then a.NET_CHECK_DUE_AMT/c.COMPLETION_FACTOR else 0 end) IN_PAY,
    TRUNC (a.SERVICE_DATE,'YEAR') INCURRED_YEAR, SYSDATE
    From PHARMACY_FACT a, PLAN b, COMPLETION_FACTOR c, PHARMACY_CLAIM_GROUPING d
    Where a.PLAN_KEY = b.PLAN_KEY
    AND a.PHARMACY_CLAIM_GROUPING_KEY = d.PHARMACY_CLAIM_GROUPING_KEY
    AND c.FINANCIAL_SERVICE_SUBGROUP = 900000
    AND c.MONTH_INTERVAL = MONTHS_BETWEEN(TRUNC(TO_DATE('09/30/2003','MM/DD/YYYY'),'month'), TRUNC(a.SERVICE_DATE,'MONTH'))
    AND a.SERVICE_DATE BETWEEN TO_DATE('01/01/2000','MM/DD/YYYY') AND TO_DATE('07/31/2003','MM/DD/YYYY')
    AND a.PAYMENT_DATE BETWEEN TO_DATE('01/01/2000','MM/DD/YYYY') AND TO_DATE('09/20/2003','MM/DD/YYYY')
    AND b.PLAN_NBR NOT IN('R1','V1','V2') AND b.CORPORATION_ID IN('F275', 'P475')
    GROUP BY b.DIVISION_ID, b.PLAN_TYPE, TRUNC(SERVICE_DATE,'YEAR')
    When I comment out the case statement, sql runs.
    I tried putting parens around other parts of the
    statement but to no avail.
    Any help would be greatly appreciated.
    Thanks,
    Mike

    Sounds like the bug 2597418 that was fixed and released in 9.2.0.2 of Oracle OLEDB Provider

  • Oracle connect failed on x64 and IA64 platform via Oracle OLEDB provider

    Hi everyone,
    I installed SQL Sever on x64 and IA64 machine, and Create a database via Oracle datasource. I can connect the datasource via OLEDB and .Net provider successfully on x86 machine. But failed to connect the Oracle datasource on x64 and IA64.
    Following is the error messgae:
    1) Install 64 bit build on x64 machine:
    Error message: Test connection failed because of an error in initializing provider. ORA-06413: Connection not open.
    2) Install 32 bit build on x64 machine:
    Error message: Test connection failed because of an error in initializing provider. 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.
    I know there is a know bug on c:\Program Files (x86)\... with Oracle provider. And some one has given a workarround method that I should move my my application out of the the folder path which includes parentheses. But it really is mess method for SQL Server (That is my application)......
    Is there any other workarround method? Or when will Oracle fix this bug?
    Thanks^_^
    Lindsay

    Is 10204 available for x64 and IA64. It is said that there is only 10204 for x86 machine, right?
    I downloaded 10203 for IA64 machine and tested connection on SQL Server with Oracle datasource via Oracle OLEDB provider, and got the following error (The data source is Oracle92 installed on another machine):
    Test connection failed because of an error in initializing provider. 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.
    Could you please tell me what's wrong with it?
    Thanks
    Lindsay
    Message was edited by:
    lindsaywang

  • Udl test not possible to test Oracle OLEDB provider

    Hi,
    I have some issue to connect to my Oracle database.
    My environment is Windows Server 2008 R2, with Oracle server 11G.
    To test my Oracle OLEDB provider, I setup a udl test as described follow:
    1- Creation a file text document on server desktop : test.txt
    2- File extension change to .udl : test.udl
    3- launch of test.udl
    When I launched the test.udl, The Data Link Properties dialog box is not opened. A windows explorer is opened.
    Anybody knows why I am not able to launch the data link properties dialog box in my environment ?
    Thank you for your help
    Regards,
    Sandrine

    Error found... issue resolved.
    Basically got the sld connections tested. This error resulted because the default abap client in CTC was wrongly set.
    Regards.
    Mohamamd

  • Multiple Recordsets and the Oracle OleDB Provider

    We are trying to return multiple recordsets from an Oracle SP through the Oracle oledb provider using VB. First of all, is this possible and is there any example code out there. Having trouble finding some info on this.
    Thanks

    After reading install guide I figured out waht might be the problem.
    I put OLEDB install into the same home (ora81).
    It was suppose to go into different home directory (ora92).
    Also, OLEDB is one of few components which can't exist in more then one
    home dir on single machine. Installer knows that, and skips install of
    OLEDB provider itself. So in my case I had to first uninstall OLEDB provider 8.1.7
    and then install OLEDB provider 9.2
    Thanks,
    ...dejan

  • Append hint + ADO + Oracle OleDB Provider

    Hi everybody!
    This is my first post here in this great forum! ;-)
    I have a problem using Append hint with Oracle OleDB Provider and I've been searching internet for an answer without any luck.
    I'm trying to use Append hint with ADO + Oracle OleDB Provider (OraOLEDB.Oracle.1), like in the SQL below:
    INSERT /*+APPEND*/
    INTO my_table(field1, field2, field3)
    SELECT 0 field1, v.field2, v.field3)
    FROM my_second_table v
    The problem: Oracle is still creting log for this INSERT (It is working like there was no Append hint).
    If I use the same SQL statement with Microsoft Ole DB Provider for Oracle, the Append hint works as expected (log is not created), but doesn't work at all with Oracle DB Provider.
    Trace shows me that the SQL sentence is ok (the append hint is there!).
    I've tried Oracle servers 9.2 and/or 10g, and the problem is the same.
    Question: Does Append hint work with Oracle OleDB Provider? If yes, why it is not working? Something related with connection properties?
    Any help will be much appreciated!
    Thanks in advance.
    Alexandre Machado

    user8010279 wrote:
    Hi Solomon, thanks for you answer.
    Is the same SQL against the same database, with the same program, using ADO + OleDB Provider.
    The table is in NOLOGGING mode.
    When I use Microsoft OleDB Provider for Oracle there is no log creation. Then I disconnect and reconnect to the same server/database, using Oracle OleDB Provider. Then I execute the same SQL and.... there IS log creation, meaning that in that scenario, append hint is being ignored. I can't figure out WHY!!! :-(
    Alexandre,
    I'm not sure what you mean by "there is log creation". In general you need to distinguish between UNDO and REDO generation. A direct-path insert (APPEND hint) doesn't generate undo but still can generate redo, depending on the ARCHIVELOG / FORCE LOGGING mode of the tablespace resp. database and the LOGGING/NOLOGGING attribute of the table.
    Note that in case indexes exist on the table there will always be undo and therefore redo generation for the index maintenance as part of the direct-path insert.
    You should check V$SESSION (SQL_ID in 10g, SQL_ADDRESS + SQL_HASH_VALUE in pre-10g) and V$SQL in the database to double check if the SQL passed by the Oracle OLEDB Provider actually contains the APPEND hint in case the INSERT actually generates UNDO (which is the indicator that shows you if the direct-path insert is used or not). Whether it generates REDO is - as already mentioned - depending on other factors.
    So the question is how have you determined if the direct-path insert mode has been used or not?
    The simplest approach to test if direct-path insert mode is used or not is to issue a query on the object inserted into after the insert before committing the transaction. If it fails with "ORA-12838: cannot read/modify an object after modifying it in parallel" then you successfully inserted using direct-path insert.
    Note that there a number of restrictions that prevent the direct-path insert from happening, in those cases the APPEND hint will be silently ignored, e.g. enabled triggers, foreign keys on the table. A quite comprehensive list of restrictions is listed in the manuals here:
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28313/usingpe.htm#CACEJACE
    Regards,
    Randolf
    Oracle related stuff blog:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • Parameterized queries not implemented in Oracle OLEDB ?

    Hi Xperts !
    I'm implementing an ADO application with Oracle Provider for OLEDB and get an error when accessing Parameters:Count properties of an ADO command object.
    Is this not implemented in Oracle OLEDB ?
    Is there a workaround to get and set parameters for a query ?
    Thanks in advance.
    Phil

    It can in principle be achieved in SQL (depending on what result set you require) with CONNECT BY and SYS_CONNECT_BY_PATH in 9i and later and with POWERMULTISET in 10g. No doubt this could be done in 8i if absolutely necessary.
    Possibly DBMS_FREQUENT_ITEMSETS in 10g supports this kind of analysis.

  • Oracle OLEDB Installation thru Installshield

    I need to call Oracle OLEDB Provider "setup.exe" once I complete installing our product (using Installshield). I tried all different ways to do this and I have absolutely no luck.
    1. I tried calling LaunchaAppAndWait(SRCDIR^"disk1\\install\\win32\\setup.exe", "", WAIT) in OnFirstUIAfter event before SdFinishEx function and Installshield doesn't wait for Oracle Installer to finish its installation.
    2. I tried to get window handle for each window created during Oracle Installation and waiting, this somewhat makes Installshield to wait but hangs once Oracle completes its installation and sequence of windows displayed can change during Oracle Installation if user clicks on back button which will make Installshield to hang.
    Enable(STATUS);
    SetStatusWindow(count, "Please wait... launching Oracle Universal Installer");
    WindowName = "Welcome";
    FindOracleWindow();
    WindowName = "File Locations";
    FindOracleWindow();
    WindowName = "Available Product Components";
    FindOracleWindow();
    WindowName = "Summary";
    FindOracleWindow();
    WindowName = "Install";
    FindOracleWindow();
    WindowName = "End of Installation ";
    FindOracleWindow();
    hWnd=NULL;
    Disable(HOURGLASS);
    Disable(STATUS);
    3. I followed knowledge base article w

    Do you want to create a response file for the Oracle Universal Installer? That would allow you to do a silent install of the OLE DB provider.
    If you go to http://tahiti.oracle.com and search for "response file", you'll get plenty of hits in the OUI documentation.
    Justin

  • OCI vs OO4O vs Oracle OLEDB vs MS Oracle OLEDB

    I'm developing an application that needs to get database schema information (Tables, Columns, Stored Procedures, Views, etc.) as well as execute SQL statements against an Oracle database. From a developer's perspective, is their an advantage of using one of the above listed technologies over the other?
    Here's a brief outline of my experience with each thus far:
    I've briefly worked with OO4O and it doesn't seem to allow me to browse the schema objects unless I know the name of the schema.
    The MSOLEDB provider for Oracle is very, very slow...
    The Oracle OLEDB provider seems to work OK.
    I've not used the OCCI method.
    Any comments would be appreciated.

    I'm developing an application that needs to get database schema information (Tables, Columns, Stored Procedures, Views, etc.) as well as execute SQL statements against an Oracle database. From a developer's perspective, is their an advantage of using one of the above listed technologies over the other? OCI is the lowest programmatic layer, and the most complicated.
    All other layers are built using OCI.
    The choice depends on user's requirement - ease of use, speed, functionality etc etc.
    Here's a brief outline of my experience with each thus far:
    I've briefly worked with OO4O and it doesn't seem to allow me to browse the schema objects unless I know the name of the schema.
    The MSOLEDB provider for Oracle is very, very slow...
    The Oracle OLEDB provider seems to work OK.
    I've not used the OCCI method.
    Any comments would be appreciated.

  • No luck installing Oracle OLEDB 9.2 on WinXP

    I've bee heer with the same subject. Got an advice to uninstall Oracle OLEDB first and repeat installation. I've tried several times using full Oracle Client Installer as well as OLEDB version of Installer. Each time my list of OLEDB providers does not include Oracle OLEDB provider. I even updated my MDAC to 2.7 SP1 Refresh but results are the same.
    Does anyone have a clue what should I do ?
    Thank you.

    Don,
    If your %windir%\system32\regsvr32.exe works fine and your file system is NTFS, you may want to try the following. (Curtesy of Helena Bennett Kirksey in this forum. The instructions should be originally from Oracle.)
    1. Log on to Windows as a user with Administration privileges.
    2. Launch Windows Explorer from the Start Menu and navigate to the ORACLE_HOME folder. This is typically the "Ora92" folder under the "Oracle" folder (i.e. D:\Oracle\Ora92).
    3. Right-click on the ORACLE_HOME folder and choose the "Properties" option from the drop down list. A "Properties" window should appear.
    4. Click on the "Security" tab of the "Properties" window.
    5. Click on the "Authenticated Users" item in the "Name" or "Group or user names" list.
    6. Uncheck the "Read and Execute" box in the "Permissions" or "Permissions for Authenticated Users" list under the "Allow" column.
    7. Re-check the "Read and Execute" box under the "Allow" column (this is the box you just unchecked).
    8. Click the "Advanced" button and in the "Permission Entries" list make sure you see the "Authenticated Users" listed there with:
    Permission = Read & Execute
    Apply To = This folder, subfolders and files
    Sinclair

  • Oracle oleDB generates lots of network traffic than Microsoft Oledb

    Hi,
    When calling the same stored proc. that returns a ref cursor, Oracle Oledb (1.34 MB) generates alot of network traffic than Microsoft Oledb (0.06 MB). The statistic is gathered using Windows 2000 Network Monitoring tools.
    Calling the same stored proc. that returns a ref cursor
    Oracle OleDB Microsoft Oledb
    Byte Received: 1408026 (1.34 M) 71032 (0.06 M)
    Byte Sent: 306468 (0.29M) 69914 ( 0.067M)
    Frame: 1263 414
    Network Utilization: 6%-14% 1%-3%
    Anyone know why is this case?
    Joe

    When working with ADO and VB6, I looked at the database server with SQL Trace and found that each dynamic SQL statement was parsed twice per execution. REF CURSORs certainly require several network round-trips in order to retrieve schema information for the dataset to be created. This behaviour probably increases network load.
    Unfortunately, I have not found any description of Oracle's OLEDB implementation. Hopefully, things will get better with the new, native OleDb data adapter.
    /Armin
    Previous post:
    multiple parsing of SELECTs O/S : N/A POST: REPLY (W/QUOTE)
    Author : Armin Type : N/A
    Date : Apr 7, 2001 12:51 PT
    System: OLEDB provider 8.1.7, server 8.1.7.
    Our VB code dynamically assembles SELECT statements and fetches recordsets with ADO function Recordset::Open. SQL TRACE shows that those SELECTs are parsed twice per execution. SELECTs embedded in stored procedures are parsed only once during the SP's life time (but then the stored procedure call itself is parsed once per execution).
    Parsing twice per execution consumes a lot of CPU. REF Cursors might reduce parsing but cause additional network roundtrips.
    How could I reduce the parse count?

  • Oracle OLEDB driver can't execute stored procedure in Oracle 8

    Hello, I have a problem when execute a Delphi program, occurs the next error:
    'ORA-06574: Function LEOCLAVEROL references package state, cannot execute remotely'
    LEOCLAVEROL is a function PL/SQL, with a process included in it compiled in Borland C, the function is called from a SELECT (ADOQuery) in a Delphi program.
    Scenario
    User:
    Windows XP
    Oracle Client 8i Ver 8.1.7.0
    Driver= OraOLEDB.Oracle.1
    Provider=MDAC ADO Ver 2.7
    Server:
    Oracle8 Release 8.0.5.2.1 runing Windows NT 4 Service Pack 6
    (The process is OK with Oracle 8i !!!!)
    Anybody help me?
    Thanks
    Osky

    Hello, I have a problem when execute a Delphi program, occurs the next error:
    'ORA-06574: Function LEOCLAVEROL references package state, cannot execute remotely'
    LEOCLAVEROL is a function PL/SQL, with a process included in it compiled in Borland C, the function is called from a SELECT (ADOQuery) in a Delphi program.
    Scenario
    User:
    Windows XP
    Oracle Client 8i Ver 8.1.7.0
    Driver= OraOLEDB.Oracle.1
    Provider=MDAC ADO Ver 2.7
    Server:
    Oracle8 Release 8.0.5.2.1 runing Windows NT 4 Service Pack 6
    (The process is OK with Oracle 8i !!!!)
    Anybody help me?
    Thanks
    Osky

Maybe you are looking for

  • Can you take a Video still to "create" a jpg ?

    I need some photos of some people for a calendar, but I only have VIDEO of them. If there some way to isolate an individual digital frame and essentially create a photograph that can be e-mailed? There is nothing about doing this in the tutorials.

  • Number of "songs available in iCloud" problem

    Everytime I update iTunes Match the number of "songs available in iCloud" is 1 extra to the amount of songs in iTunes on my Mac. For instance I currently have 12089 in iTunes, but updating iTunes Match always says I have 12090 songs available in iClo

  • 2.1 update for Vista users

    Decided to wait a day or so until some of the bugs were worked out and glad I did. I just updated to iTunes 8.0 and 2.1. Total download and update took 15 minutes. Everything was smooth - did not lose any data from Contacts/Email/Recent Calls etc...

  • Weather widget button temp display

    Its always 73 degrees. Wouldn't it be nice if the button displayed the temp of your current location? wink wink

  • G/L account A02010002 cannot be used (please correct)

    Hi Experts, I am doing PR (ME51N) while doing i am facing this error. Please guide me. G/L account A02010002 cannot be used (please correct)     Message no. ME045 Diagnosis     Comparison of the field selection strings from the G/L account A     and