Providers for Oracle 

 » Oracle Data Provider for .NET / ODP.NET (OracleConnection) 

 » .NET Framework Data Provider for Oracle (OracleConnection) 

 » dotConnect for Oracle (OracleConnection) 

 » Microsoft OLE DB Provider for Oracle 

 » Oracle Provider for OLE DB 

 » .NET Framework Data Provider for OLE DB (OleDbConnection) 

 » Oracle in OraHome92 

 » Microsoft ODBC for Oracle 

 » Microsoft ODBC Driver for Oracle 

 » Oracle in XEClient 

 » .NET Framework Data Provider for ODBC (OdbcConnection) 

 » MSDataShape 

//is2120 
Oracle Data Provider for .NET / ODP.NET
 
 
 
   Type:    .NET Framework Class Library 
   
Usage:  Oracle.DataAccess.Client.OracleConnection 
   
  
 
   Manufacturer:  Oracle 
   
 
   More info about this class library » 
  
 Customize string 
  
 example values » 
  
 
    
  
 

  Using TNS 

 
Data Source 
  =TORCL; 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 

     
 
 
 
 

  Using integrated security 

 
Data Source 
  =TORCL; 
 Integrated Security 
 =SSPI;
 

     
 
 
 
 

  Using ODP.NET without tnsnames.ora 

 
Data Source 
  =(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID))); 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 

     
 
 
 
 

  Using the Easy Connect Naming Method (aka EZ Connect) 

 

  The easy connect naming method enables clients to connect to a database without any configuration. 

 
Data Source 
  =username/password@//myserver:1521/my.service.com;
 

   Port 1521 is used if no port number is specified in the connection string. 
  

 Make sure that EZCONNECT is enabled in the sqlnet.ora file. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 
  

 '//' in data source is optional and is there to enable URL style hostname values 
  
 
 

  Easy Connect Naming Method to connect to an Instance 

 

  This one does not specify a service or a port. 

 
Data Source 
  =username/password@myserver//instancename;
 

     
 
 
 
 

  Easy Connect Naming Method to connect to a dedicated server instance 

 

  This one does not specify a service or a port. 

 
Data Source 
  =username/password@myserver/myservice:dedicated/instancename;
 

   Other server options: SHARED, POOLED (to use instead of DEDICATED). Dedicated is the default. 
 
 
 
 
 

  Specifying Pooling parameters 

 

  By default, connection pooling is enabled. This one controls the pooling mechanisms. The connection pooling service creates connection pools by using the ConnectionString property to uniquely identify a pool. 

 
Data Source 
  =myOracle; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 Min Pool Size 
 =10; 
 Connection Lifetime 
 =120; 
 Connection Timeout 
 =60; 
 Incr Pool Size 
 =5; 
 Decr Pool Size 
 =2;
 

   The first connection opened creates the connection pool. The service initially creates the number of connections defined by the Min Pool Size parameter. 
  

 The Incr Pool Size attribute defines the number of new connections to be created by the connection pooling service when more connections are needed. 
  

 When a connection is closed, the connection pooling service determines whether the connection lifetime has exceeded the value of the Connection Lifetime attribute. If so, the connection is closed; otherwise, the connection goes back to the connection pool. 
  

 The connection pooling service closes unused connections every 3 minutes. The Decr Pool Size attribute specifies the maximum number of connections that can be closed every 3 minutes. 
  
 
 

  Restricting Pool size 

 

  Use this one if you want to restrict the size of the pool. 

 
Data Source 
  =myOracle; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 Max Pool Size 
 =40; 
 Connection Timeout 
 =60;
 

   The Max Pool Size attribute sets the maximum number of connections for the connection pool. If a new connection is requested, but no connections are available and the limit for Max Pool Size has been reached the connection pooling service waits for the time defined by the Connection Timeout attribute. If the Connection Timeout time has been reached, and there are still no connections available in the pool, the connection pooling service raises an exception indicating that the request has timed-out. 
 
 
 
 

  Disable Pooling 

 
Data Source 
  =myOracle; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 Pooling 
 =False;
 

     
 
 
 
 

  Using Windows user authentication 

 

  Oracle can open a connection using Windows user login credentials to authenticate database users. 

 
Data Source 
  =myOracle; 
 User Id 
 =/;
 

   If the Password attribute is provided, it is ignored. 
  

 Operating System Authentication is not supported in a .NET stored procedure. 
  
 
 

  Privileged Connections 

 

  Oracle allows database administrators to connect to Oracle Database with either SYSDBA or SYSOPER privileges. 

 
Data Source 
  =myOracle; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 DBA Privilege 
 =SYSDBA;
 

   SYSOPER is also valid for the DBA Privilege attribute. 
 
 
 
 

  Runtime Connection Load Balancing 

 

  Optimizes connection pooling for RAC database by balancing work requests across RAC instances. 

 
