Follow us: Connect on YouTube Connect on YouTube Connect on YouTube


Sunday, 2 July 2017

Oracle Forms Interview Questions and Answers

The following Oracle Forms Interview Question and Answers created based on my person experience, I hope it will use for you while you are facing Oracle Forms interview, These are very frequently asking question and answers (FAQS) in Oracle Forms interview.

oracle form inerview question and answers

What is a display item?

Display items are similar to text items but store only fetched or assigned values.  Operators cannot navigate to a display item or edit the value it contains.

What is a list item?

It is a list of text elements.

What are the display styles of list items?

Poplist: The poplist style list item appears initially as a single field (similar to a text item field).  When the end user selects the list icon, a list of available choices appears.

Tlist: The Tlist style list item appears as a rectangular box, which displays a fixed number of values.  When the Tlist contains values that cannot be displayed (due to the displayable area of the item), a vertical scroll bar appears, allowing the end user to view and select undisplayed values.

Combo Box: The combo box style list item combines the features found in poplists and text items. It displays fixed values and can accept a user-entered value.

What is a radio Group?

Radio groups display a fixed no of options that are mutually exclusive.
User can select one out of n number of options.

How many maximum number of radio buttons can you assign to a radio group?

Unlimited no of radio buttons can be assigned to a radio group

Can you change the default value of the radio button group at run time?


What triggers are associated with the radio group?

Only when-radio-changed trigger associated with radio group

What is a visual attribute?

Visual Attributes are the font, color and pattern characteristics of objects that operators  see and intract with in our application.

What are the types of visual attributes?


How to change Visual Attribute at Runtime

You can programmatically change an object's named visual attribute setting to change the font, color, and pattern of the object at runtime. E.g. using SET_CANVAS_PROPERTY, Set_Item_Property (‘Blockname.Itemname’, VISUAL_ATTRIBUTE, ‘VisualAttributeName’);
Where 'VisualAttributeName' is either the name of a visual attribute you've set up in the form (which has foreground, background, font, etc.), or is the name of a logical visual attribute from the resource file.

What are the types of visual attribute settings?

   Custom Visual attributes
   Default visual attributes
   Named Visual attributes.

What is a 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

Master-Detail Relation (Triggers/Procedures/Properties)

On-Check-Delete-Master: - Fires when Form Builder attempts to delete a record in a block that is a master block in a master-detail relation.

On-Clear-Details: - Fires when Form Builder needs to clear records in a block that is a detail block in a master-detail relation because those records no longer correspond to the current record in the master block.

On-Populate-Details: - Fires when Form Builder needs to fetch records into a block that is   
    the detail block in a master-detail relation so that detail records are   
    synchronized with the current record in the master block.

(i)                Isolated: - Masters Can be deleted when Child is existing

Triggers: - On Populate details           Block
                On Clear Details                  Form        
                   Check Package Failure
                   Clear all master Detail
                   Query Master Detail     

(ii)             Non- Isolated: - Masters Cannot be deleted when Child is existing.
Triggers: - On Populate details          Block
                On Check Delete master    Block         
                         On Clear Details                Form         
                   Check Package Failure
                   Clear all master Detail
                   Query Master Detail               

(iii)           Cascading: - Child Record Automatically Deleted when Masters is deleted.
Triggers: - On Populate details           Block
                Pre Delete                            Block
   On Clear Details                  Form        
                   Check Package Failure
                   Clear all master Detail
                   Query Master Detail               

What is canvas?

Canvases guide the layout of the blocks / records / items. A Content Canvas View (or simply Content View) is the base view that occupies the entire content pane of the window
in which it is displayed. You will usually define at least one content canvas view for each
window in your application.

A canvas is an object that can be displayed on the screen. The canvas may contain buttons,
graphics, display items and text items.

The canvas may be smaller or larger than the screen size. One canvas may be stacked on top of another canvas so that the user might see several canvases at the same time.

A large canvas might only be partially visible to the user. This is known as a "view" of the
canvas. If the cursor navigates to an enterable item on a canvas, then the canvas becomes
visible to the user. However, when the cursor leaves the items on the canvas, the canvas
will not automatically be hidden from view unless another canvas covers it.

How many types of canvas are there in a form?

There are 5 types are canvas are there in a form

a) Content Canvas.
b) Stacked Canvas.
a) Horizontal Tool Bar.
b) Vertical Toll Bar.
c) Tab Canvas.

