次の方法で共有


getProcedureColumns メソッド (SQLServerDatabaseMetaData)

JDBC ドライバーのダウンロード

ストアド プロシージャのパラメーターと結果列の記述を取得します。

構文

  
public java.sql.ResultSet getProcedureColumns(java.lang.String sCatalog,  
                                              java.lang.String sSchema,  
                                              java.lang.String proc,  
                                              java.lang.String col)  

パラメーター

sCatalog

カタログ名を含む文字列です。 このパラメーターに null を指定すると、カタログ名を使用する必要はありません。

sSchema

スキーマ名のパターンを含む文字列です。 このパラメーターに null を指定すると、スキーマ名を使用する必要はありません。

proc

プロシージャ名のパターンを含む文字列です。

col

列名のパターンを含む文字列です。 このパラメーターに null を指定すると、各列の行が返されます。

戻り値

SQLServerResultSet オブジェクトです。

例外

SQLServerException

解説

この getProcedureColumns メソッドは、java.sql.DatabaseMetaData インターフェイスの getProcedureColumns メソッドで指定されています。

getProcedureColumns メソッドによって返される結果セットには、次の情報が含まれます。

名前 説明
PROCEDURE_CAT String 指定したストアド プロシージャが存在するデータベースの名前です。
PROCEDURE_SCHEM String ストアド プロシージャのスキーマです。
PROCEDURE_NAME String ストアド プロシージャの名前。
COLUMN_NAME String 列の名前。
COLUMN_TYPE short 列の型。 次のいずれかの値を指定できます。

procedureColumnUnknown (0)

procedureColumnIn (1)

procedureColumnInOut (2)

procedureColumnOut (4)

procedureColumnReturn (5)

procedureColumnResult (3)
DATA_TYPE smallint java.sql.Types の SQL データ型です。
TYPE_NAME String データ型の名前です。
PRECISION int 有効桁数の合計です。
LENGTH int データの長さです (バイト)。
SCALE short 小数点以下の桁数です。
RADIX short 数値型の基数です。
NULLABLE short 列に null 値を含めることができるかどうかを示します。 次のいずれかの値を指定できます。

procedureNoNulls (0)

procedureNullable (1)

procedureNullableUnknown (2)
REMARKS String プロシージャ列の記述です。



注: SQL Server は、この列の値を返しません。
COLUMN_DEF String 列の既定値です。
SQL_DATA_TYPE smallint この列は、datetime データ型と ISO interval データ型以外は、DATA_TYPE 列と同じです。
SQL_DATETIME_SUB smallint SQL_DATA_TYPE の値が SQL_DATETIME または SQL_INTERVAL の場合は、datetime ISO interval サブコードになります。 datetime および ISO interval 以外のデータ型の場合、この列は NULL です。
CHAR_OCTET_LENGTH int 列の最大バイト数です。
ORDINAL_POSITION int テーブル内の列のインデックスです。
IS_NULLABLE String 列で null 値が許容されるかどうかを示します。
SS_TYPE_CATALOG_NAME String UDT (ユーザー定義型) を含むカタログの名前です。
SS_TYPE_SCHEMA_NAME String UDT (ユーザー定義型) を含むスキーマの名前です。
SS_UDT_CATALOG_NAME String 完全修飾名の UDT (ユーザー定義型) です。
SS_UDT_SCHEMA_NAME String XML スキーマ コレクション名が定義されているカタログの名前です。 カタログ名が見つからない場合は、この変数に空文字列が含まれます。
SS_UDT_ASSEMBLY_TYPE_NAME String XML スキーマ コレクション名が定義されているスキーマの名前です。 スキーマ名が見つからない場合は、空文字列です。
SS_XML_SCHEMACOLLECTION_CATALOG_NAME String XML スキーマ コレクションの名前です。 名前が見つからない場合は、空文字列です。
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME String UDT (ユーザー定義型) を含むカタログの名前です。
SS_XML_SCHEMACOLLECTION_NAME String UDT (ユーザー定義型) を含むスキーマの名前です。
SS_DATA_TYPE tinyint 拡張ストアド プロシージャによって使用される SQL Server データ型です。



注: SQL Server によって返されるデータ型の詳細については、SQL Server オンライン ブックの「データ型 (Transact-SQL)」を参照してください。

Note

getProcedureColumns メソッドによって返されるデータの詳細については、SQL Server オンライン ブックの「sp_sproc_columns (Transact-SQL)」を参照してください。

次の例では、getProcedureColumns メソッドを使って、AdventureWorks2022 サンプル データベースの uspGetBillOfMaterials ストアド プロシージャに関する情報を取得する方法を示します。

public static void executeGetProcedureColumns(Connection con) {  
   try {  
      DatabaseMetaData dbmd = con.getMetaData();  
      ResultSet rs = dbmd.getProcedureColumns(null, null, "uspGetBillOfMaterials", null);  
      ResultSetMetaData rsmd = rs.getMetaData();  
  
      // Display the result set data.  
      int cols = rsmd.getColumnCount();  
      while(rs.next()) {  
         for (int i = 1; i <= cols; i++) {  
            System.out.println(rs.getString(i));  
         }  
      }  
      rs.close();  
   }   
  
   catch (Exception e) {  
      e.printStackTrace();  
   }  
}  

参照

SQLServerDatabaseMetaData のメンバー
SQLServerDatabaseMetaData クラス