sql >> Database teknologi >  >> RDS >> Oracle

Sådan bruger du QUERY i expdp til kun at udtrække de sidste 3 måneders data

Fjern semikolon i QUERY parameter.:

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')" 

Til en sidebemærkning:

Ikke direkte relateret til dit problem. Men husk TO_DATE er NLS-afhængig . Du bør angive NLS_DATE_LANGUAGE , ellers kan din forespørgsel mislykkes for et andet nls_date_language.

For eksempel,

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

Jeg foretrækker at bruge ANSI Date literal , når du ikke har nogen tidsdel . Det er NLS-uafhængigt . Den bruger et fast format ÅÅÅÅ-MM-DD .

For eksempel,

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



  1. Vælg med flere tags

  2. Dataanalyseguide:Det er tid til at udmærke sig ved at bruge Excel!

  3. Oracle FEJL:ORA-00900:ugyldig SQL-sætning

  4. MySQL heltal 0 vs NULL