(i)                Content Canvas (Default Canvas) [A content canvas is the required on each window you create]

(ii)             Stack Canvas  [you can display more then one stack canvas in a window at the same time]  

(iii)           Tab Type Window [In Tab canvas that have tab pages and have one or more then tab page] 

(iv)           Toolbar Canvas [A toolbar canvas often is used to create Toolbar Windows. There are two type of Toolbar window.

a.     Horizontal Toolbar Canvas: - Horizontal Toolbar canvases are displayed at the top of the window, just under the Main Menu Bar.
b.     Vertical Toolbar Canvas: - While vertical Toolbar are displayed along the Left Edge of the window.

Can you have a form without a Canvas?

No, Canvas Object Physical represents table columns.

Does a stacked canvas require a content canvas?

Yes, Sometime the number of columns in the table cannot contained on a standared canvas or the system require that information on the form be displayed either on a click of a button or on some condition being set for the system.

Multiple canvases can be placed on the same form. Additional items can be included in the second canvas and code can be written to make the canvas visible/ invisible when a button is pressed.

Since the canvas is placed on the window the size of the canvas is restricted to the size of the window. Similarly if the window is resized, the canvas must be resized. The type of the canvas determined the canvas-resizing behavior. The default value for the canvas type is "content".

This property value ensures that the canvas is automatically resized horizontally and vertically based on the size of the window.

There may be a need to place some items on the content canvas and other items on a new canvas such that the content canvas and the new canvas are stacked one on top of the other.

A canvas that can be stacked on the content canvas is called a "Stacked Canvas". The stacked canvas is displayed in the same window along with the window's content canvas. There can be any number of stacked canvases placed on the content canvas.

If the form includes multiple canvases, a common practice is to make the stacked canvas visible or invisible programmatically.

What is tab canvas?

Just like the paper form is made of multiple pages, the data entry form could also be created
with multiple pages. The type of canvas that can include multiple tab pages is called "Tab canvas".

What are the basic concepts of Oracle Forms?

Forms functionality is driven by user events (such as pressing a key) and navigation events
(Such as the cursor about to enter/leave a field). These events are identified by triggers in
a form.

These triggers fall into several groups:
PRE - Fires prior to an event
POST - Fires after an event
WHEN - Fires when an event occurs
KEY - Fires when the corresponding key is pressed
ON   - Replaces default event processing

These triggers include events such as:
1. PRE and POST triggers for the form, block, row, and item.
2. PRE and POST triggers for row inserts, updates, and deletions.
3. WHEN triggers fire as a direct result of an event such as the user clicking on a
button (WHEN-BUTTON-PRESSED) or the cursor navigating to a new item and readying for user input (WHEN-NEW-ITEM-INSTANCE).
4. Keys the user can press on their keyboard like the Tab button (KEY-NEXT-ITEM) or
5. ON triggers fire when an event occurs. For example, ON-MESSAGE fires when forms is about to issue a message. This gives the developer an opportunity to trap and replace particular messages with custom messages.

By adding PL/SQL code to a trigger you can:
1. Alter the way a trigger would ordinarily work. For instance, by creating a KEY-ENTQRY on a field with: null; you will prevent the user from pressing F8.
2. Supplement the way something works - for instance by creating a KEY-DELREC trigger on a block with code that asks the user if they "really" want to delete that record before
issuing the delete_record;.

Trigger Scope: If you create a KEY-EXEQRY on a field with: null; then you will prevent the user from pressing F8 while the cursor is in that field. If, instead, you attach the same trigger to a block, then you will prevent the user from pressing F8 while the cursor is anywhere in that block. If, instead, you attach the same trigger to the form, then you will prevent the user from pressing F8 anywhere within the form.
You can override high level triggers at a lower level. For example, if you have disabled F7 at the form level, you can add a KEY-ENTQRY to a block with: enter_query; that will allow the user to press F7 to enter a query while the cursor is in that block. This means that F7 will work in that block but nowhere else in the form.

What is the difference between base table block and control block?

Blocks (Base Table vs. Control): A most basic concept in a form is blocks. Blocks are
basically comprised of 2 types:

1. Control block - A block not associated with a table. This block is usually a single row block that has no interaction with the database.
2. Base table block - this is associated with a table. You do not have to code any SQL statements. Forms will automatically:
A. Query rows of data from the table (execute_query)
B. Insert a new row below the current row (create_record)
C. Delete the current row (delete_record)
D. Update rows (by the user typing values on a queried row)
E. Handle row locking
F. Make all these database changes permanent at commit time

Base Table and Control Items: An item in a base table block that relates directly to a base
table column is a base table item. An item that does not relate to a database column is a 
control item. Base table blocks can contain both base table items and control items.

For example, a base table block might contain four base table items that display queried
database values and a fifth item that displays calculated values but does not correspond to any column in the base table. The fifth item would be a control item populated by an assignment statement in the trigger that does the calculation.

Because control blocks are not associated with database tables, none of the items they contain can be base table items. (You can, however, populate control items with database values by writing your own SQL statements in trigger code.)

Control items can be used to do the following:
* Display totals, averages, rankings, and other summary information calculated from values
in base table items and database tables.
* Accept input from operators that is required by the application, but that is not stored
in the database.
* Display "look-up values," that is, database values derived from a table other than the base
table of the block.
You can also reference the values of control items in code, much like local and global variables.
Buttons and chart items are always control items. Because these items do not store values,
they cannot relate to columns in the database.

Item in a block -Items are the interface objects that display information to operators and
allow them to interact with your application. A field in the base table in the database or
another field, other fields may be buttons, check boxes, etc.

1. Button: A rectangle with a text label or an icon graphic inside.

2. Chart item: A bordered rectangle of any size that can display a chart or other display
     generated by Oracle Graphics. Operators cannot navigate to or manipulate chart items.

3 Check box: A text label with a graphic state indicator that displays the current value as
    either checked or unchecked. Selecting a check box toggles it to the opposite state.

4. Display item: A read-only text box whose value must be fetched or assigned   
     programmatically.Operators cannot navigate to a display item or edit the text it contains.

5. Image item: A bordered rectangle of any size that can display images fetched from the
    database or read in from the file system.

6. List item: A list of choices displayed as either a poplist (sometimes called a drop list),
    a t-list (sometimes called a list box), or a combo box.

7. Radio group: A group of radio buttons, one of which is always selected.

8. Text item: A single- or multi-line text box that supports a variety of data types,
    format masks and editing capabilities.

9. OLE container: An area that stores and displays an OLE object that is created from an
    OLE server application.

10. VBX control: A custom control that simplifies the building and enhancing of user   

Each item in a form (text item, image item, radio group, and so on), belongs to a block. 
Blocks are logical containers that have no physical representation--only the items contained
in a block are visible in the application interface. However, like other objects,
blocks have properties, and can be created, copied, and modified in the Designer.

Blocks provide a mechanism for grouping related items into a functional unit for storing,
displaying, and manipulating records. Just as tables in the database consist of related
columns and rows blocks contain related items that display data records.

There is no practical limit to the number of blocks that can be defined in a form.
A block is a logical grouping only; the items in a block can be placed on different

Canvas-views and can be displayed in different windows.
How to attach same LOV to multiple items

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.

Static & Dynamic LOV

The static LOV contains the predetermined values while the dynamic LOV contains values that come at run time

Sequence of Firing of Triggers:


Item Level Trigger Sequence


After pressing F10


Form-Exit Triggers


When a form is run, which are the triggers fire, and in what sequence they fire?


Property class & visual attribute?

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 can inherit the setting of any property in the class that makes sense for that object.

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. 

Property class assignment cannot be changed programmatically. By simply changing the definition of a property class, you can change the definition of all objects that inherit properties from that class.

For example we can create a property class object, with properties mentioned below and attach it to all the push buttons in the product form.

Name: PClass_Button.
Width: 23
Height: 23
Iconic: Yes
Background Color: Gray
Canvas: Product_can

Visual attribute: Visual attributes are the font, color, and pattern properties that you set for form and menu objects that appear in your application's interface.  Visual attributes can
include the following properties:
1. Font properties: Font Name, Font Size, Font Style, Font Width, Font Weight
2. Color and pattern properties: Foreground Color, Background Color, and Fill Pattern,
Char mode Logical Attribute.
What is a Property Class? Different methods of creating property class?

Property Class is defining properties of objects along with their settings.  The property class inheritance allows the user to perform global changes very quickly and efficiently.

Object Navigator Method
Properties Window Method

Diff. between VAT and Property Class?

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 take precedence, and any visual attribute properties in the
class is ignored.

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.

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.

1. 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.
2. 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.
3. 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.
WHEN-NEW-FORM trigger written at Form Level, Block Level and Item Level which one will fire first?

The trigger written at the lower level Item Level Fires first.

How do blocks relate to each other?

The relationship between block represent the relationships of an ER schema.
It can also represent relationship between tables in the relational data model based on
foreign keys. It can specify a "join condition" between a "master" and "detail" blocks.

How to use Dynamic SQL in Form?

The reason why you would want do to do this is because, like in database procedures,
you can't use DDL such as DROP TABLE 'table_name' directly in PL/SQL with Forms.
The way to do it is with the built-in EXEC_SQL package.
The same thing can also be accomplished with the FORMS_DDL built-in but that only applies to the current database connection, with the EXEC_SQL package it’s possible to have database connections to multiple databases and also execute non-oracle database procedures.

What the relationships were between canvases, views and windows?

a) Multiple canvases with only one window: The most common problem I've found in this scenario is that you click a button on your main canvas or some other action is performed, the result of which is you expect to see a secondary canvas popping up containing some sort of useful information for the user to see or act upon. The thing is the user only sees it for about 100th of a second, if they're lucky, before it miraculously disappears again.
What's going on here, after all your button or whatever does a SHOW_VIEW ('CANVAS_NAME');
It’s supposed to display the secondary canvas isn't it? Yes, and it does however it will only
work correctly if the secondary canvas is of type STACKED. Changing the property to
this should solve your problem. Another way of doing it without changing the property of
the canvas depends on your canvas having an item on it that you can do a GO_ITEM on.
If it does then do your GO_ITEM just before the SHOW_CANVAS and it should work correctly.
You will find though that using this method means the secondary canvas takes up the whole
of your window obscuring all of your primary canvas and you can't use its view port properties as you can with stacked canvases.

