【发布时间】:2021-03-28 13:35:18
【问题描述】:
我是 SQL 的超级新手,我正在尝试做一个有这个 IRPF_TABLE 的练习:
IRPF LOWER_VALUE UPPER_VALUE PERCENTAJE
1 0 12449 ,19
2 12450 20199 ,24
3 20200 35199 ,3
4 35200 59999 ,37
5 60000 99999 ,45
我想做这样的事情:
DECLARE
salary_month NUMBER(10,2) := 1000;
salary_anual NUMBER (10,2);
irpf_perc NUMBER (10, 2);
irpf_to_pay NUMBER (10, 2);
BEGIN
salary_anual := salary_month * 12;
DBMS_OUTPUT.PUT_LINE(salary_month);
IF salary_anual BETWEEN irpf_table.lower_value AND irpf_table.upper_value THEN
SELECT percentaje INTO irpf_perc FROM IRPF_TABLE;
END IF;
irpf_to_pay := salary_anual * irpf_perc / 100;
DBMS_OUTPUT.PUT_LINE(salary_anual);
DBMS_OUTPUT.PUT_LINE(irpf_perc);
DBMS_OUTPUT.PUT_LINE(irpf_to_pay);
END;
输出:
通知错误 - ORA-06550:第 10 列,第 39 列: PLS-00357: La referencia a la tabla, vista o secuencia 'IRPF_TABLE.LOWER_VALUE' no está permitida en este contexto ORA-06550:第 10 列,第 5 列: PL/SQL:语句被忽略 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:
它表示在此上下文中不允许对表的引用“IRPF_TABLE.LOWER_VALUE”。我不知道我做错了什么。正如我所说,我对 SQL 完全陌生。我知道我的 IF 条件有问题,但我对此一无所知。 谢谢你的高级
【问题讨论】:
标签: sql oracle plsql oracle-sqldeveloper