dbType= データコネクタオプション
指定された列の代替データ型を指定します。
| 該当要素: | CASLIBステートメント |
|---|---|
| PROC CASUTIL: SAVEステートメント | |
| デフォルト: | なし |
| 制限事項: | このオプションには有効な列名を指定する必要があります。データソースに書き込むテーブルの一部ではない列名を指定すると、ログにエラーが書き込まれます。 |
| 操作: | Microsoft SQL Server: connectionTypeForCreate=データコネクタオプションを使用して、データソースに指定する有効なデータ型のリストを決定します。 |
| データソース: | Greenplum、Impala、JDBC、Microsoft SQL Server、MongoDB、MySQL、Oracle、PostgreSQL、Salesforce、SAP HANA、SingleStore標準、Snowflake、Yellowbrick |
| 参照項目: | connectionTypeForCreate=データコネクタオプション |
構文
必須引数
column=data-type
データソースのテーブルに書き込むときに使用する1つ以上の列名と対応するデータ型を指定します。複数の列とデータ型のペアはスペースで区切ります。
詳細
このオプションの使用に注意する
dbType=データコネクタオプションを使用する場合は注意してください。デフォルトのデータ型変換のかわりに別のデータ型を使用すると、数値の精度が失われたり、データ変換エラーが発生したりする可能性があります。ログを注意深く確認して、すべてのデータが外部データソースに正常に書き込まれたことを確認してください。
データを外部テーブルに保存するときに、dbType=オプションを使用して別の数値を指定する場合は注意してください。数値変数が通常はBIGINTデータ型に保存される場合に、それをINTEGER型に保存すると、非常に大きな値の精度が危険にさらされます。詳細については、データコネクタの"整数データ型と数値精度"に関する情報を参照してください。
また、デフォルトのデータ変換とは異なるデータ型変換を選択すると、選択したデータ型の許容範囲外の値が含まれる可能性があります。たとえば、2000文字の文字列を含む変数があり、その変数をSMALLINTデータ型に保存するとします。行を外部テーブルに書き込むと、失敗してデータ変換エラーが発生する可能性があります。
さらに、データ変換の失敗の処理方法は、データソースによって異なります。一部のデータソースでは、無効な値が検出されると、更新されたすべての行が外部テーブルから削除されます(ロールバック)。他のデータソースは、無効な値が検出されるまで行を挿入し、その時点で外部テーブルの更新を停止します。データがまったくないか、データのサブセットが外部テーブルに書き込まれるため、どちらの場合も望ましくありません。
使用可能なデータ型の概要
データソースで使用可能なデータ型は、PROC FEDSQLで使用されるデータ型に基づいています。次のリンクを使用して、データソースで使用可能なデータ型を確認してください。
|
データソース |
FedSQLデータ型 |
|---|---|
|
Greenplum | |
|
Impala | |
|
JDBC | |
|
Microsoft SQL Server | |
|
MongoDB |
サポート:1
|
|
MySQL | |
|
Oracle | |
|
PostgreSQL | |
|
Salesforce | |
|
SAP HANA | |
|
SingleStore標準 | |
|
Snowflake | |
|
Yellowbrick | |
| 1 dbType=でサポートされるデータ型のリストは、すべてのFedSQLデータ型のサブセットです。 | |
Microsoft SQL Serverの追加のデータ型サポート
大きな文字値のサポートなど、Microsoft SQL Serverでサポートされている追加のデータ型があります。Microsoft SQL Serverのサポートには、関連するconnectionTypeForCreate=データコネクタオプションが含まれます。connectionTypeForCreate="native"を設定すると、Microsoft SQL Serverでサポートされている任意のデータ型を指定できます。ただし、追加の計算のためにデータをロードできるように、SASに読み戻せるデータ型を指定することをお勧めします。詳細については、connectionTypeForCreate= データコネクタオプションを参照してください。
例
この例では、caslib MycaslibにCars_toyotaというテーブルがあります。テーブルをPostgreSQLデータソースに保存し直しますが、MPG_City列とMPG_Highway列はDOUBLESではなくSMALLINT値として保存するとします。ファイルをPostgreSQLに保存するときに、dbType=オプションを使用して、これらの列のデフォルトのデータ型を変更します。CONTENTSステートメントからの出力を使用して、データ型が正しく割り当てられたことを確認します。
proc casutil incaslib=mycaslib;
save casdata='cars_toyota' outcasib='mycaslib'
casout='cars_subset'
options=(dbtype="MPG_City='SMALLINT' MPG_Highway='SMALLINT'");
contents casdata='cars_subset';
quit;