Monday, March 28, 2011

Oracle Interview Questions - Part 2

1. what are the physical database components
2. what are the logical database components
3. what is row chaining
4. what is the relation between oracle data block ,extents and segments
5. how many types of segments are there
6. what is temporary segments
7. what is redo log
8. what is the difference between rollback segments and redo log files
9. what is the difference between database buffers and redo log buffer of SGA

1) How delete duplicate records in a table
delete from emp where rowid not in (select max(rowid) from emp group by empno);

2) How to make a column into not null column.
Ans: alter table emp
modify (empno not null); ->this can be done only when all the values in empno are non null (i.e not empty)

'h To make a not null column into null column
alter table emp
modify (empno null);
The fallowing are the rules for

i. adding null or not null property
>You may change a column's null property to not null only when that field does contain null values(i. It can't be empty)
>At any time you may change a column's not null property to null

ii. adding a colum to a table
>You may add a column at any time if NOT NULL isn't specified (i.e when new column can accept null values )
>You may add a NOT NULL column in three steps.
a. Add the column without NOT NULL specified.
b. Fill every row in that column with data.
c. Modify the column to be NOT NULL.

iii. modifying a column
>You can increase a CHAR column's width at any time.
>You can increase the number of digits and the number of decimal places in a NUMBER column at any time
>To CHANGE data types or to DECREASE column's width the column should be null for every row

3)Write queries for the fallowing
ex. select * from emp_self;

--------- -------------------- ---------- ---------- ----------
400 jane 20000 110 20
102 Mary 19000 110 20
101 charles 8000 105 50
104 Linda 9000 100 10
110 john 25000 105 20
105 newton 2000 50
100 ALEN 15000 105 50
200 BORIS 3000 110 20
103 DAVID 10000 100 10
300 monica 7000 105 50
i) Query to get the employees who are working under mgr with salary > 10000
select emp_no,mgr from emp_self where mgr in (select emp_no from emp_self where sal > 10000);

ii) Query to get the employees who are getting salaries more than their managers
select a.emp_no from emp_self a,emp_self b where a.mgr =b.emp_no and a.sal > b.sal;
iii) Query to find the nth highest salary
select a.empn_name,a.sal from emp_self a where &n = (select count(*) from emp_self b where a.sal < b.sal);
When n=1 , sal =20000 ->second highest salary ; n=4 , sal =10000 ->fifth highest salary ;
iv) Query to find the second highest salary in different departments.
select a.deptid,min(a. sal) from emp_self a where 1 in (select count(*) from emp_self b
where a.sal < b.sal group by b.deptid) group by a.deptid;

------- ----------
10 9000
20 20000
50 8000
v) Query to find departments with total salary >25000

select deptid from emp_self having sum(sal) >25000 group by deptid;


4) study the fallowing pl/sql block and find the type of error ->syntax,semantic(logical) or precedence
for i in 1..5 loop
update emp
set sal = 1000 where empno =100 ;
end loop;

5) Difference between (MAX,MIN) and (GREATEST ,LEAST)
The functions max and min compares different rows . Whereas greatest and least work on a group of columns ,either actual or calculated values within a single row.

Ex. select * from emp_self;

------ -------------------- ------- ----------
100 alen 9,000 105
200 boris 10,000 110
101 charles 8,000 105

SQL> select max(sal),min(sal) from emp_self;

---------- ----------
10000 8000

SQL> select greatest(sal),least(sal) from emp_self;

------------- ----------
9000 9000
10000 10000
8000 8000
6)Different kinds of constraints .
6)Where Procedures,Functions and Triggers are stored ?.
7)What are the improtant differences between Procedures,Functions and Triggers ?.
8)Can we call a Procedure from a Trigger ?.
9)what are packages ?.
9)What are the different kinds of parameters ?.
10)Can we return a OUT parameter from a procedure ?.
11)Differences between ROWNUM and ROWID .
12)How do you handle exceptions ?.
12)How many system defined exceptions are there ?.
13)How do you write user defined message for all the system defined exceptions.
14)Difference between Commit and H(?)ost .
15)Differences between delete ,truncate and drop commands .
16) How do you display messages in the backend procedure ?.
17) why can't you use create/drop while declaring a trigger ?.
18)Advantages of union over joins .
19)Definitions of commit, rollback, save point
20)Difference between truncate and delete (truncate =delete + commit)

1)Name the five global report triggers
i. before report
ii. after report
iii. between pages
iv. before parameter form
v.after parameter form

As a general rule, any processing that will affect the data retrieved by the report should be performed in the Before Parameter Form or After Parameter Form triggers. (These are the two report triggers that fire before anything is parsed or fetched.) Any processing that will not affect the data retrieved by the report can be performed in the other triggers.

Report Builder has five global report triggers. You cannot create new global report triggers. The trigger names indicate at what point the trigger fires:

Before Report Fires before the report is executed but after queries are parsed.
After Report Fires after you exit the Previewer, or after report output is sent to a specified destination, such as a file, a printer, or an Oracle Office userid. This trigger can be used to clean up any initial processing that was done, such as deleting tables. Note, however, that this trigger always fires, whether or not your report completed successfully.
Between Pages Fires before each page of the report is formatted, except the very first page. This trigger can be used for customized page formatting. In the Previewer, this trigger only fires the first time that you go to a page. If you subsequently return to the page, the trigger does not fire again.
Before Parameter Form Fires before the Runtime Parameter Form is displayed. From this trigger, you can access and change the values of parameters, PL/SQL global variables, and report-level columns. If the Runtime Parameter Form is suppressed, this trigger still fires. Consequently, you can use this trigger for validation of command line parameters.
After Parameter Form Fires after the Runtime Parameter Form is displayed. From this trigger, you can access parameters and check their values. This trigger can also be used to change parameter values or, if an error occurs, return to the Runtime Parameter Form. Columns from the data model are not accessible from this trigger. If the Runtime Parameter Form is suppressed, the After Parameter Form trigger still fires. Consequently, you can use this trigger for validation of command line parameters or other data.

2) Name the different types of alerts
note , stop ,caution
3)call_form ( ), new_form ( )
call_form ( ) :-Runs an indicated form while keeping the parent form active. Form Builder runs the called form with the same Runform preferences as the parent form. When the called form is exited Form Builder processing resumes in the calling form at the point from which you initiated the call to CALL_FORM.

(formmodule_name VARCHAR2);

New_form( ) :-
Exits the current form and enters the indicated form. The calling form is terminated as the parent form. If the calling form had been called by a higher form, Form Builder keeps the higher call active and treats it as a call to the new form. Form Builder releases memory (such as database cursors) that the terminated form was using.
Form Builder runs the new form with the same Runform options as the parent form. If the parent form was a called form, Form Builder runs the new form with the same options as the parent form.

(formmodule_name VARCHAR2);

4) system.mode->
SYSTEM.MODE indicates whether the form is in Normal, Enter Query, or Fetch Processing mode. The value is always a character string.

NORMAL Indicates that the form is currently in normal processing mode.
ENTER-QUERY Indicates that the form is currently in Enter Query mode.
QUERY Indicates that the form is currently in fetch processing mode, meaning that a query is currently being processed.

Usage Notes
When using SYSTEM.MODE to check whether the current block is in Enter Query mode, be aware that if testing from a When-Button-Pressed trigger in a control block, Enter Query mode will never be entered, because the control block is not the current block.

4)What are important new(Advanced) features of Forms 6.0.
5)Different types of list boxes.
6)What are record groups ?.
7)In case of a block with multiple records how to display records on the screen without using cursors ?.
8)Can we access a row in the first block from second by referencing block name along with the rowid ?.
9)In case of a block with multiple records how do check where a user entering a duplicate record well before saving it ?.
10)How to take care of concurrency ?.

9.0 Forms 4.5
9.1 Object Groups

1. What is an object group ?
An object group is a container for a group of obects. You define an object group when you want to package related objects, so that you can copy or reference them in another module.

2. What are the different objects that you cannot copy or
reference in object groups ?
Objects of different modules
Another Objects group
Individual block depndent objects
Program Units.

9.2 Canvas Views

3. What are different types of canvas views ?
There are four types of canvas views :
Content canvas views
Stacked canvas views
Horizontal tool bar
Vertical tool bar

4. Explain about Content Canvas Views
Most canvas views are Content-Canvas Views. It is the base view that occupies the entire content pane of the window in which it is displayed.

5. Explain about Stacked Canvas Views ?
A stacked canvas view is displayed in a window on top of, or "stacked" on the content canvas view assigned to that same window. Stacked canvas view obscure some part of the underlying content-canvas view, and are often shown and hidden programmatically.

6. Explain about Horizontal/Vertical toolbar Canvas-Views ?
Toolbar canvas-views are used to create toolbar for individual windows. Horizontal toolbars are displayed at the top a window, just under the menubar. Vertical toolbars are displayed along the leftside of a window.

7. Name the functions used to get/set the canvas properties ?
get_view_property, set_view_property.

9.3 Windows

8. What is the relation between windows and Canvas Views ?
Canvas-Views are the background objects on which you place the interface items(text items, check boxes, radio groups etc.,) and boilerplate objects(boxes,lines,images, etc.,) that operators interact with as they run your form. Each canvas-view is displayed in a window.

9. What are the Different Modals of Windows ?
There are Two different modals of Windows are
Modeless Windows
Modal Windows

