Insertar caracteres UTF8 en Oracle con SQLPLUS desde windows.

Por todos son conocidos los quebraderos de cabeza que nos das los caracteres especiales en el dia a dia a los informáticos.

La logica la conocemos, se invento UTF8 como standard para corregir esos problemas, pero aun asi siguen apareciendo.

O voy a intentar explicar como corregir un error recurrente, cuando insertamos en una bbdd Oracle la cual ya se encuentra en UTF8 y aun asi los caraceres se ven de manera incorrecta.

Esto no es debido a la bbdd Oracle si no al propio cliente desde donde si inserta y en este caso el problema viene causado por windows y su uso de propias codificaciones de caracteres.

Lo unico que tenemos que hacer para corregir esto consiste en setear la variable NLS_LANG con la codificacion UTF8 antes de arrancar el SQLPLUS.

Abrimos una consola cmd de windows y seteamos la variable NLS_LANG

set NLS_LANG=.AL32UTF8

Y ya podemos conectar a Oracle y hacer inserciones en SQLPLUS.

SQLPLUS

Opción 2.

Si queremos dejar la configuración de manera persistente , siempre podemos añadirla como variable del sistema.

Variable de entorno

Aumentar el tamaño máximo en la carga de ficheros en IIS

El IIS recién instalado tiene configurado por defecto con un tamaño máximo de subida de 30.000.000 bytes, o lo que es lo mismo 28,61MB.

Dicho valor se puede modificar, ya que no es un limite real y lo podemos configurar con el tamaño que queramos.

Para cambiar el valor debemos seguir los siguientes pasos:

Desde la interfaz gráfica del IIS, hacemos clic en el sitio web y doble clic en “Request filtering

Dentro del menú “Request Filtering” hacemos clic con el botón derecho y seleccionamos “Edit Feature Settings…”

En el siguiente menú se nos mostrará una ventana donde podemos configurar varios valores, entre ellos “Maximun allowed content length (Bytes)“, con el valor por defecto establecido (30000000), donde cambiaremos el valor por el que mas se adapte a nuestras necesidades.

Una vez cambiado el valor, solo tendremos que reiniciar el servicio web IIS y ya habremos aumentando el tamaño máximo de subida para los ficheros.

Desbloquear ficheros masivamente (y recursivamente) en windows

En alguna ocasion nos hemos podido encontrar que se nos han bloqueado los ficheros en un directorio y en sus directorios recursivos.

Volver a desbloquearlos puede ser una tarea bastante tediosa.

Desbloquear archivos descargados de Internet en Windows 8.1. - Microsoft  Community
Fichero desbloqueado manualmente.

Pero con este sencillo comando powershell, puedes desbloquear ficheros masiva y recursivamente desde un directorio origen.

Get-ChildItem -Path 'rota_origen' -Recurse | Unblock-File

No arranca xampp error: Port 80 in use by “Unable to open process” with PID 4!

El otro dia me sucedio una cosa extraña y era que no me arrancaba el apache en el XAMPP, al parecer habia el PID4 estaba utilizando el puerto 80.

En el al adminsitrador de tareas y observe que el PID4 pertenecia al sistema, con lo que no se trataba de una aplicación en concreto.

Investigando me encuentro con que hay un servicio llamado BranchCache que es el que esta utilizando el puerto 80, con lo que para solucionarlo, solo he tenido que parar y deshabilitar el servicio con los siguientes pasos.

Buscador de  Windows > Servicios > Click botón derecho > Ejecutar como administrador

 Click botón derecho BranchCache > Propiedades > Tipo de inicio > Deshabilitado

Con estos pasos ya solucione el error y pude arrancar el apache del XAMPP.

Solucionar error: corrección de oráculo de cifrado credssp en escritorio remoto RDP

Seguimos con los errores extraños y en este caso se trata de los enredos de los windows.

Voy a explicar como resolver el error “corrección de oráculo de cifrado credssp” al intentar concectar por remoto (RDP) a un equipo windows.

Porque por mucho que lo parezca ni el oraculo ni creed tienen que ver con Rocky y Matrix.

Para solucionar pulsamos window + R y ejecutamos el gpedit.msc

A continuación clicamos en Directiva Equipo Local > Configuración del equipo > Plantillas Administrativas > Sistema > Delegación de credenciales. y editamos la directiva de grupo local llamada Corrección del oráculo de cifrado.

