プロシージャへのパラメータに関する情報を取得する

# odbc_procedurecolumns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_procedurecolumns — プロシージャへのパラメータに関する情報を取得する

### 説明

function odbc_procedurecolumns(
Odbc\Connection `$odbc`,
?string `$catalog` = `null`,
?string `$schema` = `null`,
?string `$procedure` = `null`,
?string `$column` = `null`
): Odbc\Result|false

プロシージャへのパラメータに関する情報を取得します。

### パラメータ

`odbc`
  ODBC 接続オブジェクト。詳細は odbc_connect() を参照ください。
`catalog`

  カタログ(ODBC 2 の用語では '修飾子')。

`schema`

  スキーマ (ODBC 2 の用語では '所有者')。 このパラメータには以下の検索パターンを使用できます。 `%` はゼロ個以上の文字にマッチし、 `_` はひとつの文字にマッチします。

`procedure`

  プロシージャ。 このパラメータには以下の検索パターンを使用できます。 `%` はゼロ個以上の文字にマッチし、 `_` はひとつの文字にマッチします。

`column`

  カラム。 このパラメータには以下の検索パターンを使用できます。 `%` はゼロ個以上の文字にマッチし、 `_` はひとつの文字にマッチします。

### 戻り値

指定したプロシージャに関して入出力パラメータのリストとその結果を構成するカラムを返します。 ODBC 結果オブジェクトを返します。失敗した場合に `false` を返します。

結果セットのカラムは次のようになります。

- `PROCEDURE_CAT`
- `PROCEDURE_SCHEM`
- `PROCEDURE_NAME`
- `COLUMN_NAME`
- `COLUMN_TYPE`
- `DATA_TYPE`
- `TYPE_NAME`
- `COLUMN_SIZE`
- `BUFFER_LENGTH`
- `DECIMAL_DIGITS`
- `NUM_PREC_RADIX`
- `NULLABLE`
- `REMARKS`
- `COLUMN_DEF`
- `SQL_DATA_TYPE`
- `SQL_DATETIME_SUB`
- `CHAR_OCTET_LENGTH`
- `ORDINAL_POSITION`
- `IS_NULLABLE`

ドライバは追加のカラムを返すことが出来ます。

結果セットは `PROCEDURE_CAT`, `PROCEDURE_SCHEM`, `PROCEDURE_NAME`, `COLUMN_TYPE` でソートされます。

### 変更履歴

バージョン | 説明
--- | ---
8.4.0 | 引数 `odbc` は、Odbc\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、resource を期待していました。
8.4.0 | この関数は Odbc\Result クラスのインスタンスを返すようになりました。 これより前のバージョンでは、resource を返していました。
8.0.0 | これより前のバージョンでは、 この関数は引数をひとつ、または5個指定した場合のみ、呼び出すことが可能でした。

### 例

例1 プロシージャーのカラムを表示する

    <?php
    $conn = odbc_connect($dsn, $user, $pass);
    $columns = odbc_procedurecolumns($conn, 'TutorialDB', 'dbo', 'GetEmployeeSalesYTD;1', '%');
    while (($row = odbc_fetch_array($columns))) {
        print_r($row);
        break; // further rows omitted for brevity
    }
    ?>

上の例の出力は、 たとえば以下のようになります。

    Array
    (
        [PROCEDURE_CAT] => TutorialDB
        [PROCEDURE_SCHEM] => dbo
        [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
        [COLUMN_NAME] => @SalesPerson
        [COLUMN_TYPE] => 1
        [DATA_TYPE] => -9
        [TYPE_NAME] => nvarchar
        [COLUMN_SIZE] => 50
        [BUFFER_LENGTH] => 100
        [DECIMAL_DIGITS] =>
        [NUM_PREC_RADIX] =>
        [NULLABLE] => 1
        [REMARKS] =>
        [COLUMN_DEF] =>
        [SQL_DATA_TYPE] => -9
        [SQL_DATETIME_SUB] =>
        [CHAR_OCTET_LENGTH] => 100
        [ORDINAL_POSITION] => 1
        [IS_NULLABLE] => YES
    )

### 参考

- odbc_columns() - 指定したテーブルにあるカラム名のリストを取得する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open