OBJECT
نوع
ينطبق على: Databricks Runtime 15.3 والإحدث
يمثل القيم في VARIANT مع البنية الموضحة بواسطة مجموعة من الحقول.
راجع STRUCT لتخزين ومعالجة الأنواع المنظمة الموضحة بواسطة تسلسل من الحقول.
هام
OBJECT
لا يمكن تخزين في عمود جدول.
يتم كشفه فقط عند استدعاء schema_of_variant أو schema_of_variant_agg.
لاستخدام OBJECT
نوع، يجب تحويله إلى STRUCT أو MAP.
بناء الجملة
OBJECT < [fieldName [:] fieldType [, ...] ] >
fieldName
: معرف يسمي الحقل. يجب أن تكون الأسماء فريدة.fieldType
: أي نوع بيانات.
الحدود
يدعم النوع أي عدد من الحقول أكبر أو يساوي 0.
القيم الحرفية
OBJECT
لا يمكن إنشاء قيم خارج VARIANT.
وهي نتيجة لتحليل سلسلة JSON في VARIANT
باستخدام الدالة parse_json().
ملاحظات
- لاستخراج
OBJECT
يمكنك:- variant_get الدالة باستخدام تعبير مسار JSON للانتقال إلى
OBJECT
النوع. - : عامل التشغيل (علامة النقطين) لتحليل
OBJECT
باستخدام تعبير مسار JSON. - try_variant_get الدالة باستخدام مسار JSON للانتقال إلى
OBJECT
نوع مع التسامح مع الخطأ. - دالة التحويل أو :: (علامة النقطين) لتشغيل
OBJECT
إلى STRUCT أو MAP. - try_cast الدالة أو ?:: (علامة النقطين الثلاثية) لتشغيل
OBJECT
إلى STRUCT أو MAP.
- variant_get الدالة باستخدام تعبير مسار JSON للانتقال إلى
الأمثلة
> SELECT schema_of_variant(parse_json('{"key": 123, "data": 5.1 }'));
OBJECT<data: DECIMAL(2,1), key: BIGINT>
-- Casting from a an OBJECT to a STRUCT is by name, because OBJECT fields are not ordered.
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<data: DECIMAL(2,1), key: BIGINT>);
{"data":5.1,"key":123}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<key: BIGINT, data: DECIMAL(2,1)>);
{"key":123, "data":5.1}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS MAP<STRING, DECIMAL(20, 1)>);
{"data":"5.1","key":"123.0"}