カラム
データベースで使用可能なカラムのメタデータにアクセスするには、Columns スキーマコレクションを取得します。ViewColumns スキーマコレクションを取得することで、ビューのカラムメタデータにアクセスすることもできます。
あるいは、結果セット からメタデータを取得します。Columns およびViewColumns スキーマコレクションと同じカラムが、結果セットのメタデータに返されます。以下を参照してください。
カラムメタデータの取得
RedshiftConnection クラスのGetSchema メソッドを呼び出して、Columns またはViewColumns スキーマコレクションを取得します。以下の例に示すように、結果をテーブル名で制限できます。
C#
string connectionString = "User=admin;Password=admin;Database=dev;Server=examplecluster.my.us-west-2.redshift.amazonaws.com;Port=5439;"; using (RedshiftConnection conn = new RedshiftConnection(connectionString)) { conn.Open(); DataTable databaseSchema = conn.GetSchema("Columns", new string[] {"sales_db","public","Orders"}); foreach (DataRow column in databaseSchema.Rows) { Console.WriteLine(column["COLUMN_NAME"]); Console.WriteLine(column["IS_KEY"]); Console.WriteLine(column["DATA_TYPE"]); } }
VB.NET
Dim connectionString As String = "User=admin;Password=admin;Database=dev;Server=examplecluster.my.us-west-2.redshift.amazonaws.com;Port=5439;" Using conn As New RedshiftConnection(connectionString) conn.Open() Dim databaseSchema As DataTable = conn.GetSchema("Columns", New String() {"sales_db","public","Orders"}) For Each column As DataRow In databaseSchema.Rows Console.WriteLine(column("COLUMN_NAME")) Console.WriteLine(column("IS_KEY")) Console.WriteLine(column("DATA_TYPE")) Next End Using
返されたカラム
クエリから返されたColumns とViewColumns スキーマコレクションおよびDataTables には、以下のカラムが含まれます。
カラム名 | データ型 | 説明 |
TABLE_CATALOG | System.String | テーブルを含むデータベース。 |
TABLE_SCHEMA | System.String | テーブルを含むスキーマ。 |
TABLE_NAME | System.String | カラムを含むテーブル。 |
COLUMN_NAME | System.String | カラム名。 |
ORDINAL_POSITION | System.Int32 | カラムのシーケンス番号。 |
COLUMN_DEFAULT | System.String | カラムのデフォルト値。 |
IS_NULLABLE | System.String | カラムがNull 値を許容するかどうか。値はYES またはNO。 |
DATA_TYPE | System.String | カラムのデータ型。 |
CHARACTER_MAXIMUM_LENGTH | System.Int32 | 文字データを持つカラムの場合は、カラムの最大長(文字数単位)。 |
NUMERIC_PRECISION | System.Int32 | 数値データの場合は、許可される最大桁数。 |
NUMERIC_SCALE | System.Int32 | カラムの最大桁数または数値データの小数点以下の桁数。 |
DATETIME_PRECISION | System.Int32 | パラメータ型がdatetime またはsmalldatetime の場合は、小数秒単位の精度を返します。それ以外の場合はNULL を返します |
CHARACTER_SET_NAME | System.String | 文字データを含むカラムの文字セットの名前。 |
COLUMN_COMMENT | System.String | カラムの簡単な説明。 |
PROVIDER_TYPE | System.Type | 実行している言語に応じて適切なデータ型を示します。 |