0

select ステートメントからテーブルにデータを挿入しようとしています。私は次のようにできることを知っています:

insert into new_logs (idLog, logEntry)
(select idLog, logEntry from old_logs)

しかし、シーケンス値を渡す必要があるときにこのタイプのクエリを実行しようとすると、問題が発生します。

insert into new_logs (idLog, logEntry)
(select LOGSEQ.NEXTVAL, logEntry from old_logs) 

問題は、シーケンスがデュアル テーブルに由来するためだと思いますが、上記のクエリは、それが old_logs テーブルに由来することを暗示しています。

私もこれを試しました、

insert into new_logs (idLog, logEntry)
select next_value for LOGSEQ, logEntry from old_logs

しかし、私はまだそれを機能させることができません。私がやろうとしていることが可能かどうか誰かに教えてもらえますか? 私がやりたいことは 、別のスキーマで選択クエリとシーケンスを使用して挿入ステートメントを実行することだけです。

4

2 に答える 2

1

old_logs に重複する logentry フィールドがある場合、new_logs (idLog, logEntry) (old_logs から LOGSEQ.NEXTVAL、logEntry を選択) にクエリを挿入すると、エラーが発生する可能性があります。

これを試して:-

    insert into new_logs (idLog, logEntry)
select LOGSEQ.NEXTVAL, logEntry from (select distinct logEntry  from old_logs);
于 2013-10-23T11:51:52.980 に答える