CTA

PL/SQL is an extension of SQL and can be referred to as Procedural Language/SQL. It allows users to build complex database applications with the help of procedures, modules, functions, control structures, and more. This blog aims to discuss some of the most popular questions that recruiters of major companies generally ask during job interviews. Here is a list of the interview questions along with their answers:

This blog on PL/SQL interview questions is divided into the following parts:

Basic PL SQL Interview Questions for Freshers

Oracle PL SQL Interview Questions for Experienced

PL SQL Interview Questions for 2 to 3 Years of Experience

PL SQL Interview Questions for 4 to 5 Years of Experience

Advanced PL SQL Interview Questions for Senior Developers

PL SQL Interview Questions for 6 to 7 Years for Experience

PL SQL Interview Questions for 8 to 10 Years for Experience

PL SQL Coding Interview Questions

PL SQL Scenario Based Interview Questions

PL SQL Tricky Interview Questions

PL SQL Developer Salary Trends

PL SQL Developers Job Trends

PL SQL Developer Roles and Responsibilities

Conclusion

Did You Know?

  • PL/SQL code can include comments inside it starting with /* and ending with */ like in C programming language. This allows developers to document their code.
  • Every time you interact with friends on social media, be it posting, commenting, or sharing, SQL queries ensure your actions are reflected accurately, such as on Facebook, Twitter, and Instagram.

Watch this video about PL/SQL Interview Questions on YouTube:

Basic PL SQL Interview Questions for Freshers

1. Compare SQL and PL/SQL.

Criteria SQL PL/SQL
What is it? A single query or command execution A full programming language
What does it comprise? A data source for reports, web pages, etc. An application language to build, format, and display reports, web pages, etc.
Characteristic Declarative in nature Procedural in nature
Used for Manipulating data Creating applications

2. What is PL/SQL?

Oracle PL/SQL is a procedural language that has both interactive SQL and procedural programming language constructs such as iteration and conditional branching.

Go through this PL/SQL Tutorial to learn what is PL/SQL?

3. What is the Basic Structure of PL/SQL?

PL/SQL uses a block structure as its basic structure. Anonymous blocks or nested blocks can be used in PL/SQL.

basic structure of PL/SQL

CTA

Become a Database Architect

4. What is a Trigger and what are its uses?

A trigger is a database object that automatically executes in response to some events on the tables or views. It is used to apply the integrity constraint to database objects.

A PL/SQL program unit associated with a particular database table is called a database trigger. It is used for:

  • Audit data modifications
  • Log events transparently
  • Enforce complex business rules
  • Maintain replica tables
  • Derive column values
  • Implement complex security authorizations

database trigger
Any constant, variable, or parameter has a data type depending on which the storage constraints, format, and range of values and operations are determined.

5. What Data Types are Present in PL/SQL?

There are various kinds of data types present in PL/SQL. They are:

  1. Scalar: The scalar data type is a one-dimensional data type with no internal components. CHAR, DATE, LONG, VARCHAR2, NUMBER, and BOOLEAN are some examples of the scalar data type.
  2. Composite: The composite data type is made up of different data types that are easy to update and have internal components that can be utilized and modified together. For instance, RECORD, TABLE, VARRAY, and so on.
  3. Reference: The reference data type stores pointers, which are values that relate to other programs or data elements. REF CURSOR is an example of the reference data type.
  4. Large Object: The large object data type stores locators, which define the location of large items stored out of line such as video clips, graphic images, and so on. BLOB, BFILE, CLOB, and NCLOB are examples of the large object data type.

Get 100% Hike!

Master Most in Demand Skills Now !

6. What are the Basic Parts of a Trigger?

There are three basic parts of a trigger. They are:

  • A triggering statement or event
  • A restriction
  • An action

7. What is a Join?

A join is a query that combines rows from two or more tables, views, or materialized views. A join is performed by the Oracle Database whenever there are multiple tables in the FROM clause of the query. Most of these queries contain at least one join condition, either in the FROM or WHERE clause.

8. What is a View?

A view is created by joining one or more tables. It is a virtual table that is based on the result set of an SQL statement; it contains rows and columns, just like a real table. A view can be created with the CREATE VIEW statement.

Intermediate PL/SQL Interview Questions

9. What are the Various Types of SQL Statements?

