为什么相同 SQL 在 MySQL 能跑通,搬到 OB Oracle 模式就报错?

【 使用环境 】测试环境
【 OB 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

8 个赞

您好,您提的这个技术问题可能牵涉到 OceanBase 企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:

  1. 如你所在的企业客户已签署 OceanBase 企业版销售合同,请你联系客户经理;

  2. 如你所在的企业客户尚未签署 OceanBase 企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

4 个赞

涉及语法改造的问题,oracle模式是兼容oracle数据库的语法的,问下DeepSeek直接就给你处理好了。

3 个赞

MySQL 语法宽松随意,OB Oracle 模式语法严谨守规范,函数、引号、分页、关键字全都不通用,所以同一条 SQL 直接搬过来就报错

4 个赞

mark~

2 个赞

说的太好了呀

2 个赞

学会了

2 个赞

MySQL模式和Oracle模式还是有很多不同的,甚至语法格式都不一样,肯定不通啊。不同数据库之间肯定是有差异的

1 个赞

拿个例子出来看看才知道是什么原因

1 个赞

mysql的部分无法在oracle就是跑不了,要改写的。ob oracle兼容的是oracle语法。

你的mysql应该是使用ob mysql最好的,应该是做到几乎完全兼容

1 个赞

学习到了

很好的SQL分享!在实际项目中,我发现OB配合MySQL使用效果更好。

oracle的sql标准是有小差异的