Herramientas de usuario

Herramientas del sitio


informatica:bases_de_datos:oracle:snippets

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:bases_de_datos:oracle:snippets [2020/12/28 12:43] – [Recursos] tempwininformatica: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
 +</code>
 +
 +Mostrar nuestras tablas:
 +
 +<code sql>
 +SELECT table_name
 +  FROM user_tables
 +</code>
 ===== Fechas ===== ===== Fechas =====
  
 +==== Modificación ====
 +
 +Fecha de hace 6 meses:
 +
 +<code sql>
 +SELECT sysdate, -- 01/07/25
 +       add_months(sysdate, - 6) -- 01/01/25
 +FROM dual
 +</code>
 ==== Operaciones ==== ==== Operaciones ====
  
Línea 42: Línea 66:
 </code> </code>
  
 +  * [[https://livesql.oracle.com/apex/livesql/file/content_GCEY1DN2CN5HZCUQFHVUYQD3G.html|TO_CHAR Day Format Masks]]
 +==== Agrupar ====
 +
 +Si queremos agrupar por año y mes:
 +
 +<code sql>
 +select to_char(DATE_CREATED, 'YYYY-MM'), sum(Num_of_Pictures)
 +from pictures_table
 +group by to_char(DATE_CREATED, 'YYYY-MM')
 +order by 1
 +</code>
 +
 +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,
 +       sum(Num_of_Pictures)
 +from pictures_table
 +group by extract(year from date_created), extract(month from date_created)
 +order by yr, mon;
 +</code>
 +
 +==== Filtrar ====
 +
 +Descartar fines de semana (sábados y domingos)
 +
 +<code sql>
 +SELECT * 
 +FROM tabla
 +WHERE TO_CHAR(campo_fecha, 'DY','NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN')
 +</code>
 ===== Texto ===== ===== Texto =====
  
Línea 59: Línea 114:
 </WRAP> </WRAP>
  
 +==== Filtrando por texto que comienza por ====
 +
 +<code sql>
 +SELECT column1, column2, column3
 +FROM dual
 +WHERE regexp_like(column1, '^(987|I)')
 +</code>
 +
 +Filtraríamos por la column1 buscando que comenzase por ''987'' o por ''I''.
 +
 +===== Otras =====
 +
 +==== Versión de la base de datos ====
 +
 +<code sql>
 +SELECT banner 
 +FROM v$version 
 +WHERE banner LIKE 'Oracle%'
 +</code>
 +
 +Ejemplo de salida:
 +
 +<code>
 +Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
 +</code>
 +
 +==== Limitar resultados ====
 +
 +Desde la versión 12c de Oracle:
 +
 +<code sql>
 +SELECT *
 +FROM nombre_de_tabla
 +FETCH FIRST 10 ROWS ONLY;
 +</code>
 +
 +En versiones anteriores:
 +
 +<code sql>
 +SELECT *
 +FROM nombre_de_tabla
 +WHERE ROWNUM <= 10;
 +</code>
 ===== Recursos ===== ===== Recursos =====
  
   * [[https://stackoverflow.com/questions/8919481/how-to-select-only-1-row-from-oracle-sql|Selecciónar solo 1 registro]]   * [[https://stackoverflow.com/questions/8919481/how-to-select-only-1-row-from-oracle-sql|Selecciónar solo 1 registro]]
   * [[https://learnsql.com/blog/the-most-useful-date-and-time-functions-in-oracle-database|The Most Useful Date and Time Functions]]   * [[https://learnsql.com/blog/the-most-useful-date-and-time-functions-in-oracle-database|The Most Useful Date and Time Functions]]
informatica/bases_de_datos/oracle/snippets.1609155837.txt.gz · Última modificación: por tempwin