The five types of SQL statements are as follows:

  • DDL: Data definition language (DDL) helps in the creation of a database structure or schema. CREATE, DROP, ALTER, RENAME, and TRUNCATE are the five types of DDL commands in SQL.
  • DML: Data manipulation language (DML) allows you to insert, change, and delete data from a database instance. DML is in charge of making all kinds of changes to a database’s data. The database application and the user can insert data and information using three basic commands—INSERT, UPDATE, and DELETE.
  • DCL: GRANT and REVOKE are the commands in the data control language (DCL) that can be used to grant rights and permissions. The database system’s parameters are controlled by other permissions.
  • TCL: Transaction control language (TCL) commands deal with database transactions. Some of the TCL commands are COMMIT, ROLLBACK, and SAVEPOINT.
  • DQL: Data query language (DQL) is used to retrieve data from the database. It just has one command, which is SELECT.

Enroll now in SQL training today to learn SQL concepts from experts.

10. What are the Different Methods to Trace the PL/SQL Code?

Tracing the code is a crucial technique to measure its performance during the runtime. The different methods of tracing the code include:

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION and DBMS_MONITOR
  • trcsess and tkprof utilities

11. What are the Various Types of Parameters in PL/SQL?

There are three types of parameters in PL/SQL. They are as follows:

  • IN: The IN parameter allows you to send values to the procedure that is being called. The IN parameter can be set to default values. It behaves as a constant and cannot be changed.
  • OUT: The OUT parameter returns a value to the caller. The OUT parameter is an uninitialized variable that cannot be used in expressions.
  • IN OUT: The IN OUT parameter sends starting values to a procedure and returns the updated values to the caller. This parameter should be treated as an initialized variable and given a value.

CTA

Become a SQL Developer

12. What are PL/SQL Records?

PL/SQL records are a collection of values. To put it another way, PL/SQL records are a collection of many pieces of information, each of which is of a simpler type and can be associated with one another as fields.

Three types of records are supported in PL/SQL:

  • Records based on tables
  • Records created by programmers
  • Records that are based on a cursor

13. Why do we use Index in a Table?

We use an index in a table to allow quick access to rows. For procedures that return a small percentage of a table’s rows, an index allows quicker access to data.

SQL course in Bangalore is curated with industry-relevent content. Enroll now!

14. What is the Difference among Functions, Procedures, and Packages in PL/SQL?

  • Functions: The main purpose of PL/SQL functions is to compute and return a single value. The functions have a return type in their specifications and must return a specified value in that type.
  • Procedures: Procedures do not have a return type and should not return any value, but they can have a return statement that simply stops its execution and returns to the caller. Procedures are used to return multiple values; otherwise, they are generally similar to functions.
  • Packages: Packages are schema objects that group logically related PL/SQL types, items, and subprograms. You can also say that packages are a group of functions, procedures, variables, and record TYPE statements. Packages provide modularity, which aids in application development. Packages are used to hide information from unauthorized users.

15. Why are Database Links Used?

Database links are used to establish communication across multiple databases or environments such as test, development, and production. Other information can also be accessed using database links, which are read-only.

16. What is a Stored Procedure?

A stored procedure is a sequence of statements or a named PL/SQL block that performs one or more specific functions. It is similar to a procedure in other programming languages. It is stored in the database and can be repeatedly executed. It is stored as a schema object and can be nested, invoked, and parameterized.

17. What is the Overloading of a Procedure?

When the name of the same procedure is repeated with the parameters of different data types and parameters in different places, then that is referred to as procedure overloading.

Know the most common methods for executing function in sql by exploring our blog on how to run function in SQL!

18. What is meant by Expressions?

Expressions are made up of a series of literals and variables that are separated by operators. Operators are used in PL/SQL to manipulate, compare, and calculate data. Expressions are made up of two parts, operators and operands.

19. Which Cursor Attributes are the Result of a Saved DML Statement, when it is Executed?

The statement’s result is saved in four cursor attributes. The four attributes are:

  • SQL% FOUND
  • SQL% NOTFOUND
  • SQL% ROWCOUNT
  • SQL% ISOPEN

20. What is a Cursor? Why is it Required?

A cursor is a temporary work area that is created in system memory when an SQL statement is executed. A cursor contains information on a select statement and the row of data accessed by it. This temporary work area stores the data, which is retrieved from the database, to manipulate it. A cursor can hold more than one row but can process only one row at a time. A cursor is required to process rows individually for queries.

