> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# dbListColumns

> データベースサーバーのテーブルまたはビューのカラムをリストします。

export const siteNameShort = "Arc";

データベースサーバーのテーブルまたはビューのカラムをリストします。設定とターゲットデータベースの種類によっては、これらのパラメータやアウトプット属性の一部が関連しない場合があります。

## 必要なパラメータ

* **driver**: クロスプラットフォーム版ではJDBC ドライバーのクラス名、.NET 版ではADO.NET プロバイダー名。
* **conn**: 接続文字列、またはデータベースURL。
* **table**: カラムをリストするテーブルまたはビュー。

## オプションのパラメータ

* **schema**: テーブルが存在するデータベーススキーマの名前。スキーマは一般的にテーブルグループの *名前空間* と呼ばれます。
* **catalog**: データベースサーバーのカタログ。これは一般的に *データベース* と呼ばれます。値を指定しない場合、データベースサーバーのすべてのカタログのカラムが返されます。

## アウトプット属性

* **db:columnname**: 指定したテーブルまたはビューのカラムの名前。
* **db:datatype**: 指定したテーブルまたはビューのカラムのSQL データ型。
* **db:columnsize**: 指定したテーブルまたはビューのカラムのサイズ。
* **db:iskey**: カラムが主キーカラムかどうかを示すブール値（true またはfalse）。
* **db:nullable**: カラムがNULL を許容するかどうかを示すブール値（true またはfalse）。
* **db:readonly**: カラムが読み取り専用かどうかを示すブール値（true またはfalse）。
* **db:autoincrement**: カラムが自動増分カラムかどうかを示すブール値（true またはfalse）。

## 例

この例では、ターゲットのデータベースサーバーはMySQL、ターゲットのテーブルは`actor` です。接続文字列に`database` パラメータがないことに注意してください。接続文字列でデータベースが指定されている場合、`catalog` パラメータは不要です。このスクリプトは、ターゲットテーブルのすべての属性をアウトプットファイルに書き込みます。

```xml theme={null}
<!-- Initializing the output item -->
<arc:set attr="output.data" />
<!-- Creating the input db item and the necessary attributes -->
<arc:set attr="db.driver" value="cdata.jdbc.mysql.MySQLDriver" />
<arc:set attr="db.catalog" value="sakila" />
<arc:set attr="db.table" value="actor" />
<arc:set attr="db.conn" value="jdbc:cdata:mysql:server=localhost;port=3306;user=root;password=Password123;"/>

<arc:call op="dbListColumns" in="db" out="results" >
  <!-- adding result data from the operation to an output item that will be pushed out as a file -->
  <arc:set attr="output.data">[output.data]\nColumn Name=[results.db:columnname]\nData Type=[results.db:datatype]\nSize=[results.db:columnsize]\nKey=[results.db:iskey]\nNullable=[results.db:nullable]\nReadOnly=[results.db:readonly]\nAutoInc=[results.db:autoincrement]\n-----</arc:set>
</arc:call>

<!-- setting the filename and pushing the file out --> 
<arc:set attr="output.filename" value="results.txt" />
<arc:push item="output" />
```

アウトプット：

```
Column Name=actor_id
Data Type=SMALLINT UNSIGNED
Size=2
Key=True
Nullable=False
ReadOnly=False
AutoInc=True
-----
Column Name=first_name
Data Type=VARCHAR
Size=45
Key=False
Nullable=False
ReadOnly=False
AutoInc=False
-----
Column Name=last_name
Data Type=VARCHAR
Size=45
Key=False
Nullable=False
ReadOnly=False
AutoInc=False
-----
Column Name=last_update
Data Type=TIMESTAMP
Size=19
Key=False
Nullable=False
ReadOnly=False
AutoInc=False
-----
```

{siteNameShort} がインストールおよび実行されているマシンにドライバーがインストールされている場合に限り、上記の例を変更して別のデータベースを対象にすることができます。例を.NET 用に調整するには、`driver` と`conn` のインプットを次のように変更する必要があります：

```xml theme={null}
<arc:set attr="db.driver" value="System.Data.CData.MySql" /> 
<arc:set attr="db.conn" value="Server=localhost;Database=sakila;UID=root;Password=Password123;"/>
```
