OMA评估工具是如何评估业务代的呢?

OMA 支持评估业务代码中使用的OCI 接口和ProC 接口,同时支持评估Java 代码。OMA评估工具是如何评估业务代的呢,具体步骤是?另外,OCI 接口和ProC 接口具体是指什么?

OMA对业务代码的评估,核心原理是静态扫描与分析。它会在不实际运行代码的情况下,扫描指定的代码目录,通过内置的规则库来识别不兼容或存在风险的代码模式。

整个评估过程清晰直接,主要包含以下几个步骤:

:gear: 工作流程
指定代码目录:通过一个简单的命令,你可以指定存放待评估业务代码的文件夹路径。为了评估速度,官方建议单个文件夹内的文件数最好不超过2000个,如果文件太多可以分批进行。

执行评估命令:使用类似以下的命令行指令启动评估任务,其中的参数指明了评估模式和分析目标:

bash
sh bin/start.sh --name test_11555g
–mode ANALYZE \ # 固定参数,表示分析模式
–from-type CODE \ # 固定参数,表示代码源
–evaluate-mode APPLICATION_CODE \ # 固定参数,表示评估业务代码
–source-file “/path/to/your/code/” # 指定你的代码目录
生成评估报告:评估完成后,OMA会在report目录下生成一份HTML报告(basic.html),清晰地列出所有潜在问题,以便开发人员查阅和修改。

:bar_chart: 评估报告内容
这份报告对于开发者修复问题至关重要,它会详细列出:

不兼容的文件名与接口:明确指出哪些文件中的哪个接口(如特定的OCI或Pro*C函数)存在兼容性问题。

问题代码位置:精确到问题所在的行号。

代码上下文:展示错误语句周围的代码片段,帮助你快速定位和理解问题。

完整错误日志:在报告的同级目录下,会有一个error.txt文件,其中包含了所有问题的完整错误信息。

总而言之,OMA评估业务代码是通过静态扫描的方式,自动检测代码中的特定接口调用(如OCI、Pro*C)和语法模式,并与OceanBase的兼容性规则进行比对,最后生成一个结构化的问题报告,帮助你快速识别和定位迁移过程中可能遇到的代码适配问题。

它们既不是单纯的接口也不是开发语言,而是Oracle数据库为C/C++开发者提供的两种编程方式。简单来说,它们是两种“连接和操作Oracle数据库的方法”,可以这样理解:
OCI(Oracle调用接口):这是一套底层的函数API(应用程序编程接口)。开发者可以直接在C/C++代码中调用这些函数,从而与数据库进行最直接的交互。它的优点是功能非常强大、控制粒度细、性能也最高,但相应的,开发工作会比较复杂,代码量也更大。
Pro*C:这是一个预编译器工具,专门为C/C++语言设计。它允许你在C/C++源代码中直接嵌入SQL语句(这种写法叫“嵌入式SQL”)。代码写好后,通过ProC预编译器,它会自动将这些SQL语句转换成标准函数调用并生成新的C/C++源码,之后再进行常规编译。这种方式的优点是开发简单、高效,代码可读性也更强。一个比较重要的信息是,从Oracle 8i版本开始,ProC在底层也是构建在OCI之上的。

1 个赞