为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请问以下关于Oracle程序的一些问题,麻烦大佬帮忙看看!

你好,请问以下关于Oracle程序的一些问题,麻烦大佬帮忙看看!

忽然笑 2021-08-25 19:15:09
(1)如果LV_AMT_NUM的值是1200,那么最后LV_SHIP_NUM的值是多少?If lv_amt_num>500 thenLv_ship_num:=5;Elsif lv_amt_num>1000 thenLv_ship_num:=8;Elsif lv_amt_num>1700 thenLv_ship_num:=10;ElseLv_ship_num:=13;End if;结果:____________5_______________(2)假设EMP表中没有EMPNO等于7966的数据,则程序输出结果?Declarev_id emp.empno%type;v_name emp.ename%type;Cursor c_emp is select empno,ename into v_id, v_name from emp where empno=7966;Beginopen c_emp;loopfetch c_emp into v_id,v_name;exit when c_emp%notfound;end loop;close c_emp;dbms_output.PUT_LINE('输出数据');exceptionwhen no_data_found thendbms_output.PUT_LINE('没有数据');End;结果:___________________________(3)判断在下列位置中游标%FOUND属性的值。(假设temp_table表中只有一条数据)DeclareCursor c_tempdata isSelect * from temp_table;V_temprecord c_tempdata%rowtype;Begin①open c_tempdata;②fetch c_tempdata into V_temprecord;③fetch c_tempdata into V_temprecord;④close c_tempdata;⑤End;结果:___________________________(4)判断下列程序运行的结果。Create or replace procedure raiseerror( p_raise in boolean:=true, p_parametera out number) asBeginp_parametera:=4;If p_raise thenraise dup_val_on_index;ElseReturn;End if;End raiseerror;如果我们从下面的块中调用raiseerrorDeclarev_tempvar number:=1;Beginraiseerror(false,v_tempvar);dbms_output.put_line(v_tempvar);v_tempvar:=2;raiseerror(true,v_tempvar);Exceptionwhen others thendbms_output.put_line(v_tempvar);End;结果:___________________________(5)阅读下段程序,最后v_result的值是多少?Declarev_number1 number;v_number2 number;v_result varchar2(7);Beginif v_number1<v_number2 thenv_result:='yes';elsev_result:='no';end if;dbms_output.put_line(v_result);End;条件谓词允许触发器___________A、指定对不同事件执行不同的操作B、在UPDATE中引用原始值和新值C、向触发器添加WHEN子句D、添加在触发触发器之前必须满足的条件触发器与过程不同,它___________A、不需要明确执行 B、需要明确执行C、包含PL/SQL块 D、可以引用封装变量
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

(1) 5
(2)输出数据
没有数据
(3)NULL ,NULL ,NOT NULL, NOT NULL,NULL;
(4) 4
2
(5) yes;
补充:C;
A;

查看完整回答
反对 回复 2021-08-30
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

(1)5
(2)输出数据
(3)NULL,NULL,1,0,NULL
(4) 4
2
(5)no
补充:A
A

我的执行执行过程:
SQL> Declare
2 v_id a.id%type;
3 v_name a.name%type;
4 Cursor c_emp is select id,name into v_id, v_name from a where id=0;
5 Begin
6 open c_emp;
7 loop
8 fetch c_emp into v_id,v_name;
9 exit when c_emp%notfound;
10 end loop;
11 close c_emp;
12 dbms_output.PUT_LINE('输出数据');
13 exception
14 when no_data_found then
15 dbms_output.PUT_LINE('没有数据');
16 End;
17 /
输出数据

PL/SQL 过程已成功完成。

SQL> Create or replace procedure raiseerror( p_raise in boolean:=true, p_parametera out number) as
2 Begin
3 p_parametera:=4;
4 If p_raise then
5 raise dup_val_on_index;
6 Else
7 Return;
8 End if;
9 End raiseerror;
10 /

过程已创建。

SQL> Declare
2 v_tempvar number:=1;
3 Begin
4 raiseerror(false,v_tempvar);
5 dbms_output.put_line(v_tempvar);
6 v_tempvar:=2;
7 raiseerror(true,v_tempvar);
8 Exception
9 when others then
10 dbms_output.put_line(v_tempvar);
11 End;
12 /
4
2

PL/SQL 过程已成功完成。

SQL> Declare
2 v_number1 number;
3 v_number2 number;
4 v_result varchar2(7);
5 Begin
6 if v_number1<v_number2 then
7 v_result:='yes';
8 else
9 v_result:='no';
10 end if;
11 dbms_output.put_line(v_result);
12 End;
13 /
no

PL/SQL 过程已成功完成。



查看完整回答
反对 回复 2021-08-30
  • 2 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信