b) Multiple canvases and multiple windows: This is similar to the previous problem in
that you click a button on your main window or some other action is performed and you
expect to see a secondary canvas popping up in a separate window of its own.
This time though the user only sees the window itself with none of the useful information on it.
What's going on here, after all your button or whatever does a SHOW_WINDOW ('WINDOW_NAME');
it's supposed to display the secondary window isn't it? It does, however it will only
work correctly if you also do a SHOW_VIEW('CANVAS_NAME') too. Note that the calling window will still have the focus (i.e. be on top). If you want the called window to be on top you either need to click on it or do a GO_ITEM to an appropriate navigable field on the called window. If there isn't one available a work-around is to create a dummy item and disguise it by making its background colour the same as the called window and ensuring its BORDER BEVEL is set to NONE. One last check if things still aren't going right is to make sure that your secondary canvas window property is pointing to the correct window.

While I was on the subject I thought I'd just bring up a couple of points on the relationships
between canvases, view ports and windows which is crucial to remember if you want to write great forms applications.

From a developer’s standpoint, canvases and forms are interchangeable in as much as canvases are where you put your form items, buttons, and text and so on. Whether or not the user sees all those things is another matter of course and that's where windows and view ports come in.
In general, content canvases don't have view ports associated with them and will display in the whole of the window they are assigned to. Therefore if the window is big enough, the user will see everything that's on them. Stacked canvases on the other hand can have a view port that can be thought of as being a sub-window within the canvas. The user will only see things on the canvas which are inside the viewport. And because you can programmatically control the size and position of the viewport it means that you can choose to display, or not, as the case may be, only the things you want your user to see.

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,

