odbc_procedurecolumns

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

odbc_procedurecolumnsRetrieve information about parameters to procedures

Description

odbc_procedurecolumns(
    resource $odbc,
    ?string $catalog = null,
    ?string $schema = null,
    ?string $procedure = null,
    ?string $column = null
): resource|false

Retrieve information about parameters to procedures.

Parameters

odbc

The ODBC connection identifier, see odbc_connect() for details.

catalog

The catalog ('qualifier' in ODBC 2 parlance).

schema

The schema ('owner' in ODBC 2 parlance). This parameter accepts the following search patterns: % to match zero or more characters, and _ to match a single character.

procedure

The proc. This parameter accepts the following search patterns: % to match zero or more characters, and _ to match a single character.

column

The column. This parameter accepts the following search patterns: % to match zero or more characters, and _ to match a single character.

Return Values

Returns the list of input and output parameters, as well as the columns that make up the result set for the specified procedures. Returns an ODBC result identifier or false on failure.

The result set has the following columns:

  • 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
Drivers can report additional columns.

The result set is ordered by PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME and COLUMN_TYPE.

Changelog

Version Description
8.0.0 Prior to this version, the function could only be called with either one or five arguments.

Examples

Example #1 List Columns of a stored Procedure

<?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
}
?>

The above example will output something similar to:

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
)

See Also