PL / SQL的面试问题与回答

以下是50多个经常被问到的PL/SQL面试问题和答案,它们一定能帮助你完成最难的面试之一。
Q1。如何回滚过程的特定部分或任何PL/SQL程序?
在PL/SQL程序的定义过程中,可以使用保存点来完成。
Q2。SQLPlus中有PL/SQL引擎吗?
与Oracle窗体不同,SQLPlus没有SQL引擎。因此,所有的PL/SQL都直接发送到数据库引擎执行。这使得它更高效,因为SQL语句未被发现并单独发送到数据库。
PL/SQL面试问答
Q3。例外的类型有哪些?
用户定义和系统异常。
Q4。光标的基本用法是什么?
光标基本上用于访问数据库或表中的多个记录的值。
Q5。一个过程和一个函数的基本区别是什么?
Procedures和Functions都具有访问参数的能力,但是Functions向PL/SQL块返回一个值,而Procedures不返回任何值。
Q6。PL/SQL过程中的参数模式是什么?
IN、OUT和OUT是PL/SQL过程的不同模式。
Q7。PL/SQL触发器的不同组件是什么?
触发器动作、触发器限制和触发器动作是PL/SQL触发器的不同组件。
Q8。描述Database Trigger在存储过程中的缺点吗?
我们不能控制触发器的执行,而存储过程的执行可以由程序员控制。

Q9。数据库的特性是什么?
数据库的属性也称为“酸性”属性。这些是原子性、一致性、隔离性和耐久性。
Q10。如何从数据库的用户处获取输入?
你可以使用输入操作符。这是如下:
VAL1: =和VAL1;
Q11。%ROWTYPE使用什么?
如果希望创建需要从数据库中获取变量值并且不知道该变量的数据类型的新变量,则使用此选项。%ROWTYPE将自动将其数据类型更改为数据库中的数据类型。
Q12。RaseSeApple TyrReRoR()的参数是什么?
参数是:错误代码和错误消息。
语法是:RaseSUpApdioTyError(错误代码,错误消息);
Q13。回滚命令和提交命令之间的区别是什么?
Commit命令用于将当前事务保存在数据库中,其中使用数据库操作语言(DML)命令对数据库进行修改。然而,回滚命令用于撤消以前由DML命令所做的修改。
Q14。Level Trigger的声明是什么?
当语句或命令影响独立于任何表中的一行的整个表时,将执行语句级触发器。
Q15。显式光标的不同部分是什么?
在制作显式游标的过程中,不同的部分如下:
1。声明光标
2。打开光标
三。获取光标
4。关闭光标
Q16。请参阅各种类型的PL/SQL异常?
PL/SQL异常如下:
1。零分
2。诺阿数据发现
三。CursRealAdRelyyOxOPEN
4。洛吉尼否认
Q17。如何启用或禁用触发器?
要启用触发器,语法是:更改触发器TrutGryNoEnabl;
若要禁用触发器,语法是:更改触发器TrutGryNoD禁用;
Q18。如何将名称分配给未命名的PL/SQL异常块?
您可以使用一个名为PrabMa,也被称为ExabutyInIT的非命名异常分配一个名称。
Q19。PL/SQL异常中错误代码的范围是什么?
PL/SQL异常的错误代码范围在-20000和-20899之间。
Q20。PL/SQL中的上下文区域是什么?
Oracle在一个称为上下文区域的单独的内存区域中处理执行的SQL语句。它包含有关SQL Query的信息、它访问的行数、从数据库表/记录检索的信息等等。
Q21。Oracle PL/SQL中默认的游标是哪一个?
隐式游标是PL/SQL中的默认游标。当遇到诸如插入、删除或更新的DML语句时,这些游标自动激活。
Q22。为什么在显式光标开发过程中需要关闭游标?
这是很重要的,因为当系统处于活动状态时,它将消耗系统内存,如果系统内存没有关闭或终止,那么它将不会让内存中的其他东西被占用,以后内存将满。因此,删除是必要的。
Q23。在PL/SQL数据库中加入各种循环。
PL/SQL中使用的各种循环如下:
1。简单回路
2。for循环
三。嵌套循环
4。while循环
Q24。解释了Sql和Sql码及其重要性。
SqrErm返回遇到的最后一个错误的错误消息。当其他异常时,SqLELM是有用的。它们可以用于错误处理中的报告目的。它们还可以在代码中存储错误并将其存储在错误日志表中。SqLCODE返回先前错误的错误编号的值。
Q25。当使用NULL进行比较时,需要注意哪些规则?
1。NULL不应该是真的或假的。
2。如果表达式中的值为NULL,则表达式本身除了嵌套运算符之外,计算为空。
三。NULL永远不等于或不等于其他值。
4.NULL不是一个值,它表示数据的缺失。所以NULL是独一无二的
Q26。运行时错误和语法错误有什么区别?
运行时错误是在PL/SQL块中的异常处理机制的帮助下处理的,而诸如拼写错误之类的语法错误则由SQL编译器有效地检测。
Q27。解释语用例外。
它允许我们处理Oracle预先定义的消息,其中我们可以替换自己的消息。因此,我们可以指示编译器在编译时将用户指定的消息链接到Oracle预定义消息。
语法:PrimaExabutyIn(异常名称,Error代码)
Q28。什么是突变表错误?
当触发器试图更新当前处于执行阶段的行时发生。因此,通过使用临时表和视图来解决。
Q29。将触发器应用于表的最大限制是什么?
可以应用于一个表的最大触发数是12。
Q30。什么是查明光标是否打开的方法?
光标状态变量可用于查明光标是否打开。它是打开的。

