web-dev-qa-db-ja.com

OracleSQLDeveloperでのExcelの日付フィールドのインポートの問題

Excelファイル(Oracle 10Gデータベースからインポートされたデータを含む)があります。フィールドの1つは、28-JAN-11 03.25.11.000000000 PM(日付フィールドはOracle)のような値を持つDateFiledです。データベースのタイムスタンプ(6))

そのExcelファイルを別のOracle10 Gデータベース(別のデータベース/アプリケーション用)にインポートしようとすると、データフィールドがOracle 10Gによって認識されないため、エラーが発生します->インポートはOracle SQL Developerによって実行されます(テーブル(フィールド)のデータタイプはTIMESTAMP(6)です)

そのフィールドをインポートするにはどうすればよいですか?とりあえず、TIMESTAMPをVARCHAR2に変更して機能させましたが、C#CODEで日付フィールドに再度変換できませんでした(有効な日付タイプではないと表示されます)。

12
msbyuva

SQLDeveloperの設定を変更する必要がある可能性があります。

Tools->Preferences->Database->NLS

Excelスプレッドシートのデータ形式に準拠するように、[タイムスタンプ形式]フィールドを変更します。最初のデータベースでの表示ではなく、スプレッドシートでの表示です。たとえば、私の例では、Excelのデータは次のとおりです。

ID  DT
1   05/19/2011 10:16 PM

設定の形式をMM/DD/YYYY HH:MIAMに変更しました

プリファレンスを変更する前に報告したのと同じエラーが最初に発生した後、正常にインポートできました。

時間値からより高い精度が必要な場合は、元々Excelにデータをインポートする方法を変更することをお勧めします。

11
DCookie

インポートウィザードのプロセス(列定義画面)で、左側のパネルの[ソースデータ列]の下にある日付タイプフィールドを選択し、[形式]テキストフィールドに必要な形式を入力します。たとえば、MM/DD/YYYY、またはそのフィールドのインポートファイルにある日付形式。

6