SQL Provider for Oracle

Oracle is based on the current release ( of the managed ODP.NET driver found here. However although the managed version is recommended it should also work with previous versions of the native driver.

#r "FSharp.Data.SqlProvider.dll"

open FSharp.Data.Sql

type sql = SqlDataProvider<Common.DatabaseProviderTypes.ORACLE, connectionString, ResolutionPath = resolutionPath>
let ctx = sql.GetDataContext()

let customers = ctx.Customers |> Seq.toArray

Because Oracle databases can be huge, there is an optional constructor parameter TableNames that can be used as a filter.

Multiple items
type LiteralAttribute =
  inherit Attribute
  new : unit -> LiteralAttribute

new : unit -> LiteralAttribute
val connectionString : string
val resolutionPath : string
Multiple items
namespace FSharp

namespace Microsoft.FSharp
Multiple items
namespace FSharp.Data

namespace Microsoft.FSharp.Data
namespace FSharp.Data.Sql
type sql = obj
type SqlDataProvider

<summary>Typed representation of a database</summary>
                    <param name='ConnectionString'>The connection string for the SQL database</param>
                    <param name='ConnectionStringName'>The connection string name to select from a configuration file</param>
                    <param name='DatabaseVendor'> The target database vendor</param>
                    <param name='IndividualsAmount'>The amount of sample entities to project into the type system for each SQL entity type. Default 1000.</param>
                    <param name='UseOptionTypes'>If true, F# option types will be used in place of nullable database columns. If false, you will always receive the default value of the column's type even if it is null in the database.</param>
                    <param name='ResolutionPath'>The location to look for dynamically loaded assemblies containing database vendor specific connections and custom types.</param>
                    <param name='Owner'>Oracle: The owner of the schema for this provider to resolve. PostgreSQL: A list of schemas to resolve, separated by spaces, newlines, commas, or semicolons.</param>
                    <param name='CaseSensitivityChange'>Should we do ToUpper or ToLower when generating table names?</param>
                    <param name='TableNames'>Comma separated table names list to limit a number of tables in big instances. The names can have '%' sign to handle it as in the 'LIKE' query (Oracle and MSSQL Only)</param>
                    <param name='ContextSchemaPath'>The location of the context schema previously saved with SaveContextSchema. When not empty, will be used to populate the database schema instead of retrieving it from then database.</param>
                    <param name='OdbcQuote'>Odbc quote characters: Quote characters for the table and column names: `alias`, [alias]</param>
                    <param name='SQLiteLibrary'>Use System.Data.SQLite or Mono.Data.SQLite or select automatically (SQLite only)</param>
namespace FSharp.Data.Sql.Common
type DatabaseProviderTypes =
  | SQLITE = 1
  | MYSQL = 3
  | ORACLE = 4
  | MSACCESS = 5
  | ODBC = 6
  | FIREBIRD = 7
Common.DatabaseProviderTypes.ORACLE: Common.DatabaseProviderTypes = 4
val ctx : obj
val customers : obj []
Multiple items
module Seq

from FSharp.Data.Sql

module Seq

from Microsoft.FSharp.Collections
val toArray : source:seq<'T> -> 'T []
Fork me on GitHub