Mostrar el nombre del mes actual en español en Oracle usando la función to_char y sysdate.

¿Como forzar que la función to_char de Oracle regrese el nombre del mes en español? Cuando el sistema operativo de un equipo cliente, donde se ejecutan sentencias Sql de Oracle que obtienen el nombre del mes está en otro lenguaje que no sea español, el nombre del mes lo regresa en el idioma por defecto. Por ejemplo, si ejecutamos la sentencia de la siguiente forma en un equipo cliente donde su lenguaje es inglés:

Nos regresaría el nombre del mes en inglés como se muestra.

Si queremos forzar que regrese el nombre del mes en otro lenguaje, por ejemplo español, utilizaríamos esta forma:

Ahora el nombre del mes lo regresa en el lenguaje especificado.

O en lenguaje italiano sería:

¿Te fue útil el artículo? Por favor visita los patrocinadores para seguir publicando artículos como estos. ¿Tienes alguna duda informática? Déjame tu comentario.

¡Saludos!

Borrar o eliminar un servicio en Windows 10

Para eliminar un servicio de Windows podemos usar el comando SC desde una ventana de comando con derechos de administrador. “SC es un programa de línea de comandos usado para comunicarse con el Administrador de control de servicios y con los servicios”, según se puede leer en la descripción del comando de su propia ayuda.

Antes de eliminar un servicio necesitamos conocer su nombre para poder proporcionárselo al comando. Para ello usamos el comando sc de la siguiente forma:

Esta forma del comando sc nos dará un listado de todos los servicios que tiene nuestra máquina, página por página gracias a la redirección de su salida al comando more. La ejecución de estos comandos nos dará algo como esto:

 

Aquí es donde vamos a buscar el servicio que queremos borrar. Los servicios están ordenados por orden alfabético. Para avanzar de página usamos la barra espaciadora. Una vez localizado el servicio, tenemos que anotar el nombre que aparece después de NOMBRE_SERVICIO:.

Supongamos que queremos borrar el servicio mostrado en la imagen anterior, ejecutaríamos el comando:

En el caso de que el nombre del servicio contuviera espacios entonces el nombre del servicio al usarse en el comando, deberá ponerse entre comillas. Por ejemplo:

En este caso el servicio se llama AVG Antivirus, contiene un espacio intermedio, por lo que tendríamos que ejecutar el comando de esta forma:

¿Te fue útil este artículo? Por favor visita los anuncios para poder seguir publicando más artículos útiles como este. ¿Algún artículo que te gustaría que publicáramos? ¡Háznoslo saber en los comentarios!

¡Hasta la próxima!

Contar las líneas de un archivo de texto en Windows

En el sistema operativo Linux existe el comando wc que nos sirve para contar las líneas que tiene un achivo de texto. En Windows no hay un comando propiamente equivalente, sin embargo, podemos conseguir el mismo efecto con el comando find.

Si por ejemplo queremos contar las lineas de un archivo llamado archivo.txt ejecutaríamos cualquiera de los comandos siguientes desde la consola de Windows:

Como se observa, la segunda forma envía diferente formato de salida, añade un comentario con el nombre del archivo analizado.

La opción /V muestra todas las líneas que no contengan la cadena especificada, en este caso la cadena “” (cadena que provoca que se cuenten todas las líneas del archivo).

La opción /C muestra o cuenta sólo el número de líneas coincidentes.

¡Saludos!

Listar tablas desde SQL en Oracle, Postgresql y MySQL

Una vez conectados a la base de datos desde un cliente SQL, para listar las tablas a las que tenemos acceso en Oracle sería:

En Postgresql:

En la sentencia anterior sustituimos ‘public‘ por el nombre del esquema correspondiente si se tiene más esquemas en la base de datos.

En MySQL:

Donde nombre_base_de_datos se sustituye por el nombre de la base de datos a la que estamos conectados.

¡Saludos!

Obtener lista de valores separados por comas con sql en Oracle 10g

Si queremos obtener  una lista de valores separados por comas, cuyos valores representen el contenido de una columna de varias filas, en Oracle 10g, podemos usar la función PL/SQL WMSYS.WM_CONCAT.

Veamos un ejemplo más ilustrativo:

Nos daría como resultado:

Una sola fila con la lista de los nombres de empleados separados por comas.

Podemos también mostrar los resultados agrupados por otro campo, por ejemplo el número de departamento:

