-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript_funcao_icms.sql
More file actions
68 lines (58 loc) · 3.99 KB
/
script_funcao_icms.sql
File metadata and controls
68 lines (58 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
--OBSERVACAO: não estávamos conseguindo utilizar a função pedida (função do ICMS), então o tutor Leandro mandou a função a parte, representada nesse arquivo sql.
--DROP TABLE MC_ALIQUOTA_MEDIA_ICMS_ESTADO;
CREATE TABLE "MC_ALIQUOTA_MEDIA_ICMS_ESTADO"
( "SG_ESTADO" CHAR(2),
"VL_PERC_ALIQUOTA_MEDIA" NUMBER(8,2)
);
REM INSERTING into MC_ALIQUOTA_MEDIA_ICMS_ESTADO
SET DEFINE OFF;
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('AC',17);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('AL',12);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('AM',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('AP',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('BA',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('CE',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('DF',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('ES',17);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('GO',17);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('MA',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('MT',17);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('MS',17);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('MG',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('PA',17);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('PB',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('PR',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('PE',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('PI',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('RN',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('RS',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('RJ',20);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('RO',17.5);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('RR',17);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('SC',17);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('SP',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('SE',18);
Insert into MC_ALIQUOTA_MEDIA_ICMS_ESTADO (SG_ESTADO,VL_PERC_ALIQUOTA_MEDIA) values ('TO',18);
--------------------------------------------------------
-- DDL for Index PK_MC_ALIQUOTA_MEDIA_ICMS_ESTADO
--------------------------------------------------------
CREATE UNIQUE INDEX "PK_MC_ALIQUOTA_MEDIA_ICMS_ESTADO" ON "MC_ALIQUOTA_MEDIA_ICMS_ESTADO" ("SG_ESTADO");
--------------------------------------------------------
-- Constraints for Table MC_ALIQUOTA_MEDIA_ICMS_ESTADO
--------------------------------------------------------
ALTER TABLE "MC_ALIQUOTA_MEDIA_ICMS_ESTADO" ADD CONSTRAINT "PK_MC_ALIQUOTA_MEDIA_ICMS_ESTADO" PRIMARY KEY ("SG_ESTADO")
USING INDEX ENABLE;
ALTER TABLE "MC_ALIQUOTA_MEDIA_ICMS_ESTADO" MODIFY ("VL_PERC_ALIQUOTA_MEDIA" NOT NULL ENABLE);
create or replace FUNCTION FUN_MC_GERA_ALIQUOTA_MEDIA_ICMS_ESTADO(P_SG_ESTADO IN VARCHAR)
RETURN NUMBER
IS
V_VL_PERC_ALIQUOTA_MEDIA NUMBER;
BEGIN
SELECT VL_PERC_ALIQUOTA_MEDIA INTO V_VL_PERC_ALIQUOTA_MEDIA
FROM MC_ALIQUOTA_MEDIA_ICMS_ESTADO
WHERE SG_ESTADO = P_SG_ESTADO;
RETURN V_VL_PERC_ALIQUOTA_MEDIA;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0; -- Retorna 0 se não houver correspondência para o estado
END;