2017-05-18 3 views
0

ich eine Funktion geschrieben hatte, sieht aus wie alles in Ordnung ist, aber noch bin ich die Fehler bekommen,Das Symbol "TABELLE" wurde gefunden, wenn eines der folgenden Ereignisse erwartet wird:: =. (@%, Das Symbol. „: = Wurde vor eingefügt‚TABLE‘, um fortzufahren

Unten ist meine Funktion:

create or replace FUNCTION TRANSFERQTYBTNDATES 
(
    v_startDate IN DATE, 
    v_endDate IN DATE, 
    v_storeid IN NUMBER, 
    v_areaid IN NUMBER 
) 
RETURN TransferQtyBtnDates_pkg.tt_TransferQtyBtnDates_type PIPELINED 
AS 
    v_temp SYS_REFCURSOR; 
    v_temp_1 TT_TRANSFERQTYBTNDATES%ROWTYPE; 

BEGIN 
    TRUNCATE TABLE tt_TransferQtyBtnDates; 

    INSERT INTO tt_TransferQtyBtnDates 
     SELECT isb.ItemId , 
      SUM(isb.Quantity) TransQty , 
      isb.ExpiryDate TransExpDates 
     FROM Issues iss 
       JOIN IssuedBatches isb 
       ON iss.IssueRegisterId = isb.IssueRegisterId 
     WHERE iss.IssueType = 'TRANSFER ACCOUNT' 
       AND iss.IssuedDate BETWEEN v_startDate AND v_endDate 
       AND iss.AreaId = v_areaid 
       AND iss.StoreId = v_storeid 
     GROUP BY isb.ItemId,isb.Quantity,isb.ExpiryDate; 

     OPEN v_temp FOR 
     SELECT * 
     FROM tt_TransferQtyBtnDates; 

    LOOP 
     FETCH v_temp INTO v_temp_1; 
     EXIT WHEN v_temp%NOTFOUND; 
     PIPE ROW (v_temp_1); 
    END LOOP; 
END; 

und in diesem erhalte ich diese Fehler

Error(14,13): PLS-00103: Encountered the symbol "TABLE" when expecting one of the following:  := . (@ % ; The symbol ":= was inserted before "TABLE" to continue. 
Error(21,16): PLS-00103: Encountered the symbol "JOIN" when expecting one of the following:  , ; return returning group having intersect minus start union where connect 

bitte helfen Sie mir ... Dank

+1

Abschneiden ist eine DDL, Sie können sie nicht in PLSQL-Code verwenden – Aleksej

+0

EXECUTE IMMEDIATE 'TRUNCATE TABLE tt_StockOnHandForItems'; ist das jetzt in Ordnung. wir können diesen Befehl in pl/sql Block schreiben – Mahesh

+0

und jetzt bekomme ich unten Fehler; 1. Fehler: PL/SQL: Kompilierungseinheitsanalyse beendet und 2. Fehler (14,8): PLS-00905: Objekt HMSMIG.STOCKONHANDFORITEMS_PKG ist ungültig – Mahesh

Antwort

0

Rep Schnappen Sie die DDL mit folgendem SQL: EXECUTE IMMEDIATE 'TRUNCATE TABLE tt_TransferQtyBtnDates';

Verwandte Themen