mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-06-28 13:34:32 +08:00
Synchronous code
This commit is contained in:
parent
e4a514c8d6
commit
dab4f29a19
@ -29,17 +29,16 @@ namespace SqlSugar
|
||||
{
|
||||
get
|
||||
{
|
||||
return @"SELECT
|
||||
table_name name,
|
||||
(select TOP 1 COMMENTS from user_tab_comments where t.table_name=table_name ) as Description
|
||||
from user_tables t where
|
||||
table_name!='HELP'
|
||||
AND table_name NOT LIKE '%$%'
|
||||
AND table_name NOT LIKE 'LOGMNRC_%'
|
||||
AND table_name!='LOGMNRP_CTAS_PART_MAP'
|
||||
AND table_name!='LOGMNR_LOGMNR_BUILDLOG'
|
||||
AND table_name!='SQLPLUS_PRODUCT_PROFILE'
|
||||
";
|
||||
return @"SELECT a.TABLE_NAME AS Name,b.COMMENTS AS Description
|
||||
FROM USER_TABLES a
|
||||
LEFT JOIN (SELECT DISTINCT TABLE_NAME,COMMENTS FROM USER_TAB_COMMENTS WHERE COMMENTS IS NOT NULL) b ON a.TABLE_NAME=b.TABLE_NAME
|
||||
WHERE
|
||||
a.table_name!='HELP'
|
||||
AND a.table_name NOT LIKE '%$%'
|
||||
AND a.table_name NOT LIKE 'LOGMNRC_%'
|
||||
AND a.table_name!='LOGMNRP_CTAS_PART_MAP'
|
||||
AND a.table_name!='LOGMNR_LOGMNR_BUILDLOG'
|
||||
AND a.table_name!='SQLPLUS_PRODUCT_PROFILE'";
|
||||
}
|
||||
}
|
||||
protected override string GetViewInfoListSql
|
||||
@ -329,6 +328,7 @@ WHERE table_name = '" + tableName + "'");
|
||||
columnInfo.DataType = "varchar2";
|
||||
columnInfo.Length = 50;
|
||||
}
|
||||
ConvertCreateColumnInfo(columnInfo);
|
||||
return base.AddColumn(tableName, columnInfo);
|
||||
}
|
||||
public override bool CreateIndex(string tableName, string[] columnNames, bool isUnique = false)
|
||||
|
@ -192,7 +192,47 @@ namespace SqlSugar
|
||||
}
|
||||
public override string DateIsSameByType(MethodCallExpressionModel model)
|
||||
{
|
||||
throw new NotSupportedException("Oracle NotSupportedException DateIsSameDay");
|
||||
var parameter = model.Args[0];
|
||||
var parameter2 = model.Args[1];
|
||||
var parameter3 = model.Args[2];
|
||||
|
||||
var dateType = parameter3.MemberValue.ObjToString().ToLower();
|
||||
var date1 = parameter.MemberName;
|
||||
var date2 = parameter2.MemberName;
|
||||
|
||||
if (dateType == "year")
|
||||
{
|
||||
return string.Format("(EXTRACT(YEAR FROM {0}) = EXTRACT(YEAR FROM {1}))", date1, date2);
|
||||
}
|
||||
else if (dateType == "month")
|
||||
{
|
||||
return string.Format("(EXTRACT(YEAR FROM {0}) = EXTRACT(YEAR FROM {1}) AND EXTRACT(MONTH FROM {0}) = EXTRACT(MONTH FROM {1}))", date1, date2);
|
||||
}
|
||||
else if (dateType == "day")
|
||||
{
|
||||
return string.Format("(TRUNC({0}) = TRUNC({1}))", date1, date2);
|
||||
}
|
||||
else if (dateType == "hour")
|
||||
{
|
||||
return string.Format("(TRUNC({0}, 'HH24') = TRUNC({1}, 'HH24'))", date1, date2);
|
||||
}
|
||||
else if (dateType == "minute")
|
||||
{
|
||||
return string.Format("(TRUNC({0}, 'MI') = TRUNC({1}, 'MI'))", date1, date2);
|
||||
}
|
||||
else if (dateType == "second")
|
||||
{
|
||||
return string.Format("(TRUNC({0}, 'SS') = TRUNC({1}, 'SS'))", date1, date2);
|
||||
}
|
||||
else if (dateType == "week" || dateType == "weekday")
|
||||
{
|
||||
return string.Format("(TRUNC({0}, 'IW') = TRUNC({1}, 'IW'))", date1, date2);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 默认按天比较
|
||||
return string.Format("(TRUNC({0}) = TRUNC({1}))", date1, date2);
|
||||
}
|
||||
}
|
||||
public override string Length(MethodCallExpressionModel model)
|
||||
{
|
||||
|
@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text;
|
||||
|
||||
namespace SqlSugar
|
||||
{
|
||||
@ -358,6 +358,7 @@ WHERE table_name = '"+tableName+"'");
|
||||
columnInfo.DataType = "varchar2";
|
||||
columnInfo.Length = 50;
|
||||
}
|
||||
ConvertCreateColumnInfo(columnInfo);
|
||||
return base.AddColumn(tableName,columnInfo);
|
||||
}
|
||||
public override bool CreateIndex(string tableName, string[] columnNames, bool isUnique=false)
|
||||
@ -503,6 +504,10 @@ WHERE table_name = '"+tableName+"'");
|
||||
column.Length = 22;
|
||||
}
|
||||
}
|
||||
if (current.DefaultValue != null)
|
||||
{
|
||||
column.DefaultValue = current.DefaultValue.TrimEnd('\'').TrimStart('\'');
|
||||
}
|
||||
}
|
||||
result.Add(column);
|
||||
}
|
||||
@ -523,7 +528,8 @@ WHERE table_name = '"+tableName+"'");
|
||||
t1.char_length,
|
||||
t1.data_precision,
|
||||
t1.data_scale,
|
||||
t1.nullable,
|
||||
t1.nullable,
|
||||
t1.data_default as DefaultValue,
|
||||
t4.index_name,
|
||||
t4.column_position,
|
||||
t4.descend
|
||||
@ -594,7 +600,7 @@ WHERE table_name = '"+tableName+"'");
|
||||
this.Context.Ado.IsEnableLogEvent = oldIsEnableLog;
|
||||
return pks;
|
||||
});
|
||||
return comments.HasValue() ? comments.First(it => it.DbColumnName.Equals(filedName, StringComparison.CurrentCultureIgnoreCase)).ColumnDescription : "";
|
||||
return comments.HasValue() ? comments.FirstOrDefault(it => it.DbColumnName.EqualCase(filedName))?.ColumnDescription : "";
|
||||
|
||||
}
|
||||
|
||||
@ -680,17 +686,17 @@ WHERE table_name = '"+tableName+"'");
|
||||
}
|
||||
private static void ConvertCreateColumnInfo(DbColumnInfo x)
|
||||
{
|
||||
string[] array = new string[] { "int","date"};
|
||||
string[] array = new string[] { "int","date"};
|
||||
if (x.OracleDataType.HasValue())
|
||||
{
|
||||
x.DataType = x.OracleDataType;
|
||||
}
|
||||
if (array.Contains(x.DataType?.ToLower()))
|
||||
{
|
||||
x.Length = 0;
|
||||
x.DecimalDigits = 0;
|
||||
}
|
||||
if (x.OracleDataType.HasValue())
|
||||
{
|
||||
x.DataType = x.OracleDataType;
|
||||
}
|
||||
if(x.DecimalDigits>0&& x.DataType?.ToLower().IsIn("varchar", "clob", "varchar2", "nvarchar2", "nvarchar")==true)
|
||||
if(x.DecimalDigits>0&& x.DataType?.ToLower()?.IsIn("varchar", "clob", "varchar2", "nvarchar2", "nvarchar")==true)
|
||||
{
|
||||
x.DecimalDigits = 0;
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
@ -87,7 +87,7 @@ namespace SqlSugar
|
||||
public override void BeginTran(string transactionName)
|
||||
{
|
||||
((OracleConnection)this.Connection).BeginTransaction();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Only SqlServer
|
||||
/// </summary>
|
||||
@ -107,7 +107,7 @@ namespace SqlSugar
|
||||
{
|
||||
return base.ProcessingEventStartingSQL(sql, parameter);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
return new KeyValuePair<string, SugarParameter[]>(sql, parameter);
|
||||
}
|
||||
@ -142,10 +142,10 @@ namespace SqlSugar
|
||||
return sqlCommand;
|
||||
}
|
||||
private static string[] KeyWord = new string[] { "@month",":month",":day", "@day","@group",":group",":index","@index","@order", ":order", "@user", "@level", ":user", ":level", ":type", "@type",":year","@year","@date",":date" };
|
||||
private static string ReplaceKeyWordParameterName(string sql, SugarParameter[] parameters)
|
||||
private string ReplaceKeyWordParameterName(string sql, SugarParameter[] parameters)
|
||||
{
|
||||
sql = ReplaceKeyWordWithAd(sql, parameters);
|
||||
if (parameters.HasValue())
|
||||
if (parameters.HasValue()&&this.CommandType!=CommandType.StoredProcedure)
|
||||
{
|
||||
foreach (var Parameter in parameters.OrderByDescending(x=>x.ParameterName?.Length))
|
||||
{
|
||||
|
@ -322,7 +322,47 @@ namespace SqlSugar
|
||||
}
|
||||
public override string DateIsSameByType(MethodCallExpressionModel model)
|
||||
{
|
||||
throw new NotSupportedException("Oracle NotSupportedException DateIsSameDay");
|
||||
var parameter = model.Args[0];
|
||||
var parameter2 = model.Args[1];
|
||||
var parameter3 = model.Args[2];
|
||||
|
||||
var dateType = parameter3.MemberValue.ObjToString().ToLower();
|
||||
var date1 = parameter.MemberName;
|
||||
var date2 = parameter2.MemberName;
|
||||
|
||||
if (dateType == "year")
|
||||
{
|
||||
return string.Format("(EXTRACT(YEAR FROM {0}) = EXTRACT(YEAR FROM {1}))", date1, date2);
|
||||
}
|
||||
else if (dateType == "month")
|
||||
{
|
||||
return string.Format("(EXTRACT(YEAR FROM {0}) = EXTRACT(YEAR FROM {1}) AND EXTRACT(MONTH FROM {0}) = EXTRACT(MONTH FROM {1}))", date1, date2);
|
||||
}
|
||||
else if (dateType == "day")
|
||||
{
|
||||
return string.Format("(TRUNC({0}) = TRUNC({1}))", date1, date2);
|
||||
}
|
||||
else if (dateType == "hour")
|
||||
{
|
||||
return string.Format("(TRUNC({0}, 'HH24') = TRUNC({1}, 'HH24'))", date1, date2);
|
||||
}
|
||||
else if (dateType == "minute")
|
||||
{
|
||||
return string.Format("(TRUNC({0}, 'MI') = TRUNC({1}, 'MI'))", date1, date2);
|
||||
}
|
||||
else if (dateType == "second")
|
||||
{
|
||||
return string.Format("(TRUNC({0}, 'SS') = TRUNC({1}, 'SS'))", date1, date2);
|
||||
}
|
||||
else if (dateType == "week" || dateType == "weekday")
|
||||
{
|
||||
return string.Format("(TRUNC({0}, 'IW') = TRUNC({1}, 'IW'))", date1, date2);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 默认按天比较
|
||||
return string.Format("(TRUNC({0}) = TRUNC({1}))", date1, date2);
|
||||
}
|
||||
}
|
||||
public override string Length(MethodCallExpressionModel model)
|
||||
{
|
||||
|
@ -22,12 +22,20 @@ namespace SqlSugar
|
||||
var updateTable = string.Format("UPDATE {0} SET", base.GetTableNameStringNoWith);
|
||||
var setValues = string.Join(",", t.Where(s => !s.IsPrimarykey).Where(s => OldPrimaryKeys == null || !OldPrimaryKeys.Contains(s.DbColumnName)).Select(m => GetOracleUpdateColums(m)).ToArray());
|
||||
var pkList = t.Where(s => s.IsPrimarykey).ToList();
|
||||
if (this.IsWhereColumns && this.PrimaryKeys?.Any() == true)
|
||||
{
|
||||
var whereColumns = pkList.Where(it => this.PrimaryKeys?.Any(p => p.EqualCase(it.PropertyName) || p.EqualCase(it.DbColumnName)) == true).ToList();
|
||||
if (whereColumns.Any())
|
||||
{
|
||||
pkList = whereColumns;
|
||||
}
|
||||
}
|
||||
List<string> whereList = new List<string>();
|
||||
foreach (var item in pkList)
|
||||
{
|
||||
var isFirst = pkList.First() == item;
|
||||
var whereString = isFirst ? " " : " AND ";
|
||||
whereString += GetOracleUpdateColums(item);
|
||||
whereString += GetOracleUpdateColums(item,true);
|
||||
whereList.Add(whereString);
|
||||
}
|
||||
return string.Format("{0} {1} WHERE {2};", updateTable, setValues, string.Join("",whereList));
|
||||
@ -36,9 +44,15 @@ namespace SqlSugar
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private string GetOracleUpdateColums(DbColumnInfo m)
|
||||
private string GetOracleUpdateColums(DbColumnInfo m,bool isWhere=false)
|
||||
{
|
||||
return string.Format("\"{0}\"={1} ", m.DbColumnName.ToUpper(IsUppper), base.GetDbColumn(m,FormatValue(m.Value,m.IsPrimarykey,m.PropertyName)));
|
||||
|
||||
var result= string.Format("\"{0}\"={1} ", m.DbColumnName.ToUpper(IsUppper), base.GetDbColumn(m,FormatValue(m.Value,m.IsPrimarykey,m.PropertyName)));
|
||||
if (isWhere&&m.Value == null)
|
||||
{
|
||||
result = result.Replace("=NULL ", " is NULL ");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
int i = 0;
|
||||
public object FormatValue(object value,bool isPrimaryKey,string name)
|
||||
|
Loading…
Reference in New Issue
Block a user