> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> دالة جدول تتيح تحويل البيانات المُرسلة إلى الخادم ببنية محددة وإدراجها بكفاءة في جدول ذي بنية مختلفة.

# input

`input(structure)` - دالة جدول تتيح تحويل البيانات المُرسلة إلى
الخادم ببنية محددة وإدراجها بكفاءة في جدول ذي بنية مختلفة.

`structure` - بنية البيانات المُرسلة إلى الخادم بالتنسيق التالي `'column1_name column1_type, column2_name column2_type, ...'`.
على سبيل المثال: `'id UInt32, name String'`.

لا يمكن استخدام هذه الدالة إلا في استعلام `INSERT SELECT`، ولمرة واحدة فقط، لكنها بخلاف ذلك تتصرف مثل أي دالة جدول عادية
(فعلى سبيل المثال، يمكن استخدامها في استعلام فرعي، وما إلى ذلك).

يمكن إرسال البيانات بأي طريقة كما هو الحال في استعلام `INSERT` العادي، وتمريرها بأي [تنسيق](/ar/reference/formats/index) متاح،
على أن يُحدَّد في نهاية الاستعلام (على خلاف `INSERT SELECT` العادي).

الميزة الرئيسية لهذه الدالة هي أنه عندما يتلقى الخادم البيانات من العميل، فإنه يحولها في الوقت نفسه
وفقًا لقائمة التعبيرات في عبارة `SELECT` ويدرجها في الجدول الهدف. ولا يُنشأ جدول مؤقت
يحتوي على جميع البيانات المنقولة.

<div id="examples">
  ## أمثلة
</div>

* لنفترض أن لجدول `test` البنية التالية `(a String, b String)`
  وأن البيانات في `data.csv` لها بنية مختلفة `(col1 String, col2 Date, col3 Int32)`. يكون استعلام إدراج
  البيانات من `data.csv` إلى جدول `test` مع التحويل المتزامن كما يلي:

```bash theme={null}
$ cat data.csv | clickhouse-client --query="INSERT INTO test SELECT lower(col1), col3 * col3 FROM input('col1 String, col2 Date, col3 Int32') FORMAT CSV";
```

* إذا كان الملف `data.csv` يحتوي على بيانات لها البنية نفسها `test_structure` مثل الجدول `test`، فهذان الاستعلامان متكافئان:

```bash theme={null}
$ cat data.csv | clickhouse-client --query="INSERT INTO test FORMAT CSV"
$ cat data.csv | clickhouse-client --query="INSERT INTO test SELECT * FROM input('test_structure') FORMAT CSV"
```
