ora-00904 FALSE 标识符无效

Rick Carter / 2024-11-12 / 原文

环境:EFCore8和Oracle.EntityFrameworkCore8.23.60,都是当前最新版本,报错:ora-00904 FALSE 标识符无效。
原因: 语句在不同oracle版本上的兼容问题,oracle23版本开始支持Boolean标识符表示真假值:False和True。而这之前的oracle版本不支持,只能用0和1表示。
解决:在配置Oracle的地方指定兼容版本,代码如下

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
  optionsBuilder.UseOracle(connectionString,oracleDbContextBuilder=>oracleDbContextBuilder.UseOracleSQLCompatibility(OracleSQLCompatibility.DatabaseVersion19));
}