【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】OceanBase没有找到关于新增自定义udf函数的帖子,自己有尝试过,但无法创建成功,想请问一下各位大佬是否支持呀?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】OceanBase没有找到关于新增自定义udf函数的帖子,自己有尝试过,但无法创建成功,想请问一下各位大佬是否支持呀?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
根据您的描述,您正在尝试在 OceanBase 社区版 4.2.1.9 中创建自定义的 Java 编写的 UDF 函数,但遇到了问题。首先,OceanBase 数据库确实支持用户定义的函数(UDF),但是具体的实现方式和支持的语言可能有所不同。对于 Java 编写的 UDF 函数的支持情况,需要进一步确认。
为了更好地帮助您解决问题,建议先使用 obdiag
工具来收集相关日志,这将有助于我们了解在尝试创建 UDF 函数时发生了什么问题。您可以按照以下步骤操作:
日志采集场景: SQL 执行出错
日志采集命令: obdiag gather scene run --scene=observer.sql_err --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”
请将上述命令中的 -h127.0.0.1 -P2881 -utest@test -p****** -Dtest
替换为您实际的数据库连接信息,并将 trace_id
替换为实际的跟踪 ID(如果您有)。执行完命令后,请将生成的日志文件提供给我们,以便进一步分析。
另外,为了确定具体的问题,在此需要您提供一些信息:
感谢您的配合,我们将尽快为您提供帮助。
详情请参考:
附上敏捷诊断工具 obdiag 使用帮助链接
根据您提供的信息和错误信息“ERROR 1235 (0A000): creating loadable function not supported”,可以明确的是,OceanBase 社区版 4.2.1.9 当前并不支持创建可加载的函数(loadable functions),这类函数通常是指通过共享库(如 .so
文件)实现的用户定义函数(UDFs)。这一限制意味着您无法像在某些版本的 MySQL 中那样,通过 CREATE FUNCTION ... RETURNS STRING SONAME 'your_library.so'
的方式来添加自定义的 UDF。
ERROR 1235 (0A000): creating loadable function not supported
明确指出了 OceanBase 不支持创建这种类型的 UDF。如果您需要一个简单的加密函数,可以考虑使用 OceanBase 内置的加密函数,例如 AES_ENCRYPT
和 AES_DECRYPT
。
-- 使用内置的 AES 加密函数
SELECT AES_ENCRYPT('your_data', 'your_key') AS encrypted_data;
目前,OceanBase 社区版 4.2.1.9 不支持通过共享库加载自定义的 UDF 函数。建议您使用内置函数或 PL/SQL 来实现所需的功能。如果您的需求非常复杂,可以考虑将这部分逻辑放在应用程序中。
希望这些信息对您有所帮助。如果您有其他问题或需要进一步的帮助,请随时联系 OceanBase 的技术支持团队。
详情请参考:
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
当前OceanBase(4.3以及以前)不支持UDF,包括企业版。
那想请问一下,4.3以后的社区版是否支持自定义UDF?有没有对应的资料?
这个目前不知