mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-06-28 13:34:32 +08:00
*同步修改OceanBaseForOracle和TDSQLForPGODBC
This commit is contained in:
parent
6bb0a3fa30
commit
edf6b79fd7
@ -75,6 +75,11 @@ namespace SqlSugar.OceanBaseForOracle
|
|||||||
}
|
}
|
||||||
public partial class OceanBaseForOracleMethod : DefaultDbMethod, IDbMethods
|
public partial class OceanBaseForOracleMethod : DefaultDbMethod, IDbMethods
|
||||||
{
|
{
|
||||||
|
public override string UNIX_TIMESTAMP(MethodCallExpressionModel model)
|
||||||
|
{
|
||||||
|
var parameterNameA = model.Args[0].MemberName;
|
||||||
|
return $" (CAST({parameterNameA} AS DATE) - DATE '1970-01-01') * 86400 ";
|
||||||
|
}
|
||||||
public override string IsNullOrEmpty(MethodCallExpressionModel model)
|
public override string IsNullOrEmpty(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var parameter = model.Args[0];
|
var parameter = model.Args[0];
|
||||||
@ -237,11 +242,10 @@ namespace SqlSugar.OceanBaseForOracle
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case DateType.Year:
|
case DateType.Year:
|
||||||
time = 1 * 365;
|
// 每年 = 12 个月
|
||||||
break;
|
return $"ADD_MONTHS({parameter.MemberName}, ({parameter2.MemberName}) * 12)";
|
||||||
case DateType.Month:
|
case DateType.Month:
|
||||||
time = 1 * 30;
|
return $"ADD_MONTHS({parameter.MemberName}, {parameter2.MemberName})";
|
||||||
break;
|
|
||||||
case DateType.Day:
|
case DateType.Day:
|
||||||
break;
|
break;
|
||||||
case DateType.Hour:
|
case DateType.Hour:
|
||||||
|
@ -177,6 +177,16 @@ namespace SqlSugar.OceanBaseForOracle
|
|||||||
{
|
{
|
||||||
return Convert.ToInt64(value);
|
return Convert.ToInt64(value);
|
||||||
}
|
}
|
||||||
|
else if (value is TimeSpan ts)
|
||||||
|
{
|
||||||
|
return string.Format(
|
||||||
|
"INTERVAL '{0} {1:D2}:{2:D2}:{3:D2}.{4:D3}' DAY TO SECOND(3)",
|
||||||
|
ts.Days,
|
||||||
|
ts.Hours,
|
||||||
|
ts.Minutes,
|
||||||
|
ts.Seconds,
|
||||||
|
ts.Milliseconds);
|
||||||
|
}
|
||||||
else if (type == UtilConstants.ByteArrayType)
|
else if (type == UtilConstants.ByteArrayType)
|
||||||
{
|
{
|
||||||
++i;
|
++i;
|
||||||
|
@ -108,6 +108,16 @@ namespace SqlSugar.OceanBaseForOracle
|
|||||||
{
|
{
|
||||||
return value.ObjToBool() ? "1" : "0";
|
return value.ObjToBool() ? "1" : "0";
|
||||||
}
|
}
|
||||||
|
else if (value is TimeSpan ts)
|
||||||
|
{
|
||||||
|
return string.Format(
|
||||||
|
"INTERVAL '{0} {1:D2}:{2:D2}:{3:D2}.{4:D3}' DAY TO SECOND(3)",
|
||||||
|
ts.Days,
|
||||||
|
ts.Hours,
|
||||||
|
ts.Minutes,
|
||||||
|
ts.Seconds,
|
||||||
|
ts.Milliseconds);
|
||||||
|
}
|
||||||
else if (type == UtilConstants.DateTimeOffsetType)
|
else if (type == UtilConstants.DateTimeOffsetType)
|
||||||
{
|
{
|
||||||
var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
|
var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
|
||||||
|
@ -133,6 +133,11 @@ namespace SqlSugar.TDSQLForPGODBC
|
|||||||
}
|
}
|
||||||
public class TDSQLForPGODBCMethod : DefaultDbMethod, IDbMethods
|
public class TDSQLForPGODBCMethod : DefaultDbMethod, IDbMethods
|
||||||
{
|
{
|
||||||
|
public override string UNIX_TIMESTAMP(MethodCallExpressionModel model)
|
||||||
|
{
|
||||||
|
var parameterNameA = model.Args[0].MemberName;
|
||||||
|
return $" EXTRACT(EPOCH FROM {parameterNameA})::BIGINT ";
|
||||||
|
}
|
||||||
public override string CharIndex(MethodCallExpressionModel model)
|
public override string CharIndex(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
return string.Format(" (strpos ({1},{0})-1)", model.Args[0].MemberName, model.Args[1].MemberName);
|
return string.Format(" (strpos ({1},{0})-1)", model.Args[0].MemberName, model.Args[1].MemberName);
|
||||||
|
@ -65,7 +65,7 @@ namespace SqlSugar.TDSQLForPGODBC
|
|||||||
return await Task.FromResult(dt.Rows.Count);
|
return await Task.FromResult(dt.Rows.Count);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BulkCopy(DataTable dt, string copyString, NpgsqlConnection conn, List<DbColumnInfo> columns)
|
private void BulkCopy(DataTable dt, string copyString, NpgsqlConnection conn, List<DbColumnInfo> columns)
|
||||||
{
|
{
|
||||||
if (conn.State == ConnectionState.Closed)
|
if (conn.State == ConnectionState.Closed)
|
||||||
conn.Open();
|
conn.Open();
|
||||||
@ -75,9 +75,9 @@ namespace SqlSugar.TDSQLForPGODBC
|
|||||||
ColumnView result = new ColumnView();
|
ColumnView result = new ColumnView();
|
||||||
result.DbColumnInfo = columns.FirstOrDefault(it => it.DbColumnName.EqualCase(item.ColumnName));
|
result.DbColumnInfo = columns.FirstOrDefault(it => it.DbColumnName.EqualCase(item.ColumnName));
|
||||||
result.DataColumn = item;
|
result.DataColumn = item;
|
||||||
result.EntityColumnInfo=this.entityInfo.Columns.FirstOrDefault(it => it.DbColumnName.EqualCase(item.ColumnName));
|
result.EntityColumnInfo = this.entityInfo.Columns.FirstOrDefault(it => it.DbColumnName.EqualCase(item.ColumnName));
|
||||||
var key = result.DbColumnInfo?.DataType?.ToLower();
|
var key = result.DbColumnInfo?.DataType?.ToLower();
|
||||||
if (result.DbColumnInfo == null)
|
if (result.DbColumnInfo == null)
|
||||||
{
|
{
|
||||||
result.Type = null;
|
result.Type = null;
|
||||||
}
|
}
|
||||||
@ -88,7 +88,7 @@ namespace SqlSugar.TDSQLForPGODBC
|
|||||||
else if (key?.First() == '_')
|
else if (key?.First() == '_')
|
||||||
{
|
{
|
||||||
if (key == "_int4")
|
if (key == "_int4")
|
||||||
{
|
{
|
||||||
result.Type = NpgsqlDbType.Array | NpgsqlDbType.Integer;
|
result.Type = NpgsqlDbType.Array | NpgsqlDbType.Integer;
|
||||||
}
|
}
|
||||||
else if (key == "_int2")
|
else if (key == "_int2")
|
||||||
@ -99,6 +99,10 @@ namespace SqlSugar.TDSQLForPGODBC
|
|||||||
{
|
{
|
||||||
result.Type = NpgsqlDbType.Array | NpgsqlDbType.Bigint;
|
result.Type = NpgsqlDbType.Array | NpgsqlDbType.Bigint;
|
||||||
}
|
}
|
||||||
|
else if (key == "_float8")
|
||||||
|
{
|
||||||
|
result.Type = NpgsqlDbType.Array | NpgsqlDbType.Double;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var type = PgSqlType[key.Substring(1)];
|
var type = PgSqlType[key.Substring(1)];
|
||||||
@ -131,17 +135,17 @@ namespace SqlSugar.TDSQLForPGODBC
|
|||||||
{
|
{
|
||||||
writer.Write(value);
|
writer.Write(value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
writer.Write(value, column.Type.Value);
|
writer.Write(value, column.Type.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
writer.Complete();
|
writer.Complete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public override async Task<int> UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns)
|
public override async Task<int> UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns)
|
||||||
{
|
{
|
||||||
var sqlquerybulder= this.Context.Queryable<object>().SqlBuilder;
|
var sqlquerybulder= this.Context.Queryable<object>().SqlBuilder;
|
||||||
|
Loading…
Reference in New Issue
Block a user