0

水曜日にオフラインになる古いAS/400システムがあり、バックアップの目的ですべてのデータをSQL Serverデータベースにインポートしようとしていますが、問題が発生しています。

SQL Serverには、IBM System i Access for Windowsがインストールされており、DB2OLEDB(Microsoft OLE DB Provider for DB2)もインストールされています。SQL Serverのインポートとエクスポートウィザードでこれらのプロバイダーの両方を使用してみましたが、接続を正常に作成して探しているデータを見つけましたが、どちらのプロバイダーもデータ変換を処理できないようです。DB2OLEDBは、DECIMALベースのフィールドを自動的に検索しますが、それだけです。フィールドの大部分であるCHARACTERNOTNULLフィールドを自動的に検索して変換することはできません。インポートしようとすると、次のエラーが発生します。

ソースおよび宛先データの列情報を取得できなかったか、ソース列のデータ型が宛先プロバイダーで使用可能なデータ型に正しくマップされていませんでした。

最も一般的な列エラー:

  • 列"[column]":ソースデータ型"CHARACTER"がデータ型マッピングファイルに見つかりませんでした。

AS / 400には何千ものテーブルがあるため、これを手動でスクリプト化することは絶対に選択肢ではありません。

もっと簡単な方法はありますか?どこかに足りない設定はありますか?

4

3 に答える 3

0

ODBCのas/400のシステムDSNの[変換]の[詳細設定]タブで[サポートされていない文字を許可する]を設定してみてください。

于 2012-07-30T14:26:11.133 に答える
0

あなたの質問を読んで問題がテーブルの作成にあるのかどうかわかりません。これが当てはまる場合、つまり、データベーステーブルを準備するためにT-SQL言語でDDLを生成することが問題である場合、解決策はSAP SybasePowerDesignerなどのツールを使用してリバースエンジニアリングを実行することです。ニーズに合うかどうかをテストするためのSybaseの試用版があります。

Sybase PowerDeignerを使用して、AS/400からSQLServerにDDLを作成する手順は次のとおりです。

  • sybaseからAS/400への接続を準備します。
  • AS/400データベースから新しいPDMをロードします。
  • PDMからCDMを生成します。
  • CDMからSQLServerのPDMを生成します。
  • PDMからデータベースのt-sqlスクリプトを生成します。
  • SQLサーバーでt-sqlスクリプトを実行します。

私の意見では、PowerDesignerの学習曲線は難しくありませんが、あなたの問題はすべてのエンジニアリングロジックをカバーしています。

この時点で、あるデータベースから別のデータベースにデータをコピーすることができます。

于 2012-07-30T14:33:55.650 に答える
0

たくさんの調査をした後、私は必要な方法で動作するものを何も得ることができませんでした。結局、iAccessツールを使用してすべてをExcelファイルにバックアップすることになりました。永遠にかかったが、それは終わった。

助けてくれてありがとう。

于 2012-08-01T14:50:30.033 に答える