23c新特性在数据库内部创建、存储和执行JavaScript

作者: admin 分类: 公众号存档            2 次浏览 发布时间: 2023-01-19 23:58

【转载声明】本文为转载文章,原作者「Victor」,版权归原作者所有。 原文链接:https://mp.weixin.qq.com/s/MFJ2llDEHUJimsxnvu791A

公众号:杨建荣的学习笔记 · 作者:Victor Li · 发布:2023-01-19 23:58:54 · 原文链接

、Oracle 数据库支持一组丰富的语言来编写用户定义的函数和存储过程,包括 PL/SQL、Java 和 C。借助 Oracle 数据库多语言引擎 (MLE),开发人员可以选择通过动态执行或直接存储在数据库中的持久 MLE 模块来运行 JavaScript 代码。

编程语言的格局正在迅速发展,越来越多的开发人员选择使用像JavaScript这样的现代动态语言。除了更简单的语法和对现代语言功能的支持之外,这些语言流行的一个关键因素是存在丰富的模块生态系统。开发人员通常选择使用不同的语言来实现项目的不同部分,具体取决于给定任务的合适模块的可用性。

一种新语言是否被广泛采用往往取决于社区的参与。一旦一种语言达到某种流行的门槛,它的生态系统通常开始迅速扩展,吸引越来越多的开发人员。很多时候,会创建一组丰富的功能、库和可重用的代码模块来支持更广泛的使用。

Oracle数据库以其对丰富的编程语言生态系统的支持而闻名。Oracle 数据库最常见的编程服务器端接口是 PL/SQL。通过使用PL / SQL,可以将业务逻辑和数据保持在一起,除了为数据提供统一的处理模式外,通常还可以显著提高效率,而不管使用何种客户端接口。使用MLE,你可以利用PL / SQL来实现JavaScript模块,提供直接与数据库交互的额外途径。

Oracle 数据库多语言引擎MLE允许您直接在 Oracle 数据库中运行和存储 JavaScript。

使用 MLE 使 Oracle 数据库的用户能够运行:

  • 存储过程

  • 存储函数

  • PL/SQL 包命名空间中的代码

  • 匿名、动态的代码片段(类似于DBMS_SQL)

接下来我们就通过例子来看看这项功能是如何使用的吧。

一、环境准备

1.Oracle 23数据库

2.一个CDB和一个PDB

二、创建用户并对用户授权

要直接在 Oracle 数据库中运行和存储 JavaScript,相关用户需要授权。

该应用需要授于如下权限:

GRANT EXECUTE ON JAVASCRIPT TO user/role;

如果此用户需要使用DBMS_MLE动态执行JS脚本还需要

GRANT EXECUTE DYNAMIC MLE TO <role | user>

此外23c新增加了一个开发员角色,强列建议使用,此开发员角色已包含大部份开发人员所需要的权限,使用如下方法进行赋权:

begindbms_developer_admin.grant_privs('DEVUSER');end;/

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注