Synchronization code

This commit is contained in:
sunkaixuan 2024-09-04 11:46:52 +08:00
parent 15613fbf5b
commit acda5190ea

View File

@ -58,7 +58,7 @@ namespace SqlSugar
{
get
{
return "select count(1) from user_ind_columns where upper(index_name)=upper('{0}')";
return "SELECT NVL2((SELECT INDEX_NAME FROM ALL_INDEXES WHERE INDEX_NAME=UPPER('{0}') AND OWNER = USER ),1,0)+NVL2((SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE CONSTRAINT_NAME=UPPER('{0}') AND OWNER = USER),2,0) AS ROWCOUNT FROM DUAL";
}
}
protected override string CreateIndexSql
@ -271,18 +271,7 @@ namespace SqlSugar
}
#endregion
#region Methods
public override bool IsAnyConstraint(string constraintName)
{
string query = @"
SELECT COUNT(*)
FROM ALL_INDEXES
WHERE INDEX_NAME = @constraintName
AND OWNER = USER";
var parameters = new { constraintName = constraintName };
return this.Context.Ado.GetInt(query, parameters) > 0;
}
#region Methods
public override bool IsAnyTable(string tableName, bool isCache = true)
{
if (isCache)
@ -359,7 +348,7 @@ WHERE table_name = '"+tableName+"'");
}
public override List<string> GetProcList(string dbName)
{
var sql = $"SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'PROCEDURE' AND OWNER = '{dbName.ToUpper()}'";
var sql = $"SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'PROCEDURE' AND OWNER =user ";
return this.Context.Ado.SqlQuery<string>(sql);
}
public override bool AddColumn(string tableName, DbColumnInfo columnInfo)
@ -657,6 +646,21 @@ WHERE table_name = '"+tableName+"'");
}
return true;
}
public override bool IsAnyIndex(string indexName)
{
string sql = string.Format(this.IsAnyIndexSql, indexName);
return this.Context.Ado.GetInt(sql) == 1;
}
public override bool IsAnyConstraint(string constraintName)
{
string sql = string.Format(this.IsAnyIndexSql, constraintName);
int res = this.Context.Ado.GetInt(sql);
return res == 2 || res == 3;
}
public override bool DropIndex(string indexName, string tableName)
{
return DropIndex(indexName);
}
#endregion
#region Helper
@ -676,7 +680,7 @@ WHERE table_name = '"+tableName+"'");
}
private static void ConvertCreateColumnInfo(DbColumnInfo x)
{
string[] array = new string[] { "int"};
string[] array = new string[] { "int","date"};
if (array.Contains(x.DataType?.ToLower()))
{
x.Length = 0;
@ -686,6 +690,10 @@ WHERE table_name = '"+tableName+"'");
{
x.DataType = x.OracleDataType;
}
if(x.DecimalDigits>0&& x.DataType?.ToLower().IsIn("varchar", "clob", "varchar2", "nvarchar2", "nvarchar")==true)
{
x.DecimalDigits = 0;
}
}
#endregion
}