در نسخه 21c، اوراکل'>اوراکل امکان اجرای کد JavaScript در داخل دیتابیس را فراهم کرده است. این کار با کمک بسته DBMS_MLE امکان پذیر است:
DECLARE ctx varchar2(50) ;
BEGIN ctx := DBMS_MLE.create_context(); DBMS_MLE.eval(ctx, 'JAVASCRIPT', q'~console.log("www.usefzadeh.com");~'); DBMS_MLE.drop_context(ctx);
END;
/
www.usefzadeh.comدر نسخه 23c قابلیتهای دیگری هم در این زمینه ارائه شد که یکی از آنها، امکان بارگذاری و استفاده از ماژولهای JavaScript در دیتابیس اوراکل است این قابلیت می تواند در زمینه های مختلفی راهگشا باشد و حجم کدنویسی را کاهش دهد.
به عنوان مثال، در مطلب “قابلیت SQL domain در اوراکل 23c” در مورد محدود کردن فرمت ورودی ها از طریق check constraint، trigger و sql domain نکاتی را ارائه کردیم و توضیح دادیم که چگونه می توانیم ورودی های ستونی مثل email را کنترل کنیم تا در قالبی مشخص درج شوند.
در این قبیل چالشها، ماژولهای JavaScript هم می توانند به کمک ما بیایند و با استفاده از آنها هم می توانیم بسیاری از این دست نیازمندیها را در دیتابیس مرتفع کنیم. برای مثال، ماژول validator در مورد کنترل ساختار ورودی ها می تواند مورد استفاده قرار بگیرد.
در ادامه نحوه بارگذاری و استفاده از ماژول validator.js که شامل توابع متعددی هم هست را توضیح خواهیم داد(با ایده گرفتن از مقاله آقای Martin Bach).
در ابتدا باید این ماژول را دانلود و روی سرور قرار دهیم.
C:UsersUsef>curl -Lo validator.js https://cdn.jsdelivr.net/npm/validator@latest/+esm % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed
100 118k 0 118k 0 0 186k 0 --:--:-- --:--:-- --:--:-- 186k
[root@OEL8 ~]# cd /JavaScript
[root@OEL8 JavaScript]# ls -l
-rw-r--r-- 1 oracle oinstall 121216 Aug 30 16:36 validator.js
برای بارگذاری این فایل در دیتابیس، نیاز به ساخت directory در دیتابیس داریم با دستور زیر این دایرکتوری را ایجاد می کنیم:
SQL> show user
USER is "USEF"
SQL> create or replace directory DR_JavaScript as '/JavaScript';
Directory created.
بعد از ایجاد دایرکتوری، ماژول را با دستور زیر بارگذاری می کنیم:
SQL> show user
USER is "USEF"
SQL> create mle module validator
language javascript
using bfile (DR_JavaScript, 'validator.js'); /
MLE module created.
اسامی ماژولهای JAVASCRIPT موجود در دیتابیس را می توانیم با دستور زیر ببنیم:
SQL> select MODULE_NAME from user_mle_modules where LANGUAGE_NAME='JAVASCRIPT';
MODULE_NAME
---------------------
VALIDATOR
برای استفاده از این ماژول، تابعی را در دیتابیس ایجاد می کنیم:
SQL> create or replace function isEmail( p_str varchar2
) retu boolean
as mle module validator
signature 'default.isEmail(string)';
/
Function created.
با کمک تابع isEmail بررسی می کنیم عبارت ورودی، فرمت مورد نظر برای Email را دارد؟
SQL> select isEmail('vahidusefzadeh') as "Email?";
Email?
-----------
FALSESQL> select isEmail('vahidusefzadeh@gmail') as "Email?";
Email?
-----------
FALSESQL> select isEmail('[email protected]') as "Email?";
Email?
-----------
TRUEدر ادامه با دو تابع دیگر این ماژول هم آشنا می شویم.
تابع isURL:
SQL> create or replace function isURL( p_str varchar2
) retu boolean
as mle module validator
signature 'default.isURL(string)'; /
Function created.
SQL> select isURL('usefzadeh') as "isURL?";
isURL?
-----------
FALSESQL> select isURL('www.usefzadeh.com') as "isURL?";
isURL?
-----------
TRUEتابع isDate:
SQL> create or replace function isDate( p_str varchar2
) retu boolean
as mle module validator
signature 'default.isDate(string)';
/
Function created.
SQL> select isDate('2023-01-98') as "isDate?";
isDate?
-----------
FALSESQL> select isDate('2023-01-01') as "isDate?";
isDate?
-----------
TRUEارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور......................
تلفن: 09128110897
ایمیل:[email protected]
تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال میکنید
برچسب: نویسنده: خنجی بازدید: 79 تاريخ: چهارشنبه 15 شهريور 1402 ساعت: 3:21