oracle第四章PLSQL习题及答案习题四一、选择题1.关于PL/SQL程序设计语言的优点,说法不正确的是()A.PL/SQL是结构化查询语言,与SQL语言没有区别B.PL/SQL是集过程化功能和查询功能为一体的语言C.PL/SQL程序设计语言可以进行错误处理D.PL/SQL程序设计语言可以定义变量,使用控制结构2.关于在PL/SQL程序设计中使用输出语句,说法不正确的是()A.使用输出语句之前,需要激活系统包DBMS_OUTPUTB.输出语句为DBMS_OUTPUT系统包中的PUT_LINE函数C.激活输出包的语法为SETserveroutputOND.PL/SQL中行注释用符号//3.下列选项中,()是PL/SQL块的必选项。A.DECLAREC.EXCEPTIOND.SELECTB.BEGIN4.在PL/SQL块中不能直接嵌人(A.SELECTB.INSERTC.CREATETABLE下列变量定义方法不正确的是()。A.alVARCHAR2(10);a2al%TYPE;B.a3student.sno%TYPE;C.a4student%ROWTYPE;D.b2bl%TYPE;b1VARCHAR2(10);6.下列记录类型的变量有()个分变量。CURSORs1ISSELECTsno,sname,ageFROMstudent;v_cs_18ROWTYPE;A.1B.2C.3D.47.在PL/SQL中,非法的标识符是()A.table$123B.123tableC.table123D.Table_1238.判断IF语句∶IFv_numELSIFv_numELSIFv_num20THENv_example:=3;ELSIFv_num35THENv_example:=4;ELSEv_example:=5;ENDIF如果v_num是37,值()将被赋值给v_exampleA.1B.2C.3D.49.判断IF语句∶IFa10THENb:=0;ELSEIFa5THENb:=1;ELSETHENb:=2;END;上述语句中有()处错误。A.0B.1C.2D.310.判断CASE语句∶CASEaWHEN'A'THENa:='M';WHEN'A'THENa:='N';WHEN'B'THENa:='P';WHEN'B'THENa:='Q';ENDCASE;如果变量a的初始值是B,那么执行CASE语句之后a的值是()。A.MB.NC.PD.Q11.判断简单循环语句∶DeCLAREsumlNUMBER:=0;iNUOMBER:=1;BEGINloopsuml:=sum1+i;i++;exitwheni10;EXD;dbms_output.put_line('1~10之间的整数和是∶',suml);END;上述语句中有()处错误。A.0B.1C.2D.D.312.执行以下语句∶DBECLAREnNUMBER:=1;sumlNUMBER:=0;BBGINWHILEnsum1:=sum1+n;n:=n+1;ENDL00P;dbms_output.put_line(sum1);END;执行完成后输出的结果是()。A.0B.11C.55D.死循环13.执行以下语句∶DECLAREiNUMBER;BEGINFORiIN5..4LOOPdbms_output.put_line('');ENDLOOP;END;3执行完成后循环次数为()A.0次B.2次C.4次D.5次二、应用题1.IF条件语句实现。通过键盘输人某个学生的学号和课程号,查询该学生选课表中的成绩,判断成绩的等级并输出.若成绩90分,输出成绩为∶优秀;若成绩80分,输出成绩为∶良好;若成绩70分,输出成绩为∶中等;若成绩60分,输出成绩为∶及格;若成绩2.计算1~100的偶数和。输出1~~100的偶数和为∶?。要求分别用简单LOOP循环、WHLE循环和FOR循环实现。第1章PL/SQL概述一、选择题1.A2.D3.B4.C5.D6.C7.B8.C9.D10.C11.D12.C13.A二、上机实验题1.1.IF条件语句实现通过键盘输入某个学生的学号和课程号,查询该学生选课表中的成绩,判断成绩的等级并输出。若成绩90分,输出“成绩为:优秀”;若成绩80分,输出“成绩为:良好”;若成绩70分,输出“成绩为:中等”;若成绩60分,输出“成绩为:及格”;若成绩答:declarev_snosc.sno%type:=&a;//通过键盘输入v_cno:=&b;//通过键盘输入v_gradesc.grade%type;beginselectgradeintov_gradefromscwheresno=v_snoandcno=v_cno;dbms_output.put_line('成绩为:'||v_grade);ifv_grade90thendbms_output.put_line('成绩为:优秀');elsifv_grade80thendbms_output.put_line('成绩为:良好');elsifv_grade70thendbms_output.put_line('成绩为:中等');elsifv_grade60thendbms_output.put_line('成绩为:及格');elsedbms_output.put_line('成绩为:不及格');endif;end;2.计算1-100的偶数和。输出“1-100的偶数和为:?”要求分别用简单loop循环、while循环和for循环实现答:简单loop循环:declarev_sumNUMBER:=0;v_numnumber:=1;beginloopifmod(v_num,2)=0thenv_sum:=v_sum+v_num;endif;v_num:=v_num+1;ifv_num100thenexit;endif;endloop;dbms_output.put_line('1-100的偶数和为:'||v_sum);end;while循环:declarev_sumNUMBER:=0;v_numnumber:=1;beginwhilev_num=100loopifmod(v_num,2)=0thenv_sum:=v_sum+v_num;endif;v_num:=v_num+1;endloop;dbms_output.put_line('1-100的偶数和为:'||v_sum);end;for循环:declarev_sumNUMBER:=0;beginforiin1..100loopifmod(i,2)=0thenv_sum:=v_sum+i;endif;endloop;dbms_output.put_line('1-100的偶数和为:'||v_sum);end;