1. Key Triggers: Key Triggers are fired as a result of Key action.
a) Key-next-Item: Tab or Enter.
b) Key-ExeQry: F8
c) Key-NxtBlk: Shift F5
d) Key-Commit: F10

2. Action Trigger: Trigger that gets executed due to user interaction is called Action Triggers. action triggers are associated with specific objects.
a) When-Button-Pressed: Pressing a button.
b) When-CheckBox-Changed: Clicking a check box.
c) When-Image-Pressed: Clicking the image.
d) When-List-Changed: A List item is selected.
e) When-Radio-Changed: Clicking on a Radio Button.
f) When-Window-Activated: When focus is on a specific window.
g) When-Window-Closed- When a window is closed.

3. Mouse Triggers: Mouse Triggers are fired as a result of the mouse navigation.
a) When-Mouse-Click
b) When-Mouse-Double-Click
c) When-Mouse-Down
d) When-Mouse-Enter
e) When-Mouse-Leave
f) When-Mouse-Move
g) When-Mouse-Up

4. Navigational Triggers: These Triggers are fired as a result of Navigation. for example when the cursor navigates out of a text item to another text item the Post-Text-Item trigger for the current text item and Pre-Text-Item trigger for the next text item it moves to will both fire in sequence.

1 Pre-Text-Item and Post-Text-item.
2. When-New-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 a 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.

