Tabla de Contenidos
Bases de datos Oracle
Operador JOIN (+)
El operador (+) es para realizar OUTER JOIN.
SELECT ... FROM a, b WHERE a.id = b.id(+)
Es lo mismo que:
SELECT ... FROM a LEFT JOIN b ON b.id = a.id
Oracle recomienda no usar la notación (+)
- Oracle "(+)" Operator (Stack Overflow)
Fechas
Extracción
Sacar porción de la fecha:
SELECT EXTRACT(YEAR FROM fecha) AS ano, EXTRACT(MONTH FROM fecha) AS mes, EXTRACT(DAY FROM fecha) AS dia, FROM tabla
trunc(sysdate) coge la fecha y hora actuales y se queda solo con la fecha
SELECT * FROM tabla WHERE fecha < trunc(sysdate) AND fecha >= trunc(sysdate - 3) -- hace 3 días
Texto
Extracción
Si se quiere quedar con cierta parte de un campo. Por ejemplo, si tenemos un campo con valores del tipo Una cosa - Otra cosa y nos queremos quedar con lo que hay después del guión:
SELECT SUBSTR(campo, INSTR(campo, '-') + 2) AS nombre FROM tabla
Condicionales
DECODE
SELECT DECODE(id, '3', 'OK', 'KO') AS resultado FROM tabla WHERE fecha < sysdate
Si id vale 3, entonces devuelve OK. En caso contrario, KO.
Dblinks
Un Database Link (DBLink) en Oracle es un tipo de objeto que permite realizar una conexión desde una base de datos a otra.
Un dblink es un usuario que pertenece a la base de datos de destino, pero que se configura en la de origen ya que es quien realiza la conexión.
Para ver que Dblinks hay en una BD Oracle, lo podemos consultar de la siguiente forma:
SELECT * FROM DBA_DB_LINKS; SELECT * FROM ALL_DB_LINKS; SELECT * FROM USER_DB_LINKS;
Limitar resultados
FETCH FIRST
Disponible desde Oracle 12c:
SELECT * FROM tabla FETCH FIRST 10 ROWS ONLY
Administración
Versión de la base de datos
SELECT * FROM V$VERSION
Ejemplo de salida:
| BANNER | BANNER_FULL | BANNER_LEGACY | CON_ID |
|---|---|---|---|
| Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production | “Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production Version 19.28.0.1.0” | Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production | 0 |
