Oralce OLEDB Driver

Our company recently restricted the use of SQL*Loader for moving data into Oracle. We now use SQL Server DTS to move text files into Oracle. But the process is painfully slow. Moving data the other way (e.g. Oracle to SQL) is very fast. I've tried the Oracle OLEDB driver, the Microsoft OLEDB driver for Oracle, and neither works especially well.
A google search on DTS and Oracle returned several hits reinforcing this slowness issue. Now comes my question... I've heard a rumor that Oracle has a faster driver available (for a price) Could this be true??? If this rumor has no truth to it, could anyone possibly suggest any optimization of the existing driver?

There's no truth to the rumor of a faster driver available if you shell out some cash. The Oracle driver is the Oracle driver. On occasion, one of the third party drivers have some performance optimizations that the Oracle driver doesn't, but that is relatively rare and isn't likely to improve things by more than a few percent.
From a political standpoint, why would the company restrict SQL*Loader? That strikes me as a rather counterproductive step. Are there real concerns that could be addressed through other means?
From a technical standpoint, is your DTS package changing the default mode from autocommit? If not, that will certainly cause Oracle some issues-- committing after every INSERT is going to cause Oracle significant performance issues.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC

Similar Messages

  • Limitation on SQL executing select statement from ADO and Oracle 8.1.7.1 OleDB Driver

    Hi,
    we are running a query with a big dunamic select statement from VB code using ADO command object. When Execute method is called system hangs and control won't return back to the application. it seems to be that there is some type limitation on Query string length. Please tell us if there is any?
    we are running Oracle 8.1.7 Server on Windows 200 Server and connecting from a W2K professional, ADO 2.6 and Oracle OLEDB 8.1.7.1 OLEDB Driver.
    Sample code:
    Dim rs As ADODB.Recordset
    Dim cmd As ADODB.Command
    Set cmd = New Command
    With cmd
    .CommandText = ' some text with more than 2500 characters
    .CommandType = adCmdText
    Set rs = .Execute
    End With
    when i debug using VB6 and when .Execute line is called system hangs or return a message method <<somemethod> of <<some class name>> failed error.
    Any help is appreciated.
    Thanks,
    Anil

    A stored procedure would only slow you down here if it was poorly written. I suspect you want to use the translate function. I'm cutting & pasting examples from the documentation-- a search at tahiti.oracle.com will give you all the info you'll need.
    Examples
    The following statement translates a license number. All letters 'ABC...Z' are translated to 'X' and all digits '012 . . . 9' are translated to '9':
    SELECT TRANSLATE('2KRW229',
    '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
    '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "License"
    FROM DUAL;
    License
    9XXX999
    The following statement returns a license number with the characters removed and the digits remaining:
    SELECT TRANSLATE('2KRW229',
    '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789')
    "Translate example"
    FROM DUAL;
    Translate example
    2229
    Also, LIKE '%<string>%' is going to be rather expensive simply because it has to compare the entire string and because it forces full table scans, rather than using indexes. You could speed this sort of query up by using interMedia Text (Oracle Text now in 9i). If you can eliminate one of the '%' options, you could also improve things.
    My guess is that your stored procedure is inefficient and that's causing the problem-- 5k rows per table should be pretty trivial.
    If you post your query over on the PL/SQL forum, there are better performance tuners than I that might have more hints for you. To get really good advice, though, you'lllikely have to get at least the execution plan for this statement and may need to do some profiling to identify the problem areas.
    Justin

  • Oracle OLEDB drive 8i and 9i truncates LONG fields

    Anyone,
    I have a situation where my Oracle oledb driver truncates LONG fields.
    My application that runs queries using the oracle oledb driver.
    The query is a join between two tables and includes a LONG as one of the fields retrieved.
    When the Cursor Location is set to server the data returned is truncated.
    Setting the Cursor Location to Client I can retrieve the complete data under specific cursor and lock types. The Microsoft driver for oracle does not truncate.
    Note that a simple query without the join does not cause the problem.
    Has anyone else noticed this? I know its quite specific.
    Otherwise where do you submit bugs to oracle?
    Thanks
    Stuart

    Hi,
    I've got the same problem, i.e. SELECT a LONG RAW column from
    joined/unioned tables truncates the column (via OraOleDB).
    Unfortunately, setting ChunkSize to 65535 does not help me,
    because data in a column are longer, then 64K (and are truncated
    to 64K). Please, have you found any solution?
    Thanks for any reply ..
    Milan

  • Sub queries with the Oracle OLEDB driver

    We have been testing the Oracle OLEDB driver through VB/ADO on Win2k and have found some VERY disturbing issues. First, some background - version 8.1.7.2, using client side-disconnected recordsets.
    A simple query with one or more subqueries is returning no rows when running the same query in SQLPlus returns the desired results. EX: Select a.*, (select Typename from user_types where user_types.type_id =a.type_id) user_type_name from users_group a where user_id = 5
    remove the sub-select and the ORACLE OLEDB driver returns a single row. Leave it in and you get recordcount = 0 and rs.eof is true.
    Can anyone explain this?
    Thanks

    Duplicate post:
    In Trouble with the Oracle JDBC Driver version - 10.1.0.5.0
    Claus,
    Pardon me if I am stating the obvious, but why don't you use the 10.2 JDBC driver with your 10.2 database? The driver is part of the database distribution. Otherwise, you can download the driver from the OTN Web site.
    Good Luck,
    Avi.

  • 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

  • Oracle OLEDB driver can't postion at the very first record if ....

    Hi, all:
    It seems that I found a serious bug with OLEDB provider 8.1.7.3.
    For the following two queries, the provider works properly.
    select * from emp
    select * from emp, account
    However, the provider can't reposition to the very first record after navigating some records with the following query.
    select * from emp, account, dept
    Notify that MS Oracle provider still works correctly.
    Regards,
    Yuancai (Charlie) Ye
    Fast accessing all of remote data sources anywhere with SocketPro using
    batch/queue, non-blocking and parallel computation
    See 30 well-tested and real OLEDB examples
    at http://www.udaparts.com

    Quote
    Originally posted by wonkanoby
    what motherboard
    tried clearing cmos
    I thought i had mentioned that but it seems I didn't. :P
    It's the K7T Pro.  Same as the post listed above.
    According to my friend he's had it for more than 3 years so the warrantee is gone and I dont' see anything MSI can do.
    I came across many posts on the forums about the K7t Pro and it's successors.
    Everyone is says the same thing, "a bad voltage regulator.... leaky capacitors..."
    I've eliminated the following things as causes for this problem...
    PSU
    CMOS
    CPU
    RAM
    VideoCard
    SoundCard
    NIC
    Cooling
    The only things I am not sure of is the motherboard and the fact the D-Leds point to something with the lithium batter, as I mentioned above.
    Have there been problems with these motherboards like people say?
    Can you or anyone else think of anything which maybe causing this?

  • Can the 8i and 9i Oracle OleDB Providers co-exist on one machine

    One of our products requires the Oralce 8i OleDb driver version and is 'incompatible' with the 9i OleDb driver. Is their a possibility to 'package' ourselves the 8i driver and install (so let it coexist) on the same machine where e.g. the 9i OleDb is present ?

    Patrick,
    The destination machine should have proper installations of Oracle 8i and 9i homes. Only one home can be active at a time. When 8i home is active, use 8i OraOLEDB; when 9i is active, use 9i OraOLEDB. Technically it's possible.
    I cannot answer "packaging" part. "Packaging" involves legal issue.
    I would suggest that solve the "'incompatible' with the 9i OleDb driver" part. Please provide details.
    Sinclair

  • Oracle Provider for oledb 8i & 9i truncates LONG fields

    Anyone,
    I have a situation where my Oracle oledb driver truncates LONG fields.
    My application that runs queries using the oracle oledb driver.
    The query is a join between two tables and includes a LONG as one of the fields retrieved.
    When the Cursor Location is set to server the data returned is truncated.
    Setting the Cursor Location to Client I can retrieve the complete data under specific cursor and lock types. The Microsoft driver for oracle does not truncate.
    Note that a simple query without the join does not cause the problem.
    Has anyone else noticed this? I know its quite specific.
    Thanks
    Stuart

    Hi,
    I've got the same problem, i.e. SELECT a LONG RAW column from
    joined/unioned tables truncates the column (via OraOleDB).
    Unfortunately, setting ChunkSize to 65535 does not help me,
    because data in a column are longer, then 64K (and are truncated
    to 64K). Please, have you found any solution?
    Thanks for any reply ..
    Milan

  • Which ojdbc14.jar JDBC driver to use for Oracle 10g database

    When ODI is installed there seems to be an Oralce JDBC driver in place in the drivers folder (ojdbc14.jar).
    When we connect to an Oracle datastore and point to a table and use the 'reverse' function to populate the columns - it sort of works OK but does not bring back the datatypes properly. This is found to be when the Oracle table has UNICODE character datatypes NCHAR and NVARCHAR. If a table has CHAR and VARCHAR it is all OK but any table that has UNICODE datatyoe has a problem.
    Is this likely to be the JDBC driver ?
    We have tried replacing this ojdbc14.jar with the older classes12 and this, as expected, did not resolve the issue.
    We then tried replacing it with the latest 10.2.0.4 ojdbc14.jar but again no difference.
    Does anyone have any experience with Oracle JDBC drivers and what release level to use - and using against UNICODE datatypes in tables ?
    Regards

    Our problem is that when we use 'reverse' to populate the columns from a physicla table in an Oracle database - ODI is obviously 'seeing' the ORacle table and is correctly understanding the columns in the table and defining them in it's model - but wherever there is a column with a datatype in the ORacle database of NCHAR or NVARCHAR it fails to populate the datatype or the 'length' of these columns. If I manually try to specify the datatype these 2 unicode data types do NOT exist in the pull down list of datatypes.
    I see what you are asking - if these datatypes are actually defined as datatypes within the actual technology - I cant access my lab right now but will check as soon as I can. Thanks for the suggestion.

  • Can someone please explain OLEDB Drivers to me?

    Hi All,
    I am looking for information on how the OLEDB driver (10.2.0.4) works but cannot find anything.
    The information I am looking for are,
    1. How much memory each "connection" uses or how to find this out?
    2. How long each connection is held open after the client disconnects?
    3. How many connect are open at any time or how to find out how many are open?
    4. Any simple information around the OLEDB driver.
    Thanks
    Graeme

    1. How much memory each "connection" uses or how to find this out?Memory used by a connection at database level in Oracle 10.2.x varies between 2 to 2.5MB for idle connections (PGA). It might acquire more memory depending on the needs of your connection. You can find this out using the dynamic performance views related to process global area.
    2. How long each connection is held open after the client disconnects?This depends on your connection pooling settings for retaining the connections. If there is no connection pool being used, the session should get disconnected immediately (under normal circumstances).
    3. How many connect are open at any time or how to find out how many are open?You can query V$session for program/module and group by on the same.
    4. Any simple information around the OLEDB driver.http://en.wikipedia.org/wiki/OLEDB

  • Error Creating JVM after oledb install

    I've installed OraOLEDB_81730 several times on Windows 200 server with success. However the latest install of the oledb cause an error window to appear after reboot.
    The window title bar was entitled "Error" and the window was of type warning with the msg "error creating jvm"
    When I uninstall the oledb driver the error window goes away. Re - install, the error window comes back.
    Anyone have any ideas?

    I still think it is a permissions/ user privileges/ policies/ security issue - if it runs on one account, it is unlikely the plug-in is damaged or you installed the 32bit version in CS5 or vice versa. I strongly suspect the plug-in is unable to probe your graphics card and thus never initializes. Perhaps it's being blocked by some security tool or your user account doesn't have the permissions to load system drivers. The latter can be fixed by changing the respective entry in your group policy editor (gpedit.msc). The respective point would be in Computerkonfiguration --> Windows-Einstellungen --> Sicherheitseinstellungen --> Lokale Richtlinien --> Zuweisen von Benutzerrechetn --> Laden und Entfernen von Gerätetreibern. And of course temporarily turn off security stuff to verify it's not the problem.
    Mylenium

  • Thin ODBC driver

    Hello All,
    If a java application wants to talk to Oracle we can use the thin driver for oracle classes12.zip. The best thing about this is that it does not mandate the installation of the Oracle client on the machine from which this is used. just the classes12.zip is sufficient.
    Is there something like this for the ODBC database connectivity as well ? a thin ODBC, OLEDB driver ?
    Or for OleDb and ODBC type of connections the oracle client installation (500 MB) is neccassary for the client.
    thanks a lot for your help. Please do reply.
    regards,
    Abhishek.

    Justin,
    Do you represent Oracle or are you an interested third party?I'm just an interested third party. I have worked for Oracle before (in the ODBC group).
    Regarding the 40 MB, I set up two "Client Custom Install Response File Templates." The first does a minimal installation. The second is called from the first and was an attempt to add the 8.1.7.4 ODBC driver. As a fortunate side-effect, the second one un-installs a bunch of unnecessary components that the first one installs - things like NET8 and the superfluous JRE.OK. I got the wrong idea from your initial post-- I've dealt with people before that wanted to either roll their own install or to delete "extra" bits from a standard install by hand. These generally caused lots of headaches and didn't work too well. It sounds like you're going through the OUI, so you ought to be pretty safe.
    I'm a bit confused by the "fortunate side-effect" comment, however. I cannot understand why installing an updated driver would have a side-effect of deleting anything. Additionally, I strongly doubt that you're actually removing the Net8 client. Net8 is the wire protocol that all the Oracle client API's use to communicate with the database. If you don't have the Net8 client installed, I can pretty much guarantee that nothing will work.
    I could make a lot of editorial comments but I think you understand the issues.I haven't dealt with the OUI in 9i, so I'm not sure whether you could set up similiar templates there to reduce the 300 MB footprint. That certainly does seem to be a bit large for a minimum install.
    Justin

  • Windows 2000 and oracle driver

    Does any one has problem with oracle linkserver on following system
    OS: windows 2003 server
    SQL Server: SQL 2000 server
    Linkserver to oracle 10g: using oracle oledb provider.
    it works and then it sends TNS error message. For which we have already fixed the tnsname files for oracle and after reboot it works even once or twice and then it fails again of TNS could not be resolved error...
    OLE DB provider 'OraOLEDB.Oracle' reported an error.
    [OLE/DB provider returned message: ORA-12154: TNS:could not resolve the connect identifier specified]
    OLE DB error trace [OLE/DB Provider 'OraOLEDB.Oracle' IDBInitialize::Initialize returned 0x80004005:   ].
    Is there something to do with windows 2003 or corrupted oledb driver or windows service packs.
    Please advice

    Hi amy2ki
    I had the same problem and solved it.
    It seems that this issue is related to security settings on ORACLE_HOME folder.
    You must force Read&Execute rights on ORACLE_HOME folder for "Authenticated Users" and propagate them below.
    Check this note on :
    http://www.google.com/notebook/public/01335025009615452606/BDRwbSwoQnIbT6rQh
    Shortly, the steps are:
    Oracle Client software requires that you give the Authenticated User
    privilege to the Oracle Home by following these steps:
    1. Log on to Windows as a user with Administrator privileges.
    2. Launch Windows Explorer from the Start Menu and and navigate to the
    ORACLE_HOME folder. This is typically...
    - the "Ora92" folder under the "Oracle" folder
    (i.e. D:\Oracle\Ora92) in Oracle9iR2
    or
    - the "Client_1" folder under the "Oracle\product\10.1.0" folder
    (i.e. D:\Oracle\product\10.1.0\Client_1) in Oracle10gR1
    or
    - the "Db_1" folder under the "Oracle\product\10.1.0" folder
    (i.e. D:\Oracle\product\10.1.0\Db_1) in Oracle10gR1
    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.
    NOTE: If you are running Windows XP and do not have a "Security" tab
    please do the following:
    (a) Open "Folder Options" in your Control Panel.
    (b) Choose the "View" tab.
    (c) Under "Advanced Settings" uncheck the option "Use simple file
    sharing (Recommended)".
    The "Security" tab should now be available.
    5. Click on "Authenticated Users" item in the "Name" list (on Windows XP
    the "Name" list is called "Group or user names").
    6. Uncheck the "Read and Execute" box in the "Permissions" list under the
    "Allow" column (on Windows XP the "Permissions" list is called
    "Permissions for Authenticated Users").
    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
    If this is NOT the case, edit that line and make sure the "Apply onto"
    drop-down box is set to "This folder, subfolders and files". This
    should already be set properly but it is important that you verify this.
    9. Click the "Ok" button until you close out all of the security properties
    windows. The cursor may present the hour glass for a few seconds as it
    applies the permissions you just changed to all subfolders and files.
    10. You must REBOOT YOUR COMPUTER to assure that these changes have taken
    effect. Failure to do this can prevent this procedure from working!
    11. Re-execute the application and it should now work.
    NOTE: If the problem is still present after following steps 1-11 and
    rebooting your computer in step 10 you should perform the following
    two additional permissions settings at step 8 as described below.
    This may be necessary due to permissions that have been configured
    beyond the standard permissions setup when the OS was originally
    installed:
    12. If the problem is still present, go back through these same 11 steps
    above, but when performing step 8 additionally check both boxes entitled
    "Inherit from parent the permission entries that apply to child
    objects. Include these with entries explicitly defined here."
    AND
    "Replace permission entries on all child objects with entries shown
    here that apply to child objects"
    AND be sure to reboot in step 10.
    Hope it helps, it worked perfectly for me.

  • Error during migartion

    I am Migrating data from SQL server7.0 to Oracle 9iRel2
    One column in Table of SQL server has default value one space"" and column is NOT NULL.
    I have created same table with same default value in Oracle.
    When I insert the space value directly in oracle database it is taking but when I am converting from SQL server to Oracle I am getting NULL Constarint violation ERROR.
    I am using Oracle provider for OLEDB driver for convertion.

    I seem to have solved this problem as follows:
    1.  Download the iTunes.exe file from apple.com, but save the file to my Desktop rather than running it.
    2.  Execute (double click) the iTunes.exe file from my Desktop.
    3.  When i encountered the problem that i've reported (the iTunes installer announces that it can't access a file in the c:\config.msi directory, i clicked the Retry button in the error window.  The iTunes installer process appeared to move past the error.
    4.  I experienced the same error one more time during my apparently successful iTunes 11.0.1 install, but the 2nd time this error came up iTunes reported that it was trying to access a different file name in the c:\config.msi directory.  Again, i clicked the Retry button in the error window and the iTunes installer appeared to move on past the error.

  • How to crate a new database

    I have installed the XE edition and the home page and all works. What I would like to do is create a simple database and have an application talk to it via OLEDB. Two problems with that:
    1) If you want to create a new database, the simplest option is to use the Database Configuration Assistance (DBCA). But that doesnt come with XE and you dont appear to be able to download it.
    Your next option is to use SQL statements. The manual contains some info but it states that your DBA will typically create the database using SQl scripts. It does give some snippets as to what you might do, but it is not complete and hence fails if you try it (bad docs!). I found a few other web pages that contain some commands, e,g this one:
    http://www.adp-gmbh.ch/ora/admin/creatingdbmanually.html
    which I am about to try next.
    Why is creating a new DB using Oracle so hard? Took me 10 min on MySQL and SQL Server. Surely for test purposes if you just want a simple database with default settings, it should be easy to create?
    2) Visual Studio 2003 lets you do a database connection test. So with Oracle XE installed, I did a connection test using "Microsfot OLE DB Provider for SQL Server" and I choose local host and give it my admin user name and password. It says "Test connection failed because of an error initializing provider. SQL Server does not exist or access denied". I also installed ODAC101040 which is supposed to install the Oracle OLEDB driver. So if I try and do a connection test for the "Oracle Provider for OLE DB". Just selecting it gives you "OraOLEDBplus10.dll - The specific module could not be found". So what does ODAC101040 install really then?
    Any ideas?

    I will take the first part of this (BTW - it's often better to have seperate threads for seperate questions - makes it easier to track).
    The concept of a database in SQLServer and MySQL is different than the concept of a database in Oracle. In Oracle, we use the concept of a schema to seperate logical objects in a name space, SQLServer and MySQL use a database. We also then use the concept of a tablespace to seperate how physical objects are stored, as opposed to how a database is used in SQLServer and MySQL.
    In XE, you can have as many schemas and tablespaces as you want. So instead of looking at CREATE DATABASE (which is really complicated, and not really doing what you think it is doing), you should be instead be considering CREATE USER (creates a schema in which you can then create database objects) and CREATE TABLESPACE (creates a physical storage location). Having said that, XE defaults the physical storage locations to a generic tablespace called USERS, as an aid to simplicity, but you can create your own tablespaces if you wish.
    CREATE USER is docced in the 2 DAY DBA guide for XE. CREATE TABLESPACE is in the Oracle Database 10g Release 2 doc - http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7003.htm#SQLRF01403
    So the question really is - what is if that you are wanting to do when you are trying to create a database in Oracle ? What is the problem you are trying to solve ?

Maybe you are looking for