Q31。行级触发器是什么?
每当语句或命令通过数据库操作命令(DML)语句(如Delete、Insert或Update)影响表中的行时,都会执行语句级触发器。
Q32。什么是活动集?
光标在一个时间点上保持的行集称为活动集。
Q33。PL/SQL中使用的循环控制结构有哪些不同?
PL/SQL中不同的循环控制结构如下:
1。出口
2。何时退出
三。继续
4。古托
Q34。在PL/SQL中使用的设置Server输出函数是什么?
在PL/SQL中,我们经常需要在控制台上生成输出。我们通常使用DMSMSUputo.PuthLin()函数来实现它。为了使其正常工作并在控制台屏幕上显示输出,我们需要首先将服务器输出设置为ON状态。为此,命令是:设置Server输出on;
Q35。哪些数据类型在PL/SQL中可用?
在PL/SQL中主要有两种主要的数据类型,它们进一步细分为许多数据类型,它们是:
1。复合数据类型:记录、表等。
2。标量数据类型:日期、数字、布尔、VARCHAR、长、VARCHAR2等。
Q36。解释截断和删除之间的区别?
截断比删除命令快得多。它在执行之后基本上重置内存块。删除是数据库操作语言(DML)命令,而截断是数据定义语言(DDL)命令,并且比较慢。
Q37。简单地解释一下包装。
包是一个架构对象,它将逻辑上相关的PL/SQL数据类型和子程序组装起来。它实际上是过程、函数、记录类型和变量的组合。它增强了应用程序的开发,并提供了模块化程序。它还提供了隐藏来自未授权用户的数据的封装。
Q38。游标的缺点是什么呢?还有其他选择吗?
与连接相比,光标的处理非常慢。因此,连接可以替代游标。
Q39。在输出文件和日志文件中显示消息的方法是什么?
输出文件和日志文件可以用来显示消息:使用FNDFIL.PUTYLIN。
Q40。Grand命令和ReVoCK命令有什么区别?
Grant命令允许最终用户对数据库执行某些活动,而Revoke命令阻止最终用户对数据库进行任何更改。
Q41。在PL/SQL中加入游标的属性。
%WROUNTUCT:此属性检查已更新、删除或获取的行数。
%ISOPENT:此属性检查您要访问的光标当前是打开还是关闭。
%发现:此属性检查游标是否已获取行。如果提取了任何行,则返回true。%NoDebug:此属性检查游标是否获取任何行。如果没有获取任何行,则返回真值。
Q42。什么是RAISE应用程序错误?
它是包含在Dbms_Standard包中的过程,允许从数据库存储子程序或触发器发出用户定义消息。
Q43。解释Varchar和Char的区别吗?
Varchar在声明变量时不保留内存位置。它只在定义变量或赋值之后存储值。其存储容量为32767字节。
然而,char保留了变量声明中提到的内存位置,即使不使用它。字符变量的最大存储容量为255字节。
Q44。解释PL/SQL中的联合、联合、交叉和减去。
联合:它返回由任一查询选择的所有不同行。
联合所有:它返回所有查询的所有行,其中包括所有的重复。
交叉:它返回由两个查询选择的所有不同行。
减:它返回第一个查询所选的所有不同行,而不是第二个。
Q45。VARCHAR2和VARCHAR有什么区别?
Varchar2 Datatype是内存有效的,因为它是可变的内存存储数据类型,而Varchar Datatype变量不是内存有效的,因为它有固定的内存存储。VARCHAR占用空值的空间,而VARCHAR2变量不占空。VARCHAR可以存储多达2KB,而VARCHAR2数据类型可以存储多达4KB。
Q46。什么是突变表错误,你如何解决它?
如果触发器试图更新当前正在使用的行,则会发生。这可以通过使用临时表或视图来解决。
Q47。征集甲骨文提供的软件包供开发者使用?
Oracle提供了诸如Dbms_Transaction、Dbms_Alert、Dbms_Job、Dbms_Ddl、Dbms_Output、Dbms_Ut.、Dbms_Lock、Dbms_Sql、Dbms_Pipe和Utl_File之类的包。
Q48。解释SQL和SQLPlus之间的区别。
SQL表示结构化查询语言,用于管理数据库。它是一种非过程的编程语言,是关系数据库管理系统(RDBMS)的标准语言。但是,SQLPlus是一个Oracle特定的程序,它使用PL/SQL块执行SQL命令。
Q49。解释批量收集。
这是一种获取大量数据的方法。在Oracle Bulk Collect的帮助下,PL/SQL引擎指示SQL引擎在一个时间点收集多行并将它们存储到集合中。然后它切换回PL/SQL引擎。在批量收集期间,上下文切换在一个点上。随着采集到的行数的增加,性能的改善会更好。
Q50。列出触发器的类型及其组合。
触发器中可以使用各种类型的组合,它们是.、.、Insert、Update、Delete、Row、Table和其他此类组合。
Q51。从死锁中恢复的方法
选择受害者、回滚和饥饿是从死锁中恢复的方法。
Q52。获取并发控制方案。
各种并发控制方案有基于锁的协议、验证基础协议、基于时间戳的协议和多版本方案。
因此,这是所有重要的PL/SQL面试问题和答案的列表,在面试中经常被问到。如果您在以上列表中发现任何信息不正确或遗漏,请在下面评论。

上一篇: Python的面试问题与回答
下一篇: 核心java面试问题与回答