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
廣告