📄 郑国.txt
字号:
1,从控制台打印下列信息
*
***
*****
*******
*****
***
*
程序如下
declare
a int;
b int;
c int;
d int;
e int;
begin
a:=&菱形的层数;
e:=&菱形前的空格数;
b:=-a;
while b<a-1 loop
b:=b+1;
c:=abs(b); --用绝对值来控制先大后小的变量,这个变量c控制着*号和空格的
--打印次数
d:=0;
while d<c loop --控制输出的空格数
d:=d+1;
dbms_output.put(' ');
end loop;
d:=0;
while d<(2*(a-c)-1) loop --控制输出的*数量
d:=d+1;
dbms_output.put('*');
end loop;
end loop;
end;
下面是2 3 4 题的代码;
declare
vsno stu.sno%type; --%TYPE定义
vsname stu.sname%type; --%TYPE定义
vage stu.age%type; --%TYPE定义
vsex stu.sex%type; --%TYPE定义
vtno stu.tno%type; --%TYPE定义
vgrade stu.grade%type; --%TYPE定义
row_type stu%rowtype; --%TYPE定义
type my_data is record(ssname stu.sname%type,age stu.age%type); --RECORD类型定义
type my_table is table of stu.sname%type index by binary_integer; --table类型定义
table_type my_table ; --RECORD类型定义
record_type my_data ; --table类型定义
i int:=-1;
j int:=11;
begin
select * into row_type from stu where sno=11; --使用rowtype类型
dbms_output.put_line(row_type.sname); --使用rowtype类型
select sname,age into record_type from stu where sno=11; --使用record类型
dbms_output.put_line(record_type.ssname); --使用record类型
dbms_output.put_line(record_type.age); --使用record类型
/*4,定义一个table 里面存放的是%rowtype类型,用该类型定义一个变量datas,
从emp表取五行记录放到datas里面,通过循环,把五行数据的值输出来*/
for i in -1..3 loop --使用table类型
select sname into table_type(i) from stu where sno=j; --使用table类型
j:=j+1; --使用table类型
dbms_output.put_line(table_type(i)); --使用table类型
end loop; --使用table类型
vsno:=&学号;
vsname:=&姓名;
vage:=&年龄;
vsex:=&性别;
vtno:=&课程号;
vgrade:=&成绩;
insert into stu values (vsno,vsname,vage,vsex,vtno,vgrade);
savepoint sp1;
/*在程序块里写一个事务分成两个单元(一个存储点)
存储点之前给emp表插入一行数据
存储点之后给emp表的某一行修改下age ,然后查询该行的age ,
如果age > 40 回滚到存储点提交事务,如果条件不满足,提交整个事务*/
update stu set age=age+10 where sno=vsno;
select age into vage from stu where sno=vsno;
if vage>40
then rollback to sp1;
end if;
commit;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -