Top 100 Oracle Database Interview Questions
1. What Is Oracle?
Oracle is a company. Oracle is also a database server, which manages data in a very structured way. It allows users to store and retrieve related data in a multiuser environment so that many users can concurrently access the same data.
All this is accomplished while delivering high performance. A database server also prevents unauthorized access and provides efficient solutions for failure recovery.
2. What Is an Oracle Database?
An Oracle database is a collection of data treated as a big unit in the database server.
3. What Is an Oracle Instance?
Every running Oracle database is associated with an Oracle instance. When a database is started on a database server (regardless of the type of computer), Oracle allocates a memory area called the System Global Area (SGA) and starts one or more Oracle processes.
This combination of the SGA and the Oracle processes is called an Oracle instance. The memory and processes of an instance manage the associated database’s data efficiently and serve the one or multiple users of the database.
4. What Is a Parameter File in Oracle?
A parameter file is a file that contains a list of initialization parameters and a value for each parameter. You specify initialization parameters in a parameter file that reflect your particular installation.
Oracle supports the following two types of parameter files:
* Server Parameter Files – Binary version. Persistent.
* Initialization Parameter Files – Text version. Not persistent.
5. What Is a Server Parameter File in Oracle?
A server parameter file is a binary file that acts as a repository for initialization parameters. The server parameter file can reside on the machine where the Oracle database server executes.
Initialization parameters stored in a server parameter file are persistent, in that any changes made to the parameters while an instance is running can persist across instance shutdown and startup.
6. What Is a Initialization Parameter File in Oracle?
An initialization parameter file is a text file that contains a list of initialization parameters. The file should be written in the client’s default character set. Sample initialization parameter files are provided on the Oracle distribution medium for each operating system.
A sample file is sufficient for initial use, but you will probably want to modify the file to tune the database for best performance. Any changes will take effect after you completely shut down and restart the instance.
7. What is System Global Area (SGA) in Oracle?
The System Global Area (SGA) is a memory area that contains data shared between all database users such as buffer cache and a shared pool of SQL statements. The SGA is allocated in memory when an Oracle database instance is started, and any change in the value will take effect at the next startup.
8. What is Program Global Area (PGA) in Oracle?
A Program Global Area (PGA) is a memory buffer that is allocated for each individual database session and it contains session specific information such as SQL statement data or buffers used for sorting. The value specifies the total memory allocated by all sessions, and changes will take effect as new sessions are started.
9. What Is a User Account in Oracle?
A user account is identified by a user name and defines the user’s attributes, including the following:
* Password for database authentication
* Privileges and roles
* Default tablespace for database objects
* Default temporary tablespace for query processing work space
10. What Is the Relation of a User Account and a Schema in Oracle?
User accounts and schemas have a one-to-one relation. When you create a user, you are also implicitly creating a schema for that user.
A schema is a logical container for the database objects (such as tables, views, triggers, and so on) that the user creates. The schema name is the same as the user name, and can be used to unambiguously refer to objects owned by the user.
11. What Is a User Role in Oracle?
A user role is a group of privileges. Privileges are assigned to users through user roles. You create new roles, grant privileges to the roles, and then grant roles to users.
12. What is a Database Schema in Oracle?
A schema is a collection of logical structures of data, or schema objects. A schema is owned by a database user and has the same name as that user. Each user owns a single schema. Schema objects can be created and manipulated with SQL and include: tables, views, and other types of data objects.
13. What Is a Database Table in Oracle?
A database table is a basic unit of data logical storage in an Oracle database. Data is stored in rows and columns. You define a table with a table name, such as employees, and a set of columns. You give each column a column name, such as employee_id, last_name, and job_id; a datatype, such as VARCHAR2, DATE, or NUMBER; and a width. The width can be predetermined by the datatype, as in DATE.
If columns are of the NUMBER datatype, define precision and scale instead of width. A row is a collection of column information corresponding to a single record.
14. What Is a Table Index in Oracle?
Index is an optional structure associated with a table that allow SQL statements to execute more quickly against a table. Just as the index in this manual helps you locate information faster than if there were no index, an Oracle Database index provides a faster access path to table data. You can use indexes without rewriting any queries. Your results are the same, but you see them more quickly.
15. What Is an Oracle Tablespace?
An Oracle tablespace is a big unit of logical storage in an Oracle database. It is managed and used by the Oracle server to store structures data objects, like tables and indexes.
16. What Is an Oracle Data File?
An Oracle data file is a big unit of physical storage in the OS file system. One or many Oracle data files are organized together to provide physical storage to a single Oracle tablespace.
17. What Is a Static Data Dictionary in Oracle?
Data dictionary tables are not directly accessible, but you can access information in them through data dictionary views. To list the data dictionary views available to you, query the view DICTIONARY.
Many data dictionary tables have three corresponding views:
* An ALL_ view displays all the information accessible to the current user, including information from the current user’s schema as well as information from objects in other schemas, if the current user has access to those objects by way of grants of privileges or roles.
* A DBA_ view displays all relevant information in the entire database. DBA_ views are intended only for administrators. They can be accessed only by users with the SELECT ANY TABLE privilege. This privilege is assigned to the DBA role when the system is initially installed.
* A USER_ view displays all the information from the schema of the current user. No special privileges are required to query these views.
18. What Is a Dynamic Performance View in Oracle?
Oracle contains a set of underlying views that are maintained by the database server and accessible to the database administrator user SYS. These views are called dynamic performance views because they are continuously updated while a database is open and in use, and their contents relate primarily to performance.
Although these views appear to be regular database tables, they are not. These views provide data on internal disk structures and memory structures. You can select from these views, but you can never update or alter them.
19. What Is a Recycle Bin in Oracle?
Recycle bin is a logical storage to hold the tables that have been dropped from the database, in case it was dropped in error. Tables in recycle bin can be recovered back into database by the Flashback Drop action. Oracle database recycle save the same purpose as the recycle bin on your Windows desktop.
Recycle bin can be turned on or off in the recyclebin=on/off in your parameter file.
20. What Is SQL*Plus?
SQL*Plus is an interactive and batch query tool that is installed with every Oracle Database Server or Client installation. It has a command-line user interface, a Windows Graphical User Interface (GUI) and the iSQL*Plus web-based user interface.
21. What Is Transport Network Substrate (TNS) in Oracle?
TNS, Transport Network Substrate, is a foundation technology, built into the Oracle Net foundation layer that works with any standard network transport protocol.
22. What Is Open Database Communication (ODBC) in Oracle?
ODBC, Open Database Communication, a standard API (application program interface) developed by Microsoft for Windows applications to communicate with database management systems.
Oracle offers ODBC drivers to allow Windows applications to connect Oracle server through ODBC.
23. What is Oracle Database 10g Express Edition?
Based on Oracle Web site: Oracle Database 10g Express Edition (Oracle Database XE) is an entry-level, small-footprint database based on the Oracle Database 10g Release 2 code base that’s free to develop, deploy, and distribute; fast to download; and simple to administer.
Oracle Database XE is a great starter database for:
* Developers working on PHP, Java, .NET, and Open Source applications
* DBAs who need a free, starter database for training and deployment
* Independent Software Vendors (ISVs) and hardware vendors who want a starter database to distribute free of charge
* Educational institutions and students who need a free database for their curriculum
24. What Are the Limitations Oracle Database 10g XE?
Oracle Database XE is free for runtime usage with the following limitations:
* Supports up to 4GB of user data (in addition to Oracle system data)
* Single instance only of Oracle Database XE on any server
* May be installed on a multiple CPU server, but only executes on one processor in any server
* May be installed on a server with any amount of memory, but will only use up to 1GB RAM of available memory
25. What Operating Systems Are Supported by Oracle Database 10g XE?
Oracle Database 10g Express Edition is available for two types of operating Systems:
* Linux x86 – Debian, Mandriva, Novell, Red Hat and Ubuntu
* Microsoft Windows
26. How To Download Oracle Database 10g XE?
If you want to download a copy of Oracle Database 10g Express Edition, visit http://www.oracle.com/technology/software/products/database/xe/.
If you are using Windows systems, there are downloads available for you:
* Oracle Database 10g Express Edition (Western European) – Single-byte LATIN1 database for Western European language storage, with the Database Homepage user interface in English only.
* Oracle Database 10g Express Edition (Universal) – Multi-byte Unicode database for all language deployment, with the Database Homepage user interface available in the following languages: Brazilian Portuguese, Chinese (Simplified and Traditional), English, French, German, Italian, Japanese, Korean and Spanish.
* Oracle Database 10g Express Client
You need to download the universal edition, OracleXEUniv.exe, (216,933,372 bytes) and client package, OracleXEClient.exe (30,943,220 bytes).
27. How To Install Oracle Database 10g XE?
To install 10g universal edition, double click, OracleXEUniv.exe, the install wizard starts. It will guide you to finish the installation process.
You should take notes about:
* The SYSTEM password you selecte: globalguideline.
* Database server port: 1521.
* Database HTTP port: 8080.
* MS Transaction Server port: 2030.
* The directory where 10g XE is installed: oraclexe
* Hard disk space taken: 1655MB.
28. How To Check Your Oracle Database 10g XE Installation?
If you want to check your fresh installation of 10g Express Edition without using any special client programs, you can use a Web browser with this address, http://localhost:8080/apex/.
You will see the login page. Enter SYSTEM as the user name, and the password (globalguideline), you selected during the installation to log into the server.
Visit different areas on your 10g XE server home page to make sure your server is running OK.
You can also get to your 10g XE server home page by going through the start menu. Select All Programs, then Oracle Database 10g Express Edition, and then Go To Database Home Page
29. How To Shutdown Your 10g XE Server?
If you want to shutdown your 10g Express Edition server, go to the Services manager in the control panel. You will a service called OracleServiceXE, which represents your 10g Express Edition server.
Select OracleServiceXE, and use the right mouse click to stop this service. This will shutdown your 10g Express Edition server.
You can also shutdown your 10g XE server through the start menu. Select All Programs, then Oracle Database 10g Express Edition, and then Stop Database.
30. How To Start Your 10g XE Server?
Go to the Start menu, select All Programs, Oracle Database 10g Express Edition, and Start Database.
31. How Much Memory Your 10g XE Server Is Using?
Your 10g XE Server is using about 180MB of memory even there is no users on the server. The server memory usage is displayed on your server home page, if you log in as SYSTEM.
32. How To Start Your 10g XE Server from Command Line?
You can start your 10g XE server from command line by:
* Open a command line window.
* Change directory to oraclexeapporacleproduct10.2.0serverBIN.
* Run StartDB.bat.
The batch file StartDB.bat contains:
net start OracleXETNSListener
net start OracleServiceXE
@oradim -startup -sid XE -starttype inst > nul 2>&1
33. How To Shutdown Your 10g XE Server from Command Line?
You can shutdown your 10g XE server from command line by:
Open a command line window.
* Change directory to oraclexeapporacleproduct10.2.0serverBIN.
* Run StopDB.bat.
The batch file StopDB.bat contains:
net stop OracleServiceXE
34. How To Unlock the Sample User Account in Oracle?
Your 10g XE server comes with a sample database user account called HR. But this account is locked. You must unlock it before you can use it:
* Log into the server home page as SYSTEM.
* Click the Administration icon, and then click Database Users.
* Click the HR schema icon to display the user information for HR.
* Enter a new password (hr) for HR, and change the status to Unlocked.
* Click Alter User to save the changes.
Now user account HR is ready to use.
35. How To Change System Global Area (SGA) in Oracle?
Your 10g XE server has a default setting for System Global Area (SGA) of 140MB. The SGA size can be changed to a new value depending on how many concurrent sessions connecting to your server.
If you are running this server just for yourself to improve your DBA skill, you should change the SGA size to 32MB by:
* Log into the server home page as SYSTEM.
* Go to Administration, then Memory.
* Click Configure SGA.
* Enter the new memory size: 32
* Click Apply Changes to save the changes.
* Re-start your server.
36. How To Change Program Global Area (PGA) in Oracle?
Your 10g XE server has a default setting for Program Global Area (PGA) of 40MB. The PGA size can be changed to a new value depending on how much data a single session should be allocated.
If you think your session will be short with a small amount of data, you should change the PGA size to 16MB by:
* Log into the server home page as SYSTEM.
* Go to Administration, then Memory.
* Click Configure PGA.
* Enter the new memory size: 16
* Click Apply Changes to save the changes.
* Re-start your server.
37. What Happens If You Set the SGA Too Low in Oracle?
Let’s you made a mistake and changed to SGA to 16MB from the SYSTEM admin home page. When you run the batch file StartDB.bat, it will return a message saying server stated. However, if you try to connect to your server home page: http://localhost:8080/apex/, you will get no response. Why? Your server is running, but the default instance XE was not started.
If you go the Control Panel and Services, you will see service OracleServiceXE is listed not in the running status.
38. What To Do If the StartBD.bat Failed to Start the XE Instance?
If StartBD.bat failed to start the XE instance, you need to try to start the instance with other approaches to get detail error messages on why the instance can not be started.
One good approach to start the default instance is to use SQL*Plus.
Here is how to use SQL*Plus to start the default instance in a command window:
>cd (OracleXE home directory)
>.binstartdb
>.binsqlplus
Enter user-name: SYSTEM
Enter password: naukrieducation
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
The first “cd” is to move the current directory the 10g XE home directory. The second command “.binstartdb” is to make sure the TNS listener is running. The third command “.binsqlplus” launches SQL*Plus. The error message “ORA-27101” tells you that there is a memory problem with the default instance.
So you can not use the normal login process to the server without a good instance. See other tips on how to log into a server without any instance.
39. How To Login to the Server without an Instance?
If your default instance is in trouble, and you can not use the normal login process to reach the server, you can use a special login to log into the server without any instance.
Here is how to use SQL*Plus to log in as as a system BDA:
>cd (OracleXE home directory)
>.binstartdb
>.binsqlplus
Enter user-name: SYSTEM/naukrieducation AS SYSDBA
Connected to an idle instance
SQL> show instance
instance “local”
The trick is to put user name, password and login options in a single string as the user name. “AS SYSDBA” tells the server to not start any instance, and connect the session the idle instance.
Log in as SYSDBA is very useful for performing DBA tasks.
40. How To Use “startup” Command to Start Default Instance?
If you logged in to the server as a SYSDBA, you start the default instance with the “startup” command.
Here is how to start the default instance in SQL*Plus in SYSDBA mode:
>.binsqlplus
Enter user-name: SYSTEM/globalguideline AS SYSDBA
Connected to an idle instance
SQL> show instance
instance “local”
SQL> startup
ORA-00821: Specified value of sga_target 16M is too small,
needs to be at least 20M
Now the server is telling you more details about the memory problem on your default instance: your SGA setting of 16MB is too small. It must be increased to at least 20MB.
41. Where Are the Settings Stored for Each Instance in Oracle?
Settings for each instance are stored in a file called Server Parameter File (SPFile). Oracle supports two types of parameter files, Text type, and Binary type. parameter files should be located in $ORACLE_HOMEdatabase directory. A parameter file should be named like “init$SID.ora”, where $SID is the instance name.
42. What To Do If the Binary SPFile Is Wrong for the Default Instance?
Let’s say the SPFile for the default instance is a binary file, and some settings are wrong in the SPFile, like SGA setting is bellow 20MB, how do you change a setting in the binary file? This seems to be a hard task, because the binary SPFile is not allowed to be edited manually.
It needs to be updated by the server with instance started. But you can not start the instance because the SPFile has a wrong setting.
One way to solve the problem is to stop using the binary SPFile, and use a text version of the a parameter file to start the instance. Here is an example of how to use the backup copy (text version) of the parameter file for the default instance to start the instance:
>.binsqlplus
Enter user-name: SYSTEM/globalguideline AS SYSDBA
Connected to an idle instance
43. How To Check the Server Version in Oracle?
Oracle server version information is stored in a table called: PRODUCT_COMPONENT_VERSION. You can use a simple SELECT statement to view the version information like this:
>.binsqlplus
Enter user-name: SYSTEM/globalguideline AS SYSDBA
Connected to an idle instance
SQL> COL PRODUCT FORMAT A35
SQL> COL VERSION FORMAT A15
SQL> COL STATUS FORMAT A15
SQL> SELECT * FROM PRODUCT_COMPONENT_VERSION;
PRODUCT VERSION STATUS
———————————– ———– ———-
NLSRTL 10.2.0.1.0 Production
Oracle Database 10g Express Edition 10.2.0.1.0 Product
PL/SQL 10.2.0.1.0 Production
TNS for 32-bit Windows: 10.2.0.1.0 Production
44. Explain What Is SQL*Plus?
SQL*Plus is an interactive and batch query tool that is installed with every Oracle Database Server or Client installation. It has a command-line user interface, a Windows Graphical User Interface (GUI) and the iSQL*Plus web-based user interface.
SQL*Plus has its own commands and environment, and it provides access to the Oracle Database.
It enables you to enter and execute SQL, PL/SQL, SQL*Plus and operating system commands to perform the following:
* Format, perform calculations on, store, and print from query results
* Examine table and object definitions
* Develop and run batch scripts
* Perform database administration
You can use SQL*Plus to generate reports interactively, to generate reports as batch processes, and to output the results to text file, to screen, or to HTML file for browsing on the Internet. You can generate reports dynamically using the HTML output facility of SQL*Plus, or using the dynamic reporting capability of iSQL*Plus to run a script from a web page.
45. How To Start the Command-Line SQL*Plus?
If you Oracle server or client installed on your windows system, you can start the command-line SQL*Plus in two ways:
1. Click Start > All Programs > Oracle … > Start SQL Command Line. The SQL*Plus command window will show up with a message like this:
SQL*Plus: Release 10.2.0.1.0 – Production on Tue …
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>
2. Click Start > Run…, enter “cmd” and click OK. A Windows command window will show up. You can then use Windows commands to start the command-line SQL*Plus as shown in the tutorial exercise below:
>cd c:oraclexeapporacleproduct10.2.0server
>.binsqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 – Production on Tue …
Copyright (c) 1982, 2005, Oracle. All rights reserved.
46. How To Get Help at the SQL Prompt?
Once SQL*Plus is started, you will get a SQL prompt like this: SQL>. This where you can enter commands for SQL*Plus to run.
To get help information at the SQL prompt, you can use the HELP command as shown in the following tutorial example:
SQL> HELP INDEX
Enter Help [topic] for help.
@ COPY PAUSE SHUTDOWN
@@ DEFINE PRINT SPOOL
/ DEL PROMPT SQLPLUS
ACCEPT DESCRIBE QUIT START
APPEND DISCONNECT RECOVER STARTUP
ARCHIVE LOG EDIT REMARK STORE
ATTRIBUTE EXECUTE REPFOOTER TIMING
BREAK EXIT REPHEADER TTITLE
…
COMPUTE LIST SET XQUERY
CONNECT PASSWORD SHOW
SQL> HELP CONNECT
CONNECT
——-
47. What Information Is Needed to Connect SQL*Plus an Oracle Server?
If you want to connect your SQL*Plus session to an Oracle server, you need to know the following information about this server:
* The network hostname, or IP address, of the Oracle server.
* The network port number where the Oracle server is listening for incoming connections.
* The name of the target database instance managed by the Oracle server.
* The name of your user account predefined on in the target database instance.
* The password of your user account predefined on in the target database instance.
48. What Is a Connect Identifier?
A “connect identifier” is an identification string of a single set of connection information to a specific target database instance on a specific Oracle server.
Connect identifiers are defined and stored in a file called tnsnames.ora located in $ORACLE_HOME/network/admin/ directory.
Here is one example of a “connect identifier” definition:
ggl_XE =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = www.globalguideline.com)
(PORT = 1521)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
The above “connect identifier” defines “TNS_XE” with the following connection information:
* The network hostname: www.globalguideline.com.
* The network port number: 1521.
* The name of the target database instance: XE.
49. How To Connect a SQL*Plus Session to an Oracle Server?
In order to connect a SQL*Plus session to an Oracle server, you need to:
1. Obtain the connection information from the Oracle server DBA.
2. Define a new “connect identifier” called “ggl_XE” in your tnsnames.org file with the given connection information.
3. Run the CONNECT command in SQL*Plus as shown in the tutorial exercise below:
>cd c:oraclexeapporacleproduct10.2.0server
>.binsqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 – Production on Tue …
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> CONNECT ggl/retneclgg@ggl_XE;
Connected.
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
———
05-MAR-06
50. What Happens If You Use a Wrong Connect Identifier?
Of course, you will get an error, if you use a wrong connect identifier.
Here is an example of how SQL*Plus react to a wrong connect identifier:
SQL> CONNECT ggl/retneclgg@WRONG;
ERROR:
ORA-12154: TNS:could not resolve the connect identifier
specified
Warning: You are no longer connected to ORACLE.
What you need to do in this case:
* Check the CONNECT command to make sure that the connect identifier is entered correctly.
* Check the tnsnames.ora file to make sure that the connect identifier is defined correctly.
* Check the tnsnames.ora file to make sure that there is no multiple definitions of the same connect identifier.
* Check your files system to see if you have multiple copies of tnsnames.ora in different Oracle home directories, because you installed multiple versions of Oracle. If you do have multiple copies, make sure your SQL*Plus session is picking up the correct copy of tnsnames.ora.
51. What To Do If DBA Lost the SYSTEM Password?
If the DBA lost the password of the SYSTEM user account, he/she can go to the Oracle server machine, and run SQL*Plus on server locally with the operating system authentication method to gain access to the database.
The tutorial exercise below shows you how:
(Terminal server to the Oracle server machine)
(Start SQL*Plus)
SQL>CONNECT / AS SYSDBA
Connected.
SQL> ALTER USER SYSTEM IDENTIFIED BY ssap_lgg;
User altered.
Notice that the (/) in the CONNECT command tells SQL*Plus to use the current user on local operating system as the connection authentication method.
52. What Types of Commands Can Be Executed in SQL*Plus?
There are 4 types of commands you can run at the SQL*Plus command line prompt:
1. SQL commands – Standard SQL statements to be executed on target database on the Oracle server. For example: “SELECT * FROM ggl_faq;” is a SQL command.
2. PL/SQL commands – PL/SQL statements to be executed by the Oracle server. For example: “EXECUTE DBMS_OUTPUT.PUT_LINE(‘Welcome to www.naukrieducation.com’)” runs a PL/SQL command.
SQL*Plus commands – Commands to be executed by the local SQL*Plus program itself. For example: “SET NULL ‘NULL’” is a SQL*Plus command.
OS commands – Commands to be executed by the local operating system. For example: “HOST dir” runs an operating system command on the local machine.
53. How To Run SQL Commands in SQL*Plus?
If you want to run a SQL command in SQL*Plus, you need to enter the SQL command in one or more lines and terminated with (;).
The tutorial exercise below shows a good example:
SQL> SELECT ‘Welcome!’ FROM DUAL;
‘WELCOME
——–
Welcome!
SQL> SELECT ‘Welcome to globalguideline.com tutorials!’
2 FROM DUAL
3 ;
‘WELCOMETOnaukrieducation.COMTUTORIALS!’
———————————–
Welcome to naukrieducation.com tutorials!
54. How To Run PL/SQL Statements in SQL*Plus?
If you want to run a single PL/SQL statement in SQL*Plus, you need to use the EXECUTE command as shown in the following tutorial example:
SQL> SET SERVEROUTPUT ON
SQL> EXECUTE DBMS_OUTPUT.PUT_LINE(‘Welcome to globalguideline!’)
Welcome to globalguideline!
PL/SQL procedure successfully completed.
55. How To Change SQL*Plus System Settings?
SQL*Plus environment is controlled a big list of SQL*Plus system settings.
You can change them by using the SET command as shown in the following list:
* SET AUTOCOMMIT OFF – Turns off the auto-commit feature.
* SET FEEDBACK OFF – Stops displaying the “27 rows selected.” message at the end of the query output.
* SET HEADING OFF – Stops displaying the header line of the query output.
* SET LINESIZE 256 – Sets the number of characters per line when displaying the query output.
* SET NEWPAGE 2 – Sets 2 blank lines to be displayed on each page of the query output.
* SET NEWPAGE NONE – Sets for no blank lines to be displayed on each page of the query output.
* SET NULL ‘null’ – Asks SQL*Plus to display ‘null’ for columns that have null values in the query output.
* SET PAGESIZE 60 – Sets the number of lines per page when displaying the query output.
* SET TIMING ON – Asks SQL*Plus to display the command execution timing data.
* SET WRAP OFF – Turns off the wrapping feature when displaying query output.
56. How To Look at the Current SQL*Plus System Settings?
If you want to see the current values of SQL*Plus system settings, you can use the SHOW command as shown in the following tutorial exercise:
SQL> SHOW AUTOCOMMIT
autocommit OFF
SQL> SHOW HEADING
heading ON
SQL> SHOW LINESIZE
linesize 80
SQL> SHOW PAGESIZE
pagesize 14
SQL> SHOW FEEDBACK
FEEDBACK ON for 6 or more rows
SQL> SHOW TIMING
timing OFF
SQL> SHOW NULL
null “”
SQL> SHOW ALL
appinfo is OFF and set to “SQL*Plus”
arraysize 15
autocommit OFF
autoprint OFF
autorecovery OFF
autotrace OFF
blockterminator “.” (hex 2e)
cmdsep OFF
colsep ” ”
compatibility version NATIVE
concat “.” (hex 2e)
copycommit 0
COPYTYPECHECK is ON
define “&” (hex 26)
describe DEPTH 1 LINENUM OFF INDENT ON
echo OFF
57. What Are SQL*Plus Environment Variables?
Behaviors of SQL*Plus are also controlled a some environment variables predefined on the local operating system.
Here are some commonly used SQL*Plus environment variables:
* ORACLE_HOME – The home directory where your Oracle client application is installed.
* PATH – A list of directories where SQL*Plus will search for executable or DLL files. PATH should include $ORACLE_HOMEbin.
* SQLPLUS – The directory where localization messages are stored. SQLPLUS should be set to $ORACLE_HOMEsqlplusmesg
* TNS_ADMIN – The directory where the connect identifier file, tnsnames.ora is located. TNS_ADMIN should be set to $ORACLE_HOME/network/admin.
58. How To Generate Query Output in HTML Format?
If you want your query output to be generated in HTML format, you can use the “SET MARKUP HTML ON” to turn on the HTML feature.
The following tutorial exercise gives you a good example:
SQL> connect HR/retneclgg
SQL> SET MARKUP HTML ON
SQL> SELECT FIRST_NAME, LAST_NAME, HIRE_DATE
2 FROM EMPLOYEES WHERE FIRST_NAME LIKE ‘Joh%’;
FIRST_NAME LAST_NAME HIRE_DATE
John Seo 12-FEB-98
John Russell 01-OCT-96
59. What Is Output Spooling in SQL*Plus?
The output spooling a nice feature of the command-line SQL*Plus tool. If the spooling feature is turned on, SQL*Plus will send a carbon copy of the everything on your screen to a specified local file.
Output spooling is used mostly for quick dump of data to local files.
Here are the commands to turn on and off output spooling in SQL*Plus:
* SPOOL fileName – Turning on output spooling with the specified file.
* SPOOL OFF – Turning off output spooling and close the spool file.
60. How To Save Query Output to a Local File?
Normally, when you run a SELECT statement in SQL*Plus, the output will be displayed on your screen. If you want the output to be saved to local file, you can use the “SPOOL fileName” command to specify a local file and start the spooling feature.
When you are done with your SELECT statement, you need to close the spool file with the “SPOOL OFF” command.
The following tutorial exercise gives you a good example:
SQL> connect HR/retneclgg
SQL> SET HEADING OFF
SQL> SET FEEDBACK OFF
SQL> SET LINESIZE 1000
SQL> SPOOL tempemployees.lst
SQL> SELECT * FROM EMPLOYEES;
……
SQL> SPOOL OFF
You should get all records in employees.lst with fixed length fields.
61. What Is Input Buffer in SQL*Plus?
Input buffer is a nice feature of the command-line SQL*Plus tool. It allows you to revise a multiple-line command and re-run it with a couple of simple commands. By default, input buffer is always turned on in SQL*Plus. The last SQL statement is always stored in the buffer.
All you need is to remember to following commonly used commands:
* LIST – Displays the SQL statement (the last executed SQL statement) in the buffer.
* RUN – Runs the SQL statement in the buffer again. “;” is a quick command equivalent to RUN.
* CLEAR BUFFER – Removes the SQL statement in the buffer.
* INPUT line – Adds a new line into the buffer.
* APPEND text – Appends more text to the last line in the buffer.
* DEL – Deletes one line from the buffer.
* CHANGE /old/new – Replaces ‘old’ text with ‘new’ text in the buffer.
62. How To Revise and Re-Run the Last SQL Command?
If executed a long SQL statement, found a mistake in the statement, and you don’t want enter that long statement again, you can use the input buffer commands to the correct last statement and re-run it.
The following tutorial exercise gives you a good example:
SQL> connect HR/retneclgg
SQL> SELECT FIRST_NAME, LAST_NAME, HIRE_DATE
2 FROM EMPLOYEE WHERE FIRST_NAME LIKE ‘Joh%’;
FROM EMPLOYEE WHERE FIRST_NAME LIKE ‘Joh%’
*
ERROR at line 2:
ORA-00942: table or view does not exist
SQL> LIST
1 SELECT FIRST_NAME, LAST_NAME, HIRE_DATE
2* FROM EMPLOYEES WHERE FIRST_NAME LIKE ‘Joh%’
SQL> CHANGE /EMPLOYEE/EMPLOYEES/
2* FROM EMPLOYEES WHERE FIRST_NAME LIKE ‘Joh%’
SQL> RUN
(Query output)
SQL> INPUT ORDER BY FIRE_DATE
SQL> LIST
1 SELECT FIRST_NAME, LAST_NAME, HIRE_DATE
2 FROM EMPLOYEE WHERE FIRST_NAME LIKE ‘Joh%’
3* ORDER BY HIRE_DATE
SQL> RUN
(Query output)
SQL> CLEAR BUFFER
buffer cleared
SQL> LIST
SP2-0223: No lines in SQL buffer.
63. How Run SQL*Plus Commands That Are Stored in a Local File?
If you have a group of commands that you need to run them repeatedly every day, you can save those commands in a file (called SQL script file), and using the “@fileName” command to run them in SQL*Plus.
If you want to try this, create a file called tempinput.sql with:
SELECT ‘Welcome to’ FROM DUAL;
SELECT ‘naukrieducation.com!’ FROM DUAL;
Then run the “@” command in SQL*Plus as:
SQL> connect HR/retneclgg
SQL> @tempinput.sql
‘WELCOMETO
———-
Welcome to
‘redboldztechnologies.COM
————–
redboldztechnologies.com!
64. How To Use SQL*Plus Built-in Timers?
If you don’t have a stopwatch/timer and want to measure elapsed periods of time, you can SQL*Plus Built-in Timers with the following commands:
* TIMING – Displays number of timers.
* TIMING START [name] – Starts a new timer with or without a name.
* TIMING SHOW [name] – Shows the current time of the named or not-named timer.
* TIMING STOP [name] – Stops the named or not-named timer.
The following tutorial exercise shows you a good example of using SQL*Plus built-in timers:
SQL> TIMING START timer_1
(some seconds later)
SQL> TIMING START timer_2
(some seconds later)
SQL> TIMING START timer_3
(some seconds later)
SQL> TIMING SHOW timer_1
timing for: timer_2
Elapsed: 00:00:19.43
(some seconds later)
SQL> TIMING STOP timer_2
timing for: timer_2
Elapsed: 00:00:36.32
SQL> TIMING
2 timing elements in use
65. What Is Oracle Server Autotrace in Oracle?
Autotrace is Oracle server feature that generates two statement execution reports very useful for performance tuning:
* Statement execution path – Shows you the execution loop logic of a DML statement.
* Statement execution statistics – Shows you various execution statistics of a DML statement.
To turn on the autotrace feature, the Oracle server DBA need to:
* Create a special table called PLAN_TABLE.
* Create a special security role called PLUSTRACE.
* Grant PLUSTRACE role your user account.
66. How To Set Up Autotrace for a User Account?
If an Oracle user wants to use the autotrace feature, you can use the tutorial as an example to create the required table PLAN_TABLE, the required security role PLUSTRACE, and grant the role to that user:
SQL> CONNECT HR/retneclgg
SQL> @oraclexeapporacleproduct10.2.0server
RDBMSADMINUTLXPLAN.SQL
Table (HR.PLAN_TABLE) created.
SQL> CONNECT / AS SYSDBA
SQL> @C:oraclexeapporacleproduct10.2.0server
SQLPLUSADMINPLUSTRCE.SQL
SQL> drop role plustrace;
Role (PLUSTRACE) dropped.
SQL> create role plustrace;
Role (PLUSTRACE) created.
SQL> grant plustrace to dba with admin option;
Grant succeeded.
SQL> GRANT PLUSTRACE TO HR;
Grant succeeded.
Remember that PLAN_TABLE table must be created under the user schema HR.
67. How To Get Execution Path Reports on Query Statements?
If your user account has autotrace configured by the DBA, you can use the “SET AUTOTRACE ON EXPLAIN” command to turn on execution path reports on query statements.
The tutorial exercise bellow shows you a good example:
SQL> CONNECT HR/retneclgg
SQL> SET AUTOTRACE ON EXPLAIN
SQL> SELECT E.LAST_NAME, E.SALARY, J.JOB_TITLE
2 FROM EMPLOYEES E, JOBS J
3 WHERE E.JOB_ID=J.JOB_ID AND E.SALARY>12000;
LAST_NAME SALARY JOB_TITLE
—————– ———- —————————–
King 24000 President
Kochhar 17000 Administration Vice President
De Haan 17000 Administration Vice President
Russell 14000 Sales Manager
Partners 13500 Sales Manager
Hartstein 13000 Marketing Manager
6 rows selected.
68. How To Get Execution Statistics Reports on Query Statements?
If your user account has autotrace configured by the DBA, you can use the “SET AUTOTRACE ON STATISTICS” command to turn on execution statistics reports on query statements.
The tutorial exercise bellow shows you a good example:
SQL> CONNECT HR/retneclgg
SQL> SET AUTOTRACE ON STATISTICS
SQL> SELECT E.LAST_NAME, E.SALARY, J.JOB_TITLE
2 FROM EMPLOYEES E, JOBS J
3 WHERE E.JOB_ID=J.JOB_ID AND E.SALARY>12000;
LAST_NAME SALARY JOB_TITLE
—————– ———- —————————–
King 24000 President
Kochhar 17000 Administration Vice President
De Haan 17000 Administration Vice President
Russell 14000 Sales Manager
Partners 13500 Sales Manager
Hartstein 13000 Marketing Manager
6 rows selected.
69. What Is SQL in Oracle?
SQL, SEQUEL (Structured English Query Language), is a language for RDBMS (Relational Database Management Systems).
SQL was developed by IBM Corporation.
70. How Many Categories of Data Types in Oracle?
Oracles supports the following categories of data types:
* Oracle Built-in Datatypes.
* ANSI, DB2, and SQL/DS Datatypes.
* User-Defined Types.
* Oracle-Supplied Types.
71. What Are the Oracle Built-in Data Types?
There are 20 Oracle built-in data types, divided into 6 groups:
* Character Datatypes – CHAR, NCHAR, NVARCHAR2, VARCHAR2
* Number Datatypes – NUMBER, BINARY_FLOAT, BINARY_DOUBLE
* Long and Row Datatypes – LONG, LONG RAW, RAW
* Datetime Datatypes – DATE, TIMESTAMP, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND
* Large Object Datatypes – BLOB, CLOB, NCLOB, BFILE
* Row ID Datatypes – ROWID, UROWID
72. What Are the Differences between CHAR and NCHAR in Oracle?
Both CHAR and NCHAR are fixed length character data types. But they have the following differences:
* CHAR’s size is specified in bytes by default.
* NCHAR’s size is specified in characters by default. A character could be 1 byte to 4 bytes long depending on the character set used.
* NCHAR stores characters in Unicode.
73. What Are the Differences between CHAR and VARCHAR2 in Oracle?
The main differences between CHAR and VARCHAR2 are:
* CHAR stores values in fixed lengths. Values are padded with space characters to match the specified length.
* VARCHAR2 stores values in variable lengths. Values are not padded with any characters.
74. What Are the Differences between NUMBER and BINARY_FLOAT in Oracle?
The main differences between NUMBER and BINARY_FLOAT in Oracle are:
* NUMBER stores values as fixed-point numbers using 1 to 22 bytes.
* BINARY_FLOAT stores values as single precision floating-point numbers.
75. What Are the Differences between DATE and TIMESTAMP in Oracle?
The main differences between DATE and TIMESTAMP in Oracle are:
* DATE stores values as century, year, month, date, hour, minute, and second.
* TIMESTAMP stores values as year, month, day, hour, minute, second, and fractional seconds.
76. What Are the Differences between INTERVAL YEAR TO MONTH and INTERVAL DAY TO SECOND?
The main differences between INTERVAL YEAR TO MONTH and INTERVAL DAY TO SECOND are:
* INTERVAL YEAR TO MONTH stores values as time intervals at the month level.
* INTERVAL DAY TO SECOND stores values as time intervals at the fractional seconds level.
77. What Are the Differences between BLOB and CLOB in Oracle?
The main differences between BLOB and CLOB in Oracle are:
* BLOB stores values as LOB (Large OBject) in bitstreams.
* CLOB stores values as LOB (Large OBject) in character steams.
78. What Are the ANSI Data Types Supported in Oracle?
The following ANSI data types are supported in Oracle:
* CHARACTER(n) / CHAR(n)
* CHARACTER VARYING(n) / CHAR VARYING(n)
* NATIONAL CHARACTER(n) / NATIONAL CHAR(n) / NCHAR(n)
* NATIONAL CHARACTER VARYING(n) / NATIONAL CHAR VARYING(n) / NCHAR VARYING(n)
* NUMERIC(p,s)
* DECIMAL(p,s)
* INTEGER / INT
* SMALLINT
* FLOAT
* DOUBLE PRECISION
* REAL
79. How To Write Text Literals in Oracle?
There are several ways to write text literals as shown in the following samples:
SELECT ‘naukrieducation.com’ FROM DUAL — The most common format
naukrieducation.com
SELECT ‘It”s Sunday!’ FROM DUAL — Single quote escaped
It’s Sunday!
SELECT N’Allo, C”est moi.’ FROM DUAL — National chars
Allo, C’est moi.
SELECT Q’/It’s Sunday!/’ FROM DUAL — Your own delimiter
It’s Sunday!
80. How To Write Numeric Literals in Oracle?
Numeric literals can coded as shown in the following samples:
SELECT 255 FROM DUAL — An integer
255
SELECT -6.34 FROM DUAL — A regular number
-6.34
SELECT 2.14F FROM DUAL — A single-precision floating point
2.14
SELECT -0.5D FROM DUAL — A double-precision floating point
-0.5