10. What are Modeless Windows ?
More than one modeless windows can be displayed at the same time, and operators can navigate among them if your application allows them to do so. On most GUI platforms, modeless windows can also be layered to appear either in front of or behind other windows.

11. What are Modal Windows ?
Modal windows are usually used as dialogs, and have restricted funtionality compared to modeless windows. On some platforms,for example, operators cannot resize, scroll, or iconify a modal window.

12. How do you display console on a window ?
The console includes the status line and message line, and is displayed at the bottom of the window to which it is assigned.
To specify that the console should be displayed, set the console window form property to the name of any window in the form, To hide the console, set the console window to <Null>

13. What is the Remove on Exit property ?
For a modeless window, it determines whether Oracle Forms hides the window automatically, when the operator navigates to an item in another window.

14. How many windows in a form can have Console ?
Only one window in a form can display the console, and you cannot change the console assignment at runtime.

15. Can you have more than one content canvas view attached
with a window?
Yes. Each window you create must have at least one content canvas-view assigned to it. You can also create a window that has multiple content canvas-views. At runtime, only one of the content canvas-views assigned to a window is displayed at a time.

16. What are the different Window Events activated at Runtime ?
Within these triggers, you can examine the build-in system variable SYSTEM.EVENT_WINDOW to determine the name of the window for which the trigger fired

9.4 Modules

17. What are the different types of Modules available in Oracle
Forms ?
There are three types of modules in Oralcle Forms :
Form Module - A collection of objects and code routines
Menu Module - A collection of Menus( a main menu and any number of submenu objects) and menu item commands that together make up an application menu.
Library Module - A collection of user-named procedures,functions, and packages that can be called from other modules in the application.

18. What are the default extensions of the files created by Forms
Module ?
.FMB Form Module Binary
.FMX Form Module Executable

19. What are the default extensions of the files created by Menu
Module ?
.MMB Menu Module Binary
.MMX Menu Module Executable

20. What are the default extensions of the files created by
Library Module ?
.PLL PL/SQL Library Module Binary

9.5 Master - Detail

21. What is Master Detail Relationship ?
A Master-detail relationship is an association between two base table blocks - a master block and a detail block. The relationship between the blocks reflects a primary key to foreign key relationship between the tables on which the blocks are based.

22. What is coordination Event?
Any event that makes a different record in themaster block the current record is a coordination-causing event.

23. What are the two phases of block coordination?
There are two phases of block coordination; the clear phase and the population phase. During the clear phase, Oracle forms navigates internally to the detail block and flushes the obsolete detail records. During the population phase, oracle forms issues a SELECT statement to repopulate the details block with the detail records associated with the new master record. These operations are accomblished through the execution og triggers.

24. what are most common types of complex master_detail
There are three most common types of complex master-detail relationships:
master with dependent details
master with independent details
detail with two masters

25. What arethe different types of Delete details we can establish
in Master-Details?

26. What are the different default triggers created when Master
Deletes Property is set to Non-isolated?
Master Deletes Property Resulting Triggers
Non-Isolated (the default) On-Check-Delete-Master

27. What are the different default triggers created when Master
Deletes Property is set to Cascade?
Master Deletes Property Resulting Triggers
Cascading On-Clear-Details

28. What are the different default triggers created when Master
Deletes Property is set to Isolated?
Master Deletes Property Resulting Triggers
Isolated On-Clear-Details

29. What are the Coordination properties ina master detai
The coordinatio in properties are
These properties determine when the population phase of block coordination should occur.

30. What are the different types of coordinations of the Master
with the Detail block?
Coordination of the detail block with its master can be
Deferred with Auto-Query
Deferred with the no Auto-Query

31. what is the immediate coordination of the Master with the
Detail block?
Immediate(Deferred False, Auto-Querry False) The default settings.
When a coordination-causing event occurs, the detail records are fetched immediately.

32. What is the deferred with Auto-Quey Coordination of the
Master with the Detail block?
Deferred with Auto-Query(Deferred True,Auto-Query true) When a Coordination-causing events occurs,Oracle Forms defers fetching the associated detail records until the operator navigates to the detail block.

33 . What is the Deferred with no Auto-Query Coordination of
the Master with the Detail block?
Deferred with Auto-Query(Deferred True,Auto-Query False) When a Coordination-causing events occurs,Oracle Forms doesn't automatically fetch the detail records the operator must navigate to the detail block and explicitly execute a query.

34. What is an Alert?
An Alert is a modal Window that displays a message notifying the operator of some application condition.

35. When do you use Alert?
Use alerts to advise operators of unusual situations or to warn operators who are about to perform an action that might have undesirable or unexpected consequences.

36 . what are the different display styles of alert?

37 . How do you change the alert message during runtime?
You can change an alert message at run time by executing the SET_ALERT_PROPERTY built-in procedure. Changing an alert's message allows you to reuse the same alert object, but display a different message each time it is invoked.

Set_Alert_Property(alert_id,ALERT_MESSAGE_TEXT,"The product you selected is not in stock");


38 . What are the different types of editors?
There are three editors that can be used at run time the default editor, a system editor,or a
user-named editor.

39 . What is the default editor?
The default editor provides standard editing features,including search/replace and cut,copy and paste. The default editor is built into every form and is automatically available from every
text item.

40. What is the System Editor?
If there is a system editor available, you can specify that Oracle Forms should use the current system editor, rather than the default editor.

41 . What is the User named Editor?
A User named Editor has the same text editing functionality has the default editor, but, because it is a named object,you can specify editor attributes such as window display size,position,and title.

42 . What are the built-ins to display the user-named editor?
A User-named editor can be displayed programatically with built in procedure SHOW_EDITOR,EDIT_TEXTITEM independent of any particular text item.

43 . What is the difference between SHOW_EDITOR and
Show_Editor is the generic built-in which accepts any editor name and takes some input string and returns modified output string. whereas the edit_textitem built_in needs the input focus to be in the textitem before the built_in is executed.

LOV(List Of Values)

44. What is an LOV?
An LOV is a scrollable popup window that provides the operator with either a single or multi-column selection list.

45. What is the basic data structure that is required for creating
an LOV?
Record Group

46. What is the "LOV for validation" Property of an item? What is
the use of it?
When LOV for validation is set to true, Oracle Forms compares the current value of the text item to the values in the first column displayed in the LOV whenever the validation event occurs.

If the value in the text item matches one of the values in the first column of the LOV, Validation succeeds ,The LOV is not displayed, the processing continues normally.

If the value in the text item doesn��t match one of the values in the first column of the LOV,Oracle Forms displays the LOV and uses the text item value as the search criteria to automatically reduce the list.

47. What are the built-ins used to display the LOV?

47. What are the built-ins that are used to attach an LOV
programatically to an item?
(by setting the LOV_NAMEproperty)

48. What are the built-ins that are used for setting the LOV
properties at runtime?

Record Groups

49. What is the Record Group?
A record group is an internal Oracle Forms data structure that has a column/row framework similar to a database table. However, unlike database tables,record groups are separate objects that bekong to the form module in which they are defined.

50. How many number of columns a record group can have?
A record group can have an ultimate number of columns of type CHAR,LONG,NUMBER, and DATE provided that the total number of columns does not exceed 64k.

51 . What is the maximum allowed length of a Record Group
Record group column names cannot exceed 30 characters.

52. What are the different types of Record Group?
Query Record Groups
NonQuery Record Groups
Static Record Groups

53. What is a Query Record Group?
A Query record is a record group that has an associated SELECTstatement. The columns in a query record group derive their default names,datatypes and lengths from the database columns referenced in the SELECT statement. The records in a query record group are the rows retreived by the query associated with that record group.

54 . What is a Non Query Record Group?
A non-query record group is a group that does not have an associated query,but whose structures can be modified programatically at runtime.

55. What is a Static Record Group?
A Static record group is not associated with a query,rather, you define its structure and row values at design time, and they remain fixed at runtime.

56 . What are the built-ins used for creating and deleting

57. What are the built-ins used for modifying a group structure?

58 . What are the built-ins used for getting cell values?

59 . What are the built-ins used for processing rows?

60. What are the built-ins used for finding Object ID functions?

61. Use the ADD_GROUP_COLUMN function to add a column to
a record group that was created at design time
(1) True (2) False.

62. Use the Add_Group_row procedure to add a row to a static
record group.(1)True (2) False


63. What are the Parameters?
Parameters provide a simple mechanism for defining and setting the values of inputs that are required by a form at startup. Form parameters are variables of type CHAR,NUMBER, or
DATE that you define at design time.

64 . What are the Built-ins used for sending Parameters to
You can pass parameter values to a form when an application executes the CALL_FORM,NEW_FORM,OPEN_FORM,or RUN_PRODUCT.

65 . What is the maximum number of characters the parameter
can store?
The maximum number of characters the parameter can store is only valid for CHAR parameters, which can be up to 64k. Number parameters default to 23 bytes and DATE parameters default to 7 bytes.

66 . How do you call other ORACLE products from Oracle
RUN_PRODUCT is a built-in used to invoke one of the supported Oracle tools products and specifies the name of the document or module to be run. If the called product is unavailable at the time of calkl, Oracle Forms returns a message to the operator.

67. How do you reference a Parameter?
In PL/SQL, you can reference and set the values of form parameters using bind variable syntax.
:PARAMETER.parameter_name="VIKRAM"; or

