Orecle 迁移 人大金仓数据库 SQL 问题

金歌  论坛元老 | 2024-11-4 20:49:55 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1707|帖子 1707|积分 5121

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. start  with ...  connect by 语法不兼容

      利用 oracle 项目一样寻常利用,start with ... connect by 语法做菜单栏数据查询,该语法在人大金仓数据库提供的可视化工具中可以执行,但在Springboot + mybatis 项目中无法执行(版本2.X),通过与人大金仓人员谈判,可以利用 with recursive.... as(... union ..) select ... where... 语法替代,该语法基础是如下:
      假设有如下一张表(menu_table):
idmenu_idparent_menu_idmenu_desc
11一级
21011二级
310101101三级
4101010110101四级
       我们可以利用一下 SQL查询出树状数据:
       with recursive temp as(
             select * from menu_table where id = 3
             union 
             select * from menu_table a  join  temp b on b.parent_menu_id = a.menu_id
         ) select * from temp
        该SQL执行结果如下:
idmenu_idparent_menu_idmenu_desc
11一级
21011二级
310101101三级
           SQL 语法分析: 
           SQL 中的 select * from menu_table where id = 3 查出来的数据,会作为初始基础数据,union 后面的SQL select * from menu_table a  join  temp b on b.parent_menu_id = a.menu_id ,  界说树状数据的规则,当前SQL是向上查询,利用基础数据中 parent_menu_id 值 101 为条件去    menu_table 表中查询 menu_id 值为 101 的数据,会递归处理直到不满足该条件为止            b.parent_menu_id = a.menu_id
          如果我们要向下查找数据要怎么做呢?把条件该为如许 b.menu_id = a.parent_menu_id 
2.数据精度问题  

      oracle 数据库 numeric 范例数据查询出的数据,不会默认在小数点后面补充无效的 0 ,人大金仓数据查询数据会默认在小数点后面做补充 0 利用,如果 java 接受数据利用 String 范例会出现小数点后面很多零问题,可以在数据库设置文件 url 设置信息,添加后缀:initParams=ignore_zero_number=on 忽略补充零
3.druid 连接池胡乱打印SQL报错

     oracle 数据库切换人大金仓数据库,利用 druid 监控 SQL 信息时,会出现 SQL 执行成功功能正常,但是日志文件中出现 SQL 解析报错信息,必要在 druid 设置文件中添加 druid.filter.stat.merge-sql = false 信息




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表