http://riteshkk2000.blogspot.in/2008/09/sending-xml-string-as-input-parameter.html
create or replace PROCEDURE "INSERT_EMPLOYEE_DATA"
(
ip_emp_details IN XMLTYPE
)
IS
BEGIN
FOR i IN
(
SELECT XMLTYPE.EXTRACT (VALUE (a),
'/Root/Name/text()').getstringval() AS ipName,
XMLTYPE.EXTRACT (VALUE (a),
'/Root/Address/text()').getstringval() AS ipAddress
FROM TABLE
(XMLSEQUENCE (ip_emp_details.EXTRACT
('/EmployeeData/Root')
)
) a )
LOOP
INSERT INTO MULTIPLEUSER
(Name, Address)
VALUES
(i.ipName, i.ipAddress);
END LOOP;
END INSERT_EMPLOYEE_DATA;
Page ------------------------->
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
namespace UploadFile
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
GetDataFromXML();
}
protected void GetDataFromXML()
{
DataSet XNLDataSet = new DataSet();
string rootPath = MappedApplicationPath();
string filePath = rootPath + "UploadedFile\\Data.xml";
XNLDataSet.ReadXml(filePath);
grdDataXml.DataSource = XNLDataSet.Tables[0].DefaultView;
grdDataXml.DataBind();
InsertData(XNLDataSet.Tables[0]);
}
private void InsertData(DataTable dt)
{
StringBuilder XMLString = new StringBuilder();
XMLString.Append("<?xml version='1.0' encoding='utf-8' ?>");
XMLString.Append("<EmployeeData>");
foreach (DataRow dtRows in dt.Rows)
{
XMLString.Append("<Root>");
XMLString.Append("<Name>"+ dtRows["text"].ToString().Trim()+"</Name>");
XMLString.Append("<Address>"+ dtRows["value"].ToString().Trim()+"</Address>");
XMLString.Append("</Root>");
}
XMLString.Append("</EmployeeData>");
//Create the connection String
OracleConnection oraCon = new OracleConnection();
OracleCommand oraCmd = new OracleCommand();
oraCon.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.50.90)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=sampark)));User Id=project1;Password=projectabc;";
oraCon.Open();
oraCmd.CommandType = CommandType.StoredProcedure;
oraCmd.CommandText = "INSERT_EMPLOYEE_DATA";
// Oracle SP Name
oraCmd.Connection = oraCon;
oraCmd.Parameters.Add("ip_emp_details", OracleDbType.XmlType, XMLString.ToString(), ParameterDirection.Input);
// Oracle SP Input Parameter name
//Execute the Stored Procedure
int recordEffected = oraCmd.ExecuteNonQuery();
oraCon.Close();
oraCon.Dispose();
}
private string MappedApplicationPath()
{
string APP_PATH = System.Web.HttpContext.Current.Request.ApplicationPath.ToLower();
if (APP_PATH == "/") //a site
APP_PATH = "/";
else if (!APP_PATH.EndsWith(@"/")) //a virtual
APP_PATH += @"/";
string it = System.Web.HttpContext.Current.Server.MapPath(APP_PATH);
if (!it.EndsWith(@"\"))
it += @"\";
return it;
}
}
}