informatica:bases_de_datos:oracle:snippets
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:bases_de_datos:oracle:snippets [2020/11/09 09:16] – [Extracción] tempwin | informatica:bases_de_datos:oracle:snippets [2025/10/08 13:42] (actual) – [Limitar resultados] tempwin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Snippets Oracle SQL ====== | ====== Snippets Oracle SQL ====== | ||
| + | ===== Pruebas ===== | ||
| + | |||
| + | Mostrar las tablas a las que tiene acceso nuestra cuenta: | ||
| + | |||
| + | <code sql> | ||
| + | SELECT owner, table_name | ||
| + | FROM all_tables | ||
| + | </ | ||
| + | |||
| + | Mostrar nuestras tablas: | ||
| + | |||
| + | <code sql> | ||
| + | SELECT table_name | ||
| + | FROM user_tables | ||
| + | </ | ||
| ===== Fechas ===== | ===== Fechas ===== | ||
| + | ==== Modificación ==== | ||
| + | |||
| + | Fecha de hace 6 meses: | ||
| + | |||
| + | <code sql> | ||
| + | SELECT sysdate, -- 01/07/25 | ||
| + | | ||
| + | FROM dual | ||
| + | </ | ||
| ==== Operaciones ==== | ==== Operaciones ==== | ||
| Línea 32: | Línea 56: | ||
| <code sql> | <code sql> | ||
| - | SELECT (sysdate, ' | + | SELECT |
| FROM dual; | FROM dual; | ||
| - | SELECT (sysdate, ' | + | SELECT |
| FROM dual; | FROM dual; | ||
| - | SELECT (sysdate, ' | + | SELECT |
| FROM dual; | FROM dual; | ||
| </ | </ | ||
| + | |||
| + | * [[https:// | ||
| + | ==== Agrupar ==== | ||
| + | |||
| + | Si queremos agrupar por año y mes: | ||
| + | |||
| + | <code sql> | ||
| + | select to_char(DATE_CREATED, | ||
| + | from pictures_table | ||
| + | group by to_char(DATE_CREATED, | ||
| + | order by 1 | ||
| + | </ | ||
| + | |||
| + | De otra forma, con un SQL estándar: | ||
| + | |||
| + | <code sql> | ||
| + | select extract(year from date_created) as yr, extract(month from date_created) as mon, | ||
| + | | ||
| + | from pictures_table | ||
| + | group by extract(year from date_created), | ||
| + | order by yr, mon; | ||
| + | </ | ||
| + | |||
| + | ==== Filtrar ==== | ||
| + | |||
| + | Descartar fines de semana (sábados y domingos) | ||
| + | |||
| + | <code sql> | ||
| + | SELECT * | ||
| + | FROM tabla | ||
| + | WHERE TO_CHAR(campo_fecha, | ||
| + | </ | ||
| + | ===== Texto ===== | ||
| + | |||
| + | ==== Extracción ==== | ||
| + | |||
| + | Mediante la función REGEXP_SUBSTR se puede extraer un subcadena de un texto: | ||
| + | |||
| + | <code sql> | ||
| + | select regexp_substr(' | ||
| + | from dual | ||
| + | </ | ||
| + | |||
| + | Devolvería '' | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | Como el regex de Oracle está basado en POSIX, no se puede utilizar '' | ||
| + | </ | ||
| + | |||
| + | ==== Filtrando por texto que comienza por ==== | ||
| + | |||
| + | <code sql> | ||
| + | SELECT column1, column2, column3 | ||
| + | FROM dual | ||
| + | WHERE regexp_like(column1, | ||
| + | </ | ||
| + | |||
| + | Filtraríamos por la column1 buscando que comenzase por '' | ||
| + | |||
| + | ===== Otras ===== | ||
| + | |||
| + | ==== Versión de la base de datos ==== | ||
| + | |||
| + | <code sql> | ||
| + | SELECT banner | ||
| + | FROM v$version | ||
| + | WHERE banner LIKE ' | ||
| + | </ | ||
| + | |||
| + | Ejemplo de salida: | ||
| + | |||
| + | < | ||
| + | Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production | ||
| + | </ | ||
| + | |||
| + | ==== Limitar resultados ==== | ||
| + | |||
| + | Desde la versión 12c de Oracle: | ||
| + | |||
| + | <code sql> | ||
| + | SELECT * | ||
| + | FROM nombre_de_tabla | ||
| + | FETCH FIRST 10 ROWS ONLY; | ||
| + | </ | ||
| + | |||
| + | En versiones anteriores: | ||
| + | |||
| + | <code sql> | ||
| + | SELECT * | ||
| + | FROM nombre_de_tabla | ||
| + | WHERE ROWNUM <= 10; | ||
| + | </ | ||
| + | ===== Recursos ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
informatica/bases_de_datos/oracle/snippets.1604909799.txt.gz · Última modificación: por tempwin