Y aplicamos y aceptamos la opción habilitado y mitigado.

Con esto ya podemos acceder por remoto (RDP) sin problemas.

Como borrar ficheros del directorio windows\System32\Config\TxR

El otro dio me sucedio un problema y es que me encontre el disco duro casi sin espacio.

Investigando me di cuenta de que tenia 50gb en ficehros en el directorio windows\System32\Config\TxR.

Esto se debe a las diferentes actulizaciones de windows update, que deja registro de las transacciones y nunca libera el espacio (maldito windows).

Cientos de ficheros, llenando el disco

Para poder borrqarlso bastas con abrir el cmd como administrador y ejecutar estos comandos.

cmd como administrador
attrib -r -s -h %SystemRoot%\System32\Config\TxR\*
del %SystemRoot%\System32\Config\TxR\*

Reiniciamos el sistema y ya habremos liberado todos los GB.

Importar máquina virtual en vmware esxi

Desde la aparición de la versión 6.7 de esxi, se puede utilizar el navegador web para administrar los virtualizadores de vmware.

Pero me he encontrado con un problema bastante común a la hora de importar las máquinas virtuales y es que aparece un error inesperado y no se puede realizar la importación de la máquina virtual.

En este caso es necesario utilizar la herramienta ovftool https://my.vmware.com/web/vmware/details?downloadGroup=OVFTOOL400&productId=353  que permite importan las máquinas virtuales desde línea de comando, con un sencillo comando de este tipo.

ovftool.exe --datastore=discoduroESXI --name=nombreMaquina --network="RED" -- G:\ovas\maqueta.ova vi://root@ip

Ejemplo con valores reales:

 C:\Program Files\VMware\VMware OVF Tool>
ovftool.exe --datastore=datastore --name=miMaquina --network="VLAN100" G:\ovas\maqueta.ova vi://root@192.168.1.10

Con este sencillo método puedes importar tus maquinas desde línea de comandos.

Solucionar error “425 Can’t open data connection” en filezilla server

No soy muy amante de Windows server, pero me he visto obligado a utilizar un numerosas ocasiones por diferentes motivos.

El otro día me encontré con el típico poltergeist de Windows y no me permita listar los ficheros de un usuario ftp.

El ftp funcionaba bajo filezilla server con los puertos abiertos, sorprendentemente dejaba al usuario loguear pero no listar sus ficheros.

Mostrando el siguiente error:

“425 Can’t open data connection”

Para solucionar tuve que darle permisos al programa desde el firewall.

Clicando en Firewall -> Permitir un programa o una características a través de firewall de windows -> Permitir otro programa -> C:\Program Files (x86)\FileZilla Server\filezillaserver.exe

Con este pequeño cambio ya se listan los directorios y ficheros del usuario ftp.

¿Como listar el tamaño de los directorios en windows?

En sistemas linux listar el tamaño de los directorios se realiza de una manera muy sencilla con el comando du, pero en sistemas windows se complica un poco la cosa.

Utilizando un poco los recursos que ofrece windows sobre powershell en este enlace https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-powershell-1.0/ff730945(v=technet.10)?redirectedfrom=MSDN

Podremos obtener el listado de los directorios y su tamaño con este “corto” comando:

Get-ChildItem |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
  $_.Name + ": " + (
    Get-ChildItem $_ -Recurse |
    Measure-Object Length -Sum -ErrorAction SilentlyContinue
  ).Sum
}

Obtiendo el tamaño en bytes de la carpeta c:\xammp\apache por ejemplo

PS C:\xampp\apache> Get-ChildItem |
>> Where-Object { $_.PSIsContainer } |
>> ForEach-Object {
>>   $_.Name + ": " + (
>>     Get-ChildItem $_ -Recurse |
>>     Measure-Object Length -Sum -ErrorAction SilentlyContinue
>>   ).Sum
>> }
bin: 43546245
conf: 296841
error: 223398
icons: 441289
include: 1674556
lib: 3924595
logs: 29455226
manual: 22458703
modules: 5769728
scripts: 407

Y si nos nos gusta en bytes podemos utilizar este comando para obtener el tamaño en megabytes.

Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { $_.Name + ": " + "{0:N2}" -f ((Get-ChildItem $_ -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB" }

Con estos “cortitos” comando podeis consultar el tamaña de los directorios de forma sencilla, cuando quieres saber por donde se escapa el tamaño del disco.