sql >> Base de Datos >  >> RDS >> Oracle

Cómo usar QUERY en expdp para extraer solo los datos de los últimos 3 meses

Eliminar el punto y coma en QUERY parámetro.:

QUERY=TABLE1,TABLE2:"where TABLE1_STARTTIME >= TO_DATE('01-AUG-2015','dd-mon-yyyy') 
                     and TABLE2_STARTIME >= TO_DATE('01-AUG-2015','dd-mon-yyyy')" 

En una nota al margen:

No está directamente relacionado con su problema. Pero recuerda TO_DATE es dependiente de NLS . Debe especificar el NLS_DATE_LANGUAGE , de lo contrario, su consulta podría fallar para un nls_date_language diferente.

Por ejemplo,

SQL> alter session set nls_date_language='FRENCH';

Session altered.

SQL> SELECT TO_DATE('01-AUG-2015','dd-mon-yyyy') FROM DUAL;
SELECT TO_DATE('01-AUG-2015','dd-mon-yyyy') FROM DUAL
               *
ERROR at line 1:
ORA-01843: not a valid month


SQL> SELECT TO_DATE('01-AUG-2015','dd-mon-yyyy', 'nls_date_language=ENGLISH') FROM DUAL;

TO_DATE('01
-----------
01-AO█T -15

Preferiría usar ANSI Date literal , cuando no tiene ninguna porción de tiempo . Es independiente de NLS . Utiliza un formato fijo YYYY-MM-DD .

Por ejemplo,

SQL> alter session set nls_date_language='FRENCH';

Session altered.

SQL> SELECT DATE '2015-08-01' FROM DUAL;

DATE'2015-0
-----------
01-AO█T -15

SQL> alter session set nls_date_language='AMERICAN';

Session altered.

SQL> SELECT DATE '2015-08-01' FROM DUAL;

DATE'2015
---------
01-AUG-15