Por cada grupo, en esta caso número de departamento, crea una lista de los empleados pertenecientes a cada uno.

Hay que comentar que Oracle no recomienda el uso de esta función porque no está soportada por ellos. De hecho en la versión 12g está fución ha sido eliminada. A partir de la versión 11g fue reemplazada por LISTAGG la cual veremos en otra entrada.

Es posible también lograr el listado de  nombres por departamento en Oracle 10g  sin utilizar la función WMSYS.WM_CONCAT. Utilizando las sentencias analíticas de Oracle que se muestran aquí.

¡Hasta la próxima!

Localizar una cadena de caracteres dentro de un campo en Oracle

A veces nos vemos en la necesidad de saber si en el valor de un campo de una tabla en Oracle se encuentra cierto caracter o secuencia de caracteres.

Oracle cuenta con la función INSTR para llevar a cabo esta tarea. La función regresa un número entero que indica la posición dentro de la cadena de caracteres que contiene el campo de el o la secuencia de caracteres buscados. Por ejemplo la siguiente instrucción:

Mostrará el nombre y la posición de la cadena RK dentro del nombre:

Como se muestra en los resultados, solo la fila con el valor de CLARK en la columna Nombre tiene el valor de que representa la posición inicial de la cadena RK en dicha columna.

¿Que representan los 4 valores o parámetros en la función INSTR? El primer parámetro es la cadena de caracteres donde se va a hacer la búsqueda, en este caso la columna ename de la tabla empEl segundo parámetro es la cadena que buscamos, en este caso RK. El tercer parámetro indica a partir de cual caracter queremos hacer la búsqueda, en este caso desde el caracter 1. El cuarto y último parámetro de la función indica que número de ocurrencia queremos encontrar, en este caso la primera ocurrencia; por ejemplo si quisiéramos encontrar la segunda ocurrencia de la cadena R en el Nombre sería:

Lo que nos arrojaría los siguientes resultados:

Como se puede observar, sólo en el nombre TURNER encontró una segunda ocurrencia de la cadena en la posición 6. El nombre CLARK, sólo tiene una ocurrencia de R por lo que el resultad arroja 0, es decir, no encontrado.

Ahora, ¿y si ponemos un número negativo en el parámetro que indica a partir de que caracter queremos buscar? Así:

Le estamos indicando que la búsqueda la haga de derecha a izquierda (de revesa) comenzando por la primera posición.  Esto nos daría el resultado siguiente:

Como podemos observar, ahora la consulta nos muestra el nombre TURNER y la posición de R en 3, que es la segunda ocurrencia de la R en TURNER pero de derecha a izquierda a partir de la posición 1 (contando de derecha a izquierda)Si le indicamos un -2 en la posición desde dónde queremos la búsqueda, buscará desde el penúltimo caracter hacia la izquierda, lo que nos dará un resultado de 0 en todas las filas, porque no hay ningún nombre que cumpla con la condición:

¿Alguna duda? Deja tu comentario.

¡Hasta la próxima!

 

Copiar, clonar o sincronizar una carpeta con ROBOCOPY de Windows 10

ROBOCOPY es un comando de consola de Windows 10 con las funciones del comando COPY pero con opciones más avanzadas. ROBOCOPY tiene funciones parecida al comando rsync de los ambientes Linux con el cual podemos sincronizar dos carpetas o los contenidos completos de dos discos duros.

¿Que ventajas tiene el ROBOCOPY sobre el COPY? Muchas. ROBOCOPY es más robusto y permite especificar más opciones de copiado. Entre otras opciones, le podemos indicar que en caso de estar copiando a una carpeta compartida en red y si llegara haber algún fallo ésta (por ejemplo un error de comunicación, o que se caiga por momentos la red de datos), no suspenda el copiado, si no que reintente varias veces antes de abortar el copiado de ese archivo. También le podemos indicar que conserve las fechas originales de los archivos y carpetas copiados.

A ROBOCOPY también se le puede pedir que sincronice dos carpetas, es decir,  que mantenga idénticas las carpetas en cuanto a contenido. Si un archivo es borrado en la carpeta origen, al hacer el copiado, el mismo archivo sea borrado en la carpeta destino.

Aquí podemos ver más opciones de copiado que permite el comando. Para copiar dos carpetas, en lo personal, he utilizado esta forma:

