同じ表に同じレコードdonotが存在する場合のみ、表にレコードを挿入します。このようなカーソルでそのテーブルの だから、私が保存されている値: - 今表の内部結合から削除してください - ORA-00933:SQLコマンドが正しく終了していません
cursor note_data is
select note_s.nextval, i_user_book_id, i_course_user_id, book_edition_id, book_id, n.role_type_id, page_id, book_page_number,
xcoord, ycoord, width, height, share_across_courses, sysdate, i_user_id, description, share_with_students,text
from note n, course_user cu
where n.course_user_id = cu.course_user_id
and cu.course_id = i_from_course_id;
が、私は内部使用してテーブルからレコードを削除しますが、このように参加 -
delete n
from note n
inner join course_user cu
on n.course_user_id = cu.course_user_id
where cu.course_id = i_from_course_id;
これは削除の実行中声明、私はエラーになっています - 「ORA-00933:SQLコマンドが正常に終了していない」私はテーブルからレコードを削除することができます場合は
、私は、Wi LLこのコードを使用して、同じテーブルにカーソルデータから同じレコードを挿入: -
FOR notecopy IN note_data LOOP
insert into note (note_id, user_book_id, course_user_id, book_edition_id, book_id, role_type_id, page_id, book_page_number,
xcoord, ycoord, width, height, share_across_courses, date_created, date_updated, created_by, updated_by, description, share_with_students,text)
values (note_s.nextval, notecopy.i_user_book_id, notecopy.i_course_user_id, notecopy.book_edition_id, notecopy.book_id, notecopy.role_type_id, notecopy.page_id, notecopy.book_page_number,
notecopy.xcoord, notecopy.ycoord, notecopy.width, notecopy.height, notecopy.share_across_courses, sysdate, sysdate, notecopy.i_user_id, notecopy.i_user_id, notecopy.description, notecopy.share_with_students, notecopy.text);
END LOOP;
私の目標は、同じレコードが同じテーブルに存在scroll down toパソコンへ転送する場合にのみ、テーブルにレコードを挿入することです。
delete文のエラーを処理する方法を指導し、目標を達成するための正しいアプローチに従うことをお勧めします。そうでない場合は、代わりの方法を提案してください。
おかげ
代わりにMERGEを使用してみませんか?あなたのDB接続がダウンした場合、よりクリーンで安全です。 – PyNoob
@pyNoobは言ったように、このためにMERGEステートメントを使いたいとします。しかしあなたの質問については、あなたは 'DELETE'ステートメントで結合を行うことはできません。代わりに、WHERE句の中に副問合せとして結合を入れることができます。また、なぜノートnから削除するのですか?それを「ノートnから削除する」に変更してください。 – ruudvan