پارامتر JSON_BEHAVIOR در اوراکل 23ai

خرید بک لینک

در اوراکل نسخه 21c، زمانی که توابع مربوط به JSON نظیر JSON_QUERY، JSON_TABLE و JSON_VALUE ورودی معتبری نداشته باشند، خطایی رخ نمی دهد و null به کاربر برمی گردد در مثال زیر، کلید Year سه بار تکرار شده و این ورودی معتبر نیست اما دستور select بدون خطا اجرا می شود و صرفا NULL به کاربر برمی گردد:

SQL> SELECT JSON_VALUE('[{Year:1401},{Year:1401},{Year:1402}]', '$.Year') YEAR;
YEAR
----------------- 

در این شرایط اگر بخواهیم این رفتار را در سطح دستور تغییر دهیم، می توانیم عبارت ERROR ON ERROR را به ورودی اضافه کنیم:

SQL> SELECT JSON_VALUE('[{Year:1401},{Year:1401},{Year:1402}]', '$.Year' error on error) ;
ORA-40470: JSON query '$.Year' evaluated to multiple values.
Help: https://docs.oracle.com/error-help/db/ora-40470/

*مقدار پیش فرض NULL ON ERROR است.

در نسخه 23ai برای کنترل این رفتار، پارامتر جدیدی به نام JSON_BEHAVIOR ارائه شده که در سطح session قابل تنظیم است. مقدار پیش فرض این پارامتر، ON_ERROR:NULL است:

SQL> ALTER SESSION SET JSON_BEHAVIOR = 'ON_ERROR:NULL';
Session altered.
SQL> SELECT JSON_VALUE('[{Year:1401},{Year:1401},{Year:1402}]', '$.Year');
JSON_VALUE('[{YEAR:1401},{YEAR:1401},{YEAR:1402}]','$.YEAR')
--------------------------------------------------------------------------------

اما می توانیم این مقدار را به ON_ERROR:ERROR تنظیم کنیم تا برای کوئری فوق خطا نمایش داده شود:

SQL> SELECT JSON_VALUE('[{Year:1401},{Year:1401},{Year:1402}]', '$.Year');
ORA-40470: JSON query '$.Year' evaluated to multiple values.
Help: https://docs.oracle.com/error-help/db/ora-40470/

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:[email protected]

تالار های تخصصی...

ما را در سایت تالار های تخصصی دنبال می‌کنید

برچسب: نویسنده: خنجی بازدید: 25 تاريخ: سه شنبه 12 تير 1403 ساعت: 15:21

صفحه بندی