ORA-01008 Не все переменные связаны (оператор слияния)
Я хотел бы знать, что я делаю не так со следующим кодом. Я пытаюсь передать oledbparameters в оператор слияния.
cmd.CommandText = "MERGE INTO MAPPINGS " +
"USING DUAL " +
"ON ( MAP_KEY = ? AND MAP_FROM = ? ) " +
"WHEN MATCHED THEN UPDATE SET MAP_TO = ? " +
"WHEN NOT MATCHED THEN INSERT (MAP_ID, MAP_KEY, MAP_FROM, MAP_TO) " +
"VALUES (seq_mappings.nextval,UPPER(?),LPAD(?,10,'0'),UPPER(?)) ";
cmd.Parameters.Add("MAP_KEY1", OleDbType.VarChar);
cmd.Parameters.Add("MAP_FROM1", OleDbType.VarChar);
cmd.Parameters.Add("MAP_TO1", OleDbType.VarChar);
cmd.Parameters.Add("MAP_KEY2", OleDbType.VarChar);
cmd.Parameters.Add("MAP_FROM2", OleDbType.VarChar);
cmd.Parameters.Add("MAP_TO2", OleDbType.VarChar);
cmd.Parameters["MAP_KEY1"].Value = "AUART";
cmd.Parameters["MAP_FROM1"].Value = cs_.CustomerNr;
cmd.Parameters["MAP_TO1"].Value = cs_.AUART;
cmd.Parameters["MAP_KEY2"].Value = "AUART";
cmd.Parameters["MAP_FROM2"].Value = cs_.CustomerNr;
cmd.Parameters["MAP_TO2"].Value = cs_.AUART;
cmd.ExecuteNonQuery();
Во время отладки я вижу, что все значения, передаваемые параметрам, не равны NULL, но затем я получаю "ORA-01008 - Не все переменные связаны".
Я думаю, что я неправильно анализирую параметры, но я не знаю точно, как будет правильно. Я также знаю, что команда oledb также не поддерживает именованные параметры. Поэтому я попытался передать параметры в правильном порядке... но также безуспешно.
Большое спасибо и простите мой английский