タグ

2016年1月8日のブックマーク (2件)

  • ORA-01779 BYPASS_UJVC - shodai memo

    結合ビュー(Join View)に対してUPDATEを実施すると、2つの表の主キーが一致しておらず内容的にも重複がある可能性がある(対象表の同一行を複数回更新する)場合に発生する。 ORA-01779: 複数表にマップする列を変更できません。(Oracle8iの場合) キー保存されていない表にマップする列は変更できません(Oracle9iの場合) 原因: キー保存されていない表にマップする結合ビューの列を挿入または更新しようとしました。 処置: 基礎となる実表を直接変更してください。 結合キーが一意でない結合ビュー(Join View)に対して UPDATEを実施したい場合、Oracle8i以降の環境では BYPASS_UJVCというヒントを付けて実行するとORA-1779エラーがしない。 実際にデータ上重複することなくても、オラクルがそのように判断する事があるので、これを回避するためのも

    ORA-01779 BYPASS_UJVC - shodai memo
  • MERGE - オラクル・Oracle SQL 入門

    SQL 入門 (DMLの基形式:MERGE) 行の挿入と更新を 1ステートメントで行なう ( MERGE = UPDATE + INSERT ) 行の挿入と更新を1ステートメントで行なう。他の DBMS では REPLACE の場合もある。 UPDATE と INSERT をもじって、UPSERT とも呼ばれる。(モデルファンクション内でも UPSERT のキーワードがある) テーブルからテーブルにデータをエントリー(または更新)する 人事システムから最新のマスタ (USER_MASTER_IMPORT) を取得してきた。(と仮定する) これを USER_MASTER に最新として反映させる。新規レコードには、名前に'(新人)'を付与する。 MERGE INTO USER_MASTER USING USER_MASTER_IMPORT ON ( USER_MASTER.USER_ID =