68 . How do you reference a parameter indirectly?
To indirectly reference a parameter
Use the NAME_IN and COPY built-ins to indirectly set and reference the parameter's value.


69 . What are the difference Parameter Types?
Text Parameters
Data Parameters

70 . When do you use DATA_PARAMETER type?
When the value of a data parameter being passed to a called product is always the name of a record group defined in the current form. Data paremeters are used to pass data to products invoked with the RUN_PRODUCT built-in subprogram.

71 . Can you pass data parameters to forms?


72. What are the different types of images?
BoilerPlate Images
Image Items

73 . What is the difference between Boilerplate images and
image items?
Boilerplate Images BoilerPlate images are static images(either vector or bitmap) that you import from the file system or database to use as graphical elements in your form, such as company logos and maps.
Image ItemsImage items are special types of interfaace controls that store and display either vector or bitmaps images. Like other items that store values, image items can be either base table items (items that relate directly to database columns) or control items. The definiton of an image item is storred as part of the form module. .FMB and .FMX files, but no image file is actually assciated with an image item until the item is populated at runtime.

74 . What are the triggers associated with the image items?
The Following triggers are available for responding programatically to image items events
First when the operator double-clicks on a image item
Fires when an operator clicks or double-clicks on an image item

75. What is the use of IMAGE_ZOOM built_in?
You can use the IMAGE_ZOOM built-in subprogram to manipulate images in image items.

Working with Multiple Forms

76. How do you create a new session while opening a new form?
Using OPEN_FORM built-in setting the SESSION option.
When you invoke multiple forms with OPEN_FORM and CALL_FORM in the
Same application,state whether the following are TRUE or FALSE

77 . Any attempt to navigate programatically to a disabled form
in a call form stack is allowed

78 . An open form cannot execute the CALL_FORM procedure if
a chain of called forms has been initiated by another open

79. When a form is invoked with CALL_FORM, does Oracle
Forms issues a savepoint? TRUE/FALSE

80. What are the various subevents a mouse double click event
Double_clicking the mouse consists of the mouse down,mouse up,mouse click,mouse down and mouse up events.

81 . State any three mouse event System Variables?


82. What is an OLE?
Object Linking and Embedding (OLE) provides you with the capability to integrate objectrs from many MS Windows applications into a single compound document. Creating integrated applications enables you to use the features from several MS Windows application.

83. What is the difference between Object Embedding and
Linking in Oracle Forms?
An Ole server applications creates OLE objects that are embedded or linked in OLE containers. Examples of OLE servers are MS Word and MS Excel. OLE containers provide a place to store,display and manipulate objects that are created by OLE server applications.

Example: Oracle Forms is an example of an OLE container

84. What are the different styles of Activation of OLE objects?
In-place Activation
External Activation

Visual Attributes And Property Classes

85. What are Visual attributes?
Visual attributes are the font,color and pattern properties that you set for form and menu objects that appear in your application's interface.

86. What is a Property Class?
A Property class is a named object that contains a list of properties and their settings. Once you create a property class you can base other objects on it. An object based on a property class inherit the setting of any property in the class that makes sense for that object.

87 . Can a Property class itself be based on a property class?

88 . What are the Important differences between property
classes and visual attributes?
The important differences betweeen property classes and visual attributes are Named Visual attributes define only font.color and pattern attributes ; property classes can contain these and any other properties.
You can change the appearance of objects at runtime by changing the named visual attribute programmatically; Property class assignment cannot be changed programmatically
When an object is inheriting from both a property class and a named visual attribute, the named visual attribute settings settings take precedence, and any visual attribute properties in the class are ignored.

Forms Built-ins

89. What is a TEXT_IO package?
The Text_IO package allows you to read and write information to a file in the file system.

90. What is an USER_EXIT?
Calls the user exit named in the user_exit_string invokes a 3GL program by name which has been properly linked into your current Oracle Forms executable.

91. What is SYNCHRONIZE?
Synchronizes the terminal screen with the internal state of the form. That is SYNCHRONIZE updates the screen display to reflect the information that Oracle Forms has in its internal representation of the screen.


92. What is WHEN-DATABASE-RECORDN Trigger?
Fires when Oracle Forms first marks a record as an insert or an update. That is, the trigger fires as soon as Oracle Forms Determines through validation that the record should be processed by the next post or commit as an insert or update. This generally occurs only when the operator modifies the first item in a record, and after the operator attempts to navigate out of the item.

93. What are Master_Detail Triggers?

System Variables

94. What is the difference between $$DATE$$ and
$$$$DBDATE$$ retrieves the current database date
DBDATE$$ retrieves the current operating system date.

SYSTEM.COORDINATION_OPERATION represents the coordination causing event that occureson the master block in master detail relationship.

Example: System.Cooordination_Operation=


96. What are the differences between LOV and List item?
LOV is a Property whereas List item is an item.
A List item can have only one column whereas an LOV can have one or more columns.

97. What are the different display styles of List item?
Text list
Combo box.

