DotNetNext / SqlSugar

.Net aot ORM Fastest ORM Simple Easy VB.NET Sqlite orm Oracle ORM Mysql Orm 虚谷数据库 postgresql ORm SqlServer oRm 达梦 ORM 人大金仓 ORM 神通ORM C# ORM , C# ORM .NET ORM NET5 ORM .NET6 ORM ClickHouse orm QuestDb ,TDengine ORM,OceanBase orm,GaussDB orm ,Tidb orm Object/Relational Mapping
https://www.donet5.com/Home/Doc
MIT License
5.33k stars 1.33k forks source link

查询表字段时,提示ORA-00942: 表或视图不存在 #1284

Closed dongfo closed 1 month ago

dongfo commented 1 month ago

代码中拼接查询sql时, https://github.com/DotNetNext/SqlSugar/blob/2f45954dbd963da812b237bec41bfe52c9c05ecb/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs#L474

调试发现,对于Oracle 表名及字段名存在两种可能性, 1.创建表结构时不使用双引号,则表名及字段名均为大写。 2.创建表结构时使用双引号,则表名及字段均维持原来的大写及小写,但是查询必须维持原来的大小写,并且给字段及表名带上双引号。

但是sqlsugar 将非括号包裹的表名均专为大写,导致Oracle查询报错。 image

DotNetNext commented 1 month ago
   DbType = DbType.Oracle,
   ConnectionString = "Data Source=localhost/orcl;User ID=system;Password=haha",
   IsAutoCloseConnection = true,
   MoreSettings=new ConnMoreSettings() { 
       IsAutoToUpper=false //禁用自动转成大写表 5.1.3.41-preview04
   }
DotNetNext commented 1 month ago

如果数据库里面的表不是纯大写,禁用自动转大写

DotNetNext commented 1 month ago

如果数据库里面的表不是纯大写,禁用自动转大写

dongfo commented 1 month ago

感谢您的迅速回复,确实有这个设置可以解决问题。smartsql使用的5.0.5.4版没这个配置项,我知道该怎么解决了。