Example (1) The sequence of firing in a text item are as follows:
    a) pre-text-item
    b) when-new-item-instance
    c) key-next-item
    d) when-validate-item
    e) post-text-item

Example (2) if there are two text items in a block, say text1 and text2. If the focus is on text2 and user moves the cursor to text1 by doing shift tab, then which triggers will fire? In what order?
    a) Key-Prev-item
    b) When-validate-item
    c) post-text-item
    d) Pre-text-item
    e) When-new-item-instance

Example (3) As soon as form open in the memory, a series of navigational triggers are executed.
The sequence of trigger that fire when a form is invoked are as follows-
1. Pre-Form
2. Pre-Block
3. Pre-Record
4. Pre-Text-Item
5. When-New-Form-Instance
6. When-New-Block-Instance                              
7. When-New-Record-Instance
8. When-New-Item-Instance

The difference between when_validate_item trigger and key_next_item trigger in Oracle Forms?

WHEN-VALIDATE-ITEM trigger fires to check the value of an item to insure it is valid. The timing of this event may vary but one of the most common is when the user enters a value and causes the cursor to try to exit the item by pressing the TAB key or using the mouse to click elsewhere in the form. This trigger can also fire when then user attempts to leave a record that has been marked for insertion or change.

KEY-NEXT-ITEM fires only when the user presses the TAB key. You should also note that WHEN-VALIDATE-ITEM trigger is a restricted procedure, so you cannot use navigation built-ins (such as GO_BLOCK).  There are no such restrictions with KEY-NEXT-ITEM. So we should not validation code in KEY-NEXT-ITEM.

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.

What is MDI form? How u will attach vertical toolbar in the form?

MDI (Multiple Document Interface): Specifies whether the window is a Document window or a Dialog window.  Document and dialog windows are displayed differently on window managers that support a Multiple Document Interface (MDI) system of window management.
Attachment Of vertical toolbar.
On Microsoft Windows, specifies the toolbar canvas that should be displayed as a vertical
toolbar on the MDI application window. The canvas specified must have the Canvas Type property set to Vertical Toolbar.
Applies to form
Set Form Builder
Default Null
Required/Optional optional

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

What are user-exits? What is foreign function?

It invokes 3GL programs.

Foreign functions are subprograms written in a 3GL programming language that allow you to customize your Oracle Forms applications to meet the unique requirements of your users.
Foreign functions are often used to enhance performance or provide additional functionality to Oracle Forms.
In Oracle Forms, you can invoke a foreign function from a user exit interface. A user exit
interface allows you to call a foreign function by using the USER_EXIT built-in from a trigger or a user-named subprogram. Invoking a foreign function from the USER_EXIT built-in returns an integer value to Oracle Forms indicating success, failure, or a fatal error. Following the execution of the USER_EXIT built-in, the values of the error variables in Oracle Forms--FORM_FAILURE, FORM_FATAL, and FORM_SUCCESS--are set accordingly.

Foreign functions that you invoke from a user exit interface are contained in an Oracle Forms dynamic link library or linked with Oracle Forms Runform. Creating a user exit interface to a foreign function requires you to link additional files to Oracle Forms dynamic link libraries or Oracle Forms Runform. The additional files provide information about the user exit interfaces and the entry points that allow Oracle Forms to invoke foreign functions from a user exit interface.

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. 

What is IAPXTB structure?
The entries of Pro*C and user exits and the form which simulate the Pro*C or user_exit
are stored in IAPXTB table in database.

Can you call WIN-SDK thru user exits?


Does user exits supports DLL on MSWINDOWS ?


What is path setting for DLL?

Make sure you include the name of the DLL in the FORMS45_USEREXIT variable of the
ORACLE.INI files, or renames the DLL to F45XTB.DLL.  If you rename the DLL to F45XTB.DLL, replace the existing F45XTB.DLL in the \ORAWIN\BIN directory with the new F45XTB.DLL.
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.

What is pre compiler?

It is similar to C pre compiler directives.

What are key-mode and locking mode properties? Level?