98 . What is a Poplist?
The poplist style list item appears initially as a single field(similar to a text item field. When The operator selects the list icon, a list of available choices appears.

99 . What is a Text list?
The text list style item appears as a rectangular box which displays a fixed number of values. When the text list contains values that cannot be displayed(due to the display area of the item), a vertical scroll bar appears, allowing the operator to view and select undisplayed values.

100. What is a Combo Box?
The Combo Box style list item combines the features found in list and text items. Unlike the poplist or the text list style list items, the combo box style list item will both display fixed values and accept one operator-entered values.

101. What are Display items?
Display items are similar to text items with the exception that displays items only store and display fetched or assigned values. Display items are generally used asa boilerplate or as conditional text.

102. What is the difference between OPEN_FORM AND
when one form invokes another form by executing OPEN_FORM, the first form remains displayed, and operators can navigate between the forms as desires.
When one form invokes another form by executing CALL_FORM, the called form is modal with respect to the calling form. That is, any windowa that belong to the calling form are disabled and operators cannot navigate to them until they first exit the called form.

103. What is NEW_FORM built-in?
When one form invokes another form by executing New_form, Oracle Forms exists the first form and releases its memeory before loading the new form. Calling NEW_FORM completely replaces the first form with the second. If there are changes pending in the first form, the operator will be prompted to save them before the new form is loaded.

104. what is a Library?
A library is a collection of subprograms, including user- named procedures,functions and packages.

105. What are the advantages of libraries?
Libraries provide a convenient means of storing client-side program units and sharing them among multiple applications.
Once you create a library,you can attach it to any other form,menu or library ,module.
Then, you can call library units from triggers, menu item commands and user-named routines you write in the modules to which modules to which you have attached the library.
When a library attaches another library,program units in the first library can reference program units in the attached library.
Libraries support dynamic loading-that is, a library's program units are loaded into an application only when needed. This can significantly reduce the runtime memory requirements of an application.

106. What is a STRIP_SOURCE generate option?
Removes the source code from the library file and generates a library file that contains only pcode.
The resulting file can be used for final deployment, but cannot be subsequently edited in the designer.
Example:f45gen module=old_lib.pll userid=scott/tiger
Strip_source=YES output_file=<new_file_name>

107. What are VBX controls?
VBX controls provide a simple method of building and enhancing user interfaces. The controls can be used to obtain user input and display program output. The controls can be used to obtain user input and display program output. VBX controls were originally developed as extensions for the MS Visual Basic environment and include such items as sliders,grids and knobs.

108. What is a Timer?
A timer is an "internal time clock" that you programatically create to perform an action each time the timer expires.

109. What are the built-ins associated with timers?

110. What is the difference between POST-DATABASE-COMMIT
POST-FORM-COMMIT fires once during the Post and Commit Transactions process, after the database commit occurs. The Post-Forms-Commit trigger fires after inserts, updates and deletes have been posted to the database, but before the transaction has been fibalized by issuing the commit. The Post-Database-Commit Trigger fires after Oracle Forms issues the Commit to finalize the transaction.

111. What is the difference between PRE-SELECT and PRE-
Fires during Execute Query and Count Query processing, after Oracle Forms constructs the SELECT statement to be issued, but before the statement is actually issued.
The Pre-Query trigger fires just before Oracle Forms
issues the SELECT statement to the database, after the operator has defined the example record by entering query criteria in Enter Query Mode.
Pre-Query trigger fires before Pre-Select trigger.
112. What is the trigger associated with the TIMER?

113. What is the use of the Transactional Triggers?
Using Transactional triggers we can control or modify the default functionality of the Oracle Forms.

Oracle DBA Interview Questions

Introduction to DBA

1. What is a database instance ? Explain

A database instance (server) is a set of memory structures and background processes that access a set of database files.

The process can be shared by all users.

The memory structures that are used to store most queried data from database. This helps us to improve database performance by decreasing the amount of I/O performed against data file.

2. What is parallel server?

Multiple instances accessing the same database (Only in Multi-CPU environments).

3. What is Schema ?

The set of objects owned by user account is called the schema

4. What is an Index ? How it is implemented in Oracle Database ?

An index is a database structure used by the server to have direct access of a row in a table.
An index is automatically created when a unique or primary key constraint clause is specified in create table command (Ver 7.0)

5. What is clustres ?

Group of tables physically stored together because they share common columns and are often used together is called Clusters.

6. What is a cluster key ?

The related columns of the tables are called the cluster key. The cluster key is indexed using a cluster index and its value is stores only once for multiple tables in the cluster.

7. What are the basic element of Base configuration of an oracle Database ?

It consists of
one or more data files
one or more control files
two or more redo log files

The database contains
Multiple users/schemas
one or more rollback segments
one or more tablespaces
Data dictionary tables

User objects (tables,indexes,views etc)

The server that access the database consists of
SGA (Database buffer, Dictionary Cache Buffers, redo log buffers,Shared SQL pool)
User process with associated PGA

8. What is deadlock ? Explain.

Two processes waiting to update the rows of a table which are locked by the other process then deadlock arises.

In a database environment this will often happen because of not issuing proper row lock commands. Poor design of front-end application may cause this situation and the performance of server will reduce drastically.

These locks will be released automatically when a commit/rollback operation performed or any one of this processes being killed externally.

3.2 Memory Management

9. What is SGA ? How it is different from Ver 6 and Ver 7 ?

The System Global Area in a Oracle database is the area in memory to facilitates the transfer of information between users. It holds the most recently requested structural information about the database.

The structure is Database buffers, Dictionary Cache, Redo Log Buffer and Shared SQL pool (Ver 7) area.

10. What is Shared SQL pool ?

The data dictionary cache is stored in an area in SGA called the Shared SQL Pool. This will allow sharing of parsed SQL statements among concurrent users.

11. What is meant by Program Global Area (PGA) ?

It is area in memory that is used by a Single Oracle User process.

12. What is a data segment ?

Data segment are the physical areas within a database block in which the data associated with tables and clusters are stored.

13. What are the factors causing the reparsing of SQL statements in SGA ?

Due to insufficient Shared SQL pool size

Monitor the ratio of the reloads takes place while executing SQL statements. If the ratio is greater that 1 then increase the SHARED_POOL_SIZE.

3.3 Logical & Physical Architecture of Database

14. What is Database Buffers ?

Database buffers are cache in the SGA used to hold the data blocks that are read from the data segments in the database such as tables, indexes and clusters. DB_BLOCK_BUFFERS parameter in INIT.ORA decides the size.

15. What is dictionary cache ?

Dictionary cache is information about the database objects stored in a data dictionary table.

16. What is meant by recursive hits ?

Number of times processes repeatedly query the dictionary table is called recursive hits. It is due to the data dictionary cache is too small. By increasing the SHARED_POOL_SIZE parameter we can optimize the size of Data Dictionary Cache.

17. What is meant by redo log buffer ?

Changes made to entries are written to the on-line redo log files so that they can be used in roll forward operation during database recoveries. Before writing them into the redo log files, they will first brought to redo log buffers in SGA and LGWR will write into files frequently. LOG_BUFFER parameter will decide the size.

18. How will you swap objects into a different table space for an existing database ?

Export the user
Perform import using the command imp system/manager file=export.dp indexfile=newfile.sql. This will create all definitions into newfile.sql.
Drop necessary objects.

Run the script newfile.sql after altering the tablespaces.
Import from the backup for the necessary objects.

19. List the Optimal Flexible Architecture (OFA) of Oracle database ? or
How can we organise the tablespaces in Oracle database to have maximum performance ?

SYSTEM - Data dictionary tables
DATA - Standard operational tables
DATA2 - Static tables used for standard operations
INDEXES - Indexes for Standard operational tables
INDEXES1 - Indexes of static tables used for standard operations
TOOLS - Tool table
TOOLS1 - Indexes for tools table
RBS - Standard Operations Rollback Segments
RBS1,RBS2 - Additional/Special rollback segments
TEMP - Temporary purpose tablespace
TEMP_USER - Temporary tablespace for users
USERS - User tablespaces.

20. How will you force database to use particular rollback segment ?


21. What is meant by free extent ?

A free extent is a collection of continuous free blocks in tablespace. When a segment is dropped its extents are reallocated and are marked as free.

22. How free extents are managed in Ver 6 and Ver 7. ?

Free extents cannot be merged together in Ver 6.0
Free extents are periodically coalesces with the neighboring free extent Ver 7.0.

23. Which parameter in Storage clause will reduce no of rows per block ?

PCTFREE parameter
Row size also reduces no of rows per block.

24. What is significance of having storage clause ?

We can plan the storage for a table as how much initial extents are required, how much can be extended next, how much % should leave free for managing row updations etc.

25. How does space allocation take place within a block ?

Each block contains entries as follows :
Fixed block header
Variable block header

Row header, row date (Multiple rows may exists)
PCTFREE (% of free space for row updation in future)

26. What is the role of PCTFREE parameter is Storage clause ?

This is used to reserve certain amount of space in a block for expansion of rows.

27. What is the OPTIMAL parameter ?

It is used to set the optimal length of rollback segment.

28. What is the functionality of SYSTEM tablespace ?

To manage the database level of transactions such as modifications of the data dictionary table that record information about the free space usage.

29. How will you create multiple rollback segments in a database ?

Create a database which implicitly creates a SYSTEM Rollback Segment in a SYSTEM tablespace.
Create a Second Rollback Segment name R0 in the SYSTEM tablespace.
Make new rollback segment available (After shutdown, modify init.ora file and Start database)
Create other tablespace (RBS) for rollback segments.
Create additional Rollback segment in tablespace (RBS)
Deactivate Rollback Segment R0 and activate the newly created rollback segments.

30. How the space utilisation takes place within rollback segments ?

It will try to fit the transaction in a cyclic fashion to all existing extents. Once it found an extent is in use then it forced to acquire a new extent. (No of extents is based on the OPTIMAL size).

31. Why query fails sometimes ?

Rollback segment dynamically extent to handle larger transactions entry loads.
A single transaction may wipeout all available free space in the Rollback Segment Tablespace. This prevents other user using Rollback segment.

32. How will you monitor the space allocation ?

By querying DBA_SEGMENT table/View

33. How will you monitor rollback segment status ?

Querying the DBA_ROLLBACK_SEGS view

The status available as follows :
IN USE - Rollback Segment is on-line
AVAILABLE - Rollback Segment available bur not on-line
OFF-LINE - Rollback Segment us off-line
INVALID - Rollback Segment dropped
NEEDS RECOVERY - Contains data but need recovery or corrupted
PARTLY AVAILABLE - Contains data from an unresolved transaction involving a distributed database

34. List the sequence of events when a large transaction that exceeds beyond its optimal value when an entry wraps and causes the rollback segment to expand into another extend.

Transaction Begins
An entry is made in the RBS header for new transactions entry
Transaction acquired blocks in an extent of RBS
The entry attempts to wrap into second extent. None is available. So that the RBS must extent.
The RBS checks to see if it is oldest inactive segment
Oldest inactive segment is eliminated
RBS extends
The Data dictionary table for space management are updated
Transaction Completes.

35. How can we plan storage for very large tables ?

Limit the number of extents in the table
Separate the Table from its indexes
Allocate sufficient temporary storage

36. How will you estimate the space required by non-clustered tables ?

Calculate the total block header size
Calculate the available data space per block
Calculate the combined column length of the average row
Calculate the total average row size
Calculate the average number rows that can fit in a block
Calculate the number of blocks and bytes required for the table
After arriving the calculation add the additional space to calculate the initial extent size for working area

37. Is it possible to use raw devices as data file and what is the advantages over file system files ?

The advantages over file system files :
I/O will be improved because Oracle is bye-passing the kernal while writing into disk.
Disk Corruption will be very less.

38. What is a control file ?

Database's overall physical architecture is maintained in a file called control file. It will be used to maintain internal consistency and guide recovery operations. Multiple copies of control files are advisable.

39. How to implement the multiple control files for an existing database ?

Shutdown the database
Copy one of the existing control file to new location'
Edit config.ora file by adding new control file name
Restart the database

40. What is meant by Redo Log file mirroring ? How it can be achieved ?

Process of having a copy of redo log files is called mirroring.
This can be achieved by creating group of log files together, so that LGWR will automatically writes them to all the members of the current on-line redo log group. If any one group fails then database automatically switch over to next group.

41. What is advantage of having disk shadowing/Mirroring ?

Shadow set of disks save as a backup in the event of disk failure. In most Operating System if any disk failure occurs it automatically switchover to place of failed disk.
Improved performance because of most OS support volume shadowing can direct file I/O request to use the shadow set of files instead of the main set of files. This reduces I/O load on the main set of disks.

42. What is use of rollback segment in Database ?

They allow the database to maintain read consistency between multiple transactions.

43. What is a Rollback segment entry ?

It is the set of before image data blocks that contain rows that are modified by a transaction.
Each Rollback Segment entry must be completed within one rollback segment.
A single rollback segment can have multiple rollback segment entries.

44. What a hit ratio ?

It is a measure of well the data cache buffer is handling requests for data.
Hit Ratio = (Logical Reads - Physical reads - Hit Misses) / Logical reads.

45. When will be a segment released ?

When Segment is dropped.
When Shrink (RBS only)
When truncated (TRUNCATE used with drop storage option)

46. What are disadvantages of having raw devices ?

We should depend on export/import utility for backup/recovery (fully reliable)
The tar command cannot be used for physical file backup, instead we can use dd command which is less flexible and has limited recoveries.

47. List the factors that can affect the accuracy of the estimations ?

The space used transaction entries and deleted records does not become free immediately after completion due to delayed cleanout.
Trailing nulls and length bytes are not stored.
Inserts of, updates to, and deletes of rows as well as columns larger than a single data block, can cause fragmentation and chained row pieces.

3.4 Database Security & Administration

48. What is user account in Oracle database ?

An user account is not a physical structure in Database but it is having important relationship to the objects in the database and will be having certain privileges.

49. How will you enforce security using stores procedures ?

Don't grant user access directly to tables within application
Instead grant the ability to access the procedures that access the tables
When procedure executed it will execute the privilege of procedures owner. Users cannot access tables except via the procedure.

50. What are the dictionary tables used to monitor a database spaces ?


51. What are responsibilities of a Database Administrator ?

1. Installing and upgrading the Oracle Server and application tools
2. Allocating system storage and planning future storage requirements for the database system.
3. Managing primary database structures(tablespaces)
4. Managing primary objects (table,views,indexes)
5. Enrolling users and maintaining system security
6. Ensuring compliance with Oracle license agreement
7. Controlling and monitoring user access to the database
8. Monitoring and optimising the performance of the database
9. Planning for backup and recovery of database information
10. Maintain archived data on tape
11. Backing up and restoring the database
12. Contacting Oracle Corporation for technical support

52. What are requirements one should fulfill to connect to ORACLE as internal?

Operating system account has the operating system privileges that allow you to connect
One should be authorised to connect as internal
Database has a password for internal connections, and you know the password must use a dedicated server

53. What are the roles and user accounts created automatically with the database ?

DBA role - Contains all database system privileges

SYS user account - The DBA role will be assigned to this account. All of the base tables and views for the database's dictionary are store in this schema and are manipulated only by ORACLE.

SYSTEM user account - It has all the system privileges for the database and additional tables and views that display administrative information and internal tables and views used by oracle tools are created using the username.

54. What are the database administrators utilities available ?

SQL*DBA - This allows DBA to monitor and control an ORACLE database.

SQL*Loader - It loads data from standard operating system files (Flat files) into ORACLE database tables.

EXPORT(exp) and IMPOER (imp) utilities allow you to move existing data in ORACLE format to and from ORACLE database.

55. What are the minimum parameters should exist in the parameter file (init.ora) ?

DB_NAME - Must set to a text string of not more that 8 characters and it will be stored inside the datafiles, redo log files and control file while database creation.

DB_DOMAIN - It is string that specifies the network domain where the database is created. The global database name is identified by setting these parameters (DB_NAME & DB_DOMAIN)

CONTROL_FILES - List of control filenames of the database. If name is not mentioned then default name will be used.

DB_BLOCK_SIZE - The default data block size and is operating system dependent. It cannot be changed after database creation except by re-creating the database.

DB_BLOCK_BUFFERS - The maximum number of operating system processes that can be connected to ORACLE concurrently. The value should be 5 (background process) and additional 1 for each user.

ROLLBACK_SEGMENTS - List of rollback segments an ORACLE instance acquires at database startup.


56. What is a trace file and how it is created ?

Each server and background process can write an associated trace file. When an internal error is detected by a process or user process, it dumps information about the error to its trace. This can be used for tuning the database.

57. What are roles ? How can we implement roles ?

Roles are easiest way to grant and manage common privileges needed by different groups of database users.
Creating roles and assigning privies to roles.
Assign each role to group of users. This will simplify the job of assigning privileges to individual users.

58. What are the steps to switch a database's archiving mode between NOARCHIEVELOG and ARCHIVELOG mode ?

1. Shutdown the database instance
2. Backup the database
3. Perform any operating system specific steps (optional)
4. Start up a new instance and mount but do not open the database
5. Switch the database's archiving mode.

59. How can you enable automatic archiving ?

Shut the database
Backup the database
Modify/Include LOG_ARCHIVE_START = TRUE in init.ora file
Start up the database

60. How can we specify the Archived log file name format and destination ?

By setting the following values in init.ora file
LOG_ARCHIVE_FORMAT = arch%S/s/T/t.arc (%S - Log sequence number and is zero left-paded, %s - Log sequence number not paded, %T - Thread number left-zero-paded and %t - Thread number not paded). The file name created is arch0001.arc %S is used.

Shut the database and change these parameters in init.ora files.

61. What is the user of ANALYZE command ?

To perform one of these function on an index, table, or cluster :
to collect statistics about object used by the optimizer and store them in the data dictionary.
to delete statistics about the object from the data dictionary
to validate the structure of the object
to identify migrated and chained rows of the table or cluster.

3.5 Managing Distributed Databases

62. How can we reduce the network traffic ?

Replication of data in distributed environment
Using snapshots to replicate data
Using remote procedure calls.

63. What is a snapshot ?

Snapshot is an object used to dynamically replicate data between distributed databases at specified time intervals. In ver 7.0 they are read only.

64. What are the various type of snapshots ?

Simple and Complex.

65. Differentiative simple and complex, snapshots

A simple snapshot is based on a query that does not contains GROUP BY clauses, CONNECT by clauses, JOINs, Subquery or a set of operations.
A complex snapshots contain at least any one of the above.

66. What is dynamic data replication ?

Updating or inserting records in remote database through database triggers. It may fail if remote database is having any problem.

67. How can you enforce referential integrity in snapshots ?

Time the references to occur when master tables are not in use.
Perform the references manually immediately after locking the master tables.
We can join tables in snapshots by creating a complex snapshot that will be based on the master tables.

68. What are the options available to refresh snapshots ?

COMPLETE - Tables are completely regenerated using the snapshot's query and the master tables every time the snapshot referenced.
FAST - If simple snapshot used then a snapshot log can be used to send only the changes to the snapshot tables.
FORCE - The default value. If possible it performs a FAST refresh; Otherwise it will perform a COMPLETE refresh.

69. What is a snapshot tag ?

It is a table that maintains a record of modifications to the master table in a snapshot. It is stored in the same database as master table and is only available for simple snapshots. It should be created before creating snapshots.

70. When will the data in the snapshot log be used ?

The data in the snapshot log is used during fast references of the table's snapshots.

71. What are the pre-requisites to create a snapshot log ?

We must be able to create a after row trigger on table (i.e. it should not be already available)
After giving table previleges.
We cannot specify snapshot log name because oracle uses the name of the master table in the name of the database objects that support its snapshot log.
The master table name should be less than or equal to 23 characters.
(The table name created will be MLOG$_tablename, and trigger name will be TLOG$_tablename)

72. What are the benefits of distributed options in databases ?

Database on other servers can be updated and those transactions can be grouped together with others in a logical unit.
Database uses a two phase commit

73. What is a two-phase commit ?

Database on other servers can be updated and those transactions can be grouped together with others in a logical unit is called two-phase commit. They are

The Preparation Phase : An initiating node called the global coordinator notifies all sites involved in the transaction to be ready either commit or rollback the transaction.

The Commit Phase : If there is no problem with prepare phase, then all sites commit their transactions. If a network or node failure occurs, then all sites rollback their transactions.

3.6 Managing Backup & Recovery

74. What are the different methods of backing up oracle database ?

Logical Backups
Cold Backups
Hot Backups (Archive log)

75. What is a logical backup ?

Logical backup involves reading a set of database records and writing them into a file. Export utility is used for taking backup and Import utility is used to recover from backup.

76. What is cold backup ? What are the elements of it ?

Cold backup is taking backup of all physical files after normal shutdown of database. We need to take
All Data files
All Control files
All on-line redo log files
Then init.ora file (optional)

77. What are the different kind of export backups ?

Full backup - Complete database
Incremental Backup - Only affected tables from last incremental date / Full backup date
Cumulative backup - Only affected table from the last cumulative date / Full backup date

78. What is hot backup and how it can be taken ?

Taking backup of archive log files when database is open. For this the ARCHIVELOG mode should be enabled. The following files need to be backed up :
All data files
All archive log, redo log files
On control file.

79. What is the use of FILE option in EXP command ?

To give the export file name.

80. What is the use of COMPRESS option in EXP command ?

Flag to indicate whether export should compress fragmented segments into single extents.

81. What is the use of GRANT option in EXP command ?

A flag to indicate whether grants on database objects will be exported or not. Values is 'Y' or 'N'.

82. What is the use of INDEXES option in EXP command ?

A flag to indicate whether indexes on tables will be exported.

83. What is use of ROWS option in EXP command ?

Flag to indicate whether table rows should be exported. If 'N' only DDL statements for the database objects will be created.

84. What is the use of CONSTRAINTS option in EXP command ?

A flag to indicate whether constraints on table need to be exported.

85. What is the use of FULL option in EXP command ?

A flag to indicate whether full database export should be performed.

86. What is the use of OWNER option in EXP command ?

List of table accounts should be exported.

87. What is the use of TABLES option in EXP command ?

List of tables should be exported.

88. What is use of RECORD LENGTH option in EXP command ?

Record length in bytes.

89. What is use of INCTYPE option in EXP command ?

Type export should be performed. COMPLETE, CUMULATIVE, INCREMENTAL

90. What is use of RECORD option in EXP command ?

For incremental exports, the flag indicates whether a record will be stored in data dictionary tables recording the export.

91. What is the use of PARFILE option in EXP command ?

Name of the parameter file to passed for export.

92. What is the use of ANALYSE (Ver 7) option in EXP command ?

A flag to indicate whether statistical information about the exported objects should be written to export dump file.

93. What is use of CONSISTENT (Ver 7) option in EXP command ?

A flag to indicate whether a read consistent version of all the exported objects should be maintained.

94. What is the use of Log (Ver 7) option in EXP command ?

The name of file to which log of the export will be written.

95. What is use of FILE option in IMP command ?

The name of file from which import should be performed.

96. What is the use of SHOW option in IMP command ?

A flag to indicate whether file content should be displayed or not.

97. What is the use of IGNORE option in IMP command ?

A flag to indicate whether import should ignore errors encounter when issuing CREATE command.

98. What is the use of GRANT option in IMP command ?

A flag to indicate whether grants on database objects will be imported.

99. What is use of INDEXES option in IMP command ?

A flag to indicate whether import should import index on tables or not.

100. What is use of ROWS option in IMP command ?

A flag to indicate whether rows should be imported. I f this is set to 'N' then only DDL for the database objects will be executed ?

101. What is the use of FULL option in IMP command ?

A flag to indicate whether full import should be done or not.

102. What is the use of FROMUSER option in IMP command ?

A list of database accounts whose objects should be read from the export dump file.

103. What is use of TOUSER option in IMP command ?

A list of database accounts into which objects in the export dump file will be imported

104. What is use of TABLES option in IMP command ?

A list of tables to be imported.

105. What is use of RECORDLENGTH option in IMP command ?

The length of the record in bytes of the export dump file.

106. What is use of INCTYPE option in the IMP command ?

The type of import being performed.

107. What is use of COMMIT option in IMP command ?

A flag to indicate whether import should commit after each array. If 'N' then commit will take place at table level

108. What is use of PARFILE option in IMP command ?

Name of the parameter file to passed for import command.

109. What is use of INDEXFILE option in IMP command ?

If filename is given then all the DDL will be created in the given file.

110. What is use of DESTROY (Ver 7) option in IMP command ?

A flag to indicate whether the create tablespace command found in dump files from full exports will be executed.

111. What is use of LOG option in IMP command ?

Name of the file to which the log of the import will be written.

112. Consider a case below : User is taking the backup in the following fashion :
Type F I I I I C I I I I C I I
Date 1 2 3 4 5 6 7 8 9 10 11 12 13
F - Full Backup
I - Incremental Backup
C - Cumulative Backup
Suppose database crash on 14th morning. How can we retrieve the database ?

Create the database
Import from the Full backup which was taken on 1st
Import from Cumulative backups which was taken on 6th
Import from Cumulative backups which was taken on 1th
Import from the Incremental backups 12,13 respectively.
Now the database will be available to latest status provided there is no transaction taken place after the 13th incremental backup.

113. List the steps to restore the database if data file lost. (Assume we are taking hot backups)

Copy the lost file from the backup to the original location
Start the instance
Mount the database
Recover the database using recover database command
Open the database

114. What are the points to be taken care when we are using SQL*Loader for importing data from flat files ?

Whether table and indexes are properly sized.
Direct option being used or not (Ver 7)
If one time load do not create any index until data has been loaded and table size is verified.

115. What are the advantages of using direct path option in SQL*Loader ?

It bypasses the normal processing of insert statements and instead writes directly to tables data blocks.
When direct option is used index become invalid and once the load complete the new key is merged with all old one and bring the status to valid.
Data should be presorted otherwise it needs the double the size in tablespace.

116. What are areas a DBA can monitor the database using SQLDBA command?

DBA can monitor the following areas to do fine tuning of the database :
Tables(Locks etc)
SQL Area
Library Cache
File I/O
System I/O
Rollback Segments
Statistics (System, Sessions)

Apart from this all DBA activities can be performed through SQLDBA command.


DDE - Dynamic Data Exchange.
DLL - Dynamic Link Library
OLE - Object Linking and Embedding.
MAPI �V Messaging Application Program Interface

What is DDE ?

DDE is method for Inter Process Communication. An inter process communication is a method of passing data between processes and synchronising events.

How does DDE work ?

DDE uses shared memory to exchange data and a protocol to synchronize passing of data.

What does a DLL contain ?

A DLL contains code, data and windows resources.

How does a DLL work ?

A DLL allocates a global memory block to an application and uses this to exchange data with application.

What are the two types of DDE application ?

Message based DDE applications and Dynamic Data Exchange Management Library application.

What are the parts of a DDE application ?

Client application, Server application, Client/Server application and Monitor application.

What is a monitor application in the context of DDE ?

A monitor application can only intercept messages but cannot act on it.

What is the use of a monitor application ?

A monitor application can be used as a debugging tool.

What is the connection between OLE and DDE ?

OLE is a set of DDE executable commands to which DDE protocol is applicable.

What is the difference between an embedded object and a linked object ?

An embedded object is stored in the document itself while the document just stores a reference to the linked object.

If a link object is changed independently of the document, wht happens the linked object in the document ?
1. The reference object is automatically refreshed
2. The reference object is not refreshed
3. The user decides whether the object is to refreshed or if the older version is retained.

Answer is 2

What are the types of OLE applications ?

Client, Server and Object handlers.

What is an object handler ?

An Object handler is a set of DLL that facilitate communication between client application and server application.

What are the advantages of OLE ?

No need to switch between applications. Facilitate the use of specialized applications to create objects which can be embedded.

What is the difference between a stored procedure and a database trigger ?

A trigger is automatically executed when the firing event occurs while stored procedure has to be invoked.

More Oracle Interview Questions


1) What are the Back ground processes in Oracle and what are they.
1) This is one of the most frequently asked question.There are basically 9 Processes but in a
general system we need to mention the first five background processes.They do the house keeping
activities for the Oracle and are common in any system.
The various background processes in oracle are
a) Data Base Writer(DBWR) :: Data Base Writer Writes Modified blocks from Database buffer cache to Data Files.This is required since the data is not written whenever a transaction is commited.
b)LogWriter(LGWR) :: LogWriter writes the redo log entries to disk. Redo Log data is generated in redo log buffer of SGA. As transaction commits and log buffer fills, LGWR writes log entries into a online redo log file.
c) System Monitor(SMON) :: The System Monitor performs instance recovery at instance startup.This is useful for recovery from system failure
d)Process Monitor(PMON) :: The Process Monitor peforms process recovery when user Process fails. Pmon Clears and Frees resources that process was using.
e) CheckPoint(CKPT) :: At Specified times, all modified database buffers in SGA are written to data files by DBWR at Checkpoints and Updating all data files and control files of database to indicate the
most recent checkpoint
f)Archieves(ARCH) :: The Archiver copies online redo log files to archival storal when they are busy.
g) Recoveror(RECO) :: The Recoveror is used to resolve the distributed transaction in network
h) Dispatcher (Dnnn) :: The Dispatcher is useful in Multi Threaded Architecture
i) Lckn :: We can have upto 10 lock processes for inter instance locking in parallel sql.

