مشاركة عبر


try_to_binary دالة

ينطبق على: وضع علامة Databricks SQL preview وضع علامة Databricks Runtime 11.3 LTS وما فوق

إرجاع expr التحويل إلى BINARY استنادا fmtإلى ، أو NULL إذا كان الإدخال غير صالح.

بناء الجملة

try_to_binary(expr [, fmt] )

الوسيطات

  • expr: تعبير STRING المراد تحويله.
  • fmt: سلسلة حرفية تصف كيفية تفسير expr.

المرتجعات

ثنائي.

ملاحظات

إذا fmt تم توفيره، يجب أن يكون واحدا من (غير حساس لحالة الأحرف):

  • 'HEX'

    expr يجب أن تكون سلسلة سداسية عشرية. يجب أن يكون كل حرف رقما سداسيا عشريا ويجب أن يكون هناك عدد زوجي من الأرقام. والنتيجة هي التمثيل الثنائي للسلسلة السداسية العشرية.

    إذا expr لم تكن قيمة سداسية عشرية جيدة التكوين، ترجع الدالة NULL. استخدم to_binary لإرجاع خطأ بدلا من ذلك.

  • 'BASE64'

    expr يجب أن يكون RFC 4648 #4: سلسلة ترميز base64 (قياسية ). والنتيجة هي البيانات الثنائية التي تم فك ترميزها.

  • 'UTF-8' أو 'UTF8'

    expr يتم تفسيره على أنه سلسلة UTF-8. والنتيجة هي التمثيل الثنائي للسلسلة.

الإعداد الافتراضي fmt هو 'HEX'.

الأمثلة

> SELECT cast(to_binary('537061726B') AS STRING);
  Spark

> SELECT cast(to_binary('hello', 'hex') AS STRING);
  Error: CONVERSION_INVALID_INPUT

> SELECT cast(try_to_binary('hello', 'hex') AS STRING);
  NULL

> SELECT cast(to_binary('537061726B', 'hex') AS STRING);
  Spark

> SELECT cast(to_binary('U3Bhcms=', 'base64') AS STRING);
  Spark

> SELECT cast(to_binary('U3Bhxcms=', 'base64') AS STRING);
  Error: CONVERSION_INVALID_INPUT

> SELECT cast(try_to_binary('U3Bhxcms=', 'base64') AS STRING);
  NULL

> SELECT hex(to_binary('서울시(Seoul)', 'UTF-8'));
  EC849CEC9AB8EC8B9C2853656F756C29