📄 谢妮娜.txt
字号:
========================================================================
2,在程序块里写一个事务分成两个单元(一个存储点)
存储点之前给emp表插入一行数据
存储点之后给emp表的某一行修改下age ,然后查询该行的age ,如果age > 40 回滚到存储点提交事务,如果条件不满足,提交整个事务
begin
insert into xnn_stu2 (stuid,name,age) values(34,'xiefei',30);
savepoint p1;
update xnn_stu2 set age=&age where stuid=&id;
commit;
select age into v_age from xnn_stu2 where stuid=&id;
if v_age > 40 then
rollback to p1;
dbms_output.put_line('年龄大于40岁,回滚后提交');
commit;
else
dbms_output.put_line('全部提交');
end if;
end;
==================================================
3,给%TYPE %ROWTYPE RECORD TABLE四种类型分别举出相应的例子
给%TYPE举出相应的例子
declare
xnn_name emp.ename%type;
xnn_sal emp.sal%type;
begin
select ename,sal into xnn_name,xnn_sal from emp where empno = &empno;
dbms_output.put_line(' 名字 '||xnn_name);
dbms_output.put_line(' 薪水 '||xnn_sal);
end;
=================================================
给%ROWTYPE举出相应的例子
declare
xnn_data emp%rowtype;
begin
select * into xnn_data from emp where empno =&empno;
dbms_output.put_line('mingz: '||xnn_data.ename||' XINSHUI: '||xnn_data.sal);
end;
=================================================
给RECORD举出相应的例子
declare
type xnn_type is record (name emp.ename%type,salary emp.sal%type);
xnn xnn_type;
begin
select ename,sal into xnn from emp where empno = &empno;
dbms_output.put_line(' 名字 '||xnn.name);
dbms_output.put_line(' 薪水 '||xnn.salary);
end;
==================================================
给table举出相应的例子
declare
type xnn_table is table of emp.sal%type index by binary_integer;
xnn xnn_table;
begin
select sal into xnn(0) from emp where empno = &empno;
xnn(1) := '1000';
xnn(2) := '2888';
dbms_output.put_line('XINSHUI: '||xnn(0));
dbms_output.put_line('XINSHUI: '||xnn(1));
dbms_output.put_line('XINSHUI: '||xnn(2));
end;
=======================================================
4,定义一个table 里面存放的是%rowtype类型,用该类型定义一个变量datas,从emp表取五行记录放到datas里面,通过循环,把五行数据的值输出来
declare
v_s xnn_student%rowtype;
v_i number:=1 ;
begin
for v_i in 1..5 loop
select * into v_s from xnn_student where sid=v_i;
dbms_output.put_line('学生编号:'||v_s.sid);
dbms_output.put_line('学生姓名:'||v_s.name);
dbms_output.put_line('学生年龄:'||v_s.age);
end loop;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -