Archivo de la etiqueta: Database

Oracle 18c: automatización de las tareas de administración

En la presentación realizada por Larry Ellison en Oracle OpenWorld 2017 ha destacado que la nueva versión de la base de datos Oracle 18c incorporará la capacidad de realizar la siguientes tareas de manera autónoma:

  • Aprovisionamiento
  • Copias de seguridad
  • Parcheado
  • Actualizaciones

Entre otras tareas de administración menores. Los procesos que van a gestionar estas tareas se basan en algoritmos Machine Learning (ML) que permiten a la base de datos adaptarse a distintos escenarios y mejorar sus prestaciones.

Los detalles de la presentación han sido publicados en el siguiente enlace: Larry Ellison on Oracle’s “self-driving” database.

Anuncios

12 Things Developers Will Love About Oracle Database 12c Release 2 (All Things SQL)

La nueva versión de Oracle 12cR2 (o 12.2) ya se encuentra disponible en Oracle Cloud. En el siguiente artículo se revisan las principales novedades: 12 Things Developers Will Love About Oracle Database 12c Release 2 (All Things SQL)

  • Easier, Better, Faster, Stronger JSON
    • JSON from SQL
    • JSON in PL/SQL
  • Looooooooooong Names
  • Robust Code using Constants for Data Type Lengths
  • Listagg Improved On Overflow
  • Lightning Fast SQL with Real Time Materialized Views
  • Fast Estimates with Approximate Query Enhancements
  • Verify Data Type Conversions
  • Handle Casting Conversion Errors
  • Single Statement Table Partitioning
  • Automatic List Partitioning
  • Mark Old Code as “Not for Use”
  • PL/SQL Code Coverage

Oracle 12.2 Sharding Option

Sharding en Oracle 12.2

amitzil - Oracle DBA blog

Lately I wrote a post about 12.2 new features. In the post I didn’t list sharding (probably one of the biggest features in this version), as I wanted to dedicate an entire post for it. In this post I will cover this option , but please note, as 12.2 is only released for the cloud and no one can install it and play with it, all the information is based on presentations I’ve seen at OOW and a chat I had with one of the developers in the demo ground. There might be some inaccuracies or mistakes in the post.

Ver la entrada original 787 palabras más

Oracle 12.2 Cool New Features

En el último Oracle Open World se ha anunciado el lanzamiento de Oracle 12cR2 (o 12.2). En el siguiente artículo se repasan algunas de las novedades más importantes: Oracle 12.2 Cool New Features

  • Partitioning
    • Alter table to partitioned table
    • Create table for exchange
  • In-Memory
    • Standby Database: In-Memory option
    • Dynamic resizing
    • Fast start
  • Security
    • Online encryption and re-key operations
    • Internal tablespace encryption
    • DB vault simulation
  • Dictionary
    • Long identifiers
  • PDB
    • Resource management
    • Hot clone
    • Local undo
    • Flashback
    • Characterset
  • Others
    • Index Monitoring
    • Materialized Views – real time refresh
    • External Tables – partitions

Select random rows

Para seleccionar una o varias filas de una tabla de manera aleatoria existen distintos enfoques. En este ejemplo se intenta obtener una fila de la tabla EMP tomando una muestra del 25% de los registros totales sobre el que posteriormente se aplica una ordenación utilizando la función DBMS_RANDOM.random. De esta forma podemos aplicar una ordenación aleatoria sobre los registros de la tabla evitando el alto coste de ejecutar la función random en tablas que sean muy grandes.

-- Select 1 random row from EMP table
select *
from ( select *
    from emp sample(25) -- 25% total rows
    order by dbms_random.random)
where rownum = 1;

El resultado:

EMPNO	ENAME	JOB	MGR	HIREDATE	SAL	COMM	DEPTNO
7698	BLAKE	MANAGER	7839	01-MAY-81	2850	-	30

GitHub: Oracle Database Sample Schemas

A través de GitHub – oracle/db-sample-schemas Oracle pone a disposición de la comunidad de desarrolladores y diseñadores de bases de datos los scripts para generar los siguientes schemas:

  • HR: Human Resources
  • OE: Order Entry
  • PM: Product Media
  • IX: Information Exchange
  • SH: Sales History
  • BI: Business Intelligence

HEXTOBLOB

Implementación de la función HEXTORAW para dar soporte a CLOBS:

create or replace
procedure hextoblob(
                    src_clob  in       clob,
                    dest_blob in out   nocopy blob
				   )
is
    v_pos    number := 1;
    v_amount number := 1024;
    v_buffer varchar2(1024);
    v_raw    raw(2048);
begin

    while v_pos < dbms_lob.getlength(src_clob)
    loop
        dbms_lob.read(
            lob_loc => src_clob, 
            amount  => v_amount, 
            offset  => v_pos, 
            buffer  => v_buffer);
        
        v_raw := hextoraw(v_buffer);

        dbms_lob.writeappend(
            lob_loc => dest_blob, 
            amount  => utl_raw.length(v_raw), 
            buffer  => v_raw);
        
        v_pos := v_pos + v_amount;
    end loop;
    
end hextoblob;

Para probar el procedimiento podemos ejecutar el siguinte código:

declare
  cl_test   clob := '4041424344';
  bl_result blob;
begin

  dbms_lob.createtemporary(
    lob_loc => bl_result,
    cache   => false,
    dur     => dbms_lob.call);

  hextoblob(
    src_clob  => cl_test,
    dest_blob => bl_result);

  dbms_output.put_line('Result: '||
                        utl_raw.cast_to_varchar2( bl_result ));

  dbms_lob.freetemporary( bl_result );

end;

El resultado debe ser:

Result: @ABCD