0

Oracle 10g で TIMESTAMP(9) を使用してテーブルを作成しました。次に、その列に CURRENT_TIMESTAMP 値を挿入しようとしましたが、残念ながらエラーメッセージが表示されました: value too large for column: (actual: 35, maximum: 25)

次に、このクエリを試しました:

デュアルから長さ (current_timestamp) を選択します。

そしてカウントは35でした。

しかし、Oracle では、テーブル構造の作成中に TIMESTAMP(35) を定義することはできません。

このような場合、テーブルの作成中にタイムスタンプ列を定義する方法と、タイムスタンプ列に現在のタイムスタンプ値を挿入する方法は?

4

1 に答える 1

1

テーブル定義と、挿入に使用している正確な SQL ステートメントを投稿できますCURRENT_TIMESTAMPか? 実際に挿入しているTIMESTAMP場合、そのエラーは発生しないはずです

SQL> create table foo ( col1 timestamp(9) );

Table created.

SQL> insert into foo values( current_timestamp );

1 row created.

length(current_timestamp)タイムスタンプを暗黙的に文字列に変換し、その文字列の長さを決定しています。あなたが得ているエラーは、データをテーブルに挿入しようとしているときに同様の変換が行われていることを暗示しているようです。

于 2012-07-02T15:28:28.640 に答える