PL / SQL数据库值未正确反映到SSIS脚本

时间:2019-07-18 06:40:26

标签: vba ssis plsqldeveloper

我在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值。它不应该这样工作。

1 个答案:

答案 0 :(得分:0)

现在已解决。刚刚发现,PL / SQL中的更新语句需要使用以下代码来提交:

COMMIT;

我是PL / SQL的新手,所以我不知道PL / SQL会以这种方式像TSQL那样自动提交查询更新。

希望这对PL / SQL新手有所帮助。