Member 11956239 Ответов: 1

Как я могу передать свой XML-список процедуре в oracledb


ошибка: ORA-01036: недопустимое имя/номер переменной

create or replace package body Test_Package is

  PROCEDURE sp_xmldata(v_xml_list11 clob) as
  BEGIN
    insert into xmldata
    (x_name, x_password, x_email)
    select name, password, email
      from xmltable('/NewDataSet/table' passing xmltype(v_xml_list11)
                    columns
                    
                    name VARCHAR2(100) path 'name',
                    password VARCHAR2(100) path 'password',
                    email VARCHAR2(100) path 'email');
  END;
end Test_Package;





        protected void btnsubmit_Click(object sender, EventArgs e)
        {
            	


          string oradb = "Data Source = online; User Id = tsregs_user; Password = tsregs_user;";
          OracleConnection conn = new OracleConnection(oradb);
            List<Details> _objlist = new List<Details>();
            Details _obj = new Details();
            _obj.name = txtUsername.Text;
            _obj.password = txtPassword.Text;
            _obj.email = txtEmail.Text;
            _objlist.Add(_obj);
            XElement xml_list11 = new XElement("NewDataSet",
                                           from element in _objlist
                                           select new XElement("table",
                                                new XElement("x_name", element.name),
                                                new XElement("x_password", element.password),
                                                new XElement("x_email", element.email)
                                               ));

            OracleCommand cmd = new OracleCommand("Test_Package.sp_xmldata", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(xml_list11.ToString(), DbType.Xml);

            conn.Open();
            cmd.ExecuteNonQuery();
        }

    }
}


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

я передал свой xml-список процедуре в oracledb

Member 11956239

Моя цель-вставить эти данные в базу данных

1 Ответов

Рейтинг:
12

Richard Deeming

Цитата:
УМК.Параметры.Добавить(xml_list11.ToString(), DbType.Xml);

Вот в чем твоя проблема. Первый аргумент в пользу Add метод - это имя параметра. Вы передаете строку XML, которая не является допустимым именем параметра.

Попробуйте либо:
cmd.Parameters.Add("v_xml_list11", DbType.Xml).Value = xml_list11;

Или:
cmd.Parameters.AddWithValue("v_xml_list11", xml_list11);