语句块中,可以直接写增加语句
begin
insert into stu values(1005,'wangwu','1');
commit;
end;
修改
begin
update stu set stuname='chenqi' where stuid=1005;
commit;
end;
删除
begin
delete from stu where stuid=1005;
commit;
end;
select * from stu;
set serveroutput on;
查询:语句块中,如果写查询的话,必须要接受查询结果才可以
declare
v_id number(8);
v_name varchar2(50);
v_sex varchar2(10);
begin
select stuid,stuname,sex into v_id,v_name,v_sex from stu where stuid=1001;
dbms_output.put_line(v_id||','||v_name||','||v_sex);
end;
立即执行
也叫动态sql
declare
v_id number(8):=1001;
v_name varchar2(50):='zhangsan';
begin
execute immediate 'create table stu(stuid number(8) primary key,stuname varchar2(50))';
execute immediate 'insert into stu(stuid,stuname) values(:1,:2)' using v_id,v_name;
commit;
end;
select * from stu;
select * from tab;
delete from stu;
commit;
drop table stu;
***************************************************************************************************
异常
set serveroutput on;
declare
num1 number(8);
num2 number(8);
res1 number(8,2);
begin
num1:=5;
num2:=&除数;
res1 := num1/num2;
dbms_output.put_line('除法运算结果:'||res1);
end;
预定义异常--oracle已经定义好的,我们可以直接使用的
自定义异常--需要我们自己根据需求定义的
declare
num1 number(8);
num2 number(8);
res1 number(8,2);
begin
num1:=5;
num2:=&除数;
res1 := num1/num2;--程序中一旦发生异常,直接跳转到exception里面去匹配异常;异常代码所在行后续的代码,通常将不再执行;
dbms_output.put_line('除法运算结果:'||res1);
exception
when ZERO_DIVIDE then dbms_output.put_line('除数不能为0');
when others then dbms_output.put_line('发生了其他异常');
end;
--自定义异常
写法上,三步:
1.定义异常变量 名字 exception
2.抛出异常 raise 名字
3.处理异常 when 名字 then 处理语句;
declare
v_sex varchar2(20);
v_err exception;--定义一个异常变量
begin
v_sex:='&性别';
if v_sex='男' or v_sex='女' then dbms_output.put_line('接收正常,接收到性别数据:'||v_sex);
else raise v_err;--这里抛出异常
end if;
exception
when v_err then dbms_output.put_line('性别输入错误');
when others then dbms_output.put_line('发生了其他异常');
end;