SQL Serverのサポート範囲について説明します。
同一サーバ内の「既定のインスタンス」および「名前付きインスタンス」を使用できます。
以下のSQL Serverの機能は使用できません。
マスターデータ サービス
ユーザ定義のテーブル以外はジャーナル取得の対象に指定できません。
TJNLにおけるSQL Serverのデータ型のサポート可否を"表13.1 TJNLにおけるSQL Serverのデータ型のサポート可否"に示します。サポートする一部のデータ型については指定可能な長さ、精度、位取りに制限があります。詳細は"B.5.3 取得定義構文(SQL Server連携)”の"表B.40 長さ、精度、および位取りの最小値、最大値、および省略値"を参照してください。
データ型 | 説明 | サポート可否 | |
---|---|---|---|
真数 | bigint | 2進整数(8バイト) | × |
int | 2進整数(4バイト) | ○ | |
smallint | 2進整数(2バイト) | ○ | |
tinyint | 2進整数(1バイト) | × | |
decimal[(p,q)] | 内部10進数 | ○ | |
numeric[(p,q)] | 外部10進数 | ○ | |
bit | ビット列 | × | |
money | 金銭や通貨の値を表す金額データ | × | |
smallmoney | 金銭や通貨の値を表す金額データ | × | |
概数 | float[(n)] | 浮動小数点数値データ | ○ |
real | 浮動小数点数値データ | ○ | |
日付と時刻 | date | 日付 | ○ |
datetime | 24時間形式の時刻(注1) | △ | |
datetime2[(n)] | 24時間形式の時刻(注1) | △ | |
smalldatetime | 24時間形式の時刻と組み合わせた日付 | ○ | |
time[(n)] | 1日の時刻(注1) | △ | |
datetimeoffset[(n)] | タイムゾーンを認識する24時間形式の時刻と組み合わせた日付 | × | |
文字列 | char[(n)] | 固定長文字列 | ○ |
varchar[(n|max)] | 可変長文字列(注2)(注5) | △ | |
text | 可変長文字列 | × | |
Unicode文字列 | nchar[(n)] | 固定長Unicode文字列(注3)(注4) | △ |
nvarchar[(n|max)] | 可変長Unicode文字列(注2) (注3)(注4)(注5) | △ | |
ntext | 可変長Unicode文字列 | × | |
バイナリ文字列 | binary[(n)] | 固定長バイナリデータ | ○ |
varbinary[(n|max)] | 可変長バイナリデータ(注2) | △ | |
image | 可変長バイナリデータ | × | |
その他データ型 | geography | GPSの緯度経度座標などの楕円体(球体地球)データ | × |
geometry | ユークリッド(平面)座標系のデータ | × | |
hierarchyid | 可変長のシステムデータ | × | |
cursor | カーソルへの参照を格納している変数やストアド プロシージャのOUTPUTパラメータを表すデータ | × | |
rowversion | 一意の2進数 | × | |
uniqueidentifier | 16バイトのGUID | × | |
sql_variant | SQL Serverでサポートしている各種データ型の値 | × | |
xml | XMLデータ | × | |
table | 後で処理するために結果セットを格納するときに使用する特別なデータ | × | |
ユーザ定義型 | ユーザが定義するデータ型 | × |
注1)秒未満の値は切り捨てます。
注2)max系のデータは取得可能なジャーナルのサイズに制限があります。
注3)JIS2004の字形追加文字は2文字分の定義が必要です。
注4)日本語文字(全角文字)だけを扱います。JIS X 201の範囲のデータは扱えません。
注5)max系のデータは取得定義の列編集情報を指定する必要があります。列編集情報については、"列編集情報"を参照してください。
○:サポート
△:条件つきサポート
(長さ、精度、および位取りに指定可能な範囲については"表B.40 長さ、精度、および位取りの最小値、最大値、および省略値"を参照してください。)
×:サポート外
numeric型とdecimal型の変換
SQL Serverではnumeric型とdecimal型は同じ型ですが、TJNLではnumeric型とdecimal型を区別して差分抽出します。
このため、差分抽出データ型に合わせてデータ型の変換が必要な場合は、TJNLが提供するSQLスクリプトとバッチファイルのひな型を任意のフォルダに複写(例 C:\temp)し、環境にあわせて修正してから作業を行います。
SQLスクリプト -------------------------------------------------------------------------------------- インストールフォルダ\TJNL\sample\sqlserver\TJNLCONVNUMDEC.sql --------------------------------------------------------------------------------------
バッチファイル -------------------------------------------------------------------------------------- インストールフォルダ\TJNL\sample\sqlserver\TJNLCONVNUMDEC.bat --------------------------------------------------------------------------------------
例として使用する"表13.2 データベースの構成"を以下に示します。
資源 | 名前 |
---|---|
コンピュータ名 | SERVER1 |
インスタンス名 | DBINSTANCE |
データベース名 | 販促 |
スキーマ名 | 関東地区 |
テーブル名 | 家電 |
対象項目名 | 販売店コード、製品番号 |
固定長の有効桁数 | 10 |
小数点以下桁数 | 0 |
環境に合わせてひな型を修正します。修正に必要な情報はSQL Serverの管理者に確認してください。
ひな型の修正内容について、以下に説明します。
SQLスクリプトに設定されているデータベース名を修正します。
以下に修正の入力例を示します。斜体の部分が修正箇所です。
例.データベース名の修正
--------------------------------------------------------------------------------------
USE 販促;
--------------------------------------------------------------------------------------
SQLスクリプトにデータ型を変換するSQL文を記述します。
以下にSQLスクリプトに記述するSQL文の例を示します。斜体の部分が修正箇所です。
例.データ型変換(numeric型からdecimal型へ変換する場合)
-------------------------------------------------------------------------------------- ALTER TABLE 関東地区.家電 ALTER COLUMN 販売店コード decimal(10,0) --------------------------------------------------------------------------------------
例.データ型変換(decimal型からnumeric型へ変換する場合)
-------------------------------------------------------------------------------------- ALTER TABLE 関東地区.家電 ALTER COLUMN 製品番号 numeric(10,0) --------------------------------------------------------------------------------------
バッチファイルに設定されているインスタンス名を修正します。
以下に修正の入力例を示します。斜体の部分が修正箇所です。
例.インスタンス名の修正(名前付きインスタンスの場合)
--------------------------------------------------------------------------------------
INSTANCE_NAME=SERVER1\DBINSTANCE
--------------------------------------------------------------------------------------
例.インスタンス名の修正(既定のインスタンスの場合)
--------------------------------------------------------------------------------------
INSTANCE_NAME=SERVER1
--------------------------------------------------------------------------------------
バッチファイルを実行して、データ型を変換します。
修正したバッチファイルとSQLスクリプトを同じフォルダに格納しておきます。
以下に実行例を示します。
例.バッチファイルの実行例
-------------------------------------------------------------------------------------- TJNLCONVNUMDEC.bat --------------------------------------------------------------------------------------
名前の制限について説明します。
データベースに作成するトリガーについては、"TJNLTRG_"で始まる名前を使用しないでください。
TJNLでは以下のODBCデータソースを使用しています。
他のアプリケーションからこのODBCデータソースは使用しないでください。
tjnlTRMシステム名 |