[Oracle] [VB.NET] ODP.NET で Merge を行うと AccessViolationException が発生する

2014年12月22日

 ODP.NET を使用して MERGE 文を実行したところ、AccessViolationException が発生しました。
 原因は不明。また、どんな環境でも再現するかどうかは不明ですが、その環境では再現性があったので、念のためメモ。

 以下がそのコード。

'参照設定 Oracle.DataAccess, Version=4.112.3.0, Culture=neutral
Imports Oracle.DataAccess.Client

Module Module1

    Sub Main()
        Dim conn = New OracleConnection("User Id=scott; Password=tiger; Data Source=????")
        conn.Open()
        Dim tr = conn.BeginTransaction

        Dim cmd = New OracleCommand(
                    "merge into EMP " &
                    "     using DUAL " &
                    "        on (EMP.EMPNO = :empno) " &
                    "  when matched then " &
                    "      update set ENAME    = :ename " &
                    "                 JOB      = :job " &
                    "                 MGR      = :mgr " &
                    "                 HIREDATE = :hiredate " &
                    "                 SAL      = :sal " &
                    "                 COMM     = :comm " &
                    "                 DEPTNO   = :deptno " &
                    "  when not matched then " &
                    "      insert ( EMPNO,  ENAME,  JOB,  MGR,  HIREDATE,  SAL,  COMM,  DEPTNO) " &
                    "      values (:empno, :ename, :job, :mgr, :hiredate, :sal, :comm, :deptno) ",
                conn)

        cmd.Parameters.Add("empno", 9999)
        cmd.Parameters.Add("ename", "BBBB")
        cmd.Parameters.Add("job", "CLERK")
        cmd.Parameters.Add("mgr", "")
        cmd.Parameters.Add("hiredate", Now)
        cmd.Parameters.Add("sal", 100)
        cmd.Parameters.Add("comm", "CCCC")
        cmd.Parameters.Add("deptno", 10)

        Dim q = cmd.ExecuteNonQuery()

        tr.Commit()

        conn.Clone()
    End Sub

End Module

 結果






カテゴリー: Oracle, Program, VB.NET, データベース

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org