5.0.3.4 Oracle分页PartitionBy ORA-00923: 未找到要求的 ROM 关键字 返回

SqlSugar
7 208

代码.png

已经升级到SqlSugarCore 5.0.3.4,如果不使用PartitionBy则无错,使用了PartitionBy后发现依然有这个问题,分析代码后发现图三处缺少ExternalTable.*,源码加上后测试通过,请记得修复谢谢。


附测试代码:

var db = new SqlSugarClient(new ConnectionConfig()

            {

                DbType = DbType.Oracle,

                ConnectionString = ConnectionString4,

                InitKeyType = InitKeyType.Attribute,

                IsAutoCloseConnection = true,

            });


            string keywords = string.Empty;

            int currentPage = 1;

            int pageSize = 20;

            int total = 0;


            try

            {

                var templates = db.Context.Queryable<Template>()

                       .PartitionBy(i => new { i.FormTemplateCode })

                       .ToPageList(currentPage, pageSize, ref total);

                Console.WriteLine("Finish1");

            }

            catch (Oracle.ManagedDataAccess.Client.OracleException oe)

            {

                Console.WriteLine("Wrong: " + oe.ToSqlValue());

            }

            catch (Exception)

            {

                throw;

            }

            var temp2 = db.Context.Queryable<Template>().ToPageList(currentPage, pageSize, ref total);


            Console.WriteLine("Finish2");

            Console.ReadLine();


热忱回答7

  • .Select("ExternalTable.*") 这样试试

    0 回复
  • 萧秦 萧秦 VIP0
    1个月前

    @fate stay night:是这样么?无效。

    select无效.png

    0 回复
  • @萧秦:那就不支持,生成的SQL好像也没错

    0 回复
  • MSSQL是可以的

    0 回复
  • 萧秦 萧秦 VIP0
    1个月前

    @fate stay night:是的,sqlserver没问题,就oracle有问题,生成的sql加上ExternalTable就没问题了。

    0 回复
  • @萧秦:你先手动改下这个吧,我本地试了可以,后面会发布

    0 回复
  • 萧秦 萧秦 VIP0
    1个月前

    @fate stay night:好的谢谢。

    0 回复