まず第一に、これは大まかな質問になる可能性が高いことをお詫びしますが、考えられることはすべて試しましたが、気が狂っているように感じます。
Oracle Managed Data Access を使用してストアド プロシージャを呼び出し、プロシージャOracleDataReader
の結果を読み取るために使用しています。同じ正確なパラメーターを使用してストアド プロシージャを実行すると、問題の列がそれらの行の 1 つの値を持つ 25 行が返されます。コードを介して呼び出すと、その 1 つの列がすべて null であることを除いて、まったく同じ結果セットが得られます。それが役立つ場合、列の型は Double 型です。
これをさらにトラブルシューティングする方法はありますか?
プロシージャを呼び出すコード:
Using conn As New OracleConnection(GetConnString())
Using cmd As New OracleCommand()
cmd.Connection = conn
conn.Open()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = procName
cmd.Parameters.Add("@i_qry_id", OracleDbType.Int32, 8).Value = qryId
cmd.Parameters.Add("@i_main_row_var_id", OracleDbType.Int32, 8).Value = mrowvarid
cmd.Parameters.Add("@i_row_var_id", OracleDbType.Int32, 8).Value = rowVarId
cmd.Parameters.Add("@i_sel_type", OracleDbType.Int32, 8).Value = sType
cmd.Parameters.Add("@v_client_id", OracleDbType.NVarchar2, 20).Value = clientId
cmd.Parameters.Add("@v_user_id", OracleDbType.NVarchar2, 100).Value = userId
cmd.Parameters.Add("@i_page_size", OracleDbType.Int32, 8).Value = psize
cmd.Parameters.Add("@i_page_starting_idx", OracleDbType.Int32, 8).Value = psi
cmd.Parameters.Add("@v_sort_type", OracleDbType.NVarchar2, 40).Value = sortType
cmd.Parameters.Add("@v_prefix", OracleDbType.NVarchar2, 10).Value = prefix
cmd.Parameters.Add("@v_text", OracleDbType.NVarchar2, 100).Value = ""
cmd.Parameters.Add("@v_searchField", OracleDbType.NVarchar2, 100).Value = ""
cmd.Parameters.Add("@i_search_selected", OracleDbType.Int32, 8).Value = 0
cmd.Parameters.Add("@i_search_selected_direction", OracleDbType.Int32, 8).Value = 0
cmd.Parameters.Add("@c_selections", OracleDbType.RefCursor).Direction = ParameterDirection.Output
Using odr As OracleDataReader = cmd.ExecuteReader()
While odr.Read()
icd10 = New PDDAIcd10
icd10.RowNum = odr("IdNum")
icd10.ICDNum = FixDBNull(odr("REF_ICD" & icdNumber.ToString() & "_NUM"), StrDBNull.Number)
icd10.ICD10_CODE = FixDBNull(odr("ICD" & icdNumber.ToString() & "_CODE"), StrDBNull.Str)
icd10.ICD10_NAME = FixDBNull(odr("ICD" & icdNumber.ToString() & "_NAME"), StrDBNull.Str)
icd10.CHAPTER_CODE = FixDBNull(odr("CHAPTER_CODE"), StrDBNull.Str)
icd10.GROUP_CODE = FixDBNull(odr("GROUP_CODE"), StrDBNull.Str)
icd10.Selected = IIf(FixDBNull(odr("STATUS"), StrDBNull.Number) > 0, 1, 0)
icd10.ICDQtrCount = FixDBNull(odr("QTR_CNT"), StrDBNull.Number, 0)
lst.Add(icd10)
End While
End Using
End Using
End Using
odr("STATUS")
Toad のように最初のレコードの値が 1 である場合、すべてのレコードで常に DBNull です。
ありがとう