21. What are the Types of Cursors?

There are two types of cursors:

  • Implicit Cursor: When PL/SQL executes an SQL statement, it automatically constructs a cursor without specifying one; these cursors are known as implicit PL/SQL uses implicit cursors for the following statements:
    • INSERT
    • UPDATE
    • DELETE
    • SELECT
  • Explicit Cursor: A programmer declares and names an explicit cursor for the queries that return more than one row. An explicit cursor is a SELECT statement that is declared explicitly in the current block’s declaration section or in a package definition. The following are the commands that are used for explicit cursors in PL/SQL:
    • OPEN
    • FETCH
    • CLOSE

22. How to Delete a Trigger?

To delete a trigger, you need to use the command DROP TRIGGER.

23. What are the Advantages of Stored Procedures?

Stored procedures have various advantages to help you design sophisticated database systems. Some of the advantages of stored procedures as listed below:

  • Better performance
  • Higher productivity
  • Ease of use
  • Increased scalability
  • Interoperability
  • Advance security
  • Replication

24. What are the Various Types of Schema Objects that can be Created by PL/SQL?

There are various types of schema objects that are created by PL/SQL. Some of them are mentioned below:

  • Stored procedures, packages, and functions
  • Object tables, object types, and object views
  • Database triggers
  • Database links
  • Cursors
  • Table
  • View

25. What is the Advantage of Implicit Records?

Implicit records are handy since they do not require hard-coded descriptions. Because implicit records are based on database table records, any changes to the database table records will be reflected in the implicit records automatically.

26. What are the Ways of Commenting in PL/SQL?

In PL/SQL, comments help readability by describing the purpose and function of code portions. Two types of comments are available in PL/SQL. They are as follows:

  • Single-line Comments: Single-line comments start with a double hyphen (- -) at the beginning of a line and go all the way to the conclusion.
  • Multi-line Comments: Multi-line comments start with a slash-asterisk (/*) and terminate with an asterisk-slash (*/), and they can span across several lines.

27. What is %TYPE?

The %TYPE property is used to declare a column in a table that includes the value of that column. The variable’s data type is the same as the table’s column.

28. How do you handle exceptions in PL/SQL?

Programming languages like PL/SQL become more resilient and error-tolerant if exceptions are handled pragmatically. Programmers can regulate how their programs run and elegantly handle unforeseen problems by utilizing the PL/SQL EXCEPTION block. Applications with exception handling are easier to use and have more reliable code.

29. Can you explain the concept of bulk binding in PL/SQL?

Bulk binding in PL/SQL increases performance and gives rise to better data manipulation efficiency. Database operations, which usually take a long time to run, occur substantially faster because bulk binding reduces the number of context switches between the PL/SQL engines. This method lowers the complexity of individual SQL operations, which makes it very useful when working with large datasets.

30. Write a PL/SQL block to find the factorial of a number.

DECLARE
num INTEGER := 5; -- Replace 5 with the desired number
factorial_result NUMBER := 1;
BEGIN
FOR i IN 1..num LOOP
factorial_result := factorial_result * i;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Factorial of ' || num || ' is: ' || factorial_result);
END;

Oracle PL SQL Interview Questions for Experienced

31. What is %ROWTYPE?

The %ROWTYPE property is used to declare a variable that contains the structure of the records in a table. The variable’s data type is the same as the table’s columns.

32. Differentiate between a Temporary Tablespace and a Permanent Tablespace

A temporary tablespace is used to store temporary items such as sort structures, while a permanent tablespace is used to store things that will be used as the database’s genuine objects.

33. How Many Triggers can be Applied to a Table?

A maximum of 12 triggers can be added to a table.

34. What is a Mutating Table Error?

A mutating table error occurs when a trigger tries to update a row that is currently in use. It can be fixed by using views or temporary tables so that the database selects one and updates the other.

35. What does the PLVtab Enable you to do when you Show the Contents of PL/SQL Tables?

PLVtab enables you to do following when you show the contents of PL/SQL tables:

  • Display or suppress the row numbers for the table values
  • Show a prefix before each row of the table
  • Display or suppress a header for the table

36. How to display the second highest salary from an employee table?

DECLARE
secondHighestSal NUMBER;
BEGIN
SELECT MAX(salary) INTO secondHighestSal
FROM employees
WHERE salary < (SELECT MAX(salary) FROM employees);

