to_binary وظيفه

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

إرجاع expr التحويل إلى BINARY استنادا fmtإلى .

بناء الجملة

to_binary(expr [, fmt] )

الوسيطات

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

المرتجعات

ثنائي.

ملاحظات

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

  • 'HEX'

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

    إذا expr لم تكن سلسلة سداسية عشرية صالحة، فإن Azure Databricks ترجع خطأ CONVERSION_INVALID_INPUT . استخدم try_to_binary لإرجاع قيمة NULL بدلا من ذلك.

  • 'BASE64'

    expr يجب أن يكون RFC 4648 #4: سلسلة ترميز base64 (قياسية ). والنتيجة هي البيانات الثنائية التي تم فك ترميزها. ضمن RFC 4648 #4، ستؤدي أي سلسلة bae64 مشوهة إلى خطأ CONVERSION_INVALID_INPUT .

  • '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