当前位置:网站首页>达梦数据库udf实现
达梦数据库udf实现
2022-07-05 18:24:00 【Q446512799】
官方介绍的很简单,其实有点小坑
头文件引用
//-I/dm/dmdbms/include/
#include "de_pub.h"
库文件引用
-L/dm/dmdbms/bin/ -ldmde
字符串拼接代码(函数名必须是大写,否则创建成功,调用报错【[-7095]:外部函数加载失败.】)
de_data C_CONCAT(de_args *args)
{
de_data de_ret;
char* str1;
char* str2;
char* str3;
int len1;
int len2;
str1 = (char*)de_get_str(args, 0); /*从参数列表中取第0个参数*/
str2 = (char*)de_get_str_with_len(args, 1, (udint4*)&len2); /*从参数列表中取第1个参数的值以及长度*/
len1 = strlen(str1);
str3 = (char*)malloc(len1 + len2);
memcpy(str3, str1, len1);
memcpy(str3 + len1, str2, len2);
de_str_free((sdbyte*)str1); /*调用get函数得到字符串之后,需要调用此函数释放字符串空间*/
de_str_free((sdbyte*)str2);
de_ret = de_return_str_with_len((udbyte*)str3, len1 + len2); /*返回字符串*/
free(str3);
return de_ret;
}
编译生成动态库
创建函数
CREATE OR REPLACE FUNCTION C_CONCAT(A VARCHAR, B VARCHAR)
RETURN VARCHAR
EXTERNAL '/dm/dmdbms/bin/libtestudf.so' C_CONCAT USING C;
/
实际项目使用
注:因为c编写达梦udf走的是dmap代理(/dm/dmdbms/bin/dmap),所以首先需要启动代理。如果库依赖外部环境变量,需要在配置环境变量的控制台手工启动dmap,而不是在运行disql命令行控制台配置,否则环境变量不能正常识别。
边栏推荐
- Generate XML schema from class
- Tupu software digital twin | visual management system based on BIM Technology
- About statistical power
- 如何写出好代码 - 防御式编程
- c期末复习
- FCN: Fully Convolutional Networks for Semantic Segmentation
- Is it safe to open an account, register and dig money? Is there any risk? Is it reliable?
- 《2022中国信创生态市场研究及选型评估报告》发布 华云数据入选信创IT基础设施主流厂商!
- Sibling components carry out value transfer (there is a sequence displayed)
- LeetCode 6111. 螺旋矩阵 IV
猜你喜欢
About Estimation with Cross-Validation
vulnhub之darkhole_2
第十一届中国云计算标准和应用大会 | 华云数据成为全国信标委云计算标准工作组云迁移专题组副组长单位副组长单位
模拟百囚徒问题
node_exporter内存使用率不显示
The 10th global Cloud Computing Conference | Huayun data won the "special contribution award for the 10th anniversary of 2013-2022"
爬虫01-爬虫基本原理讲解
吳恩達團隊2022機器學習課程,來啦
吴恩达团队2022机器学习课程,来啦
Find the first k small element select_ k
随机推荐
在通达信上做基金定投安全吗?
The 11th China cloud computing standards and Applications Conference | China cloud data has become the deputy leader unit of the cloud migration special group of the cloud computing standards working
LeetCode 6109. Number of people who know the secret
苹果手机炒股安全吗?打新债是骗局吗?
Memory management chapter of Kobayashi coding
Nacos distributed transactions Seata * * install JDK on Linux, mysql5.7 start Nacos configure ideal call interface coordination (nanny level detail tutorial)
How to choose the most formal and safe external futures platform?
《2022中国信创生态市场研究及选型评估报告》发布 华云数据入选信创IT基础设施主流厂商!
Maximum artificial island [how to make all nodes of a connected component record the total number of nodes? + number the connected component]
开户注册挖财安全吗?有没有风险的?靠谱吗?
ClickHouse(03)ClickHouse怎么安装和部署
含重复元素取不重复子集[如何取子集?如何去重?]
Huaxia Fund: sharing of practical achievements of digital transformation in the fund industry
怎么自动安装pythn三方库
【在優麒麟上使用Electron開發桌面應】
【HCIA-cloud】【1】云计算的定义、什么是云计算、云计算的架构与技术说明、华为云计算产品、华为内存DDR配置工具说明
如何写出好代码 - 防御式编程
【PaddleClas】常用命令
The 10th global Cloud Computing Conference | Huayun data won the "special contribution award for the 10th anniversary of 2013-2022"
金太阳开户安全吗?万一免5开户能办理吗?