DBMS_OUTPUT.PUT_LINE('The second highest salary is: ' || secondHighestSal);
END;

37. What is a stored procedure?

In PL/SQL, a named PL/SQL block carrying out one or more specific actions is called a stored procedure. We use them to centralize and encapsulate business logic that can be called and executed from different areas of an application.

Stored procedures in PL/SQL:

Encapsulation of Logic: We use them to centralize and encapsulate business logic that can be called and executed from different areas of an application.

Improved Performance: As the entire procedure is executed on the database server, they can enhance performance by reducing network traffic and improving application response time.

Security and Access Control:  We can only allow certain people to have access to the database by maintaining the security controls.

Reduced Code Duplication: Since it follows a functional approach, and calling the same piece of code again and again is possible. This gives rise to fewer redundancies in code.

Parameterized: Flexible and adaptable to various scenarios because stored procedures allow the parameters.

38. How many triggers can be applied to a table?

In PL/SQL, you can apply up to 12 triggers to a table. These triggers can be a combination of BEFORE and AFTER triggers for INSERT, UPDATE, and DELETE operations, allowing for comprehensive control and customization of the database behavior. When using triggers, it’s important to consider their impact on database performance and ensure that they are used to maintain an efficient and manageable database system.

PL SQL Interview Questions for 2 to 3 Years of Experience

39. What Does a PL/SQL Package Consist Of?

A PL/SQL package consists of:

  • PL/SQL table and record type statements
  • Procedures and functions
  • Cursors
  • Variables, such as tables, scalars, records, etc., and constants
  • Exception names and pragmas for relating an error number with an exception
  • Cursors

Check out this insightful PL/SQL tutorial to learn more about PL/SQL Packages!

40. What do you know about the Commands COMMIT, ROLLBACK, and SAVEPOINT?

COMMIT: The COMMIT command saves changes to a database permanently during the current transaction.

ROLLBACK: The ROLLBACK command is used at the end of a transaction to undo any modifications made since the start of the transaction.

SAVEPOINT: The SAVEPOINT command saves the current point with a unique name during the processing of a transaction.

Career Transition

Got Job With Salary Hike | Process Developer to Sr. Software Engineer Career Transition
Got Multiple Job Offers with 100% Salary Hike | Best SQL Course | Intellipaat Career Transition
How To Switch Career From A Support Role To Oracle DBA Engineer | Got Job With 80% Salary Hike
How To Become A Database Expert From A Non Tech Background | Got Job With Salary Hike | Intellipaat
Got Job as Cloud DBA Just After completion of the Course | Intellipaat Career Transition
SQL Developer to Software Engineer Career Transition | Got Job with 120% Salary Hike | Intellipaat

41. What are the Benefits of PL/SQL Packages?

PL/SQL packages provide several benefits. Some of them are as follows:

Benefits of PL/SQL packages

  • Enforced Information Hiding: It offers the liberty to choose whether to keep the data private or public.
  • Top-down Design: We can design the interface to the code hidden in the package before we actually implement the modules.
  • Object Persistence: Objects declared in a package specification behave like global data for all PL/SQL objects in the application. We can modify the package in one module and then reference those changes in another
  • Object-oriented Design: The package gives developers a stronghold over how the modules and data structures inside the package can be used.
  • Guaranteeing Transaction Integrity: It provides a certain level of transaction integrity.
  • Performance Improvement: The RDBMS automatically tracks the validity of all program objects stored in the database. It also enhances the performance of packages.

42. What is Exception Handling?

Exception handling is a mechanism that is implemented to deal with runtime errors. It can be adjusted in PL/SQL. PL/SQL provides the exception block that raises the exception, thus helping the programmer to find the fault and resolve it. When an error occurs, the program’s error handling code is included. There are two different types of exceptions defined in PL/SQL:

  • User-defined exception
  • System-defined exception

43. Mention a Few Predefined Exceptions

The following are some examples of predefined exceptions:

  • NO DATA FOUND: A single-row SELECT statement that returns no data
  • TOO MANY ROWS: A single row SELECT statement that returns many rows
  • INVALID CURSOR: An incorrect cursor operation is performed
  • ZERO DIVIDE: An attempt at zero division

PL SQL Interview Questions for 4 to 5 Years of Experience

44. What is the Open Cursor Command Function?

