dotnetcore / SmartSql

SmartSql = MyBatis in C# + .NET Core+ Cache(Memory | Redis) + R/W Splitting + PropertyChangedTrack +Dynamic Repository + InvokeSync + Diagnostics
https://smartsql.net/
Apache License 2.0
1.1k stars 222 forks source link

Oracle动态表名查询异常:ORA-00903: 表名无效 #118

Closed flybalance closed 4 years ago

flybalance commented 4 years ago
<Statement Id="QueryIndexData" ResultMap="IndexDataResultMap">
      SELECT indexcode,datadate,datavalue,lastaccess FROM
      <Placeholder Property="tableName"></Placeholder>
      WHERE indexcode =:indexCode
      <IsNotEmpty Prepend="And" Property="datadate">
        datadate &gt;=:startDate
      </IsNotEmpty>
      <IsNotEmpty Prepend="And" Property="datadate">
        datadate &gt;=:endDate
      </IsNotEmpty>
    </Statement>

表名通过参数动态传递,使用了Placeholder标签进行替换,但仍然抛出ORA-00903: 表名无效的异常,请问下smartsql中是否有其他类似于mybatis ${tableName} 这样使用占位符直接替换参数的用法

flybalance commented 4 years ago

传参形式用错了,开始使用的是Dictionary<string,object>传递,后来发现这样无法获取到参数,改用匿名类方式传参,配合Placeholder标签使用