达梦8-外部函数
为了能够在创建和使用自定义 DMSQL 程序时,使用其他语言实现的接口,DM8 提供了 C、JAVA 外部函数,这样即使外部函数在执行中出现了任何问题,都不会影响到服务器的正常执行。
无论是 C 外部函数还是 JAVA 外部函数,都需要将动态库或 jar 包上传到服务器端或在服务器端编译生成动态库或 jar 包,系统管理员应对动态库和 jar 包进行严格审查,以防止外部函数中包含病毒或恶意代码,引发安全问题。为了保证数据库的安全性和灵活性,DM 提供了 ini 参数 ENABLE_EXTERNAL_CALL 来开关外部函数功能,默认情况下,数据库会关闭外部函数的创建和执行功能。
需要注意的是,DM 不支持 C 或 JAVA 外部函数存放在 ASM 文件系统上的调用。
测试c外部函数时是可以成功运行的
但是Java运行时却会有问题,连接外部函数没有问题,就是不论是整数还是字符串都输出为空
本应该输出3,ASNK hello,但是都输出错误,感觉可能是因为达梦数据库版本太低的问题,电脑上安装的是达梦7
随后在centos7.6下安装了达梦,使用C/Java的外部函数,发现是可行的
oracle外部函数
编写一个简单的C程序,就是100*输入的数:
test(n)
int n;
{
int lucky_money;
lucky_money=100*n;
return (lucky_money);
}
对编写的C程序编译生成动态链接库文件,然后copy到oarcle安装目录的bin文件夹下
创建库文件,指向test.so,将权限赋予指定用户,然后定义函数,该函数最后会调用链接库文件:
验证外部函数:
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




