diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs index 2b9e68ead..0f12a7de7 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs @@ -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 @@ -646,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