Skip to content

Latest commit

 

History

History
69 lines (53 loc) · 1.76 KB

File metadata and controls

69 lines (53 loc) · 1.76 KB

Oracle FAnsi Implementation

Feature Completeness

  • Server

    • Check Exists
    • Describe
    • List Databases
  • Database

    • Create
    • Drop
    • Backup
    • Detach
    • List Tables
    • List Table Valued Functions
    • List Stored Proceedures
  • Table

    • Create
    • Drop
    • Script Table Structure
    • MakeDistinct
    • Bulk Insert
    • Rename
    • List Foreign Keys
  • Column

    • Alter
  • Data Types

    • Translation
    • Bit
    • String
    • TimeSpan
    • Decimal
    • Date
    • Auto Increment (Requires Oracle 12c)
    • Unicode
  • Query

    • Top X (Requires Oracle 12c)
    • JOIN UPDATE
  • Aggregation

    • Basic GROUP BY
    • Calendar/Axis Table GROUP BY
    • Dynamic Pivot GROUP BY

##Issues Oracle does not have a bit data type. If you ask to create a bool column you will get a varchar2(5)

DiscoveredDatabase db = GetTestDatabase(DatabaseType.Oracle);
DiscoveredTable table = db.CreateTable("MyTable",
	new[]
	{
		new DatabaseColumnRequest("MyCol", new DatabaseTypeRequest(typeof(bool)))
	});

var col = table.DiscoverColumn("MyCol");
Assert.AreEqual("varchar2(5)", col.DataType.SQLType);

Oracle does not have a discrete time datatype. both date and timestamp store full date/times. It is possible to use interval for this purpose but that type is very flexible (which isn't a problem for creating the column but it is a problem for discovering a column and making a descision about whether it is TimeSpan or DateTime).