📄 李建国.txt
字号:
1,从控制台打印下列信息(用签套的循环,外层循环控制行,内层循环控制*号的个数以及出现的样式)
*
***
*****
*******
*****
***
*
declare
i int;
begin
i:=0;
for i in 1..4 loop
for j in 1..(4-i) loop
dbms_output.put(' ');
end loop;
for j in 1..2*i-2 loop
dbms_output.put('*');
end loop;
dbms_output.put_line('*');
end loop;
for i in reverse 1..3 loop
for j in 0..(3-i) loop
dbms_output.put(' ');
end loop;
for j in 1..2*i-2 loop
dbms_output.put('*');
end loop;
dbms_output.put_line('*');
end loop;
end;
2.在程序块里写一个事务分成两个单元(一个存储点)
存储点之前给emp表插入一行数据
存储点之后给emp表的某一行修改下age ,然后查询该行的age ,如果age > 40 回滚到存储点提交事务,如果条件不满足,提交整个事务
declare
age1 student_l.age%type;
begin
insert into student_l values(4,'学生4','女',28,1,100);
savepoint s1;
update student_l set age=30 where sid=2;
select age into age1 from student_l where sid=1;
dbms_output.put_line('年龄是;'||age1);
if age1>40 then
rollback to s1;
dbms_output.put_line('回滚到s1');
else
commit;
dbms_output.put_line('全部提交');
end if;
end;
3.给%TYPE %ROWTYPE RECORD TABLE四种类型分别举出相应的例子
declare
l_name emp.ename%type;
emp_l emp%rowtype;
type empli is record (id emp.empno%type,name emp.ename%type);
empli1 empli;
type emp_li is table of emp.ename%type index by binary_integer;
emp_li1 emp_li;
begin
select ename into l_name from emp where empno=7934;
dbms_output.put_line('type的例子');
dbms_output.put_line('7934的名字是:'||l_name);
select * into emp_l from emp where empno=&empno;
dbms_output.put_line('%rowtype的例子');
dbms_output.put_line('姓名是:'||emp_l.ename);
select empno,ename into empli1 from emp where empno=&aa;
dbms_output.put_line('record的例子');
dbms_output.put_line('编号是:'||empli1.id);
dbms_output.put_line('姓名是:'||empli1.name);
select ename into emp_li1(0) from emp where empno=&1;
dbms_output.put_line('table的例子');
dbms_output.put_line('emp_li1(0)的值是:'||emp_li1(0));
end;
4.定义一个table 里面存放的是%rowtype类型,用该类型定义一个变量datas,从emp表取五行记录放到datas里面,通过循环,把五行数据的值输出来
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -