生成Oracle SQL参数解析有误 返回

SqlSugar 沟通中
4 137
该叫什么 心然 发布于2周前
悬赏:0 飞吻

查询Oracle11g一张日志表"SYS_LOG"时,通过Linq.Expression表达式构造where条件进行查询时,就简单一个字段“type”=‘A’查询时,SqlSugar构造的SQL参数不正确。

程序报:参数“type0”无效:“

ArgumentException: ORA-50028: Invalid parameter binding (Parameter 'type0')


查看解析:参数由“type0”变成“KWtype0_01”,不知是不是因为字段“type”是保留关键字有关?

[Sql]:SELECT * FROM (SELECT "ID","CREATEDUSERID","CREATEDTIME","LOGDESC","SMEMO","IP","TYPE","ACTION",ROW_NUMBER() OVER(ORDER BY id desc) AS RowIndex  FROM "SYS_LOG"  WHERE ( "TYPE" = :type0 )) T WHERE RowIndex BETWEEN 1 AND 20 

[Pars]:

[Name]::KWtype0_01 [Value]:S [Type]:String 


热忱回答4

  • sqlsugar是最新的吗。升级最新看看。

    0 回复
  • 207以下版本升级到207  文档oracle有介绍207和207以上有哪些改动

    0 回复
  • 出现异常后,就升级到最新版,问题依旧。

    0 回复
  • 实体按文档设置参数类型转换后,可以正常解析了。

     /// <summary>

     ///日志类型:S:登录退出日志 O:操作日志

     /// </summary>

     [SugarColumn(ColumnName = "type",SqlParameterDbType = typeof(CommonPropertyConvert))]

     public string type { get; set; }


    DbContext: Information: 

    [Sql]:SELECT * FROM (SELECT "ID","CREATEDUSERID","CREATEDTIME","LOGDESC","SMEMO","IP","TYPE","ACTION","OBJID","OBJTN",ROW_NUMBER() OVER(ORDER BY id desc) AS RowIndex  FROM "SYS_LOG"  WHERE ( "TYPE" =@Common1000)) T WHERE RowIndex BETWEEN 1 AND 20 

    [Pars]:

    [Name]::Common1000 [Value]:S [Type]:String


    0 回复