-
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).