使用的版本是 OB 4.2.1.8。在创建存储过程 的时候 ,正则表达式中加入花括号{ },存储过程 就无法正常 创建了。把 { } 删除,又可以正常创建存储过程 。就算是注释里面 有花括号 也不可以,请问这是什么问题?
ob是企业版还是社区版 使用的什么工具写的存储过程
使用官方的 ODC 来写存储过程 的。排查了好久,无法复现出问题,就是在将生产的存过 迁到 OB 就遇到这些问题。
SHOW VARIABLES like ‘version_comment’; 查一下版本号 看着像是支持正则表达式的问题
你好,你提的这个技术问题牵涉到OceanBase企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:
-
如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;
-
如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。
另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。
加个转义字符呢
转不了的,加注释 也不行。只会检测到 {9},不管前面加什么符号。
在 OceanBase 中,{ } 的使用并非强制(部分场景可省略),但其核心作用是明确界定代码块的范围,尤其在包含多条语句时,能避免语法解析歧义,提高代码可读性。不同兼容模式下,{ } 的使用规范会对齐对应的原生数据库(MySQL 或 Oracle),语法细节可能略有差异,但核心作用一致。
坐等高手来.
我感觉 像是 { } 被当作是动态绑定参数 之类的,之前试过 把这一行代码注释 掉,还是会有问题,就是注释掉的代码,还是报错。所以我的想法有两个,
1、是不是客户端的功能,加上 { } 后,需要在客户端写上些什么,当作参数传入到 SQL?
2、是不是 OB 的编译器,把 { } 的 内容,当成了动态参数之类的?
第一个方法,之前在 Dbeaver 工具上是试过的,ODC 不会用,好像也没看到这方面的设置。第二个,自己复现不出来。自己写个简单的,短一点的,好像都没有问题,可以正常执行。就是生产上面的代码 迁过来会有问题。没想明白
正则表达式不是可以加大括号么
是可以加,加了大括号 就 运行报错。正则是没问题的,就是不知道 为什么 OB 会报错
回头我试一下,按说不应该,OB也应该符合这种标准呀,包括SQL标准啥的。