2016-03-31 10 views
0

私は、次のようないくつかの他の列と一緒に別のテーブルに、列に移動する必要がある選択クエリの値を挿入しようとしています。 列のデータ型。oracleの選択クエリからテーブルに挿入

col1の番号、COL2番号、COL3-varchar型、COL4-日、COL5-CHAR(1)、COL6-CHAR(1)

insert into table1 (col1, col2, col3, col4, col5, col6, col7) 
select (uid, 22, 'HTML', sysdate,'null','null','N') 
from (select query here) 

が、私は上記のクエリを実行すると、私は取得していますエラー - ORA-01858:上記の問合せの2行目付近に数字が表示されていた場合、数字以外の文字が見つかりました。誰でもこのことが間違っているか、それを行う良い方法があるかどうかを教えてください。ありがとうございました!

+3

... col5?このエラーは、日付形式のモデルを使用して日付に変換することと関係しています。 – mathguy

+2

あなたの質問を編集して、 'table1'の' CREATE TABLE'文を追加してください。無関係だが、 'select'部分の列リストのまわりのかっこはまったく役に立たない。 –

+2

おそらく 'col1'は日付です。あなたが表示していないサブクエリは暗黙的に日付に変換できない文字列を返しています。あなたはあなたが本当にやっていることを伝えるのは難しいですが、変更して隠してしまいました。現時点でカッコが多すぎるため、ORA-00907が表示されている原因となります。あなたが実際のクエリとテーブル定義を示した方がずっと簡単です。 –

答えて

3

'null'は文字列です。おそらくcol5またはcol6のいずれかが数値列であり、その文字列を数値にキャストできません。また、インサートの投影からそれらを削除

insert into table1 (col1, col2, col3, col4, col5, col6, col7) 
select (uid, 22, 'HTML', sysdate, null, null,'N') 
from (select query here) 

:これらの列には値を挿入しないように

は、このようなnullキーワードを使用し、COL1のデータ型が何であるか

insert into table1 (col1, col2, col3, col4, col7) 
select (uid, 22, 'HTML', sysdate, 'N') 
from (select query here) 
関連する問題