2) How many types of Sql Statements are there in Oracle
2) There are basically 6 types of sql statments.They are
a) Data Defination Language(DDL) :: The DDL statments define and maintain objects and drop objects.
b) Data Manipulation Language(DML) :: The DML statments manipulate database data.
c) Transaction Control Statements :: Manage change by DML
d) Session Control :: Used to control the properties of current session enabling and disabling roles and changing .e.g :: Alter Statements,Set Role
e) System Control Statements :: Change Properties of Oracle Instance .e.g:: Alter System
f) Embedded Sql :: Incorporate DDL,DML and T.C.S in Programming Language.e.g:: Using the Sql Statements in languages such as 'C', Open,Fetch, execute and close

3) What is a Transaction in Oracle
3) A transaction is a Logical unit of work that compromises one or more SQL Statements executed by a single User. According to ANSI, a transaction begins with first executable statment and ends when it is explicitly commited or rolled back.

4) Key Words Used in Oracle
4) The Key words that are used in Oracle are ::
a) Commiting :: A transaction is said to be commited when the transaction makes permanent changes resulting from the SQL statements.
b) Rollback :: A transaction that retracts any of the changes resulting from SQL statements in Transaction.
c) SavePoint :: For long transactions that contain many SQL statements, intermediate markers or savepoints are declared. Savepoints can be used to divide a transactino into smaller points.
d) Rolling Forward :: Process of applying redo log during recovery is called rolling forward.
e) Cursor :: A cursor is a handle ( name or a pointer) for the memory associated with a specific stament. A cursor is basically an area allocated by Oracle for executing the Sql Statement. Oracle uses an implicit cursor statement for Single row query and Uses Explcit cursor for a multi row query.
f) System Global Area(SGA) :: The SGA is a shared memory region allocated by the Oracle that contains Data and control information for one Oracle Instance.It consists of Database Buffer Cache and Redo log Buffer.
g) Program Global Area (PGA) :: The PGA is a memory buffer that contains data and control information for server process.
g) Database Buffer Cache :: Databese Buffer of SGA stores the most recently used blocks of datatbase data.The set of database buffers in an instance is called Database Buffer Cache.
h) Redo log Buffer :: Redo log Buffer of SGA stores all the redo log entries.
i) Redo Log Files :: Redo log files are set of files that protect altered database data in memory that has not been written to Data Files. They are basically used for backup when a database crashes.
j) Process :: A Process is a 'thread of control' or mechansim in Operating System that executes series of steps.

