SQL: Obtener último(s) caracteres de un campo texto.

Hola, en nuestro quehacer diario con bases de datos relacionales nos topamos a veces con que hay que extraer el o los últimos caracteres de un campo de tipo texto o string de una tabla. Según la base de datos usada la instrucción puede variar.

Enseguida veremos algunos ejemplos, en las distintas bases de datos, donde extraeremos los útimos 2 caracteres del texto constante “texto ejemplo”:

SQLite:

SELECT SUBSTR(‘texto ejemplo’, -2);

Postgresql:

SELECT SUBSTRING(‘texto ejemplo’ from ‘.{2}$’);

SELECT RIGHT(‘texto ejemplo’,2);

MySQL o MariaDB:

SELECT SUBSTRING(‘texto ejemplo’,-2);

SELECT RIGHT(‘texto ejemplo’,2);

SQL Server:

SELECT RIGHT(‘texto ejemplo’, 2);

ORACLE:

SELECT SUBSTR(‘texto ejemplo’, -2) FROM dual;

Todas las sentencias sql descritas anteriormente ejecutadas en la respectiva base de datos regresarán la cadena de caractares ‘lo’.

Dependiendo del número de caracteres a la derecha que queramos obtener sólo tendremos que cambiar el número dos por el número de caracteres deseado en cada una de las sentencias anteriores.

Espero y les séa de utilidad este artículo. Agradezco sus comentarios. ¡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:

SELECT table_name FROM user_tables;

En Postgresql:

SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

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:

SELECT table_name FROM information_schema.tables WHERE table_schema = 'nombre_base_de_datos';

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

¡Saludos!

MySQL: table is marked as crashed and should be repaired

Después de una falla de energía del servidor de aplicaciones, nuestro sistema administrativo comenzó a enviar el error “table is marked as crashed and should be repaired” al querer acceder a cierta tabla de nuestra base datos.

Antes de restaurar dicha tabla desde un respaldo probamos reparar la tabla con la instrucción SQL de MySQL llamada “repair table” desde un cliente SQL de esta forma:

REPAIR TABLE nombre_tabla;

Donde “nombre_tabla” es el nombre de la tabla que esta enviando el error.

Esto funcionó en nuestro caso y no tuvimos necesidad de restaurar la table dañada desde un respaldo.

¡No olviden visitar a los patrocinadores (anuncios de google)!