PL/SQL面試題



尊敬的讀者,這些PL/SQL面試題是專門為了讓您瞭解在PL/SQL面試中可能遇到的問題型別而設計的。根據我的經驗,優秀的 interviewers 很少會提前計劃好面試中要問的具體問題,通常問題會從該主題的一些基本概念開始,然後根據後續討論和您的回答繼續進行。

PL/SQL是SQL的擴充套件。SQL是非過程化的。PL/SQL是由Oracle設計的一種過程化語言,用於克服SQL中存在的侷限性。

正確。

錯誤。PL/SQL具有結構化程式語言的所有特性,包括資料型別、變數、子程式、模組和過程結構。

  • 塊結構語言。

  • 儲存過程有助於更好地共享應用程式。

  • 可移植到所有支援Oracle的環境。

  • 與Oracle資料字典整合。

  • 儲存過程和函式
  • 觸發器
  • 遊標
  • 變數和常量
  • 嵌入式SQL支援
  • 流程控制
  • 遊標管理
  • 異常處理
  • 儲存過程和包
  • 觸發器
  • 宣告部分
  • 執行部分
  • 異常處理部分

使用了錯誤的賦值運算子。正確的語法是:balance := balance + 2000;

greeting := ‘Hello’ || ‘World’;

NOT

OR

冒號(:)表示變數:deficit是一個外部變數。

它為變數分配與建立變數的列相同的 資料型別。例如,

dcode := dept.deptno%type;

變數dcode與dept表deptno列的資料型別相同。

它宣告一個複合變數,該變數等效於表的行。建立變數後,可以使用此變數的名稱訪問表的欄位。

例如

emptype := emp%rowtype;

name := emptype.empname;

包是一個將函式、遊標、儲存過程和變數組合在一個位置的檔案。

觸發器是一個儲存在資料庫中的PL/SQL程式,它在INSERT、UPDATE和DELETE命令之前或之後立即執行。

Oracle使用工作區來執行SQL命令。換句話說,當Oracle處理SQL命令時,它會在記憶體中開啟一個稱為專用SQL區域的區域。遊標是此區域的識別符號。它允許程式設計師為此區域命名並訪問其資訊。

正確。

錯誤。BEGIN宣告開始執行部分。

正確。

錯誤。PL/SQL不支援CREATE之類的 資料定義命令。

它返回SQL語句處理的行數。

如果至少處理了一行,它將返回布林值TRUE。

如果未處理任何行,它將返回布林值TRUE。

LOOP命令、FOR…LOOP命令、WHILE命令。

觸發器在無需使用者任何操作的情況下自動執行,而儲存過程需要顯式呼叫。

基本上,觸發器用於建立一致性、訪問限制和實現資料庫安全性。觸發器還用於:

  • 建立涉及多個表搜尋的驗證機制

  • 建立日誌以登錄檔的用法

  • 根據當前表中的包含或更改更新其他表。

正確。

錯誤。當觸發器與檢視關聯時,基表觸發器通常會被啟用。

正確。

觸發器不能執行COMMIT、ROLLBACK或SAVEPOINT命令。

WHEN子句指定必須為真才能觸發觸發器的條件。

正確。

CREATETRIGGER命令中的可選引數[ORREPLACE]會重新建立現有的觸發器。使用此選項可以在無需先刪除觸發器的情況下更改其定義。

錯誤。INSTEADOF選項僅對檢視有效。不能在表中指定INSTEADOF觸發器。

ALTERTRIGGERupdate_marksDISABLE;

DROPTrigger命令。

DROPPROCEDURE命令。

函式返回值,而儲存過程不返回值。

使用者定義的異常在DECLARE部分使用EXCEPTION關鍵字宣告。語法:

<exception_name>EXCEPTION;

顯式遊標使用CURSOR語句顯式定義,其通用語法為:

CURSORcursor_name[(parameters)]ISquery_expression;

它允許處理返回多行的查詢。

在顯式遊標上需要執行的步驟:

  • DECLARE - 為遊標命名並定義其中的查詢結構。

  • OPEN - 執行查詢,查詢返回的行可用於提取。

  • FETCH - 將當前行(遊標位置)的值賦值給指定的變數。

  • CLOSE - 釋放記憶體空間。

PL/SQL包有兩個部分:

  • 規範部分 - 定義應用程式的介面。

  • 主體部分 - 定義規範的實現。

CREATEPACKAGE命令用於建立規範部分。CREATEPACKAGEBODY命令用於建立主體部分。

包中宣告的型別、物件和子程式使用點表示法引用,如下所示:

package_name.type_name

package_name.object_name

package_name.subprogram_name

正確。

DROPPACKAGE命令。

Oracle為所有僅返回一行的DDL和DML命令隱式宣告遊標。對於返回多行的查詢,將建立顯式遊標。

錯誤。當處理遊標的最後一行並且沒有其他行可用時,%NOTFOUND屬性返回true。

正確。

接下來是什麼?

接下來,您可以回顧一下您以前完成的與該主題相關的作業,並確保您能夠自信地談論它們。如果您是應屆畢業生,面試官不會期望您能夠回答非常複雜的問題,而是要確保您的基礎概念非常紮實。

其次,如果您無法回答一些問題,這並不重要,重要的是,無論您回答了什麼,都必須充滿信心。所以在面試中要自信。Tutorialspoint祝您能遇到一位好面試官,並祝您未來的事業一切順利。乾杯! :-)

plsql_questions_answers.htm
廣告