When the OPEN cursor command is used to open a cursor, it performs the following operations:

  • Set aside a processing memory region
  • Paese the statement SELECT
  • Use the memory addresses to assign values to input variables
  • Recognize the active set of rows that meet the selection criteria
  • Place the pointer exactly before the active set’s first row

45. What is the use of the || Operator?

The strings are concatenated using the || operator. The || operator is employed by both DBMS_OUTPUT.put line and select statements.

46. What is the difference between Sqlcode and Sqlerrm, and why are they important for PL/SQL Developers?

The value of the error number for the most recent error detected is returned by SQLCODE. The SQLERRM function returns the actual error message for the most recent issue. They can be used in exception handling to report or save the error that happened in the code in the error log database. These are especially important for the exception WHEN OTHERS.

47. How is the Process of PL/SQL Compiled?

Syntax checking, binding, and P-code generation are all part of the compilation process. Syntax checking looks for compilation issues in PL/SQL code. After all mistakes have been fixed, the data holding variables are given a storage address. This process is referred to as binding. The PL/SQL engine’s P-code is a set of instructions. For named blocks, P-code is saved in the database and used the next time it is run.

Go through the Handling PL/SQL Errors tutorial page to know how error handling is done in PL/SQL!

48. What is raise_application_error?

This procedure can be used to send user-defined error messages from stored subprograms. You can prevent returning unhandled exceptions by reporting failures to your application. It appears in two places, the executable section and the exceptional section.

49. In PL/SQL, how can you verify whether an Update Statement is Executed or not?

The SQL % NOTFOUND attribute can be used to determine whether or not the UPDATE statement successfully changed any records. If the last SQL statement run had no effect on any rows, this variable returns TRUE.

Advanced PL SQL Interview Questions for Senior Developers

50. What are the differences between ANY and ALL operators?

ALL Operator: Value is compared to every value returned by the subquery using the ALL operator.

  • > ALL denotes greater than the maximum
  • < ALL denotes less than the minimum
  • <> ALL is the same as NOT IN condition

ANY Operator: Value is compared to each value returned by the subquery using the ANY operator. SOME is a synonym for ANY operator.

  • > ANY denotes something more than the bare minimum
  • < ANY denotes a value lower than the maximum
  • = ANY is the same as the IN operator

51. How to Create a Function?

The syntax to create a CREATE function is below:

CREATE function_name
RETURN return_datatype
{IS | AS}
DECLARE
VARIABLE DATATYPE;
BEGIN
function_body
END function_name;

52. What is a Subquery? What are Its Types?

A subquery is a query within another query. The outer query is known as the main query and the inner query is called the subquery. A subquery is executed first, and the result of the subquery is passed to the main query.

There are two types of subqueries:

  • Correlated
  • Non-correlated

53. How do you Create Nested Tables in PL/SQL?

In PL/SQL, one of the collection types is nested tables. They can be made in a PL/SQL block or at the schema level. These are similar to a 1D array, except their size can be dynamically extended.

The syntax to create a nested table is as follows:

TYPE type_name IS TABLE OF element_type [NOT NULL];
name_of_table type_name;
An example for creating nested tables in PL/SQL is as follows:
DECLARE
TYPE deptname IS TABLE OF VARCHAR2(10);
TYPE budget IS TABLE OF INTEGER;
names deptname;
deptbudget budget;
BEGIN
names := deptname ('Finance', 'Sales', 'Marketing');
deptbudget := budget (89899, 67879, 98999);
FOR i IN 1 .. names.count LOOP
dbms_output.put_line('Department = '||names(i)||', Budget = ' || deptbudget(i));
end loop;
END;

Learn from our SQL Server Interview Questions to crack interviews at top companies.

PL SQL Interview Questions for 6 to 7 Years for Experience

54. What are Pseudocolumns and how do they work? How can Pseudocolumns be used in Procedure Statements?

Pseudocolumns aren’t genuine table columns but they behave like them. Pseudocolumns are used to retrieve specific information in SQL statements. Although pseudocolumns are recognized by PL/SQL as part of SQL statements, they cannot be used directly in a procedural language. The following are the pseudocolumns that are used:

  • CURRVAL and NEXTVAL
  • LEVEL
  • ROWID
  • ROWNUM