1. Key Mode: Specifies how oracle forms uniquely identify rows in the database. This is
property includes for application that will run against NON-ORACLE data sources.
Key setting: unique (default.), updateable, n-updateable.

2. 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

What are save point mode and cursor mode properties? Level?

1. Save point mode- Specifies whether Oracle Forms should issue save points 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.

2. Cursor mode - define cursor state across transaction Open/close.

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 data source) default - FALSE.

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)

What are OPEN_FORM, CALL_FORM, and NEW_FORM? Diff?

OPEN FORM: When one form invokes another form by executing OPEN_FORM, the first form remains displayed, and operators can navigate between the forms as desired. An opened form can share the same database session as the form from which it was invoked, or it can create a separate session of its own. For most GUI applications, using OPEN_FORM is the preferred way to implement multiple-form functionality.

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.

When one form invoke another from by executing CALL_FORM, when form A call form B, form B becomes the active form in the session, but from A remain in memory. If the operator exits from form B forms A again become the active form.

NEW_FORM: When one form invokes another form by executing NEW_FORM, Oracle Forms exits the first form and releases its memory 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.

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.

Can u port applications across the platforms? How?

Yes we can port applications across platforms. Consider the form developed in a window
system. The form would be generated in UNIX system by using f60gen my_form.fmb scott/tiger

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


What is library where do use?

A library is a collection of subprograms, including user-named procedures, functions, and packages. 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 program units from triggers, menu item commands, and user-named routines you write in the modules to which you have attached the library.
The same library can be attached to multiple forms and menus.  Conversely, a single form or menu can have more than one attached library.

What is Current record attribute property?

Specifies the named visual attribute used when an item is part of the current record.
Current Record Attribute is frequently used at the block level to display the current row in a
multi-record If you define an item-level Current Record Attribute, you can display a
pre-determined item in a special color when it is part of the current record, but you cannot
dynamically highlight the current item, as the input focus changes. 

Can u change VAT at run time?

Yes. You can programmatically change an object's named visual attribute setting to change the font, color, and pattern of the object at runtime.

Can u set default font in forms?

Yes. Change windows registry (regedit). Set form45_font to the desired font.

Can u have OLE objects in forms?


Can u have VBX and OCX controls in forms?


What r the types of windows (Window style)?

Specifies whether the window is a Document window or a Dialog window.

What is OLE Activation style property?

Specifies the event that will activate the OLE containing item.

Can u change the mouse pointer? How?

Yes. Specifies the mouse cursor style.  Use this property to dynamically change the shape
of the cursor.

What are the Various Block Coordination Properties?

The various Block Coordination Properties are
a) Immediate Default Setting- The Detail records are shown when the Master Records are shown.

b) Differed with Auto Query- Oracle Forms defer fetching the detail records until the operator navigates to the detail block.

c) Differed with No Auto Query- The operator must navigate to the detail block and explicitly execute a query
How do you use the same lov for 2 columns?

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.

What is the difference between static and dynamic lov?

The static lov contains the predetermined values while the dynamic lov contains values that
come at run time.

Can you issue DDL in forms?

Yes, but you have to use FORMS_DDL.

DDL (Data Definition Language) commands like CREATE, DROP and ALTER are not directly supported from Forms because your Forms are not supposed to manipulate the database structure.
A statement like CREATE TABLE X (A DATE); will result in error:
Encountered the symbol "CREATE" which is a reserved word.

However, you can use the FORMS_DDL built-in to execute DDL statements. Eg:
FORMS_DDL ('CREATE TABLE X (A DATE)'). FORMS_DDL can also be used to create dynamic SQL statements at runtime. The FORMS_SUCCESS built-in can be used to determine if the last executed built-in was successful.

We can use the FORMS_DDL built-in or call the DBMS_SQL database package from Forms for dynamic SQL statement.

Eg: FORMS_DDL ('INSERT INTO X VALUES (' || col_list || ')');

Just note that FORMS_DDL will force an implicit COMMIT and may de-synchronize the Oracle Forms COMMIT mechanism.

What is the difference between Query->Execute and Query->Enter->Query->Execute?

Query->Execute: It will retrieve ALL records from a base table.
In SQL SELECT * from tablename
Query->Enter->Query->Execute: Allows you to select particular tuples of a base table.
SELECT * FROM tablename WHERE condition

Are you familiar with all the varieties of search possible in the Query->Enter->Query->Execute mode?