Data Source 
  =myOracle; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 Load Balancing 
 =True;
 

   This feature can only be used against a RAC database and only if pooling is enabled (default). 
 
 
 
 
.NET Framework Data Provider for Oracle
 
 
 
   Type:    .NET Framework Class Library 
   
Usage:  System.Data.OracleClient.OracleConnection 
   
  
 
   Manufacturer:  Microsoft 
   
 
  Data Source 
  =MyOracleDB; 
   Integrated Security 
  =yes; 

   This one works only with Oracle 8i release 3 or later 
 
 
 //is2120
 

  Specifying username and password 

 
Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 Integrated Security 
 =no;
 

   This one works only with Oracle 8i release 3 or later 
 
 
 
 
   
 
 Missing the System.Data.OracleClient namespace? Download .NET Managed Provider for Oracle 
 
 Article: "Oracle Data Provider for .NET" by Rama Mohan 
 
 
   
 
 
 
 

  Omiting tnsnames.ora 

 

  This is another type of Oracle connection string that doesn't rely on you to have a DSN for the connection. You create a connection string based on the format used in the tnsnames.ora file without the need to actually have one of these files on the client pc. 

 
SERVER 
  =(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID))); 
 uid 
 =myUsername; 
 pwd 
 =myPassword;
 

     
 
 
 
 

  Some reported problems with the one above and Visual Studio. Use the next one if you've encountered problems. 

 
Data Source 
  =(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID))); 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 

     
 
 
 
 

  Using Connection Pooling 

 

  The connection pooling service will create a new pool if it can't find any existing pool that exactly match the new connections connection string properties. If there is a matching pool a connection will be recycled from that pool. 

 
Data Source 
  =myOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 Min Pool Size 
 =10; 
 Connection Lifetime 
 =120; 
 Connection Timeout 
 =60; 
 Incr Pool Size 
 =5; 
 Decr Pool Size 
 =2;
 

   The first connection opened creates the connection pool. The service initially creates the number of connections defined by the Min Pool Size parameter. 
  

 The Incr Pool Size attribute defines the number of new connections to be created by the connection pooling service when more connections are needed. 
  

 When a connection is closed, the connection pooling service determines whether the connection lifetime has exceeded the value of the Connection Lifetime attribute. If so, the connection is closed; otherwise, the connection goes back to the connection pool. 
  

 The connection pooling service closes unused connections every 3 minutes. The Decr Pool Size attribute specifies the maximum number of connections that can be closed every 3 minutes. 
  
 
 

  Windows Authentication 

 
Data Source 
  =myOracleDB; 
 User Id 
 =/;
 

     
 
 
 
 

  Privileged Connection 

 

  With SYSDBA privileges 

 
Data Source 
  =myOracleDB; 
 User Id 
 =SYS; 
 Password 
 =SYS; 
 DBA Privilege 
 =SYSDBA;
 

     
 
 
 
 

  Privileged Connection 

 

  With SYSOPER privileges 

 
Data Source 
  =myOracleDB; 
 User Id 
 =SYS; 
 Password 
 =SYS; 
 DBA Privilege 
 =SYSOPER;
 

     
 
 
 
 

  Utilizing the Password Expiration functionality 

 

  First open a connection with a connection string. When the connection is opened, an error is raised because the password have expired. Catch the error and execute the OpenWithNewPassword command supplying the new password. 

 
Data Source 
  =myOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 <br/> <br/> oConn.OpenWithNewPassword(sTheNewPassword);
 

     
 
 
 
 

  Proxy Authentication 

 
Data Source 
  =myOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 Proxy User Id 
 =pUserId; 
 Proxy Password 
 =pPassword;
 

     
 
 
 
 
dotConnect for Oracle
 
 
 
   Type:    .NET Framework Class Library 
   
Usage:  Devart.Data.Oracle.OracleConnection 
   
  
 
   Manufacturer:  Devart 
   
 
   More info about this class library » 
  
 Customize string 
  
 example values » 
  
 
    
  
 

  Standard 

 
User ID 
  =myUsername; 
 Password 
 =myPassword; 
 Host 
 =ora; 
 Pooling 
 =true; 
 Min Pool Size 
 =0; 
 Max Pool Size 
 =100; 
 Connection Lifetime 
 =0;
 

     
 
 
 
 
Microsoft OLE DB Provider for Oracle
 
 
 
   Type:    OLE DB Provider 
   
Usage:  Provider=msdaora 
   
  
 
   Manufacturer:  Microsoft 
   
 
   More info about this class library » 
  
 Customize string 
  
 example values » 
  
 
    
  
 

  Standard security 

 

  This connection string uses a provider from Microsoft. 

 