55. Explain the Day-to-day Activities in PL/SQL.

  • Create database objects—tables, synonyms, sequences, etc.
  • Implement business rules, create procedures, functions, etc.
  • Impose business rules, create constraints, triggers, etc.
  • Create cursors for data manipulation

56. How can you locate a PL/SQL Block when a Cursor is Open?

The %ISOPEN variable cursor status can be used to find the PL/SQL block.

57. What do you know about pragma_exception_init in PL/SQL?

The pragma_exception_init command in PL/SQL instructs the compiler to associate an exception name with an Oracle error number. This enables one to refer to any internal exception by name and create a custom handler for it.

58. In PL/SQL, what are the differences between Stored Procedure and Stored Function?

The key differences between stored procedure and stored function are:

  • Returning the value in a stored procedure is optional, while returning the value in a stored function is required.
  • A stored procedure can have both input and output parameters, while a stored function can only have either an input parameter or an output parameter.
  • Exception handling is possible in a stored procedure, whereas it is not possible in a stored function.

PL SQL Interview Questions for 8 to 10 Years for Experience

59. How to Display Records having the Maximum Salary from an Employee Table?

Select * from emp where sal= (select max(sal) from emp)

60. What is the Syntax to Disable a Trigger?

ALTER TRIGGER TRIGGER_NAME DISABLE;

61. Which Command is used for Deleting a Package?

The command used for deleting a package is DROP PACKAGE

62. How to Display the Second Highest Salary from an Employee Table?

