Publicado el Dejar un comentario

Como conectar a una base de datos Oracle 12c desde una aplicación .Net sin usar archivo tsnames.ora.

Enseguida les comparto el código en ¢# (c sharp) para hacer una conexión a una base de datos Oracle 12c desde una aplicación .Net sin usar archivo tsnames.ora externo que defina la conexión.

Antes de ejecutar el código sobra decir que debes contar con los controladores .Net (drives)  de conexión a Oracle 12c instalados en la máquina de desarrollo y el proyecto debe hacer referencia a la clase Oracle.ManagedDataAccess.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;


namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Crea cadena de conexion 
            String cadenaConexionOracle = "Data Source=" +
                   "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" + 
                   "(HOST=localhost)(PORT=1521))" + 
                   "(CONNECT_DATA=(SERVICE_NAME=orcl)));" +
                   "User Id = c##usuariotest; Password = lcdusuariotest;";
            // Crea conexion
            OracleConnection conexionOracle = new OracleConnection(cadenaConexionOracle);
            // Conecta
            conexionOracle.Open();
            // Confirma si la conexion fue abierta
            if (conexionOracle.State == ConnectionState.Open)
            {
                // Se ejecutan las sentencias necesarias...
                // ...
                // Si la conexion esta abierta, la cierra
                conexionOracle.Close();
            }
        }
    }
}

No olvides cambiar los valores de HOST (nombre o ip de la computadora donde está instalada la base de datos), PORT (puerto de conexión), SERVICE_NAME (nombre de la instancia de la base de datos Oracle), User Id (usuario) y Password (contraseña), por los valores correctos de tu base de datos.

¡Hasta la próxima!

Publicado el Dejar un comentario

Error 1921 al hacer copia de archivos con robocopy.

Este error suele arrojarlo cuando copiamos  carpetas de usuarios con el comando robocopy, más precisamente el directorio AppData, ya que contiene uniones (junctions) o enlaces simbólicos (symbolic links) quw windows 10 usa para compatibilidad con sistemas más antiguos y esto ocasiona una copia recursiva o cíclica sin fin creando rutas de directorios demasiado largos hasta que marca este número de error con el mensaje de que no puede encontrar el archivo .

Para evitar este error basta con agregar el switch o parámetro /xj al comando robocopy, por ejemplo así:

robocopy C:\Carpeta_origen D:\Carpeta_destino /MIR /xj

/xj le indica al comando robocopy ignorar enlaces simbólicos.

¡Hasta la próxima!

Publicado el Dejar un comentario

Formatear campo fecha con sql en Oracle con la función to_char().

Varias formas de mostrar un campo fecha con la función to_char()  de sql en Oracle; asumimos en los ejemplos siguientes, que  el campo s.CREATED  es un campo de tipo date de una tabla cualquiera; abajo de cada uno se muestra la salida que obtendríamos para un mismo valor del campo aplicando la función to_char():

to_char(s.CREATED, 'YYYY-MM-DD HH24:MI:SS')
2008-10-20 17:04:22

to_char(s.CREATED, 'YYYY-MM-DD')
2008-10-20

to_char(s.CREATED, 'YYYY-MM-DD HH:MI:SS')
2008-10-20 05:04:22

to_char(s.CREATED, 'YYYY-MON-DD')
2008-OCT-20

to_char(s.CREATED, 'YYYY-MM-DD HH:MI:SS AM')
2008-10-20 05:04:22 PM

to_char(s.CREATED, 'YYYY/MM/DD HH24:MI:SS')
2008/10/20 17:04:22

¡Espero y les sea útil!

¡No olviden visitar a los anunciantes!¡Hasta la próxima!