mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
Synchronization code
This commit is contained in:
parent
69d8c915b8
commit
f2c29abae1
@ -445,6 +445,14 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
result = result + "?";
|
result = result + "?";
|
||||||
}
|
}
|
||||||
|
if (item.OracleDataType.EqualCase("raw") && item.Length == 16)
|
||||||
|
{
|
||||||
|
return "Guid";
|
||||||
|
}
|
||||||
|
if (item.OracleDataType.EqualCase("number") && item.Length == 1&&item.Scale==0)
|
||||||
|
{
|
||||||
|
return "bool";
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
private string GetPropertyTypeConvert(DbColumnInfo item)
|
private string GetPropertyTypeConvert(DbColumnInfo item)
|
||||||
|
@ -11,6 +11,7 @@ namespace SqlSugar
|
|||||||
public string DbColumnName { get; set; }
|
public string DbColumnName { get; set; }
|
||||||
public string PropertyName { get; set; }
|
public string PropertyName { get; set; }
|
||||||
public string DataType { get; set; }
|
public string DataType { get; set; }
|
||||||
|
public string OracleDataType { get; set; }
|
||||||
public Type PropertyType { get; set; }
|
public Type PropertyType { get; set; }
|
||||||
public int Length { get; set; }
|
public int Length { get; set; }
|
||||||
public string ColumnDescription { get; set; }
|
public string ColumnDescription { get; set; }
|
||||||
|
@ -367,6 +367,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
private List<DbColumnInfo> GetColumnInfosByTableName(string tableName)
|
private List<DbColumnInfo> GetColumnInfosByTableName(string tableName)
|
||||||
{
|
{
|
||||||
|
List<DbColumnInfo> columns = GetOracleDbType(tableName);
|
||||||
string sql = "select * /* " + Guid.NewGuid() + " */ from " + SqlBuilder.GetTranslationTableName(tableName) + " WHERE 1=2 ";
|
string sql = "select * /* " + Guid.NewGuid() + " */ from " + SqlBuilder.GetTranslationTableName(tableName) + " WHERE 1=2 ";
|
||||||
this.Context.Utilities.RemoveCache<List<DbColumnInfo>>("DbMaintenanceProvider.GetFieldComment."+tableName);
|
this.Context.Utilities.RemoveCache<List<DbColumnInfo>>("DbMaintenanceProvider.GetFieldComment."+tableName);
|
||||||
this.Context.Utilities.RemoveCache<List<string>>("DbMaintenanceProvider.GetPrimaryKeyByTableNames." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower());
|
this.Context.Utilities.RemoveCache<List<string>>("DbMaintenanceProvider.GetPrimaryKeyByTableNames." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower());
|
||||||
@ -392,12 +393,62 @@ namespace SqlSugar
|
|||||||
Length = row["ColumnSize"].ObjToInt(),
|
Length = row["ColumnSize"].ObjToInt(),
|
||||||
Scale = row["numericscale"].ObjToInt()
|
Scale = row["numericscale"].ObjToInt()
|
||||||
};
|
};
|
||||||
|
var current = columns.FirstOrDefault(it => it.DbColumnName.EqualCase(column.DbColumnName));
|
||||||
|
if (current != null)
|
||||||
|
{
|
||||||
|
column.OracleDataType = current.DataType;
|
||||||
|
if (current.DataType.EqualCase("number"))
|
||||||
|
{
|
||||||
|
column.Length = row["numericprecision"].ObjToInt();
|
||||||
|
column.Scale = row["numericscale"].ObjToInt();
|
||||||
|
column.DecimalDigits = row["numericscale"].ObjToInt();
|
||||||
|
if (column.Length == 38 && column.Scale == 0)
|
||||||
|
{
|
||||||
|
column.Length = 22;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
result.Add(column);
|
result.Add(column);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private List<DbColumnInfo> GetOracleDbType(string tableName)
|
||||||
|
{
|
||||||
|
var sql0 = $@"select
|
||||||
|
t1.table_name as TableName,
|
||||||
|
t6.comments,
|
||||||
|
t1.column_id,
|
||||||
|
t1.column_name as DbColumnName,
|
||||||
|
t5.comments,
|
||||||
|
t1.data_type as DataType,
|
||||||
|
t1.data_length as Length,
|
||||||
|
t1.char_length,
|
||||||
|
t1.data_precision,
|
||||||
|
t1.data_scale,
|
||||||
|
t1.nullable,
|
||||||
|
t4.index_name,
|
||||||
|
t4.column_position,
|
||||||
|
t4.descend
|
||||||
|
from user_tab_columns t1
|
||||||
|
left join (select t2.table_name,
|
||||||
|
t2.column_name,
|
||||||
|
t2.column_position,
|
||||||
|
t2.descend,
|
||||||
|
t3.index_name
|
||||||
|
from user_ind_columns t2
|
||||||
|
left join user_indexes t3
|
||||||
|
on t2.table_name = t3.table_name and t2.index_name = t3.index_name
|
||||||
|
and t3.status = 'valid' and t3.uniqueness = 'unique') t4 --unique:唯一索引
|
||||||
|
on t1.table_name = t4.table_name and t1.column_name = t4.column_name
|
||||||
|
left join user_col_comments t5 on t1.table_name = t5.table_name and t1.column_name = t5.column_name
|
||||||
|
left join user_tab_comments t6 on t1.table_name = t6.table_name
|
||||||
|
where upper(t1.table_name)=upper('{tableName}')
|
||||||
|
order by t1.table_name, t1.column_id";
|
||||||
|
|
||||||
|
var columns = this.Context.Ado.SqlQuery<DbColumnInfo>(sql0);
|
||||||
|
return columns;
|
||||||
|
}
|
||||||
private List<string> GetPrimaryKeyByTableNames(string tableName)
|
private List<string> GetPrimaryKeyByTableNames(string tableName)
|
||||||
{
|
{
|
||||||
string cacheKey = "DbMaintenanceProvider.GetPrimaryKeyByTableNames." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
|
string cacheKey = "DbMaintenanceProvider.GetPrimaryKeyByTableNames." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower();
|
||||||
|
Loading…
Reference in New Issue
Block a user