PL/SQL 模拟测试



本节提供与PL/SQL相关的各种模拟测试集。您可以将这些示例模拟测试下载到本地计算机,并在方便时离线解答。每个模拟测试都附带一个答案,以便您验证最终分数并进行自我评分。

问答

PL/SQL 模拟测试一

答案:D

答案:B

题9 - 以下哪个不是 PL/SQL 单元?

A - 表

B - 类型

C - 触发器

D - 包

答案:A

题14 - 如下声明的变量将分配什么值?

counter binary_integer;

A - 0

B - 1

C - NULL

D - 以上都不是。

答案:C

题15 - 考虑以下代码:

DECLARE
   -- Global variables 
   num number := 95; 
BEGIN 
   dbms_output.put_line('num: ' || num1);
   DECLARE 
      -- Local variables
      num number := 195; 
     BEGIN 
      dbms_output.put_line('num: ' || num1);
     END; 
END;

执行代码时会发生什么?

A - 它不会执行,它有语法错误

B - 它将打印

     num: 95

     num: 195

C - 它将打印

     num: 95

     num: 95

D - 它将打印

     num: 195

     num: 195

答案:B

答案:D

题18 - 以下代码段的输出是什么?

DECLARE
   a number (2) := 21;
   b number (2) := 10;
BEGIN
   
   IF ( a <= b ) THEN
      dbms_output.put_line(a);
   END IF;

   IF ( b >= a ) THEN
      dbms_output.put_line(a);
   END IF;
   
   IF ( a <> b ) THEN
      dbms_output.put_line(b);
   
   END IF;

END;

A - 2

B - 21

C - 10

D - 21, 10

答案:C

题19 - 执行以下代码时将打印什么?

DECLARE
      x   NUMBER;
    BEGIN
      
       x := 5;
       x := 10;
       dbms_output.put_line(-x);
       dbms_output.put_line(+x);
       x := -10;
       dbms_output.put_line(-x);
       dbms_output.put_line(+x);
   END;

A - -10

     10

     10

     -10

B - 10

     -10

     10

     -10

C - -10

     +10

     +10

     -10

D - 10

     -10

     -10

     10

答案:A

题20 - 要获取服务器输出结果并将其显示在屏幕上,您需要编写:

A - set serveroutput on

B - set server output on

C - set dbmsoutput on

D - set dbms output on

答案:A

题22 - 以下代码段的描述正确的是:

DECLARE
   a number(3) := 100;
BEGIN
   IF (a = 50 ) THEN
      dbms_output.put_line('Value of a is 10' );
   ELSEIF ( a = 75 ) THEN
      dbms_output.put_line('Value of a is 20' );
   ELSE
       dbms_output.put_line('None of the values is matching');
   END IF;
   dbms_output.put_line('Exact value of a is: '|| a ); 
END;

A - 它有语法错误。

B - 它将打印“没有一个值匹配”。

C - 它将打印

没有一个值匹配

a 的精确值是:100

D - 以上都不是。

答案:A

解释

ELSIF 语句写成 ELSEIF 是错误的

题23 - 以下代码段的描述正确的是:

DECLARE
   a number(3) := 100;
BEGIN
   IF (a = 50 ) THEN
      dbms_output.put_line('Value of a is 10' );
   ELSIF ( a = 75 )
      dbms_output.put_line('Value of a is 20' );
   ELSE
       dbms_output.put_line('None of the values is matching');
   END IF;
   dbms_output.put_line('Exact value of a is: '|| a ); 
END;

A - 它有语法错误。

B - 它将打印“没有一个值匹配”。

C - 它将打印

没有一个值匹配

a 的精确值是:100

D - 以上都不是。

答案:A

解释

ELSIF 语句缺少 THEN 关键字

题24 - 以下 PL/SQL CASE 语句语法的描述正确的是:

CASE selector
    WHEN 'value1' THEN S1;
    WHEN 'value2' THEN S2;
    WHEN 'value3' THEN S3;
    ...
    ELSE Sn;  -- default case
END CASE;

A - 写错了。

B - 写得很好。

C - 您可以为所有 S 表达式和默认 Sn 指定文字 NULL。

D - 选择器、值和返回值等所有表达式不必具有相同的数据类型。

答案:B

题25 - 以下代码的输出是什么?

DECLARE
   grade char(1) := 'B';
BEGIN
   case 
      when grade = 'A' then dbms_output.put_line('Excellent');
      when grade = 'B' then dbms_output.put_line('Very good');
      when grade = 'C' then dbms_output.put_line('Well done');
      when grade = 'D' then dbms_output.put_line('You passed');
      when grade = 'F' then dbms_output.put_line('Better try again');
      else dbms_output.put_line('No such grade');
   end case;
END;

A - 它有语法错误,因此不会有任何输出。

B - B

C - 非常好

D - 没有这样的等级

答案:C

答案表

题号 答案
1 C
2 D
3 D
4 B
5 D
6 A
7 B
8 D
9 A
10 D
11 D
12 A
13 B
14 C
15 B
16 D
17 B
18 C
19 A
20 A
21 D
22 A
23 A
24 B
25 C
plsql_questions_answers.htm
广告