查询语句中的引号问题 返回

使用Ado.GetDataTable()f方法执行查询语句的时候,为什么有时候模式名称和表名称会带上引号,有时候又不带。这个是什么原因?是什么时候会带什么时候不会带呢?
热忱回答(15)
-
fate sta VIP0
2024/7/3这个和你的数据库建的表有关系, 如果是规范表是不需加引号的
0 回复 -
fate sta VIP0
2024/7/3比pgsql 全部小写 字段小写 是不需引号的
比如oracle全部大写字段大写 是不需要引号的
0 回复 -
信 VIP0
2024/7/4人大金仓,通过脚本建表的,第一次建表的时候没注意,脚本里的表名没带引号,建好的表都被转成了小写,Ado.GetDataTable()方法执行查询,sql中的模式名和表名本身没带引号,但是传递到数据库的时候被带上了引号,出现了关系不存在的异常。后来我发现了这个问题,修改建表脚本之后,建表的脚本里表名和字段名都带上了引号,建完表之后,还是之前的方法执行,结果sql传递到数据库的时候,sql中的引号又没有了,又报了关系不存在的异常。
0 回复 -
信 VIP0
2024/7/4@fate sta:
0 回复 -
fate sta VIP0
2024/7/4@信:人大金仓 全大写是规范
0 回复 -
信 VIP0
2024/7/4感谢
0 回复 -
信 VIP0
2024/7/8@fate sta:您好老师,我这边的项目数据库是从SQLserver换成人大金仓的,很多使用sql查询的方法需要使用db.Ado.GetDataTable()方法,但是人大金仓的sql中需要给表名和字段名添加引号才能识别,原本的sql是给SQLserver用的,表名和字段名全部都是没有引号的,想问下您这个问题有什么比较好的解决方案吗?(表名和字段名都是从旧的SQLserver中迁移来的,既不符合驼峰标准,也不符合全大写标准。)
0 回复 -
fate sta VIP0
2024/7/8@信:建大写表就不需要引号
0 回复 -
信 VIP0
2024/7/8@fate sta:td_Project表名都是这样的,没有固定的格式,而且表是从之前的库迁移来的不能改变表名
0 回复 -
fate sta VIP0
2024/7/8@信:你找金仓问问,能不能取消大小写限制
0 回复 -
fate sta VIP0
2024/7/8需要加"xx" 一般是大小写限制。
0 回复 -
fate sta VIP0
2024/7/8我这边找金仓问了,一会回复你
0 回复 -
fate sta VIP0
2024/7/8人大金仓。。说没这个功能。 只能加""
0 回复 -
fate sta VIP0
2024/7/8要么就统一改表,改和create table xxx 默认大小写一样。
0 回复 -
信 VIP0
2024/7/8@fate sta:好的 非常感谢
0 回复