oracle pl sql面试题,SQL面试:PL/SQL面试问题和答案大全
PL / SQL是SQL的高級版本。給出了帶有答案的PL / SQL面試問題的最高列表。
1)什么是PL / SQL?
PL / SQL代表對SQL的過程語言擴展。它支持編程語言和SQL的過程功能。它是由Oracle Corporation在90年代初開發的, 目的是增強SQL的功能。
2)使用PL / SQL的目的是什么?
PL / SQL是SQL的擴展。盡管SQL是非過程性的, 但PL / SQL是Oracle設計的過程性語言。發明它是為了克服SQL的局限性。
3)PL / SQL的最重要特征是什么?
一些重要特征的列表:
PL / SQL是一種塊結構語言。
它可移植到所有支持Oracle的環境中。
PL / SQL與Oracle數據字典集成在一起。
存儲過程有助于更好地共享應用程序。
4)什么是PL / SQL表?為什么使用它?
類型表的對象稱為PL / SQL表, 其建模為數據庫表。我們也可以說PL / SQL表是提供數組的一種方法。數組就像內存中的臨時表一樣, 可以非常快速地進行處理。 PL / SQL表用于移動批量數據。它們簡化了移動的數據收集。
5)PL / SQL中有哪些可用的數據類型?
PL / SQL中有兩種類型的數據類型:
標量數據類型示例為NUMBER, VARCHAR2, DATE, CHAR, LONG, BOOLEAN等。
復合數據類型的示例是RECORD, TABLE等。
6)PL / SQL的基本結構是什么?
PL / SQL使用BLOCK結構作為其基本結構。每個PL / SQL程序都由構成PL / SQL塊的SQL和PL / SQL語句組成。
PL / SQL塊包含3個部分。
聲明部分(可選)
執行科(強制性)
異常處理部分(可選)
7)PL / SQL中的FUNCTION, PROCEDURE和PACKAGE有什么區別?
函數:PL / SQL函數的主要目的通常是計算并返回單個值。函數在其規范中具有返回類型, 并且必須返回該類型中指定的值。
過程:過程沒有返回類型, 并且不應返回任何值, 但是它可以具有一個return語句, 該語句只是簡單地停止執行并返回給調用方。一個過程用于返回多個值, 否則它通常類似于一個函數。
包:包是架構對象, 將邏輯上相關的PL / SQL類型, 項目和子程序分組。你也可以說它是一組函數, 過程, 變量和記錄類型的語句。它提供了模塊化功能, 因為它有助于應用程序開發。它用于隱藏未經授權的用戶的信息。
8)什么是例外?什么是例外類型?
異常是PL / SQL的錯誤處理部分。有兩種類型的異常:pre_defined異常和user_defined異常。
9)如何編寫一個將單詞串聯在一起的語句?和”世界”?并將其分配給名為Greeting的變量?
問候語:=’Hello’|| ‘世界’;
10)PL / SQL是否支持CREATE命令?
不可以。PL/ SQL不支持CREATE等數據定義命令。
11)編寫函數和存儲過程之間的唯一區別。
當存儲過程不返回值時, 函數返回值。
12)異常與錯誤有何不同?
每當發生錯誤時, 就會發生異常。錯誤是錯誤, 而異常是警告或錯誤情況。
13)使用索引的主要原因是什么?
更快地訪問表中的數據塊。
14)什么是PL / SQL例外?告訴我任何三個。
Too_many_rows
沒有找到數據
值錯誤
Zero_error等
15)如何聲明用戶定義的異常?
你可以在DECLARE部分下使用關鍵字EXCEPTION聲明用戶定義的異常。
語法
EXCEPTION;
16)PL / SQL中有哪些預定義的例外?
PL / SQL中的預定義異常列表:
DUP_VAL_ON_INDEX
ZERO_DIVIDE
沒有找到數據
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
無效號碼
INVALID_CURSOR
PROGRAM_ERROR
超時_ON_RESOURCE
STORAGE_ERROR
LOGON_DENIED
VALUE_ERROR
等等
17)PL / SQL中的觸發器是什么?
觸發器是存儲在數據庫中的PL / SQL程序。它在執行INSERT, UPDATE和DELETE命令之前或之后立即執行。
18)可以在一個表上應用的最大觸發器數是多少?
12個觸發器。
19)PL / SQL中存在幾種類型的觸發器?
PL / SQL中有12種類型的觸發器, 包含BEFORE, AFTER, ROW, TABLE, INSERT, UPDATE, DELETE和ALL關鍵字的組合。
在所有行插入之前
所有行插入后
插入之前
插入后等
20)執行觸發器和存儲過程有什么區別?
觸發器將自動執行, 而無需用戶執行任何操作, 而存儲過程則由用戶顯式調用。
21)將觸發器與視圖關聯時會發生什么?
當觸發器與視圖關聯時, 通常會啟用基表觸發器。
22)觸發器中WHEN子句的用途是什么?
WHEN子句指定要觸發的觸發器必須為真的條件。
23)如何禁用觸發器名稱update_salary?
ALTER TRIGGER update_salary DISABLE;
24)使用哪個命令刪除觸發器?
DROP TRIGGER命令。
25)在執行數據庫觸發器時, 兩個可用的虛擬表是什么?
表列稱為THEN.column_name和NOW.column_name。
對于與INSERT相關的觸發器, NOW.column_name值僅可用。
對于與DELETE相關的觸發器, THEN.column_name值僅可用。
對于與UPDATE相關的觸發器, 兩個Table列均可用。
26)什么是存儲過程?
存儲過程是執行一個或多個特定功能的語句序列或命名的PL / SQL塊。它類似于其他編程語言中的過程。它存儲在數據庫中, 并且可以重復執行。它存儲為架構對象。它可以嵌套, 調用和參數化。
27)使用PL / SQL可以創建哪些不同的模式對象?
存儲過程和功能
配套
扳機
游標
28)你對PL / SQL游標了解什么?
Oracle使用工作區來執行SQL命令。 Oracle處理SQL命令時, 它將在內存中打開一個稱為”專用SQL區域”的區域。該區域由光標標識。它允許程序員命名該區域并訪問其信息。
29)隱式游標和顯式游標之間有什么區別?
隱式游標由Oracle隱式聲明。這是所有僅返回一行的DDL和DML命令的光標。
為返回多行的查詢創建顯式游標。
30)你將通過游標屬性SQL%ROWCOUNT得到什么?
游標屬性SQL%ROWCOUNT將返回由SQL語句處理的行數。
31)你將通過游標屬性SQL%FOUND得到什么?
如果至少處理了一行, 它將返回布爾值TRUE。
32)你將通過游標屬性SQL%NOTFOUND得到什么?
如果未處理任何行, 則返回布爾值TRUE。
33)你對PL / SQL包了解什么?
可以將PL / SQL包指定為一個文件, 該文件將功能, 游標, 存儲過程和變量集中在一個位置。
34)PL / SQL包的兩個不同部分是什么?
PL / SQL軟件包包含以下兩個部分:
規范部分:指定用于定義應用程序接口的部分。
正文部分:此部分指定在何處定義規范的實現。
35)使用哪個命令刪除軟件包?
DROP PACKAGE命令用于刪除軟件包。
36)如何執行存儲過程?
有兩種執行存儲過程的方法。
在SQL提示符下, 寫EXECUTE或EXEC, 后跟procedure_name。
EXECUTE or [EXEC] procedure_name;
只需使用過程名稱
procedure_name;
37)存儲過程的優點是什么?
模塊化, 可擴展性, 可重用性, 可維護性和一次編譯。
38)在PL / SQL中使用哪些游標屬性?
%ISOPEN:它檢查游標是否打開。
%ROWCOUNT:返回受DML操作影響的行數:INSERT, DELETE, UPDATE, SELECT。
%FOUND:它檢查游標是否已獲取任何行。如果是, 則為TRUE。
%NOTFOUND:它檢查游標是否已獲取任何行。如果否-TRUE。
39)語法錯誤和運行時錯誤有什么區別?
PL / SQL編譯器可以輕松檢測到語法錯誤。例如:拼寫錯誤等, 而運行時錯誤則通過PL / SQL塊中的異常處理部分進行處理。例如:SELECT INTO語句, 不返回任何行。
40)解釋Commit語句。
對于Commit語句, 滿足以下條件:
其他用戶可以查看交易所做的數據更改。
交易獲得的鎖被釋放。
交易完成的工作成為永久性的。
41)解釋回滾語句?
事務結束時發出Rollback語句。以下條件適用于Rollback語句:
過渡中完成的工作被撤消, 就好像從未發布過一樣。
交易獲得的所有鎖均被釋放。
42)解釋SAVEPOINT語句。
使用SAVEPOINT, 只能撤消部分事務。
43)什么是變異表錯誤?
當觸發器嘗試更新其當前正在使用的行時, 發生突變表錯誤。它通過使用視圖或臨時表來修復。
44)什么是一致性?
一致性只是意味著每個用戶都能看到一致的數據視圖。
考慮一個例子:有兩個用戶A和B。A將錢轉入B的帳戶。在這里, 更改將在A的帳戶(借方)中更新, 但直到將其更新為B的帳戶(貸方)為止, 然后其他用戶才能看到A的帳戶的借方。在借記A和貸記B之后, 可以看到更新。那是一致性。
45)什么是光標, 為什么需要它?
游標是執行SQL語句時在系統內存中創建的臨時工作區。
游標包含有關select語句和它所訪問的數據行的信息。該臨時工作區存儲從數據庫檢索的數據并處理該數據。游標可以容納多于一行, 但一次只能處理一行。需要游標來單獨處理查詢行。
46)PL / SQL中有多少種游標可用?
PL / SQL中有兩種游標類型。
隱式游標, 以及
顯式游標
Java OOP面試問題
Java字符串和異常面試問題
JDBC面試問題
JSP面試問題
休眠面試問題
SQL面試題
Android面試題
MySQL面試問題
Java基礎面試問題
Java多線程面試問題
Java Collection面試題
Servlet面試問題
春季面試問題
PL / SQL面試問題
Oracle面試問題
SQL Server面試問題
總結
以上是生活随笔為你收集整理的oracle pl sql面试题,SQL面试:PL/SQL面试问题和答案大全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark SQL面试题
- 下一篇: mysql面试必会6题经典_经典sql面