我在PL / SQL Developer中有一个表,该表正在VB2008中编写的SSIS脚本中使用。 每当我在表上进行更新时,在我的脚本上检索这些值并不断显示获取的初始值时,它都无法正确反映。除非我重新启动计算机,否则计算机将开始获取更新的值。但是,如果我再次在表上进行更新,它将不会显示更新后的值。
我删除了一条记录,但是我的脚本仍然能够获取已删除的记录。
Dim conn As New OracleConnection
conn.ConnectionString = "Data Source=blah blah blah.."
If conn.State = ConnectionState.Open Then
conn.Close()
conn.Open()
End If
conn.Open()
Dim Cmd As New OracleCommand
Cmd = conn.CreateCommand()
Cmd.CommandText = "myPLSQLFunctionInsidePackage"
Cmd.CommandType = CommandType.StoredProcedure
Cmd.Parameters.Add(New OracleParameter("output", OracleType.VarChar, 100)).Direction = ParameterDirection.ReturnValue
Cmd.Parameters.Add(New OracleParameter("mydatatype", OracleType.VarChar)).Direction = ParameterDirection.Input
Cmd.Parameters("mydatatype").Value = vMyDataType
Cmd.Parameters.Add(New OracleParameter("mydatacode", OracleType.VarChar)).Direction = ParameterDirection.Input
Cmd.Parameters("mydatacode").Value = vMyDataCode
Dim rowCnt As Integer
rowCnt = Cmd.ExecuteNonQuery()
If rowCnt > 0 Then
If Cmd.Parameters("output").Value Is DBNull.Value Then
dataFlag = ""
Else
dataFlag = Cmd.Parameters("output").Value
End If
End If
conn.Close()
这行代码是处理过程结果的代码:
dataFlag = Cmd.Parameters("output").Value
我的初始值为“ WEDNESDAY”,然后我想将时间表更改为“ FRIDAY”。因此,我确实需要更新数据库。我的SSIS卡住了WEDNESDAY值,如果重新启动计算机,我将得到FRIDAY值。它不应该这样工作。
答案 0 :(得分:0)
现在已解决。刚刚发现,PL / SQL中的更新语句需要使用以下代码来提交:
COMMIT;
我是PL / SQL的新手,所以我不知道PL / SQL会以这种方式像TSQL那样自动提交查询更新。
希望这对PL / SQL新手有所帮助。