Member 12966735 Ответов: 1

Вставка данных в базу данных oracle


Я пытаюсь вставить данные в базу данных Oracle таблица БТ я получаю ошибку, что столбец 7 строка 1 неправильный номер или типы аргументов в вызове процедуры наименование
я проверил количество параметров и тип данных bt все еще не работает пожалуйста предложите sumthing
ниже приведен мой код
заранее спасибо

Что я уже пробовал:

public int InsertDocuments(int DocId, string DocName, string DocPath)
      {
          string oradb = GetConnectionString_Oracle();
          OraConn = new OracleConnection();
          OraConn.ConnectionString = oradb;
          //OraConn = new OracleConnection(ConfigurationManager.ConnectionStrings["OracleConnString"].ToString());
          int i = 0;
          try
          {
              OracleCommand command = new OracleCommand("AddUpdateDocuments", OraConn);
              command.CommandType = CommandType.StoredProcedure;
              command.CommandTimeout = 3600;
              command.Parameters.Add("DocId", OracleType.Number).Value  = DocId ;
              command.Parameters.Add("DocName", OracleType.VarChar).Value = DocName;
              command.Parameters.Add("Docpath", OracleType.VarChar).Value = DocPath;

              OraConn.Open();
              i = command.ExecuteNonQuery();
              OraConn.Close();
              return 1;
          }
          catch (SqlException ex)
          {
              return 0;
          }
      }


               }




моя хранимая процедура
CREATE OR REPLACE PROCEDURE AddUpdateDocuments
(DocId in Number , DocName IN varchar, LossType IN VARCHAR2)
AS
amatched number;
MaxDocId number;
BEGIN
    SELECT COUNT(*) INTO amatched FROM LCLDocMst
        WHERE DocName = DocName;
    IF amatched !=0 THEN
      UPDATE LCLDocMst
      SET DocName = DocName
      WHERE DocId = DocId;
    ELSE
      select Max(DOCID) INTO MaxDocId FROM LCLDocMst;
          INSERT INTO LCLDocMst(DocId, DocName, LossType, Docpath)
          VALUES (MaxDocId, DocName, LossType, '');
        
    END IF;
END AddUpdateDocuments;


/

1 Ответов

Рейтинг:
1

Richard Deeming

Ну, это просто. :)

Процедура имеет параметры DocId, DocName, и LossType.

Ваш код C# передает параметры, называемые DocId, DocName, и Docpath.

Параметры, которые вы передаете из C#, должны соответствовать параметрам процедуры.


Bryian Tan

Хороший улов!! +5