1. Create a range based partition table

CREATE TABLE sales_range (
  id number
  ,NAME varchar2(20)
  ,amount_sold number
  ,shop varchar2(20)
  ,time_id DATE
  ) PARTITION BY range (time_id) ( --partition key 
  PARTITION q1 VALUES less than(to_date('01.04.2016', 'dd.mm.yyyy'))
  ,PARTITION q2 VALUES less than(to_date('01.07.2016', 'dd.mm.yyyy'))
  ,PARTITION q3 VALUES less than(to_date('01.10.2016', 'dd.mm.yyyy'))
  ,PARTITION q4 VALUES less than(to_date('01.01.2017', 'dd.mm.yyyy'))
  );

Table created.

SQL> @ora.tab_parts.sql
                                               COMPO                            
TABLE_OWNER     TABLE_NAME                     SITE  PARTITION_NAME             HIGH_VALUE
--------------- ------------------------------ ----- -------------------------- ------------------------------------------------------------------------------------
SCOTT           SALES_RANGE                    NO    Q1                         TO_DATE(' 2016-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q1                         TO_DATE(' 2016-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q2                         TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q2                         TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q3                         TO_DATE(' 2016-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q3                         TO_DATE(' 2016-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q4                         TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q4                         TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')

2. Cannot insert more data without manually expand partitions

SQL> insert into sales_range values (4000001,'Hesse',1999,'Birmingham',to_date('27.01.2017','dd.mm.yyyy'));
insert into sales_range values (4000001,'Hesse',1999,'Birmingham',to_date('27.01.2017','dd.mm.yyyy'))
            *
ERROR at line 1:
ORA-14400: inserted partition key does not map to any partition

3. Convert to interval based partition table instead

SQL> alter table sales_range set interval(numtoYMinterval(3,'MONTH'));
Table altered.

4. Now it can automatically expand partitions as needed.

SQL> insert into sales_range values (4000001,'Hesse',1999,'Birmingham',to_date('27.01.2017','dd.mm.yyyy'));
1 row created.
SQL> commit;
Commit complete.

SQL> @ora.tab_parts.sql
Please Give Owner Name[%]:
                                               COMPO                            
TABLE_OWNER     TABLE_NAME                     SITE  PARTITION_NAME             HIGH_VALUE
--------------- ------------------------------ ----- -------------------------- ------------------------------------------------------------------------------------
SCOTT           SALES_RANGE                    NO    Q1                         TO_DATE(' 2016-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q1                         TO_DATE(' 2016-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q2                         TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q2                         TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q3                         TO_DATE(' 2016-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q3                         TO_DATE(' 2016-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q4                         TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q4                         TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    SYS_P319                   TO_DATE(' 2017-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    SYS_P319                   TO_DATE(' 2017-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')

SQL> insert into sales_range values (4000001,'Hesse',1999,'Birmingham',to_date('27.05.2017','dd.mm.yyyy'));
1 row created.
SQL> commit;
Commit complete.

SQL> @ora.tab_parts.sql
                                               COMPO                            
TABLE_OWNER     TABLE_NAME                     SITE  PARTITION_NAME             HIGH_VALUE
--------------- ------------------------------ ----- -------------------------- ------------------------------------------------------------------------------------
SCOTT           SALES_RANGE                    NO    Q1                         TO_DATE(' 2016-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q1                         TO_DATE(' 2016-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q2                         TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q2                         TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q3                         TO_DATE(' 2016-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q3                         TO_DATE(' 2016-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q4                         TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    Q4                         TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    SYS_P319                   TO_DATE(' 2017-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    SYS_P319                   TO_DATE(' 2017-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    SYS_P320                   TO_DATE(' 2017-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')
SCOTT           SALES_RANGE                    NO    SYS_P320                   TO_DATE(' 2017-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')