5) What are Procedure, functions and Packages
5) Procedures and functions consist of set of PL/SQL statements that are grouped together as a unit to solve a specific problem or perform set of related tasks.
Procedures do not return values while Functions return only One Value
Packages :: Packages Provide a method of encapsulating and storing related procedures, functions, variables and other Package Contents

6) What are Database Triggers and Stored Procedures
6) Database Triggers :: Database Triggers are Procedures that are automatically executed as a result of insert in, update to, or delete from table.
Database triggers have the values old and new to denote the old value in the table before it is deleted and the new indicated the new value that will be used. DT are useful for implementing complex business rules which cannot be enforced using the integrity rules.We can have the trigger as Before trigger or After Trigger and at Statement or Row level.
e.g:: operations insert,update ,delete 3
before ,after 3*2 A total of 6 combinatons
At statment level(once for the trigger) or row level( for every execution ) 6 * 2 A total of 12.
Thus a total of 12 combinations are there and the restriction of usage of 12 triggers has been lifted from Oracle 7.3 Onwards.
Stored Procedures :: Stored Procedures are Procedures that are stored in Compiled form in the database.The advantage of using the stored procedures is that many users can use the same procedure in compiled and ready to use format.

7) How many Integrity Rules are there and what are they
7) There are Three Integrity Rules. They are as follows ::
a) Entity Integrity Rule :: The Entity Integrity Rule enforces that the Primary key cannot be Null
b) Foreign Key Integrity Rule :: The FKIR denotes that the relationship between the foreign key and the primary key has to be enforced.When there is data in Child Tables the Master tables cannot be deleted.
c) Business Integrity Rules :: The Third Intigrity rule is about the complex business processes which cannot be implemented by the above 2 rules.