Relational operators for comparison, wild cards

Are you aware of the different techniques that you can use for the data entry process?

a) You can manually enter a value.
a) You can set up a LOV and select values from the LOV into specified items of a block.

What kind of item is item-id? How is it different from other items in the base-table block?

The item item_id is a text item whose Navigation Enabled property is set to False.
This property is set to False since the value is not entered by the user but is obtained by
executing some code in the form to automatically generate its value.

Is item-id the same as the item labeled Total Value in the item block?

I think they are both text items but the Navigation Enabled property is true.
I believe in this case data entry by the user is also allowed.
If you wanted to make sure there was no data entry from the user or from a program unit then you can use a Display item instead of a text item.

What other kind of special items are supported?

Radio group, list items, etc.

Do you understand the functionality of a LOV?

A list of values is similar to a List Box in Access:  A user selects one of the data records
from the list, and the selected record values are inserted into one or more data fields on the
For the purchase order, we will create a list box to display the supplier name, city and state.
This will allow the end-user to select the supplier from the list, rather than memorize the
supplier codes.

Do you understand how Oracle supports referential integrity based on foreign keys?

Through the join condition in the master block and detail block specification.
The forms environment will force you to delete all rows in a detail block that make a
reference to a row in a master block.

Do you know how to modify the number of records displayed in a multi-record block?

1) Click on the Block you wish to modify
2) Open the properties window
3) Find the Records Displayed Field and enter in the # of rows.

Do you know how to change font, color, etc., for any item?

1) Click on the item whose *** you wish to change (navigator or layout).
2) Choose Format->Font, Color, etc, or do it through properties.

What are the two modes available in runtime?

1) Normal -- this is where you do new data entry
2) Query -- this is where you work with existing records

What is a trigger? What are the three levels of triggers, and when does each get "fired" or execute?

Item level trigger - fires when a specific item is used
Block level trigger - fires when any item in the block is used
Form - fires when any item in the form is used

List three examples of triggers you could use (1 at each level).Do you understand their functionality?

Update a field - item level
Update a record - block level
Filling in all of the fields in the form - form level

How do you make an item "read only"?

1) Choose the item
2) Open the properties window and find the field Item Type.
3) Double click on the field until Display Item is shown.

What is SECURE property?

Hides characters that the operator types into the text item.  This setting is typically
used for password protection.

Can you store pictures in database? How?

Yes, in long Raw datatype.

Which system variables can be set by users?


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.

What are referenced objects? 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.

What are timers? When when-timer-expired does not fire?

The When-Timer-Expired trigger can not fire during trigger, navigation, or transaction

What is ALERT?

An ALERT is a modal window that displays a message notifying operator of some application condition. There are three styles do alert: Stop, Caution, and Note.

You May Like:

SQL Practice Queries 

Share this article :


  1. Salama Aleikum,

    Zoooooooom! That’s how speedy and easy this read was! Looking forward to more of such powerful content on Oracle Forms Interview Questions and Answers.

    I need your help please, I am new at PL/SQL

    I need to run a select command with multiple values, if a break down this query into 3 pieces and run them,they works perfectly, but Ive got problems whenever i execute this query because there are multiple values into the where clause and i think its necessary to create lines break so it may work perfectly

    how can I get through this?

    SELECT job_name, command,description,days_of_week,start_mins,machine, J2.CREATE_STAMP, J2.MODIFY_STAMP
    ON (JR.JOID = J2.JOID)
    WHERE job_name IN ('coscl_PM_zip_log','coscl_PM_clear_log','coscl_PM_alarma_fs','coscl_PM_pmapp1_PM_up','coscl_PM_control_recargas_cod_11','coscl_PM_control_recargas_ingreso','coscl_PM_control_rec_error_cc_agrup_v1'.'coscl_PM_control_procesos_diarios','coscl_PM_rep_recar_x_estado','coscl_PM_control_tiempos_recargas',
    'coscl_PM_control_porcentaje','coscl_PM_control_puertos_bloq','coscl_PM_control_errores', 'coscl_PM_control_java','coscl_PM_control_error_cache');

    Thank you very much and will look for more postings from you.


  2. Oracle Apps R12 and Oracle Fusion Cloud Self Paced Online Training Videos Published on Udemy with Life Time Access & Live Meeting Support to Clear your Queries. Avail 25% to 80% discount. Please Check for Never Before Offers and Discount Coupon Codes.