Provider 
  =msdaora; 
 Data Source 
 =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 

     
 
 
 
 

  Trusted connection 

 
Provider 
  =msdaora; 
 Data Source 
 =MyOracleDB; 
 Persist Security Info 
 =False; 
 Integrated Security 
 =Yes;
 

     
 
 
 
 
Oracle Provider for OLE DB
 
 
 
   Type:    OLE DB Provider 
   
Usage:  Provider=OraOLEDB.Oracle 
   
  
 
   Manufacturer:  Oracle 
   
 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 

     
 
 
 
 

  Trusted Connection 

 

  This one specifies OS authentication to be used when connecting to an Oracle database. 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 OSAuthent 
 =1;
 

     
 
 
 
 

  Oracle XE, VB6 ADO 

 
Provider 
  =OraOLEDB.Oracle; 
 dbq 
 =localhost:1521/XE; 
 Database 
 =myDataBase; 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 

     
 
 
 
 

  Oracle XE, C++ ADO 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =localhost:1521/XE; 
 Initial Catalog 
  =myDataBase; 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 

     
 
 
 
 

  TNS-less connection string 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myHost)(PORT=myPort)))(CONNECT_DATA=(SID=MyOracleSID)(SERVER=DEDICATED))); 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 

     
 
 
 
 

  Controling rowset cache mechanism 

 

  Specifies the type of caching used by the provider to store rowset data. OraOLEDB provides two caching mechanisms; File and Memory. 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 CacheType 
 =File;
 

   Memory is the default value. All the rowset data is stored in-memory which provides better performance at the expense of higher memory utilization. 
  

 File = All the rowset data is stored on disk. This caching mechanism limits the memory consumption at the expense of performance. 
  
 
 

  Controling the fetchsize 

 

  This one specifies the number of rows the provider will fetch at a time (fetch array). 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 FetchSize 
 =200;
 

   The FetchSize value must be set appropriately depending on the data size and the response time of the network. If the value is set too high, this could result in more wait time during the execution of the query. If the value is set too low, this could result in many more round trips to the database. Valid values are 1 to 429,496,296. The default is 100. 
 
 
 
 

  Controling the chunksize 

 

  This one specifies the size, in bytes, of the data in LONG and LONG RAW columns fetched and stored in the provider cache. 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 ChunkSize 
 =200;
 

   Providing a high value for this attribute improves performance, but requires more memory to store the data in the rowset. Valid values are 1 to 65535. The default is 100. 
 
 
 
 

  Using with Microsofts OLE DB .NET Data Provider 

 

  The Microsoft OLE DB .NET Data Provider can utilize OraOLEDB as the OLE DB Provider for accessing Oracle. However this must be enabled in the connection string. 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 OLEDB.NET 
 =True;
 

   The OLEDB.NET connection string attribute must not be used in ADO applications. 
 
 
 
 

  Using OraOLEDB Custom Properties with Microsofts OLE DB .NET Data Provider 

 

  The SPPrmsLOB and NDatatype properties can only be set as connection string attributes when OraOLEDB is used by OLE DB .NET Data Provider. 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 OLEDB.NET 
 =True; 
 SPPrmsLOB 
 =False; 
 NDatatype 
 =False; 
 SPPrmsLOB 
 =False;
 

   Using ADO, these properties would have been set as a property on the command. This is not possible if using the Microsofts OLE DB .NET Data Provider. So the properties are specified in the connection string instead. 
  

 PLSQLRSet: If the stored procedure, provided by the consumer, returns a rowset, PLSQLRSet must be set to TRUE (enabled). 
  

 NDatatype: This property allows the consumers to specify whether any of the parameters bound to the command are of Oracle's N datatypes (NCHAR, NVARCHAR or NCLOB). This information is required by OraOLEDB to detect and bind the parameters appropriately. This property should not be set for commands executing SELECT statements. However, this property must be set for all other SQLs such as INSERT, UPDATE, and DELETE. 
  

 SPPrmsLOB: This property allows the consumer to specify whether one or more of the parameters bound to the stored procedures are of Oracle's LOB datatype (CLOB, BLOB, or NCLOB). OraOLEDB requires this property to be set to TRUE, in order to fetch the parameter list of the stored procedure prior to execution. The use of this property limits the processing overhead to stored procedures having one or more LOB datatype parameters. 
  
 
 

  Using distributed transactions 

 

  This one specifies sessions to enlist in distributed transactions. This is the default behaviour. 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 DistribTX 
 =1;
 

   Valid values are 0 (disabled) and 1 (enabled). 
 
 
 
 
.NET Framework Data Provider for OLE DB
 
 
 
   Type:    .NET Framework Wrapper Class Library 
   
