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で日付フィールドに再度変換できませんでした(有効な日付タイプではないと表示されます)。
SQLDeveloperの設定を変更する必要がある可能性があります。
Tools->Preferences->Database->NLS
Excelスプレッドシートのデータ形式に準拠するように、[タイムスタンプ形式]フィールドを変更します。最初のデータベースでの表示ではなく、スプレッドシートでの表示です。たとえば、私の例では、Excelのデータは次のとおりです。
ID DT
1 05/19/2011 10:16 PM
設定の形式をMM/DD/YYYY HH:MIAMに変更しました
プリファレンスを変更する前に報告したのと同じエラーが最初に発生した後、正常にインポートできました。
時間値からより高い精度が必要な場合は、元々Excelにデータをインポートする方法を変更することをお勧めします。
インポートウィザードのプロセス(列定義画面)で、左側のパネルの[ソースデータ列]の下にある日付タイプフィールドを選択し、[形式]テキストフィールドに必要な形式を入力します。たとえば、MM/DD/YYYY、またはそのフィールドのインポートファイルにある日付形式。