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