En el comando anterior le estoy indicando que copie el recurso compartido Carpeta que se encuentra en el servidor 192.168.0.1 a el recurso compartido del mismo nombre pero que se encuentra en el servidor 192.168.0.82. El parámetro u opción /MIR le indica que sincronice las carpetas, si el destino ya tuviera una copia anterior y se han borrado archivos en el origen, elimine dichos archivos del destino y si hay archivos modificados recientemente en el origen, los actualice en el destino. En pocas palabras,  que el destino sea copia exacta del origen.

Con la opción /COPY:DT le indicamos que copie de los archivos tanto los datos (contenido) como las marcas de tiempo (fechas de creación y modificación). Por defecto, si no especificamos esta opción ROBOCOPY intenta copiar además los atributos del archivo, pero al copiar entre dispositivos NAS, no siempre es posible y la copia de los archivos marcará el error de acceso denegado.

ROBOCOPY muestra, por defecto, el porcentaje de avance de cada archivo o carpeta que copia y el número de ellos, la opción /NP evita que esto sea mostrado.

Por último, la opción /log: especifica que en lugar de enviar los registros o mensajes a pantalla, lo haga al archivo que se le indica en dicha opción, en este caso, enviara los mensajes al archivo C:\temp\CopiaCarpeta.log. Si el archivo ya existe, lo sobrescribe. Al final de este archivo se mostrará un resumen de el total de archivos y carpetas copiadas y el número de errores de copiado de cada uno si es que los hubo.

Cabe señalar que por defecto el número de reintentos en caso de fallo al copiar un archivo o directorio es de un millón de veces. Si se desea se puede indicar el número máximo de reintentos con la opción /r: seguido por el número deseado.

¡Hasta pronto!

 

 

Cómo obtener la fecha y hora del último reinicio o arranque de Windows 10

Si por alguna razón queremos saber cuándo se reinició por última vez nuestra computadora con Windows 10, podemos obtener este dato desde la consola de comandos o desde Windows PowerShell.

Desde una consola de comandos la podemos obtener ejecutando el comando systeminfo:

La línea Tiempo de arranque del sistema, señalada con rojo en la imagen anterior, nos muestra el día y hora del último arranque de nuestra computadora. O si sólo queremos que este comando nos muestre solamente esa línea podemos usar esta otra forma:

systeminfo | find /i “Tiempo de arranque”

Desde Windows PowerShell sería con la siguiente instrucción:

Get-CimInstance -ClassName win32_operatingsystem | select csname, lastbootuptime

Espero y les sirva.

¡Hasta la próxima!

Problemas con la conexión bluetooth del Infinix Hot S

Si se presentan problemas con el encendido del bluetooth del celular Infinix Hot S, como el que tarda demasiado en encender y apagar o simplemente no enciende, el problema muy probablemente es una app que viene por defecto con estos equipos: la BaBel Fonts.

Así que para que el bluetooth de este celular vuelva a funcionar normalmente, desinstala esta app de tu celular. De hecho según este artículo en los foros de Infinix X CLUB, es también culpable de que la batería del celular rinda menos.

Así que vaya a Herramientas->Configuración->Aplicaciones, localice la app BaBel Fonts, deshabilítela y confirme la deshabilitación.

Una vez hecho esto, reinicie su celular y el bluetooth funcionará correctamente otra vez.

¡Hasta el próximo artículo!

Crear una tabla a partir de una consulta en Oracle

A veces necesitamos crear una nueva tabla con un subconjunto de datos de otra tabla para ya sea obtener reportes o analizar datos. El proceso podría ser, primero definir los campos y crear la tabla que va a contener los datos necesitados y luego insertar los datos por medio de una consulta (query) hecha a la tabla original.

Podemos ahorrarnos el paso de la definición de los campos y creación de la tabla utilizando la sentencia sql CREATE TABLE .. AS. La sentencia define los campos en base a los número y tipo de datos devueltos por la consulta.

Por ejemplo, tenemos una tabla llamada EMP que contiene información de los empleados de una empresa:

Con la siguiente estructura:

Y queremos crear una tabla que contenga sólo los campos EMPNO, ENAME y SAL y los datos de los empleados del departamento (DEPTNO) número 20. Para ello ejecutaríamos la siguiente sentencia SQL:

La sentencia anterior nos crea la tabla llamada departamento20 y con los datos de los empleados del departamento (DEPTNO) 20 como muestra la siguiente imagen:

Con la estructura que se muestra enseguida:

¡Nos vemos a la próxima!