Requisitos:
IDE: Visual Studio 2005 .NET
Base de datos: Oracle
Paso 1: Creación
aplicación escritorio
- Vamos crear la siguiente interfaz.
- Cargar fichero XML.
private void btCargar_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Archivos XML | *.xml";
openFileDialog1.Multiselect = false;
openFileDialog1.ShowDialog();
// Mostramos valor en el textbox
txtRuta.Text = openFileDialog1.FileName;
}
- Llamada procedimiento almacenado (botón "Generar")
private void btGenerar_Click(object sender, EventArgs e)
{
if (openFileDialog1.FileName.Trim() != "")
{
// Objeto deconexión
OracleConnection conn = new OracleConnection();
try
{
conn.ConnectionString = "TuCadenaConexiónBD";
String procedimiento = "MIESQUEMA.PG_XML.PR_XML_TO_TABLE";
OracleCommand command = new OracleCommand();
command.Connection = conn;
command.CommandText = procedimiento;
command.CommandType = CommandType.StoredProcedure;
// Parametro XML
XmlDocument xmlDoc = new XmlDocument();
string ruta = openFileDialog1.FileName;
xmlDoc.Load(ruta);
string xml = xmlDoc.OuterXml;
OracleParameter param1 = new OracleParameter();
param1.OracleType = OracleType.Clob;
param1.Direction = ParameterDirection.Input;
param1.ParameterName = "pXmlContent";
param1.Value = xml;
command.Parameters.Add(param1);
// Parametros Salida Resultado
OracleParameter param2 = new OracleParameter();
param2.OracleType = OracleType.VarChar;
param2.Size = 500;
param2.Direction = ParameterDirection.InputOutput;
param2.ParameterName = "pResultado";
param2.Value = "";
command.Parameters.Add(param2);
conn.Open();
int exito = command.ExecuteNonQuery();
// Todo bien
if (exito == 1)
{
MessageBox.Show("Resultado: " + command.Parameters["pResultado"].Value.ToString());
}
}
catch (Exception ex)
{
MessageBox.Show("ERROR: " + ex.Message.ToString());
}
finally
{
// Cerramos Conexión
conn.Close();
}
}
else
{
MessageBox.Show("No se ha seleccionado ningun fichero.");
}
}
NOTA: La variable "TuCadenaConexiónBD" se debe remplazar por tu cadena de conexión a la Base de datos.
Paso 2:
Procedimiento para inserción del XML
- Para ello hemos creado dentro de nuestra base de datos el paquete "PG_XML" y el procedimiento "PR_XML_TO_TABLE". Este procedimiento insertara el XML en la tabla “XML_TABLE”.
CREATE OR REPLACE PACKAGE BODY MIESQUEMA."PG_XML"
AS
PROCEDURE PR_XML_TO_TABLE(
pXmlContent IN CLOB,
pResultado OUT VARCHAR2
)
IS
BEGIN
INSERT INTO XML_TABLE
VALUES (SYSDATE, 9999, XMLTYPE(pXmlContent));
pResultado := 'OK';
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
pResultado := 'ERROR EN PG_XML.PR_XML_TO_TABLE: ' || SQLERRM;
END PR_XML_TO_TABLE;
END PG_XML;
/
Paso 3: Creación XML
41975980Z Manuel Cruz Pérez 617841085
Código fuente: aqui

No hay comentarios:
Publicar un comentario