PLSQL 表单插入错误,有人可以帮我吗?我没有线索
PLSQL form insert error, can someone help me? I have no clue
我有这段代码,我想在其中添加一些插入的值,对它们求和并插入到特定的列中。但是我在错误之后收到错误。我认为这是最后一个,但我不知道。好心人帮帮我?添加了包含更多信息的屏幕截图。
我的代码:
DECLARE
BEGIN
INSERT INTO thuiswerk_declaratie (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
VALUES (:P8_MNR,
:P8_WNR,
:P8_TOTAAL_AANTAL_UREN (:P8_MAANDAG_UREN +
:P8_DINSDAG_UREN +
:P8_WOENSDAG_UREN +
:P8_DONDERDAG_UREN +
:P8_VRIJDAG_UREN),
:P8_TOTAAL_BEDRAG (:P8_TOTAAL_AANTAL_UREN * 0.2)
);
END;
Printscreen of code and error
什么是“:P8_TOTAAL_AANTAL_UREN”和“:P8_TOTAAL_BEDRAG”?它们是顶点中的绑定变量,因此它们包含一个字符串(不是函数名称)但是,查看您的代码,您似乎正试图在绑定变量中引用一个函数,这将给出您看到的错误。很可能这只是一个语法错误,您可以尝试一下:
DECLARE
BEGIN
INSERT INTO thuiswerk_declaratie (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
VALUES (:P8_MNR,
:P8_WNR,
:P8_MAANDAG_UREN + :P8_DINSDAG_UREN + :P8_WOENSDAG_UREN + :P8_DONDERDAG_UREN + :P8_VRIJDAG_UREN,
:P8_TOTAAL_AANTAL_UREN * 0.2
);
END;
如果您真的想要一个函数,那么您可以执行以下操作之一:请注意,这些是更复杂的解决方案。
选项 1:
您正在使用顶点。处理此问题的最佳做法是创建一个计算来计算列 UREN_GEWERKT 的页面项目和另一个计算列 TOTAAL_BEDRAG 的页面项目。
你的 pl/sql 块将是:
DECLARE
BEGIN
INSERT INTO thuiswerk_declaratie (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
VALUES (:P8_MNR,
:P8_WNR,
:P8_TOTAAL_AANTAL_UREN,
:P8_TOTAAL_BEDRAG
);
END;
在这种情况下,您还可以使用内置表单区域为您完成所有魔术。
选项 2:
假设您有 (1) 个 pl/sql 函数 total_hours return 一个与 thuiswerk_declaratie.UREN_GEWERKT 具有相同数据类型的值并接受 5 个参数(每天 1 个周和 (2) 另一个函数 total_amount,return 是与 thuiswerk_declaratie.TOTAAL_BEDRAG 相同数据类型的值,并采用 1 个参数,您可以编写 pl/sql块为:
DECLARE
BEGIN
INSERT INTO thuiswerk_declaratie (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
VALUES (:P8_MNR,
:P8_WNR,
total_hours (:P8_MAANDAG_UREN +
:P8_DINSDAG_UREN +
:P8_WOENSDAG_UREN +
:P8_DONDERDAG_UREN +
:P8_VRIJDAG_UREN),
total_amount (:P8_TOTAAL_AANTAL_UREN * 0.2)
);
END;
我有这段代码,我想在其中添加一些插入的值,对它们求和并插入到特定的列中。但是我在错误之后收到错误。我认为这是最后一个,但我不知道。好心人帮帮我?添加了包含更多信息的屏幕截图。
我的代码:
DECLARE
BEGIN
INSERT INTO thuiswerk_declaratie (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
VALUES (:P8_MNR,
:P8_WNR,
:P8_TOTAAL_AANTAL_UREN (:P8_MAANDAG_UREN +
:P8_DINSDAG_UREN +
:P8_WOENSDAG_UREN +
:P8_DONDERDAG_UREN +
:P8_VRIJDAG_UREN),
:P8_TOTAAL_BEDRAG (:P8_TOTAAL_AANTAL_UREN * 0.2)
);
END;
Printscreen of code and error
什么是“:P8_TOTAAL_AANTAL_UREN”和“:P8_TOTAAL_BEDRAG”?它们是顶点中的绑定变量,因此它们包含一个字符串(不是函数名称)但是,查看您的代码,您似乎正试图在绑定变量中引用一个函数,这将给出您看到的错误。很可能这只是一个语法错误,您可以尝试一下:
DECLARE
BEGIN
INSERT INTO thuiswerk_declaratie (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
VALUES (:P8_MNR,
:P8_WNR,
:P8_MAANDAG_UREN + :P8_DINSDAG_UREN + :P8_WOENSDAG_UREN + :P8_DONDERDAG_UREN + :P8_VRIJDAG_UREN,
:P8_TOTAAL_AANTAL_UREN * 0.2
);
END;
如果您真的想要一个函数,那么您可以执行以下操作之一:请注意,这些是更复杂的解决方案。
选项 1:
您正在使用顶点。处理此问题的最佳做法是创建一个计算来计算列 UREN_GEWERKT 的页面项目和另一个计算列 TOTAAL_BEDRAG 的页面项目。 你的 pl/sql 块将是:
DECLARE
BEGIN
INSERT INTO thuiswerk_declaratie (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
VALUES (:P8_MNR,
:P8_WNR,
:P8_TOTAAL_AANTAL_UREN,
:P8_TOTAAL_BEDRAG
);
END;
在这种情况下,您还可以使用内置表单区域为您完成所有魔术。
选项 2:
假设您有 (1) 个 pl/sql 函数 total_hours return 一个与 thuiswerk_declaratie.UREN_GEWERKT 具有相同数据类型的值并接受 5 个参数(每天 1 个周和 (2) 另一个函数 total_amount,return 是与 thuiswerk_declaratie.TOTAAL_BEDRAG 相同数据类型的值,并采用 1 个参数,您可以编写 pl/sql块为:
DECLARE
BEGIN
INSERT INTO thuiswerk_declaratie (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
VALUES (:P8_MNR,
:P8_WNR,
total_hours (:P8_MAANDAG_UREN +
:P8_DINSDAG_UREN +
:P8_WOENSDAG_UREN +
:P8_DONDERDAG_UREN +
:P8_VRIJDAG_UREN),
total_amount (:P8_TOTAAL_AANTAL_UREN * 0.2)
);
END;