2016-06-08 10 views
-1

ich bereits in den Stackoverflow Subjekt bestehende gesucht habe, konnte aber keine Antwort,-Test vorhandene Oracle-Tabellenpartition vor dem Hinzufügen eines neuen

finde ich versuchen, einen pl SQL-Skript zu schreiben, um eine Partition hinzuzufügen, um meinen vorhandenen Tabelle, ABER, VORHER, Ich muss überprüfen, ob die Partition zu ergänzen ist bereits in dieser Tabelle vorhanden oder nicht, Wenn vorhanden, ich habe nichts zu tun, Wenn nicht, muss ich es mit einem Alter erstellen Tabelle Hier ist mein Skript, das nicht funktioniert:

 CREATE OR REPLACE PROCEDURE ADD_PARTITION AS 

    V_TEST_PARTITION INTEGER := 1; 
    REQUETE    VARCHAR2(5000); 

BEGIN 

    SELECT COUNT(*) 
    INTO V_TEST_PARTITION 
    FROM USER_TAB_PARTITIONS 
    WHERE TABLE_NAME = 'SALES' 
    AND PARTITION_NAME = 'MY_PARTITION'; 


    IF V_TEST_PARTITION = 0 


    REQUETE := 'ALTER TABLE SALES ADD PARTITION'|| DEV || 'VALUES ('||MY_PARTITION'||') 
     TABLESPACE "STORE_DATA"'; 

    EXECUTE IMMEDIATE REQUETE; 


    ELSE IF V_TEST_PARTITION = 0 THEN 
    DBMS_OUTPUT.PUT_LINE('MY_PARTITION' is already exist'); 
    END IF; 

END; 

Vielen Dank für Sie

+0

sein Es sieht aus wie Sie einige Räume in Ihrem konstruierten Abfrage-String benötigen. –

+0

Was ist dein Problem? Haben Sie einen Fehler? Bitte versuchen Sie detaillierter zu sein – Aleksej

+0

Fehler (17,3): PLS-00103: Das Symbol "REQUETE" wurde gefunden, wenn eines der Folgenden erwartet wird: * & - +/bei Mod-Rest rem dann und oder || Multiset Das Symbol "then" wurde anstelle von "REQUETE" verwendet, um fortzufahren. – Yassine

Antwort

0

Sie haben einen Fehler im Code zu helfen:

IF V_TEST_PARTITION = 0 

sollte

IF V_TEST_PARTITION <> 0 
+0

es war einer der viele Probleme, Danke – Yassine

Verwandte Themen