Einfügen Ich habe den folgenden SQL-Skript eine ‚Billings‘ Tabelle mit Zufallsdaten mit PL/SQL zu füllen:Fehler „PL/SQL: ORA-00984 Spalt hier nicht erlaubt“, wenn Sie ein Datum aus Funktion
DECLARE
dgStartDate DATE;
dgEndDate DATE;
dgRandomDate DATE;
FUNCTION getRandomDate(pStartDate IN DATE, pEndDate IN DATE) RETURN DATE
IS
dRandomDate DATE;
piStartNumber PLS_INTEGER;
piEndNumber PLS_INTEGER;
BEGIN
piStartNumber := TO_NUMBER(TO_CHAR(pStartDate, 'J'));
piEndNumber := TO_NUMBER(TO_CHAR(pEndDate, 'J'));
dRandomDate := TO_DATE(TRUNC(DBMS_RANDOM.VALUE(piStartNumber, piEndNumber)), 'J');
RETURN dRandomDate;
END;
BEGIN
dgStartDate := TO_DATE('01/01/2012', 'DD/MM/YYYY');
dgEndDate := TO_DATE('31/12/2015', 'DD/MM/YYYY');
dgRandomDate := getRandomDate(dgStartDate, dgEndDate);
FOR loop_counter IN 1..28 LOOP
INSERT INTO billings(id_billing, id_account, total_billing, due_billing)
VALUES (loop_counter, '123456', round(DBMS_RANDOM.VALUE(0,2000),2), TO_CHAR(dRandomDate, 'DD/MM/YYYY'));
END LOOP;
COMMIT;
END;
ich erhalte die folgende Fehlermeldung:
ORA-06550: line 45, column 76:
PL/SQL: ORA-00984: column not allowed here
ORA-06550: line 44, column 1:
PL/SQL: SQL Statement ignored
der Fehler in dem Datumsteil in der INSERT-Anweisung ist, aber die Datumsfunktion des richtigen Wert zurückkehrt. Ich weiß nicht, wie ich es zum Laufen bringen soll.
Vielen Dank im Voraus
Sieht aus wie haben wir verschiedene Zeilennummern, welche Zeile ist 44? –