CREATE PROCEDURE simpleprocedure (inval NUMBER)
IS
tmpvar NUMBER;
tmpvar2 NUMBER;
total NUMBER;
BEGIN
tmpvar := 0;
tmpvar2 := 0;
total := 0;
FOR lcv IN 1 .. inval
LOOP
total := 2 * total + 1 - tmpvar2;
tmpvar2 := tmpvar;
tmpvar := total;
END LOOP;
DBMS_OUTPUT.put_line ('TOTAL IS: ' || total);
END simpleprocedure;
/
CREATE PROCEDURE simpleprocedure (inval NUMBER)
IS
tmpvar NUMBER;
tmpvar2 NUMBER;
total NUMBER;
BEGIN
tmpvar := 0;
tmpvar2 := 0;
total := 0;
FOR lcv IN 1 .. inval
LOOP
total := 2 * total + 1 - tmpvar2;
tmpvar2 := tmpvar;
tmpvar := total;
END LOOP;
DBMS_OUTPUT.put_line ('TOTAL IS: ' || total);
END simpleprocedure;
/
CREATE PACKAGE PKG_DBGD AS
FUNCTION tst_1(I IN INTEGER) RETURN INTEGER;
FUNCTION tst_2(I IN INTEGER) RETURN INTEGER;
END PKG_DBGD;
/
CREATE PACKAGE BODY PKG_DBGD AS
FUNCTION tst_1(I IN INTEGER) RETURN INTEGER IS
BEGIN
IF I BETWEEN 5 AND 10 THEN
RETURN 2 * I;
END IF;
IF I BETWEEN 0 AND 4 THEN
RETURN tst_2(3 + I);
END IF;
IF I BETWEEN 6 AND 10 THEN
RETURN tst_2(I - 2);
END IF;
RETURN I;
END TST_1;
FUNCTION tst_2(I IN INTEGER) RETURN INTEGER IS
BEGIN
IF I BETWEEN 6 AND 8 THEN
RETURN tst_1(I - 1);
END IF;
IF I BETWEEN 1 AND 5 THEN
RETURN I * 2;
END IF;
RETURN I - 1;
END TST_2;
END PKG_DBGD;
/
匿名代码块的代码片段:
DECLARE
V_RESULT INTEGER;
BEGIN
V_RESULT := PKG_DBGD.tst_1(4);
END;
create table Table_with_Triggers
(
Code char(1),
Name varchar(26)
)
/
create trigger Table_with_Triggers_Trg_1
before update on Table_with_Triggers
declare
x positive := 42;
begin
dbms_output.put_line('trigger before update statement');
end;
/
create trigger Table_with_Triggers_Trg_2
before update on Table_with_Triggers
for each row
begin
dbms_output.put_line('trigger before update row '||:old.Code);
end;
/
create trigger Table_with_Triggers_Trg_3
after update on Table_with_Triggers
for each row
begin
dbms_output.put_line('trigger after update row '||:old.Code);
end;
/
create trigger Table_with_Triggers_Trg_4
after update on Table_with_Triggers
begin
dbms_output.put_line('trigger after update statement');
end;
/
insert into Table_with_Triggers values ('A', 'Altai');
insert into Table_with_Triggers values ('B', 'Barnaul');
commit;
alter trigger Table_with_Triggers_Trg_1 compile debug;
alter trigger Table_with_Triggers_Trg_2 compile debug;
alter trigger Table_with_Triggers_Trg_3 compile debug;
alter trigger Table_with_Triggers_Trg_4 compile debug;
begin
dbms_output.enable(4000);
end;
/
begin
update Table_with_Triggers
set Name = Name || '+';
end;
/
update Table_with_Triggers
set Name = Name || '+'
/
rollback
/
select *
from user_source
/