8) What are the Various Master and Detail Relation ships.
8) The various Master and Detail Relationship are
a) NonIsolated :: The Master cannot be deleted when a child is exisiting
b) Isolated :: The Master can be deleted when the child is exisiting
c) Cascading :: The child gets deleted when the Master is deleted.

9) What are the Various Block Coordination Properties
9) The various Block Coordination Properties are
a) Immediate
Default Setting. The Detail records are shown when the Master Record are shown.
b) Deffered with Auto Query
Oracle Forms defer fetching the detail records until the operator navigates to the detail block.
c) Deffered with No Auto Query
The operator must navigate to the detail block and explicitly execute a query

10) What are the Different Optimisation Techniques
10) The Various Optimisation techniques are
a) Execute Plan :: we can see the plan of the query and change it accordingly based on the indexes
b) Optimizer_hint:
Select /*+ First_Rows */ Deptno,Dname,Loc,Rowid from dept
where (Deptno > 25)
c) Optimize_Sql ::
By setting the Optimize_Sql = No, Oracle Forms assigns a single cursor for all SQL statements.This slow downs the processing because for evertime the SQL must be parsed whenver they are executed.
f45run module = my_firstform userid = scott/tiger optimize_sql = No
d) Optimize_Tp ::
By setting the Optimize_Tp= No, Oracle Forms assigns seperate cursor only for each query SELECT statement. All other SQL statements reuse the cursor.
f45run module = my_firstform userid = scott/tiger optimize_Tp = No

11) How do u implement the If statement in the Select Statement
11) We can implement the if statement in the select statement by using the Decode statement.
e.g select DECODE (EMP_CAT,'1','First','2','Second'Null);
Here the Null is the else statement where null is done .

12)How many types of Exceptions are there
12) There are 2 types of exceptions. They are
a) System Exceptions
e.g. When no_data_found, When too_many_rows
b) User Defined Exceptions
e.g. My_exception exception
When My_exception then

13) What are the inline and the precompiler directives
13) The inline and precompiler directives detect the values directly

14) How do you use the same lov for 2 columns
14) We can use the same lov for 2 columns by passing the return values in global values and using the global values in the code

15) How many minimum groups are required for a matrix report
15) The minimum number of groups in matrix report are 4

16) What is the difference between static and dynamic lov
16) The static lov contains the predetermined values while the dynamic lov contains values that come at run time

17) What are snapshots and views
17) Snapshots are mirror or replicas of tables. Views are built using the columns from one or more tables. The Single Table View can be updated but the view with multi table cannot be updated

18) What are the OOPS concepts in Oracle.
18) Oracle does implement the OOPS concepts. The best example is the Property Classes. We can categorise the properties by setting the visual attributes and then attach the property classes for the
objects. OOPS supports the concepts of objects and classes and we can consider the peroperty classes as classes and the items as objects

19) What is the difference between candidate key, unique key and primary key
19) Candidate keys are the columns in the table that could be the primary keys and the primary key
is the key that has been selected to identify the rows. Unique key is also useful for identifying the distinct rows in the table.

20)What is concurrency
20) Cuncurrency is allowing simultaneous access of same data by different users. Locks useful for accesing the database are
a) Exclusive
The exclusive lock is useful for locking the row when an insert,update or delete is being done.This lock should not be applied when we do only select from the row.
b) Share lock
We can do the table as Share_Lock as many share_locks can be put on the same resource.

21) Previleges and Grants
21) Previleges are the right to execute a particulare type of SQL statements.
e.g :: Right to Connect, Right to create, Right to resource
Grants are given to the objects so that the object might be accessed accordingly.The grant has to be
given by the owner of the object.

22)Table Space,Data Files,Parameter File, Control Files
22)Table Space :: The table space is useful for storing the data in the database.When a database is created two table spaces are created.
a) System Table space :: This data file stores all the tables related to the system and dba tables
b) User Table space :: This data file stores all the user related tables
We should have seperate table spaces for storing the tables and indexes so that the access is fast.
Data Files :: Every Oracle Data Base has one or more physical data files.They store the data for the database.Every datafile is associated with only one database.Once the Data file is created the size cannot change.To increase the size of the database to store more data we have to add data file.
Parameter Files :: Parameter file is needed to start an instance.A parameter file contains the list of instance configuration parameters e.g.::
db_block_buffers = 500
db_name = ORA7
db_domain = u.s.acme lang
Control Files :: Control files record the physical structure of the data files and redo log files
They contain the Db name, name and location of dbs, data files ,redo log files and time stamp.

23) Physical Storage of the Data
23) The finest level of granularity of the data base are the data blocks.
Data Block :: One Data Block correspond to specific number of physical database space
Extent :: Extent is the number of specific number of contigious data blocks.
Segments :: Set of Extents allocated for Extents. There are three types of Segments
a) Data Segment :: Non Clustered Table has data segment data of every table is stored in
cluster data segment
b) Index Segment :: Each Index has index segment that stores data
c) Roll Back Segment :: Temporarily store 'undo' information

24) What are the Pct Free and Pct Used
24) Pct Free is used to denote the percentage of the free space that is to be left when creating a table. Similarly Pct Used is used to denote the percentage of the used space that is to be used when creating a table
eg.:: Pctfree 20, Pctused 40

25) What is Row Chaining
25) The data of a row in a table may not be able to fit the same data block.Data for row is stored in a chain of data blocks .

26) What is a 2 Phase Commit
26) Two Phase commit is used in distributed data base systems. This is useful to maintain the integrity of the database so that all the users see the same values. It contains DML statements or Remote Procedural calls that reference a remote object. There are basically 2 phases in a 2 phase commit.
a) Prepare Phase :: Global coordinator asks participants to prepare
b) Commit Phase :: Commit all participants to coordinator to Prepared, Read only or abort Reply

27) What is the difference between deleting and truncating of tables
27) Deleting a table will not remove the rows from the table but entry is there in the database dictionary and it can be retrieved But truncating a table deletes it completely and it cannot be retrieved.

28) What are mutating tables
28) When a table is in state of transition it is said to be mutating. eg :: If a row has been deleted then the table is said to be mutating and no operations can be done on the table except select.

29) What are Codd Rules
29) Codd Rules describe the ideal nature of a RDBMS. No RDBMS satisfies all the 12 codd rules and Oracle Satisfies 11 of the 12 rules and is the only Rdbms to satisfy the maximum number of rules.

30) What is Normalisation
30) Normalization is the process of organizing the tables to remove the redundancy. There are mainly 5 Normalization rules.
a) 1 Normal Form :: A table is said to be in 1st Normal Form when the attributes are atomic
b) 2 Normal Form :: A table is said to be in 2nd Normal Form when all the candidate keys are dependant on the primary key
c) 3rd Normal Form :: A table is said to be third Normal form when it is not dependant transitively

31) What is the Difference between a post query and a pre query
31) A post query will fire for every row that is fetched but the pre query will fire only once.

32) Deleting the Duplicate rows in the table
32) We can delete the duplicate rows in the table by using the Rowid

33) Can U disable database trigger? How?
33) Yes. With respect to table
[[ DISABLE all_trigger ]]
34) What is pseudo columns ? Name them?

34) A pseudocolumn behaves like a table column, but is not actually
stored in the table. You can select from pseudocolumns, but you
cannot insert, update, or delete their values. This section
describes these pseudocolumns:

35) How many columns can table have?
The number of columns in a table can range from 1 to 254.

36) Is space acquired in blocks or extents ?

In extents .

37) what is clustered index?
In an indexed cluster, rows are stored together based on their cluster key values .
Can not applied for HASH.

38) what are the datatypes supported By oracle (INTERNAL)?
Varchar2, Number,Char , MLSLABEL.

39 ) What are attributes of cursor?

40) Can you use select in FROM clause of SQL select ?

Oracle Forms Interview Questions

Forms 4.5 Questions

1) Which trigger are created when master -detail rela?
master delete property
* NON-ISOLATED (default)
a) on check delete master
b) on clear details
c) on populate details

a) on clear details
b) on populate details

