Я пытаюсь запустить эту работу:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => '"TOCBA"."MAANDELIJKS_AFBOEKING"',
job_type => 'PLSQL_BLOCK',
job_action => 'DECLARE
V_SALDO_CREDIT NUMBER;
V_SALDO_STUD NUMBER;
V_LIMIET NUMBER;
V_REKENINGNUMMER NUMBER;
V_CRED_ID NUMBER;
V_STU_ID NUMBER;
BEGIN
FOR R IN (SELECT r2.REKENINGNUMMER AS REKNUMMER FROM Rekening r1 INNER JOIN Rekening r2 ON r1.REKENINGNUMMER = R2.REKENINGNUMMER and r1.REKENINGTYPE = 22 and r2.REKENINGTYPE = 41)
LOOP
SELECT SALDO, BETAALLIMIET, REKENINGNUMMER, REKENINGID INTO V_SALDO_CREDIT, V_LIMIET, V_REKENINGNUMMER, V_CRED_ID FROM REKENING WHERE REKENINGNUMMER = R.REKNUMMER AND REKENINGTYPE = 41;
SELECT REKENINGID INTO V_STU_ID FROM REKENING WHERE REKENINGNUMMER = R.REKNUMMER AND REKENINGTYPE = 22;
V_SALDO_STUD := V_LIMIET -V_SALDO_CREDIT;
UPDATE REKENING SET SALDO = (SELECT BETAALLIMIET FROM REKENING WHERE REKENINGNUMMER = V_REKENINGNUMMER AND REKENINGTYPE = 41) WHERE REKENINGNUMMER = R.REKNUMMER AND REKENINGTYPE = 41;
UPDATE REKENING SET SALDO = SALDO - V_SALDO_STUD WHERE REKENINGNUMMER = R.REKNUMMER AND REKENINGTYPE = 22;
INSERT INTO TRANSACTIE(REKENINGID, BEDRAG, DATUM, IBAN_PARTIJ2, OMSCHRIJVING, TYPE) VALUES (V_STU_ID, V_SALDO_STUD,SYSDATE, V_CRED_ID, "Maandelijkse afboeking " || to_char(sysdate, "Month"), "MND");
INSERT INTO TRANSACTIE(REKENINGID, BEDRAG, DATUM, IBAN_PARTIJ2, OMSCHRIJVING, TYPE) VALUES (V_CRED_ID, V_SALDO_STUD,SYSDATE, V_STU_ID, "Maandelijkse afboeking " || to_char(sysdate, "Month"), "MND");
END LOOP;
END;',
number_of_arguments => 0,
start_date => TO_TIMESTAMP_TZ('2018-11-05 14:15:02.000000000 EUROPE/BERLIN','YYYY-MM-DD HH24:MI:SS.FF TZR'),
repeat_interval => 'FREQ=MINUTELY;BYDAY=MON',
end_date => NULL,
enabled => FALSE,
auto_drop => FALSE,
comments => 'geen');
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"TOCBA"."MAANDELIJKS_AFBOEKING"',
attribute => 'store_output', value => TRUE);
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"TOCBA"."MAANDELIJKS_AFBOEKING"',
attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);
DBMS_SCHEDULER.enable(
name => '"TOCBA"."MAANDELIJKS_AFBOEKING"');
END;
PL / SQL-код протестирован и работает без заданий. Когда я пытаюсь запустить его таким образом, я получаю следующую ошибку:
"ORA-06550: Regel 20, kolom 198:
PL/SQL: ORA-00984: Kolom is hier niet toegestaan..
ORA-06550: Regel 20, kolom 4:
PL/SQL: SQL Statement ignored.
ORA-06550: Regel 22, kolom 198:
PL/SQL: ORA-00984: Kolom is hier niet toegestaan..
ORA-06550: Regel 22, kolom 4:
PL/SQL: SQL Statement ignored.
"
При удалении двух операторов вставки (TRANSACTIES) работает нормально. Я думаю, что проблема происходит из-за кавычек. Кто-нибудь здесь, кто знает, как решить эту проблему?