先用是system登录plsql
然后可以在左下角找到user选项右键新建
给予权限
-- plsql编程 --
declare
v_acgy number(4);
v_acgs number(4);
v_acge number(4);
v_b varchar2(10);
v_a number(4);
v_c number(4);
-- 与student表中的列sage类型相同 --
v_e student.sage%type;
-- 常量 --
c_d constant number(5):=100;
begin
-- 直接赋值 --
v_acgy:=11;
v_acgs:=12;
v_acge:=11;
-- sql语句赋值 into chr(10)换行 --
select sname into v_b from student where s#=4;
select s#,sage into v_a,v_c from student where s#=4;
dbms_output.put_line('张朝淦平均成绩:'||chr(10)||(v_acgy+v_acgs+v_acge)/3);
dbms_output.put_line('姓名'||v_b||'学号'||v_a||'年龄'||v_c);
end;
declare
--v_a student.sage%type;
--v_b number(4):=1000;
--v_c number(4):=4;
--v_d number(4):=21;
v_s# student.s#%type;
v_sname student.sname%type;
v_sage student.sage%type;
v_ssex student.ssex%type;
-- 定义游标 --
cursor cursor_a is
select * from student;
begin
-- if 语句 --
-- select sage into v_a from student
-- where s#=3;
-- if v_a<18 then
-- dbms_output.put_line('未成年');
-- elsif不是elseif --
-- elsif v_a<21 then
-- dbms_output.put_line('青年');
-- else
-- dbms_output.put_line('老年人');
-- end if;
-- 循环语句 可循环新增表内容--
-- loop
-- v_b:=v_b+1;
-- insert into student values(v_b,'黑子',30,'男');
-- dbms_output.put_line('今天天气有点可惜');
-- exit when v_b=1010;
-- end loop;
-- mod(除数,被除数)取余 --
-- loop
-- v_c:=v_c+1;
-- if mod(v_c,2)=1 then
-- insert into teacher values(v_c,'黑子');
-- end if;
-- exit when v_c=10;
-- end loop;
-- switch语句 --
--case
-- when v_d<10 then dbms_output.put_line('小于10');
-- when v_d<20 then dbms_output.put_line('小于20');
-- when v_d<30 then dbms_output.put_line('小于30');
-- when v_d<40 then dbms_output.put_line('小于40');
--end case;
-- 打开游标 --
open cursor_a;
loop
-- 提取游标 --
-- 使用游标 --
fetch cursor_a into v_s#,v_sname,v_sage,v_ssex;
dbms_output.put_line(v_s#||v_sname||v_sage||v_ssex);
exit when cursor_a%notfound;
end loop;
-- 关闭游标 --
close cursor_a;
end;
-- 存储过程
-- 存储过程相当于封装了一个方法
-- 声明
-- 在左边看procedures是否正确
create procedure add_student(
s# student.s#%type,
sname student.sname%type,
sage student.sage%type,
ssex student.ssex%type,
out_flag out number
)
is
begin
insert into student values(s#,sname,sage,ssex);
commit;
out_flag:=1;
end;
-- 调用存储过程 --
declare
flag number(2);
begin
add_student(6,'黑子',30,'男',flag);
dbms_output.put_line(flag);
end;