Select max(sal) from emp where sal not in ( select max(sal) from emp

63. What is a Join?

Join is a keyword that is used to query data from multiple tables based on the relationship between the fields of tables. Keys play a major role in Joins.

64. In PL/SQL, what is the Purpose of the DBMS_OUTPUT Package?

The PL/SQL output is shown on the screen using the DMS_OUTPUT package. get_line, put_Line, new_line, and many more are found in DBMS_OUTPUT. The put_line procedure, which is a part of the DBMS_OUPUT package, is used to display the information in the line.

65. What is a View?

  • A view is a virtual table consisting of the data contained in a table.
  • A view does not need any memory space.
  • A view can be created on multiple tables.

What is a View in PL/SQL

66. Describe a situation where you used PL/SQL to improve database performance.

Situation:

The high volume of data and complex search criteria were causing the product catalog search functionality in a big e-commerce application to perform poorly. This was leading to delays for users when they tried to find products, affecting the overall user experience.

Solution using PL/SQL:

A PL/SQL stored procedure was created to optimize the product search functionality. The stored procedure had efficient querying techniques like proper indexing and employed caching mechanisms to hold the most accessed data. In addition, it used parallel processing to process multiple search criteria at once, thereby reducing response times.

The use of PL/SQL for wrapping and performance tuning of this logic led to significant enhancements in application performance, faster search results, and an improved user experience.

67. Discuss the benefits and drawbacks of using bulk collection in PL/SQL.

Bulk collection in PL/SQL offers substantial performance benefits when handling large datasets, reducing overhead and network traffic. However, it requires careful consideration of memory usage, code complexity, resource utilization, and error handling. Its advantages are particularly significant when dealing with substantial data volumes, but it’s essential to weigh these benefits against the potential drawbacks when deciding whether to use bulk collection in a specific PL/SQL implementation.

68. How would you optimize a PL/SQL program for better performance?

When you’re working with PL/SQL, there are a bunch of ways you can make your program run faster:

  1. Efficient Querying: Think about how you’re retrieving data. Are you using the right indexes? You can also guide the optimizer with query rewriting and hints.
  2. Bulk Processing: Techniques like bulk collect and for all can help you cut down on context switches and SQL statement overhead.
  3. Proper Exception Handling: Good exception handling can help your program run smoother and avoid unnecessary overhead.
  4. Minimize Context Switches: Try to cut down on the number of switches between the PL/SQL and SQL engines by consolidating SQL operations.
  5. Reduce Database Roundtrips: You can cut down on database round trips by consolidating multiple operations into fewer transactions.
  6. Efficient Memory Usage: Think about how you’re using memory. Are you using the right data structures? Are you releasing memory when it’s not required anymore?
  7. Indexing Strategy: Your indexing strategy should line up with how your application accesses data. It’s always a good idea to review and optimize this.
  8. Performance Testing: Make sure you’re testing your program’s performance thoroughly to catch and fix any bottlenecks.
  9. Code Review and Refactoring: Regularly check your PL/SQL code for potential performance issues and refactor if needed.
  10. Use of Profiling Tools: Profiling tools can help you find performance hotspots and optimize the most critical parts of your code.

PL SQL Coding Interview Questions

69. How can you Execute a Stored Procedure?

There are two steps to execute a stored procedure: 

  • Use the EXECUTE keyword. The EXEC keyword can also be used.
  • Call the name of the procedure from a PL/SQL block.

Syntax:

EXECUTE procedure_name;

Or

Exec procedure_name;

70. How can you Switch from an Init.ora File to Spfile?

One can switch from Init.ora file to Spfile by creating a spfile from the pfile command.

71. How can you view the User-defined Functions and Procedures in PL/SQL?

The table USER SOURCE is used to store user-defined functions and procedures. To examine them, the function and procedure names should be specified in uppercase (in select command). The following command is used to inspect the source code of a user-defined function or method:

Select text from user_source where name=’PROCEDURE_NAME’;

72. How do you create nested tables in PL/SQL?

To create nested tables in PL/SQL, you can follow these steps:

  • Define the nested table type using the CREATE TYPE statement, specifying the data type it will hold.
  • Declare a variable of the nested table type, specifying it as a table of the defined type.
  • Initialize the nested table variable using the constructor method.
  • Manipulate the nested table by adding, deleting, or updating elements.

PL SQL Scenario Based Interview Questions

73. How can you Read/Write Files in PL/SQL?

One can read/write operating system text files by using the UTL_FILE package. It provides a restricted version of the operating system stream file I/O, and it is available for both client-side and server-side PL/SQL.

DECLARE
fileHandler UTL_FILE.FILE_TYPE;
BEGIN
fileHandler := UTL_FILE.FOPEN('/home/oracle/tmp','myoutput','z');
UTL_FILE.PUTF(file, 'Value of func1 is %sn',func1(2));
UTL_FILE.FCLOSE(file;
END;

74. How can you Save or Place your msg in a Table?

To save a msg in a table, you either load the individual messages with calls to the add_text procedure or load sets of messages from a database table using the load_from_dbms procedure.

Wish to learn more? Visit the PL/SQL Collections and Records tutorial page!

Advanced PL/SQL Interview Questions and Answers for Experienced Professionals

75. How to Display the Highest Salary from an Employee Table?

Use the following code to display the highest salary from an employee table:

Select max(sal) from emp;

76. Explain the difference between NO_DATA_FOUND and TOO_MANY_ROWS exceptions.

NO_DATA_FOUND Exception:

In PL/SQL, think of this as a polite “Sorry, no results” note. When your query expects data but the search turns up empty, this exception steps in to handle the void. It keeps your code smooth, acknowledging the absence without causing a ruckus.

TOO_MANY_ROWS Exception:

Now, imagine your query is a bit too successful, fetching more rows than expected. TOO_MANY_ROWS politely intervenes, reminding you to refine your search for precision. It’s a gentle nudge to avoid drowning in data abundance.

In a nutshell, NO_DATA_FOUND softens the blow of empty searches, while TOO_MANY_ROWS keeps your data ambitions in check. They’re the savvy guides in your PL/SQL adventure, ensuring your code sails smoothly through expected and unexpected seas.

PL SQL Tricky Interview Questions

77. What is the purpose of the DBMS_OUTPUT Package?

The DBMS_OUTPUT package in PL/SQL serves as a trusted companion for developers, providing a means to display information during the execution of a program. Think of it as your code’s voice – a way to communicate with the developer or user, offering insights and updates.

Key Functions:

Message Display:

When you need your code to speak up, DBMS_OUTPUT comes into play. It allows you to showcase messages, variable values, or any insights directly from your code.

Debugging Aid:

Debugging becomes a breeze with DBMS_OUTPUT. You can strategically place messages at different checkpoints in your program, helping you trace the flow and identify any lurking bugs.

Temporary Data Holder:

Need a temporary space to stash some data? DBMS_OUTPUT lets you store and retrieve data during the program’s execution, aiding in various processing scenarios.

78. What is the syntax to disable a trigger?

To disable a trigger in PL/SQL, you can use the ALTER TRIGGER statement with DISABLE keywords.

Syntax:

ALTER TRIGGER trigger_name DISABLE;

Where,
trigger_name = name of the trigger which you want to disable.

79. What is the advantage of implicit records?

The advantages of Implicit Records are: 

  1. Easy Handling: They simplify working with data by allowing you to access entire rows without needing to define a record type beforehand. This means you don’t have to worry about complex record declarations when dealing with database information.
  2. Adaptability: Implicit records adjust automatically if the structure of the table changes. So, if you add or remove columns from a table, your code doesn’t need to be updated to reflect those changes. It’s like having a flexible tool that can handle different shapes of data effortlessly.
  3. Saves Time: By allowing you to access fields directly with simple dot notation, implicit records cut down on the amount of code you need to write. This makes your code shorter, easier to understand, and quicker to develop, which is great for beginners who are just starting to learn PL/SQL.
  4. Less Hassle: Whether you’re looping through database results or processing data in bulk, implicit records make it easier. You can focus on what you want to do with the data rather than spending time on complicated record declarations or worrying about changes to the table structure.
  5. Less Maintenance: Since implicit records adjust to changes in the table structure, you won’t have to constantly update your code every time there’s a change. This makes your code more robust and reduces the chances of errors creeping in, which is a big relief for beginners who are still getting the hang of things.

CTA

PL SQL Developer Salary Trends

Experience Level Average Salary ( INR) Average Salary (USD)
Entry Level ₹3.5- 6 LPA 60k-85k
Intermediate Level ₹6-12 LPA 85k-110k
Senior Level ₹12- 20  LPA 110k-160k

PL SQL Developers Job Trends

According to the skill testing platforms, the employment of PL/SQL developers is projected to grow by 21% by 2028.

  • Global Demand: With more than 4,000 open jobs on LinkedIn in the United States and more than 9,000 open jobs on Naukri.in India.
  • Growth Projections: You can expect as much as a 56% increase in your salary if you know how Java works. Knowledge of Oracle eBusiness Suite can also help you in getting an increase of 24% in your salary.

PL SQL Developer Roles and Responsibilities

According to the job posted on Naukri.com by Infosys:

Role: Oracle PL/SQL Developer

  1. Responsibilities 
    1. Having excellent hands-on coding and design skills in PL/SQL.
    2. Expertise in query fine-tuning to ensure optimized execution.
    3. Expertise with writing and optimizing stored procedures and complex SQL queries and PL/SQL objects like functions, procedures, packages, triggers, views, cursors, and synonyms.
    4. Should independently work in a complex data environment and maintain applications.
    5. Develop complex PL/SQL packages, procedures,and functions for the application, according to business requirements in Linux and database.
  2. Skills Required
    1. Having knowledge of Oracle PL/SQL programming.
    2. Strong problem-solving, analytical, and debugging skills
    3. Experience with any Oracle versions.
    4. Excellent communication and collaboration skills.
Job Role Description
Database Administrator (DBA) The DBA is responsible for the overall security and maintenance of databases.
Database Developer They specialize in designing and implementing database structures.
Data Engineer They are involved in the design and maintenance of data pipelines and ETL.
Database Architect They ensure that the database architecture aligns with business requirements.
Systems Administrator They are focused on installation configuration and PL/SQL Servers.
Application Developer They integrate database functionality with software applications. 
DevOps Engineer They are responsible for streamlined software development and deployment, and in the context of PL/SQL, they automate database deployments and scalability.
Data Analyst They are responsible for extracting meaningful insights for better decision-making.
Business Intelligence (BI) Developer They use PL/SQL as a data source to create interactive dashboards and reports for business stakeholders.
Technical Support Engineer They assist the users in resolving the issues by guiding best practices.

Conclusion

I hope this set of PL/SQL Interview Questions will help you prepare for your interviews. Best of luck!

Looking to start your career or even elevate your skills in the field of PL/SQL? You can enroll in our SQL Course or SQL Developer and SQL DBA Training Master’s Program and get certified today.

If you want to deep dive into more PL/SQL interview questions, feel free to join Intellipaat’s vibrant SQL Community and get answers to your queries from like-minded enthusiasts. 

Course Schedule

Name Date Details
SQL Training 23 Mar 2024(Sat-Sun) Weekend Batch
View Details
SQL Training 30 Mar 2024(Sat-Sun) Weekend Batch
View Details
SQL Training 06 Apr 2024(Sat-Sun) Weekend Batch
View Details