本帖最后由 Joe.xu 于 2022-4-16 17:34 编辑
RT
我最近有项目在使用了ORACLE的外联库,然后遇到一些问题,在大家....帮助下有一些坑要避踩:
1.设计器使用外联库新建表
由于ORACLE不像MSSSQL,他的表格的自增长不是直接使用列来+1,而是使用的序列的内置的数据库方式;
所以格子新建了表以后,ID的字段类型不是INT,而且文本,文本哈.....大家要注意,这个时候就需要自己去构建唯一的主键了
怪不得金蝶EAS 蓝凌OA这些大厂的产品的ID键都不是整数而是很长一串的字符串,感情都是不想去踩这个坑......马油..
2.新建表也有坑
在设计器 SELECT * FROM 表 查询不到数据
必须要 SELECT * FROM "表" 才可以
因为如果使用ORACLE外联库 非大写的表都有内部策略 SELECT 的时候 必须带 引号很麻烦,新建的时候如果是中文,再去弄里面的 查询的时候都得加引号,视图也是很不方便都会带引号;这个时候就只有先在数据库建了,然后再链接过去获取,再勾上格子支持修改表
但是如果是大写字母表,就很正常,查询的时候 用大写或者小写都很方便,否则要被搞死在那里.....
具体一点举个例子:就是使用 活字格创建的表
在设计器 SELECT * FROM 表 查询不到数据
必须要 SELECT * FROM "表" 才可以
创建的视图也是,各种带"" 很麻烦
解决的办法就是,使用NAVICAT 新建大写字母的表格,然后这个时候,里面的列用大写还是小写,都不会收到影响...也不用加引号!!!!!!!
PS:
强烈推荐大家,创建表格都使用大写....
为此,我还提了一个需求贴
https://gcdn.grapecity.com.cn/fo ... d&tid=145042&extra=
3.使用参数也有坑
原贴地址:https://gcdn.grapecity.com.cn/fo ... d&tid=144999&extra=
7.0.104执行SQL命令Oracle数据库日期转为文本查询报错
之前是使用的如下语句:
SELECT 来源单号,
SUM(付款金额) AS 总金额
FROM DGFYBXDCP2 WHERE billdate=@日期
group by 来源单号
然后执行就会遇到报错,随便怎么调整都不行
后来在徐工的协助下,多次更换体位进行尝试....
在标准的编辑SQL语句里面选择了参数,参数变成了这样,见图
然后.....就各种正常了.... 这应该也是不同数据库的策略不同;
但是,论坛上这方面的信息确实很少,花你 2天时间来弄这里,太痛苦了...
睡觉都睡不安稳,感谢徐工.....尝试了很多....emmm
所以,希望大家能让后来的同学们,可以少踩坑,另外有2个建议
1.建表都使用大写,列也使用大写 养成这个习惯
2.格子新建外联表不要用中文,用大写字母,否则同样的问题会被反复问到为什么新建了个表,SELECT不到....
3.感谢葡萄城徐工
4.感谢金牌用户的自己
5.撒花......
6.这个帖子,应该到周五分享,让更多人看到.......
|