-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQR11007.sql
68 lines (48 loc) · 2.19 KB
/
QR11007.sql
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
CREATE OR REPLACE PACKAGE EXA1_QR11007 IS
FUNCTION FUNT1_COUNT(TABLA VARCHAR2) RETURN INT;
FUNCTION FUNT2_DATE(FECHA NVARCHAR2) RETURN DATE;
PROCEDURE PROC1_CHANGE;
END EXA1_QR11007;
/
CREATE OR REPLACE PACKAGE BODY EXA1_QR11007 IS
FUNCTION FUNT1_COUNT(TABLA Varchar2) RETURN INT
IS
contador INT;
BEGIN
IF (UPPER(TABLA) = 'EMPLOYEES') THEN
select count(*) into contador from EMPLOYEES;
elsif (UPPER(TABLA) = 'COUNTRIES') then
select count(*) into contador from COUNTRIES;
elsif (UPPER(TABLA) = 'DEPARTMENTS') then
select count(*) into contador from DEPARTMENTS;
elsif (UPPER(TABLA) = 'JOB_HISTORY') then
select count(*) into contador from JOB_HISTORY;
elsif (UPPER(TABLA) = 'JOBS') then
select count(*) into contador from JOBS;
elsif (UPPER(TABLA) = 'LOCATIONS') then
select count(*) into contador from LOCATIONS;
ELSE
select count(*) into contador from REGIONS;
end if;
return contador;
END FUNT1_COUNT;
FUNCTION FUNT2_DATE(FECHA NVARCHAR2) RETURN DATE
IS
i_fecha DATE;
BEGIN
-- select TO_DATE(i_fecha,'DD/MM/YYYY') into i_fecha from dual;
SELECT TO_CHAR(TO_DATE(i_fecha, 'MM/DD/YYYY'), 'MM/DD/YYYY') into i_fecha FROM dual;
return i_fecha;
END FUNT2_DATE;
PROCEDURE PROC1_CHANGE
is
begin
EXECUTE IMMEDIATE 'CREATE TABLE r_temp AS SELECT CAST(region_id as NUMBER(10,0)) region_id, region_name FROM regions';
EXECUTE IMMEDIATE 'RENAME regions TO region_2';
EXECUTE IMMEDIATE 'rename r_temp to regions';
EXECUTE IMMEDIATE 'alter table countries drop constraint COUNTR_REG_FK';
EXECUTE IMMEDIATE 'CREATE UNIQUE INDEX "HR"."REG_ID_PK2" ON "HR"."REGIONS" ("REGION_ID")';
EXECUTE IMMEDIATE 'ALTER TABLE "HR"."REGIONS" ADD CONSTRAINT "REG_ID_PK2" PRIMARY KEY ("REGION_ID") USING INDEX "HR"."REG_ID_PK2" ENABLE';
EXECUTE IMMEDIATE 'ALTER TABLE "HR"."COUNTRIES" ADD CONSTRAINT "COUNTR_REG_FK" FOREIGN KEY ("REGION_ID") REFERENCES "HR"."REGIONS" ("REGION_ID") ENABLE';
end PROC1_CHANGE;
END EXA1_QR11007;