Skip to content

Commit 3dd5ed9

Browse files
committed
Oracle Uint support
1 parent 6892104 commit 3dd5ed9

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

src/Migrator.Providers/Impl/Oracle/OracleDialect.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ public OracleDialect()
3030
//RegisterColumnType(DbType.Guid, "CHAR(38)");
3131
RegisterColumnType(DbType.Int16, "NUMBER(5,0)");
3232
RegisterColumnType(DbType.Int32, "NUMBER(10,0)");
33-
RegisterColumnType(DbType.Int64, "NUMBER(20,0)");
33+
RegisterColumnType(DbType.Int64, "NUMBER(20,0)");
34+
RegisterColumnType(DbType.UInt16, "NUMBER(5,0)");
35+
RegisterColumnType(DbType.UInt32, "NUMBER(10,0)");
36+
RegisterColumnType(DbType.UInt64, "NUMBER(20,0)");
3437
RegisterColumnType(DbType.Single, "FLOAT(24)");
3538
RegisterColumnType(DbType.StringFixedLength, "NCHAR(255)");
3639
RegisterColumnType(DbType.StringFixedLength, 2000, "NCHAR($l)");

src/Migrator.Providers/Impl/Oracle/OracleTransformationProvider.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,22 @@ protected override void ConfigureParameterWithValue(IDbDataParameter parameter,
333333
{
334334
parameter.DbType = DbType.Int32;
335335
parameter.Value = ((bool) value) ? 1 : 0;
336-
}
336+
}
337+
else if (value is UInt16)
338+
{
339+
parameter.DbType = DbType.Decimal;
340+
parameter.Value = value;
341+
}
342+
else if (value is UInt32)
343+
{
344+
parameter.DbType = DbType.Decimal;
345+
parameter.Value = value;
346+
}
347+
else if (value is UInt64)
348+
{
349+
parameter.DbType = DbType.Decimal;
350+
parameter.Value = value;
351+
}
337352
else
338353
{
339354
base.ConfigureParameterWithValue(parameter, index, value);

src/Migrator.Providers/TransformationProvider.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,6 +1343,11 @@ protected virtual void ConfigureParameterWithValue(IDbDataParameter parameter, i
13431343
parameter.DbType = DbType.Guid;
13441344
parameter.Value = (Guid)value;
13451345
}
1346+
else if (value is Int16)
1347+
{
1348+
parameter.DbType = DbType.Int16;
1349+
parameter.Value = value;
1350+
}
13461351
else if (value is Int32)
13471352
{
13481353
parameter.DbType = DbType.Int32;
@@ -1353,6 +1358,21 @@ protected virtual void ConfigureParameterWithValue(IDbDataParameter parameter, i
13531358
parameter.DbType = DbType.Int64;
13541359
parameter.Value = value;
13551360
}
1361+
else if (value is UInt16)
1362+
{
1363+
parameter.DbType = DbType.UInt16;
1364+
parameter.Value = value;
1365+
}
1366+
else if (value is UInt32)
1367+
{
1368+
parameter.DbType = DbType.UInt32;
1369+
parameter.Value = value;
1370+
}
1371+
else if (value is UInt64)
1372+
{
1373+
parameter.DbType = DbType.UInt64;
1374+
parameter.Value = value;
1375+
}
13561376
else if (value is String)
13571377
{
13581378
parameter.DbType = DbType.String;

0 commit comments

Comments
 (0)