a) per-delete
b) on clear details
c) on populate details

2) which system variables can be set by users?

3) What are object group?
An object group is a container for a group of objects. You define an object group when you want to package related objects so you can copy or reference them in another module.

4) What are referenced objects?
Referencing allows you to create objects that inherit their functionality and appearance from other objects. Referencing an object is similar to copying an object, except that the resulting reference object maintains a link to its source object. A reference object automatically inherits any changes that have been made to the source object when you open or regenerate the module that contains the reference object.

5) Can you store objects in library?
Referencing allows you to create objects that inherit their functionality and appearance from other objects. Referencing an object is similar to copying an object, except that the resulting reference object maintains a link to its source object. A reference object automatically inherits any changes that have been made to the source object when you open or regenerate the module that contains the reference object.

6) Is forms 4.5 object oriented tool ? why?
yes , partially. 1) PROPERTY CLASS - inheritance property
2) OVERLOADING : procedures and functions.

7) Can you issue DDL in forms?
yes, but you have to use FORMS_DDL.
Referencing allows you to create objects that inherit their functionality and appearance from other objects. Referencing an object is similar to copying an object, except that the resulting reference object maintains a link to its source object. A reference object automatically inherits any changes that have been made to the source object when you open or regenerate the module that contains the reference object.
Any string expression up to 32K:
�P a literal
�P an expression or a variable representing the text of a block of dynamically
created PL/SQL code
�P a DML statement or
�P a DDL statement

The statement you pass to FORMS_DDL may not contain bind variable references in the string, but the values of bind variables can be concatenated into the string before passing the result to FORMS_DDL.

8) What is SECURE property?
Hides characters that the operator types into the text item. This setting is typically used for password protection.

9 ) What are the types of triggers and how the sequence of firing in text item
Triggers can be classified as Key Triggers, Mouse Triggers ,Navigational Triggers.
Key Triggers : Key Triggers are fired as a result of Key action.e.g : Key-next-field, Key-up,Key-Down Mouse Triggers : Mouse Triggers are fired as a result of the mouse navigation.e.g. When-mouse-button-presed,when-mouse-doubleclicked,etc
Navigational Triggers : These Triggers are fired as a result of Navigation. E.g : Post-Text-item,Pre-text-item. We also have event triggers like when -new-form-instance and when-new-block-instance.
We cannot call restricted procedures like go_to(��my_block.first_item��) in the Navigational triggers . But can use them in the Key-next-item. The Difference between Key-next and Post-Text is an very important question. The key-next is fired as a result of the key action while the post text is fired as a result of the mouse movement. Key next will not fire unless there is a key event.
The sequence of firing in a text item are as follows ::
a) pre - text
b) when new item
c) key-next
d) when validate
e) post text

10 ) Can you store pictures in database? How?
Yes , in long Raw datatype.

11) What are property classes ? Can property classes have trigger?
Property class inheritance is a powerful feature that allows you to quickly define objects that conform to your own interface and functionality standards. Property classes also allow you to make global changes to applications quickly. By simply changing the definition of a property class, you can change the definition of all objects that inherit properties from that class. Yes . All type of triggers .

12) If you have property class attached to an item and you have same trigger written for the
item . Which will fire first?
Item level trigger fires , If item level trigger fires, property level trigger won't fire. Triggers at the lowest level are always given the first preference. The item level trigger fires first and then the block and then the Form level trigger.

13) What are record groups ? Can record groups created at run-time?
A record group is an internal Oracle Forms data structure that has a column/row framework similar to a database table. However, unlike database tables, record groups are separate objects that belong to the form module in which they are defined. A record group can have an unlimited number of columns of type CHAR, LONG, NUMBER, or DATE provided that the total number of columns does not exceed 64K.Record group column names cannot exceed 30 characters. Programmatically, record groups can be used whenever the functionality offered by a two-dimensional array of multiple data types is desirable.
Query Record Group A query record group is a record group that has an associated SELECT statement.
The columns in a query record group derive their default names, data types, and lengths from the database columns referenced in the SELECT statement. The records in a query record group are the rows retrieved by the query associated with that record group.
Non-query Record Group A non-query record group is a group that does not have an associated query, but whose structure and values can be modified programmatically at runtime.
Static Record Group A static record group is not associated with a query; rather, you define its structure and row values at design time, and they remain fixed at runtime.

14) What are ALERT?
An ALERT is a modal window that displays a message notifiying operator of some application condition.

15) Can a button have icon and lable at the same time ?

16) What is mouse navigate property of button?
When Mouse Navigate is True (the default), Oracle Forms performs standard navigation to move the focus to the item when the operator activates the item with the mouse.
When Mouse Navigate is set to False, Oracle Forms does not perform navigation (and the resulting validation) to move to the item when an operator activates the item with the mouse.

Forms run inside the MDI application window. This property is useful for calling a form from another one.

18) What are timers ? when when-timer-expired does not fire?
The When-Timer-Expired trigger can not fire during trigger, navigation, or transaction processing.

19) Can object group have a block?
Yes , object group can have block as well as program units.

20) How many types of canvases are there.
There are 2 types of canvases called as Content and Stack Canvas. Content canvas is the default and the one that is used mostly for giving the base effect. Its like a plate on which we add items and stacked canvas is used for giving 3 dimensional effect.

These are some other questions that may be asked

1) What are user-exits?
It invokes 3GL programs.

2) Can you pass values to-and-fro from foreign function ? how ?
Yes . You obtain a return value from a foreign function by assigning the return value to an Oracle Forms variable or item. Make sure that the Oracle Forms variable or item is the same data type as the return value from the foreign function. After assigning an Oracle Forms variable or item value to a PL/SQL variable, pass the PL/SQL variable as a parameter value in the PL/SQL interface of the foreign function. The PL/SQL variable that is passed as a parameter must be a valid PL/SQL data type; it must also be the appropriate parameter type as defined in the PL/SQL interface.

3) What is IAPXTB structure ?
The entries of Pro * C and user exits and the form which simulate the proc or user_exit are stored in IAPXTB table in d/b.

4) Can you call WIN-SDK thruo' user exits?

5) Does user exits supports DLL on MSWINDOWS ?

6) What is path setting for DLL?
Make sure you include the name of the DLL in the FORMS45_USEREXIT variable of the ORACLE.INI file, or rename the DLL to F45XTB.DLL. If you rename the DLL to F45XTB.DLL, replace the existing F45XTB.DLL in the ORAWINBIN directory with the new F45XTB.DLL.

7) How is mapping of name of DLL and function done?
The dll can be created using the Visual C++ / Visual Basic Tools and then the dll is put in the path that is defined the registery.

8) what is precompiler?
It is similar to C precompiler directives.

9) Can you connect to non - oracle datasource ? How?
Yes .

10 ) what are key-mode and locking mode properties? level ?
Key Mode : Specifies how oracle forms uniquely identifies rows in the database.This is
property includes for application that will run against NON-ORACLE
datasources .
Key setting unique (default.)
Locking mode : Specifies when Oracle Forms should attempt to obtain database locks on
rows that correspond to queried records in the form.
a) immediate b) delayed

11) What are savepoint mode and cursor mode properties ? level?
Specifies whether Oracle Forms should issue savepoints during a session. This property is included primarily for applications that will run against non-ORACLE data sources. For applications that will run against ORACLE, use the default setting.
Cursor mode - define cursur state across transaction

12) What is transactional trigger property?
Identifies a block as transactional control block. i.e. non - database block that oracle forms should manage as transactional block.(NON-ORACLE datasource) default - FALSE.

13) What is OLE automation ?
OLE automation allows an OLE server application to expose a set of commands and functions that can be invoked from an OLE container application. OLE automation provides a way for an OLE container application to use the features of an OLE server application to manipulate an OLE object from the OLE container environment. (FORMS_OLE)

14) What does invoke built-in do?
This procedure invokes a method.
(object obj_type,
method VARCHAR2,
list list_type := 0);
object Is an OLE2 Automation Object.
method Is a method (procedure) of the OLE2 object.
list Is the name of an argument list assigned to the

15) What are OPEN_FORM,CALL_FORM,NEW_FORM? diff?
CALL_FORM : It calls the other form. but parent remains active, when called form
completes the operation , it releases lock and control goes back to the calling form. When you call a form, Oracle Forms issues a savepoint for the called form. If the
CLEAR_FORM function causes a rollback when the called form is current, Oracle Forms
rolls back uncommitted changes to this savepoint.
OPEN_FORM : When you call a form, Oracle Forms issues a savepoint for the called
form. If the
CLEAR_FORM function causes a rollback when the called form is current, Oracle Forms
rolls back uncommitted changes to this savepoint.
NEW_FORM : Exits the current form and enters the indicated form.The calling form is
terminated as the parent form. If the calling form had been called by a higher form, Oracle Forms keeps the higher call active and treats it as a call to the new form. Oracle Forms releases memory (such as database cursors) that the terminated form was using. Oracle Forms runs the new form with the same Runform options as the parent form. If the parent form was a called form, Oracle Forms runs the new form with the same options as the parent form.

16 ) What is call form stack?
When successive forms are loaded via the CALL_FORM procedure, the resulting module hierarchy is known as the call form stack.

17) Can u port applictions across the platforms? how?
Yes we can port applications across platforms.Consider the form developed in a windows system.The form would be generated in unix system by using f45gen my_form.fmb scott/tiger