Usage:  System.Data.OleDb.OleDbConnection 
   
  
 
   Manufacturer:  Microsoft 
   
 
   More info about this class library » 
  
 Customize string 
  
 example values » 
  
 
    
  
 

  Bridging to Oracle Provider for OLE DB 

 

  This is just one connection string sample for the wrapping OleDbConnection class that calls the underlying OLEDB provider. See respective OLE DB provider for more connection strings to use with this class. 

 
Provider 
  =OraOLEDB.Oracle; 
 Data Source 
  =MyOracleDB; 
 User Id 
 =myUsername; 
 Password 
 =myPassword; 
 OLEDB.NET 
 =True;
 

   Note! The keyword "OLEDB.NET" must be set to "True" for the OraOLEDB.Oracle provider to function with the .NET Framework Data Provider for OLE DB. 
 
 
 
 
Oracle in OraHome92
 
 
 
   Type:    ODBC Driver 
   
Usage:  Driver={Oracle in OraHome92} 
   
  
 
   Manufacturer:  Oracle 
   
 Standard 
   
Driver 
  ={Oracle in OraHome92}; 
 Dbq 
 =myTNSServiceName; 
 Uid 
 =myUsername; 
 Pwd 
 =myPassword;
 

     
 
 
 
 
Microsoft ODBC for Oracle
 
 
 
   Type:    ODBC Driver 
   
Usage:  Driver={Microsoft ODBC for Oracle} 
   
  
 
   Manufacturer:  Microsoft 
   
 
   More info about this class library » 
  
 Customize string 
  
 example values » 
  
 
    
  
 

  New version 

 
Driver 
  ={Microsoft ODBC for Oracle}; 
 Server 
  =myServerAddress; 
 Uid 
 =myUsername; 
 Pwd 
 =myPassword;
 

     
 
 
 
 

  Connect directly 

 

  No TSN nor DSN required. 

 
Driver 
  ={Microsoft ODBC for Oracle}; 
 Server 
  =(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=199.199.199.199)(PORT=1523))(CONNECT_DATA=(SID=dbName))); 
 Uid 
 =myUsername; 
 Pwd 
 =myPassword;
 

     
 
 
 
 

  Without TSN.ora alternative 

 
Driver 
  ={Microsoft ODBC for Oracle}; 
 CONNECTSTRING 
  =(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=7001))(CONNECT_DATA=(SERVICE_NAME=myDb))); 
 Uid 
 =myUsername; 
 Pwd 
 =myPassword;
 

     
 
 
 
 
Microsoft ODBC Driver for Oracle
 
 
 
   Type:    ODBC Driver 
   
Usage:  Driver={Microsoft ODBC Driver for Oracle} 
   
  
 
   Manufacturer:  Microsoft 
   
 
   More info about this class library » 
  
 Customize string 
  
 example values » 
  
 
    
  
 

  Old version 

 
Driver 
  ={Microsoft ODBC Driver for Oracle}; 
 ConnectString 
 =OracleServer.world; 
 Uid 
 =myUsername; 
 Pwd 
 =myPassword;
 

     
 
 
 
 
Oracle in XEClient
 
 
 
   Type:    ODBC Driver 
   
Usage:  Driver=(Oracle in XEClient) 
   
  
 
   Manufacturer:  Oracle 
   
 

  Standard 

 

  Oracle XE (or "Oracle Database 10g Express Edition") is a simple version that's free to distribute. 

 
Driver 
  =(Oracle in XEClient); 
 dbq 
 =111.21.31.99:1521/XE; 
 Uid 
 =myUsername; 
 Pwd 
 =myPassword;
 
 //is2120
 
 
 
.NET Framework Data Provider for ODBC
 
 
 
   Type:    .NET Framework Wrapper Class Library 
   
Usage:  System.Data.Odbc.OdbcConnection 
   
  
 
   Manufacturer:  Microsoft 
    
  
 

  This is just one connection string sample for the wrapping OdbcConnection class that calls the underlying ODBC Driver. See respective ODBC driver for more connection strings to use with this class. 

 
Driver 
  ={Oracle in OraHome92}; 
 Server 
  =myServerAddress; 
 Dbq 
 =myDataBase; 
 Uid 
 =myUsername; 
 Pwd 
 =myPassword;
 

     
 
 
 
 
MSDataShape
 
 
 
   Type:    Data Shaping COM component 
   
Usage:  Provider=MSDataShape;Data Provider=providername 
   
  
 
   Manufacturer:  Microsoft 
    
  
 
Provider 
  =MSDataShape; 
 Persist Security Info 
  =False; 
 Data Provider 
 =MSDAORA; 
 Data Source 
 =orac; 
 User Id 
 =myUsername; 
 Password 
 =myPassword;
 
 
  
 
 
 
//is2120